Posted
by
Soulskill
on Friday September 05, 2008 @08:13PM
from the giblets-want-to-be-free dept.

phanboy_iv writes "Fans of both of the Raven classics, Heretic and Hexen, have been trying for almost a decade to convince Raven Software to release engine source code for the games under the GPL, much like the DOOM engine on which both of them are based. Well, they finally did it! Source code is available at Sourceforge. Both of these games have had the source available for a while, but under a restrictive license that hindered ports and modifications. Now, thanks to dedicated fans, that's no longer a problem."

They do, but it wasn't technically legal to redistribute their code under the GPL. ZDoom still has this problem with Ken Silverman's BUILD engine, which uses its own license (Randy Heit lifted slope code and uncapped frame rate stuff from it, amongst other things.)

Yeah, just reading about that now. I found this [wikia.com] on the Doom Wiki an interesting read. I think you're right about the "copy and paste" (maybe a *little* more complicated than that, but not much seeing as the ground work has already been done by the Doom porting people).

Many of the Doom source modifications out there use code from the Heretic and Hexen source bases in order to create a combined port that can support all games, and support the additional engine features that were brought by Hexen in the older games.

However since the Doom source is GPL while the Heretic and Hexen code bases were not, any project doing so was actively violating the GPL, until now.

ZDoom integrates code from BUILD for a number of purposes, including sloping floors, map format loading, graphics interpolation, and voxel support. Randy Heit reworked code from Ken Silverman's demo game KBUILD rather than rewriting these features himself for ZDoom. The problem is, KBUILD is still only released under the proprietary BUILD licence, which is fairly flexible, but not GPL compatible. Duke 3D, however, contains the same sloping floor support, map format loading, and graphics interpolation that KBUILD does, however, so he can just about squeak by on that premise (though I think it still leaves the voxel code unaccounted for.)

Actually, let me re-re-re-correct that. Since the code for Shadow Warrior is released (which does, in fact, have Ken Silverman's voxel code in it) pretty much the entire collection of features that ZDoom took from BUILD are now available from GPLed codebases derived from the core BUILD tree. The open-sourcing of Hexen and Heretic is the last step, unless code from Strife was integrated without a license (but I think that was reverse-engineered.)

ZDoom's problem was that it was using non-GPL code, yet was made available according to the GNU General Public License.

ZDoom's problem isn't that it was using non-GPL code, it was that it was trying to use GPL code: version 1.16 used the minilzo decompressor and Qmus2midi, and the whole thing was released as GPL. Version 1.22 had Qmus2midi ripped out, but minilzo was still there and there was nothing in the source indicating what license the whole thing could be distributed under. Well, we know now that it couldn't be distributed due to the mixing of Doom Source Licensed code with GPLed code (not to mention the Hexen bits that were in there), but I don't know what it claimed to be under at the time.

I don't have the source for any 2.0 versions except 2.0.96 handy. That one has no GPL code, although a few files have an exception that if they're used outside of ZDoom or one of its derivatives, then they fall under the GPL. The only piece of GPL code in GZDoom is Fragglescript, and the author of that has granted an exception so it can be linked with GZDoom. The author of GZDoom has put a lot of his own code under the LGPL, mostly to make it more difficult for closed-source ZDoom derivatives ZDaemon and Skulltag to use it...