Hacker News new | past | comments | ask | show | jobs | submit login
Id to release Doom3 source code (gamasutra.com)
161 points by aqrashik on Aug 31, 2011 | hide | past | favorite | 51 comments



"Note that Doom 3's famous shadow renderer is based on technology patented by Creative Labs."

This is a very sad situation, given that this technology was independently rediscovered and popularized by John Carmack. He learned about the patent only after the fact.


Yes, it's interesting to note that the technique is known as "Carmack's Reverse."

On the topic, John Carmack said[1]:

"The patent[2] situation well and truly sucks. We were prepared to use a two-pass algorithm that gave equivalent results at a speed hit, but we negotiated the deal with Creative so that we were able to use the zfail method without having to actually pay any cash. It was tempting to take a stand and say that our products were never going to use any advanced Creative/3dlabs products because of their position on patenting gaming software algorithms, but that would only have hurt the users."

[1] http://newenthusiast.com/carmacks-reverse-still-an-issue-200...

[2] The patent number 6,384,822, "Method For Rendering Shadows Using A Shadow Volume And A Stencil Buffer", can be read here: http://www.google.com/patents/about?id=Om0LAAAAEBAJ


To me that whole debacle was one of the biggest examples of the problems with the patent system today. For all intents and purposes Creative patented a mathematical formula.


It's worse than that, really. Creative bought a company (3D Labs) that patented a mathematical formula. Creative wasn't even directly responsible for coming up with the technique.


I don't think most people take issue with the fact that patents are purchasable or otherwise transferable.

If I create a valid, useful (non-software) patent, I should be able to sell or license it in any way I see fit.

The issue is software patents, at least in these circles.


>I don't think most people take issue with the fact that patents are purchasable or otherwise transferable.

I do, because I object to the absurd concept of ownership over ideas. Software patents just take the absurdity to the utter and bizarre maximum. There is no benefit for humanity to be gained through patents, they merely hinder our technological advancement.


> There is no benefit for humanity to be gained through patents, they merely hinder our technological advancement.

I disagree. There are three alternatives (that come to mind) to patents:

1) Make all information freely accessible to anyone. This is the one we'd all like everyone to do. However, there's very little (economic) incentive to innovate when you do all of the heavy thinking and anyone else can just come along and beat you to the implementation.

2) Stop innovating. If you can't protect your ideas, you might as well just stop trying.

3) Hide your information. Only you can benefit from the information if no one else knows about it. (You can't license information and keep it a secret at the same time!) There are laws to help protect you, but you also have to do a lot of work to protect yourself. You can also keep your information secret indefinitely.

By filing a patent, you're telling the world how to do something (allegedly) new. In 20 years, (or longer/shorter, depending on the country) everyone is freely able to use the idea.


The problem is, patents are not a repository for searching for solutions and solving problems. If you were to do so, you open yourself for further liability down the road. Not only that, you then harm the person who discovers the same solution independently, even though, your patent did not help them in anyway.


> The problem is, patents are not a repository for searching for solutions and solving problems.

Tell that to the generic-brand pharmaceutical companies. ;)

> Not only that, you then harm the person who discovers the same solution independently, even though, your patent did not help them in anyway.

In the old way, where you had to actually present an implementation of the patented idea, I imagine this would have encouraged inventors to innovate more rapidly. The current system is very broken, and allows patents for things like the perpetual motion machine. (I'd try to provide a link, but engineers shouldn't be looking at patents.)

"Oh, you're trying to genuinely improve our lives? Too bad I already came up with the idea in the shower one day and wrote it down before you did! But I'm willing to let you go ahead and try for $40 million."


If it can be shown that you can show that you have a history of reading patents, then it can be argued that you wilfully infringed. It certainly makes defense much harder. Patent lawyers generally recommend that engineers NOT read patents for that reason.


What about reading only expired patents?


I don't know, I'm not a patent lawyer myself.

I suspect however, that they would advise you this is a risky activity.


