There is certainly a lot of commentary, and legal ink, spilled on the subject of software patents (including on the IP Whiteboard!). And when we negotiate technology agreements, the IP infringement clause is often highly contentious because neither side wants to bear the almost-impossible-to-quantify-in-advance risk of a third party patent infringement claim.
So, what does software patent infringement actually look like? This isn’t an easy question to answer, and it is always good when a nice real world example presents itself, as occurred a few days ago in relation the first person shooter (FPS) video game Doom 3.
For the uninitiated, Doom 3 is the third game in the immensely popular Doom series created by id Software. The driving creative force behind the Doom series is John Carmack, who is a legend in the gaming community and is generally credited with popularising the FPS genre. id Software has a historical affinity for shareware, freeware and open source, and in keeping with this philosophy it has been id Software’s practice to release an open source version of earlier versions of the Doom gaming engine once the company has moved on to a new version of the engine.
Earlier this week John Carmack tweeted that the release of the source code for the Doom 3 engine had been delayed because of concerns about a “patent issue”, and that he was taking time to write new source code to ensure that this issue was dealt with.
In order to explain the “patent issue”, it is necessary to digress into a short discussion of what exactly constitutes a “gaming engine”. In short, a gaming engine is a piece of software that constructs a world and regulates the interactions between objects in that world. For a game like Doom, the goal is to approximate, as closely as possible, the physics of the real world, so that – for example – a reflective object under a bright light acts as a mirror (like it would in real life). Gaming engines are immensely complicated pieces of software, and modern engines are the result of decades of academic and commercial research.
Just one of the many thousands of challenges for gaming engines is how to realistically show (or, as the technical folk would say, “render”) shadows in a video game. If you think about it, if you want to draw even a basic shadow you need to know: (1) the position and strength of the light source; (2) the position and shape of the object creating the shadow; and (3) the position and orientation of the surface onto which the shadow is reflected. And, given that this is a video game, the shadow can’t be rendered in advance, and needs to be recomputed in real time (ie in the order of 30 times per second).
John Carmack came up with a method of rendering shadows when he wrote the Doom 3 engine, and the method has subsequently become so popular that it is generally known as “Carmack’s Reverse”. Unfortunately, he subsequently became aware that this method had actually been developed previously by employees of a company called Creative, who in 1999 were granted
US patent 6384822: “Method for rendering shadows using a shadow volume and a stencil buffer”. From John Carmack’s tweet it isn’t hard to figure out that the lawyers that reviewed the Doom 3 engine weren’t satisfied that the engine’s method for rendering shadows was sufficiently different from the method described in the Creative patent, and hence John Carmack is now off writing new code.
Why does the “patent issue” matter to id Software (or John Carmack)? Strictly speaking, it doesn’t, since presumably id Software licensed the Creative patent for the purposes of the 3.5 million copies of Doom 3 that were sold to end users. However, the whole purpose of releasing an open source version of the Doom 3 engine is that users will be able to use the engine without the risk of infringement claims, and id Software is clearly prepared to wear the cost of the legal review and software rewrite in order to provide this certainty to the open source community.