> The current system is very broken, and allows patents for things like the perpetual motion machine.

Actually, they explicitly say 'no perpetual motion machines' or the equivalent (I think they say 'You must provide a working example of something you claim is a perpetual motion machine', which comes to the same thing.) It's a special little carve-out they have to fix that specific problem.


Sadly, that hasn't stopped all of those patents from being issued. See here, for example:

http://www.google.com/patents/about/6362718_Motionless_elect...


But why? If I patented something (that I'd spent resources on inventing), I'd sell a license for a reasonable sum, not block its use. That's the intent of the system.

Or if I found a patent that was a solution to my problem, I'd buy a licence.

People buy hardware, software, services all the time. Companies also do that and use them to build more value and sell that further.

Software patents have lots of problems but the idea to just throw it all in the trash bin is a bit black and white.

You could for example have (international?) patent courts that would prevent monopoly-by-patent things.


  People buy hardware, software, services all the time.
There is a big difference between hardware and services, and patents. Software is a whole other deal, and I object to the whole model of proprietary distribution as well, but that's besides the point.

Fact is, an idea is an abstract concept, not a physical good or a services. One cannot own an abstract concept - the very notion of that is completely nonsensical. If somebody has a an idea, and tells (gives) that idea to somebody else, both people will have that idea now. You cannot say the same of a physical good or a service.

Besides, arguing for the status quo by citing the status quo is a circular argument.

  the idea to just throw it all in the trash bin is a bit black and white.
We have a system built upon paradoxical, nonsensical and self-contradictory basics which does nothing but help create artificial monopolies and slow down or halt technological progress for the benefit of a few big corporations.

There is but this only option, and that's to completely scrap it and never try it again. I'm honestly tired of seeing 'but that's black and white thinking' in defense of a completely indefensible position. Sometimes there are things which are simply bad - patents are one of those things.

  You could for example have (international?) patent courts that 
  would prevent monopoly-by-patent things.
The solution to a massively broken system that, in large parts, relies on huge amounts of bureaucracy is even more bureaucracy? I think not.

You cannot fix this system - it's broken by default.


"Fact is, an idea is an abstract concept, not a physical good or a services. One cannot own an abstract concept - the very notion of that is completely nonsensical. If somebody has a an idea, and tells (gives) that idea to somebody else, both people will have that idea now. You cannot say the same of a physical good or a service."

Actually that holds true for all digital content and also partially for a lot of hardware as well: if you release all the production documentation of some physical thing, it might cheap to produce a large amount of copies. Development of something like a modern car takes money in the billion dollar category. There might be all kinds of innovations that required lots of trial and error there to make this or that part reliably.

You could develop new chemicals or medicines that might in the end be producable by simple processes, ie they might be simple ideas in the end, yet you might have spent a lot of effort to discover them. If you can't patent them, then that means it's not a viable business anymore to try to create such new things, or then those new things must be hidden very well. These are exactly the problems that patents were created for to solve!

I know there are for example individuals (let's say a professor) who provide a service for money: they offer to create some algorithms to classify some customer's data. Then they give that algorithm to the customer in exchange for money. The algorithm can be seen as just an idea, it's not anything that can be touched. It is clearly valuable to the company as it is willing to pay money for it. The company saves money by not having to employ a person with that kind of expertise, since it doesn't need it full time. I's a bit the same how some company like id can buy a license for an image compression algorithm from Microsoft since it's not their core business to develop such. Both parties win. That's ordinary business.

That being said, I do think that really stupid things are given patents and it certainly is a problematic thing in the "idea" and software world. But there certainly was a need why the patent system was created in the first place, and if it's just destroyed, we'll see that that need hasn't vanished. We'd go back into a much more secretive world.


  These are exactly the problems that patents were created for to solve!
Yet they don't fulfill this purpose in the slightest bit. Besides, I don't care if some people suddenly stop innovating because there is no longer any money to be made - which is nonsense, anyways. It's the same as the ever so often repeated lie that you cannot make money with free music or software. It's simply the system's dynamics that change.

  That's ordinary business.
"Ordinary business" is both everything that is wrong with the patent system as well as quite a few other things on this planet. As I said, citing the status quo to argue for it is a circular argument.

  But there certainly was a need why the patent system was created
Yes, there was a need for monopolists to have even more tools at their disposal to control the market. As I said multiple times, patents were never meant to protect small businesses, or help the small, clever man with a clever idea. It's pretty much the same as saying that copyright was made for artists - it's plain wrong.

Patents have always profited those with power and influence on the system, those with much money to file law suits, and those who are already rich. While there might be some success stories of small men or businesses, those are the exception, and by no means the rule.

  We'd go back into a much more secretive world.
I disagree. We'd be in a much more cooperative world, since monopolizing knowledge is no longer possible. It would no longer be feasible to work on problems alone in the hope of making money from the eventual monopoly on the solution, as cooperation increases the benefits for everyone. Incremental development based on each others discoveries could lead to rapid advancement of technology, instead of the - excuse my language - clusterfuck of a stalemate we currently have.


> Fact is, an idea is an abstract concept, not a physical good or a services. One cannot own an abstract concept - the very notion of that is completely nonsensical. If somebody has a an idea, and tells (gives) that idea to somebody else, both people will have that idea now. You cannot say the same of a physical good or a service.

You're missing the point. Filing patents isn't (in theory) about hoarding ideas. It's a way to ensure that when you expend (often large amounts of) money and/or effort in order to develop a new technology, you are able to reap the rewards. Often, a new technology is most valuable to the first person to commercialize it.


> However, there's very little (economic) incentive to innovate

In the economic sense, that might be true, but on the contrary, patents prevent (or hinder) people who might have good ideas from innovating - and I'd wager that those people are way more numerous than the lot of people who wouldn't try to further advance current technologies (or invent new ones) just because there suddenly is no more economic incentive to do so.

> By filing a patent, you're telling the world how to do something (allegedly) new.

I don't want to be told how to do it, and then be told that I have to wait 20 years until I can use it. I want to use it now, and I want to build on it now. So does the rest of humanity. 20 years is way too long, but so are 1 year, 6 months, 10 days or half a minute. It's plain and simply ridiculous - as well has highly paradoxical - to stop progress (even if only temporary) in the name of promoting progress.

There is only one alternative in this entire mess - abolish patents, completely. They never fulfilled the purpose they were intended for (even historically they caused quite the opposite, see Watt and the Steam Engine), and serve the few powerful and rich to the detriment of humanity as a whole (again, see Watt).


> 1) Make all information freely accessible to anyone. This is the one we'd all like everyone to do. However, there's very little (economic) incentive to innovate when you do all of the heavy thinking and anyone else can just come along and beat you to the implementation.

Indeed. Economic incentives to innovate don't always produce the best products for the users anyways. Examples:

Encarta : Wikipedia

Windows NT : Unix/Linux

IIS : Apache

The products on the left aren't "bad", but in my opinion, the ones on the right are generally more accepted and used because they're superior. There was minimal economic incentive to create the products on the right for the developers.

My opinion: people try harder to make their innovations of the highest quality when the incentives aren't monetary.


Unix is(was?) a commercial product. Linux was born out of the desire for a free version of Unix. There are economic incentives.

I agree that money isn't the best motivation for people. However, in general, things like robotics, medicine, silicon fabrication, etc. are out of most people's leagues financially. In order to be able to innovate in these fields, you need to convince some company that they can make more money than what they will spend by researching in the field.

Remember, patents cover more fields than just software.


> Unix is(was?) a commercial product

Unix was originally a non-commercial product, albeit produced by paid researchers at Bell Labs (owned by a commercial entity, AT&T). And actually, Wikipedia claims that {Thompson, Ritchie, et al} received no financial support for the first version, which was developed on a spare PDP-7, so I'm not even clear if they were using paid time to work on it. It was non-commercial because AT&T had been forbidden by a 1956 consent decree to be commercially active in the fledgling computer space. It was only in 1983 (with the breakup of AT&T and the consequent expiry of the consent decree) that commercialization of Unix started, over 15 years after its creation.

So the successes of Unix pre-1983 should be lumped with the successes of GNU (founded that same year) and Linux, as being non-commercial and not-for-profit.


> anyone else can just come along and beat you to the implementation

Pray tell, how might they do this when you know the method and they do not? Unless you developed the method, then went around telling random people before going about implementing it.


When someone loses a patent suit without a finding of willful infringement, none of your three points apply. The 'teachings' of the patent clearly weren't involved in the majority of instances of patent infringement. Almost invariably the infringer had no clue they were infringing.

By filing a patent, you're telling the world how to do something (allegedly) new. In 20 years, (or longer/shorter, depending on the country) everyone is freely able to use the idea.

If it's a good idea, someone else -- perhaps the very next person who confronts the same problem -- will almost certainly reinvent it independently. The idea of paying monopoly rents on ideas should make no sense to anyone but a lawyer.


> If it's a good idea, someone else -- perhaps the very next person who confronts the same problem -- will almost certainly reinvent it independently.

It's not reasonable to assume that discovering the same solution to a particular problem is inevitable for everyone.

> The idea of paying monopoly rents on ideas should make no sense to anyone but a lawyer.

That wasn't my point. After the patent expires, the knowledge is available to everyone. If it's held as a trade secret, then it's possible that the knowledge is never released to the public.


If it's held as a trade secret, then it's possible that the knowledge is never released to the public.

However, to "promote the progress of science and the useful arts," as the Constitution states, it's necessary to demonstrate both that patents serve as a widespread source of inspiration and teaching (which they don't do very often, as demonstrated by the relative rarity of willful-infringement awards), and that trade secrets actually do keep advances from becoming more widely available. This is hard to show, at best.

Nobody refrains from producing a touchscreen phone with a swipe-to-unlock feature because they can't figure out how... they refrain because Apple is allowed to financially destroy anyone who tries. Most patents work the same way, in that they keep people from being able to use techniques that might have been obscure and irrelevant at one time but are now obvious, no thanks to the patent itself.


     I don't think most people take issue with the
     fact that patents are purchasable or otherwise 
     transferable.
I disagree -- because patents are government-granted monopolies that are supposed to help the inventor in being the first to market with an actual product, instead of, say -- keeping it as a trade secret or losing in front of bigger competitors that are simply going to copy it.

Considering that time and time again there have been inventions, like the telephone, that have been done by independent parties -- the notion of selling it is simply offensive and relies on the electorate being stupid or ignorant or both.

What next? Copyrights being used to disallow photos of buildings?


    What next? Copyrights being used to disallow photos of buildings?
Misplaced slippery slope argument.

The transferable nature of patents in general (or copyrights, since you brought it up) is a totally different subject than patent/copyright violation through abstraction (how far removed is far enough?).

The argument covering architectural photography may be better suited for use within the context of the prevailing software patent discussion, where abstraction is quite the core issue.


I'd also like to state that I take issue with the fact that patents are purchasable.


I'm not sure I can take blanket issue with it, it would make a lot of sense to at least require a company to base their infringement claim on their actual bootstrapped use of the patent methodology i.e. if you cannot demonstrate to a reasonable level that you are using that patent in something that is actively being produced and sold or have done in the past then your claim should be heavily penalized.

I appreciate there are lots of loopholes and things to pick at from my wording, but the spirit of the idea is there.


I don't automatically have a problem with the benefit in a patent is selling it to someone else instead of licensing it. I just have a problem with BS patents being issued in the first place.


Like any other patent, it's validity should depend on prior art and sufficient inventiveness. If it's complex enough, and someone else did it first, there's no reason why it shouldn't be patentable the same as any other invention.

The problem as I see it, is that people are granting patents for nonsense. When it comes to software they seem to be forgetting all of the rules that apply. For example, I shouldn't be able to patent a radio button these days. But the equivalent of that seems to happen. It's not the system's fault. The system already has rules in place to prevent that. Fault lies with the person who doesn't do the research and cite the prior art and then deny the patent.

I'm not sure how complicated Carmack's Reverse is, but if it's something that anybody "skilled in the art" could come up with after a bit of thought then the patent should not have been granted.

On the other hand, if the formula took months of work and provides a benefit and is not trivial, then just as any similarly complicated mechanical device (like a gearing system) can be patented, so should this.


> "If it's complex enough, and someone else did it first, there's no reason why it shouldn't be patentable the same as any other invention."

IMO a patent needs to go further than this. The whole point of the patent system is to preserve the incentive to invest in technologies. If I spent my life's fortune inventing GizmoWidget, and my neighbor can just reverse engineer one and set up his own factory... my incentive to invest is gone.

And these situations still exist - particularly in traditional engineering fields where the costs of prototyping, testing, and certification are enormous.

But really, what are the costs of sitting down for a few weeks and cooking up a new mathematical formula? I'd argue that being first to market while your competitors are scratching their heads is well worth the investment - given how little cost it presented to yourself.

IMO patentability should not be focused on how complex the system is or how trivial it was to derive - it should be based on how much it is reasonably expected to cost to develop. That is, after all, why the system exists.


This article is almost a month old now. I'd guess we will see a release around December like they have done in the past. I wouldn't expect anything before October. This will be the first id software release in c++ and it will be interesting to see what subset of the c++ language they used.


You can get a pretty good idea from looking at the mod sdk code, which is available from here: http://iddevnet.com/doom3/

There's quite a lot available in the game code; the physics system at least, maybe also the script interpreter? I haven't looked in a while.


I'm sure Carmack says alot more about the patent issues and open sourcing the engine in the keynote. http://www.youtube.com/watch?v=4zgYG-_ha28


It is amazing how technical his talk is it`s really intressting if you have a progamming background.

And it just so different to any other keynote for a game i have ever seen.

edit: 5 mins to the end he talks about the doom3 opensource


I hope they include the changes to the engine made for ET:QW. I'm particularly interested in megatexture. But they say "Doom3 source code" not Id tech 4, so they probably won't.


There's a nice writeup of someone going through the original quake code: http://fabiensanglard.net/quakeSource/index.php

Seems to turn up in most threads about iD engine source/dev - I'll do it this time :)


And if you want to follow an experienced programmer's quest to make a fast and stable DirectX9, C++ Quake engine then follow http://mhquake.blogspot.com/


I know nothing about game development, I just play them, but would be interested in seeing the source code of this game.


Carmack has released id's previous engines, they're pretty interesting to read, and folks are still maintaining them. The technology ioquake3[1] is 10 years old now, but well-maintained as an open-source project. Darkplaces[2] is a heavily-updated Quake I engine that maintains backwards compatibility with Q1 while using fairly modern game programming techniques. Google ported Darkplaces to NaCl a while ago, and it has renderers in OpenGL, Direct X, and OpenGL ES now.

[1] http://svn.icculus.org/*checkout*/quake3/trunk/README [2] http://git.xonotic.org/?p=xonotic/darkplaces.git;a=summary


FWIW, the source code for Quake 1-3 is already available. Quake 3 in particular has been a subject of ongoing work.


No mention of license, though.


previous games were released under GPL, this one should probably follow.


yes but which version :)


Almost without question v2. That is what they used in the past and this time there are patent issues to boot.


I must say that, unlike with Doom I and II, it will certainly be more exciting to wade through the source code and learn tricks than actually play the game and wade through the endless monotonic, boring action.


Doom 3 is actually a very nice if somewhat cheesy horror shooter.


August 4, 2011 ?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: