Blood and its source license

User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Blood and its source license

Post by Graf Zahl »

Can anyone enlighten me what the real state here is?
I recently had a look at the leaked alpha source and TBH, neither BloodGDX nor NBlood can reasonably claim that they aren't derived from it. Far too many data structures, functions and variables have the exact same names, disregarding some token renaming here and there. Even the global naming scheme for functions and variables and most file names are identical!

And yet, BloodGDX says it's GPLv3 and BloodGDX claims it's GPLv2, which simply cannot be legitimate considering the striking similarities both share with the alpha. Even if their code itself is ultimately fully reverse engineered it is blatantly obvious that they both used the alpha source as a translation aid to the point where neither author could convince me that they did some truly independent work here.

So how can this be licensed under the GPL? IMO this isn't really any better than using the leaked sources for Witchaven and TekWar. The core is still some unofficially released code without any proper license
User avatar
Phredreeke
Posts: 293
Joined: Tue Apr 10, 2018 8:14 am

Re: Blood and its source license

Post by Phredreeke »

Graf Zahl wrote:Can anyone enlighten me what the real state here is?
I recently had a look at the leaked alpha source and TBH, neither BloodGDX nor NBlood can reasonably claim that they aren't derived from it. Far too many data structures, functions and variables have the exact same names, disregarding some token renaming here and there. Even the global naming scheme for functions and variables and most file names are identical!
If I'm not mistaken, for NBlood those were taken from the shareware version of the game, where debugging symbols were left in.

BUT... if we're gonna go down this path, shouldn't anyone who looked at the leaked source be disqualified as contributor, similar to what ReactOS does?
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Blood and its source license

Post by Graf Zahl »

Phredreeke wrote: If I'm not mistaken, for NBlood those were taken from the shareware version of the game, where debugging symbols were left in.
That wouldn't explain some of the similarities. A few smaller functions are absolutely identical character for character. It's just that, when comparing these 3 code bases, there are such striking similarities that's it'd be hard to convince anyone that they don't share the same origin.
Phredreeke wrote: BUT... if we're gonna go down this path, shouldn't anyone who looked at the leaked source be disqualified as contributor, similar to what ReactOS does?
I wouldn't say that, but I am not convinced that it is proper to release such code under the GPL. I don't think you void the original creators' copyright by reverse engineering and translating it into another programming language, regardless of whether you use some debug symbols (which are ultimately copyrighted data as well) or some leaked source - or even if you just make up your own names. In all cases the copyright owner has given no permission to use their code - whether in clear text form or binary.
Unfortunately this seems to be a legally very gray area. Nobody seems to have considered the possibility of such reconstructive efforts when discussing the legality of reverse engineering, especially how they affect copyright.

I won't complain too much - but these licenses on reverse engineered code are something that really bothers me
User avatar
Dynamo
Posts: 1025
Joined: Sat Jun 07, 2008 5:58 am
Location: Industrial District

Re: Blood and its source license

Post by Dynamo »

Phredreeke wrote:If I'm not mistaken, for NBlood those were taken from the shareware version of the game, where debugging symbols were left in.
According to Nuke.YKT:
Blood 0.99 shareware has debug info in its exe file
You can dump it with wdump.exe found in open watcom
It includes function/variable names and filenames where they are located
Though I'm not sure if this also includes the smaller functions Graf mentioned.
User avatar
sinisterseed
Posts: 1349
Joined: Tue Nov 05, 2019 6:48 am
Preferred Pronouns: He/Him
Graphics Processor: nVidia with Vulkan support
Contact:

Re: Blood and its source license

Post by sinisterseed »

I'm definitely no expert here, but I think the are many similarities simply because the overall code structure didn't change that much since the days of the alpha, even if the game itself changed direction massively? That could explain why they look this way, since both projects were meant to be a faithful recreation of the code, while GDX deliberately used alpha code. I honestly wouldn't be surprised if even the unreleased FS source looks similar, on top of the new features NDS added, judging by some of the patch notes on its Steam page. After all, it's still the same game and the code was obtained through the same means, NDS didn't get permission to put their hands on the original source either, hence why Kaiser & co. had to reverse-engineer the whole game as well.

The alpha code in itself is illegal as it was leaked by an employee at the time without any permission, to my knowledge, and the studio wasn't too happy about it. Reverse-engineering in a gray area, but ultimately I don't think there's much reason to seriously worry. There's no way Atari or Warner aren't aware of the existence of GDX at this point, maybe even NBlood, and neither got a cease and desist up to this day, and probably won't either. They had all the time to do it especially since they made their own remaster now, but didn't. The same thing could probably be said about the WT code of Duke as well, since that portion was also never officially released, for whatever reason Gearbox might have, not wanting, middleware, or whatever.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Blood and its source license

Post by Graf Zahl »

To clarify again, I'm not worried about the existing ports - I am concerned about the licensing situation here. These engines claim to use the GPL but with the state of things I am not sure that this is proper. After all I am using code here I assume to be under a valid license. But from what I know, at least GDX's license is essentially not valid if it incorporates code from the alpha but at the same time NBlood's code is too similar to feel comfortable.
User avatar
sinisterseed
Posts: 1349
Joined: Tue Nov 05, 2019 6:48 am
Preferred Pronouns: He/Him
Graphics Processor: nVidia with Vulkan support
Contact:

Re: Blood and its source license

Post by sinisterseed »

Graf Zahl wrote:To clarify again, I'm not worried about the existing ports - I am concerned about the licensing situation here. These engines claim to use the GPL but with the state of things I am not sure that this is proper. After all I am using code here I assume to be under a valid license. But from what I know, at least GDX's license is essentially not valid if it incorporates code from the alpha but at the same time NBlood's code is too similar to feel comfortable.
But here's the thing I don't understand - yes, NBlood also looks similar, but since the goal of the two ports was to make a faithful recreation of the source, wouldn't the final product still be the same? How are they supposed to be different?

I bet that the game side code of even Fresh Supply is also similar since it's the same game after all.
User avatar
Dynamo
Posts: 1025
Joined: Sat Jun 07, 2008 5:58 am
Location: Industrial District

Re: Blood and its source license

Post by Dynamo »

lowskill. wrote:I bet that the game side code of even Fresh Supply is also similar since it's the same game after all.
Not at all, Fresh Supply is in many ways a rewrite as far as I know, it doesn't use the Build engine IIRC.
User avatar
sinisterseed
Posts: 1349
Joined: Tue Nov 05, 2019 6:48 am
Preferred Pronouns: He/Him
Graphics Processor: nVidia with Vulkan support
Contact:

Re: Blood and its source license

Post by sinisterseed »

Dynamo wrote:
lowskill. wrote:I bet that the game side code of even Fresh Supply is also similar since it's the same game after all.
Not at all, Fresh Supply is in many ways a rewrite as far as I know, it doesn't use the Build engine IIRC.
Well, yes, that is correct, they reverse-engineered the game and moved it to KEX, it only still references some Build things, but that's about it. That's why I said the game side of things, since it's still the same game it ought to be similar, but everything else won't be.
markanini
Posts: 208
Joined: Sat Jan 18, 2020 6:10 am

Re: Blood and its source license

Post by markanini »

Dynamo wrote:
lowskill. wrote:I bet that the game side code of even Fresh Supply is also similar since it's the same game after all.
Not at all, Fresh Supply is in many ways a rewrite as far as I know, it doesn't use the Build engine IIRC.
According to the devs Build source code is used within the Kex engine.
User avatar
Phredreeke
Posts: 293
Joined: Tue Apr 10, 2018 8:14 am

Re: Blood and its source license

Post by Phredreeke »

Someone should ask Ken if they've licensed it then...
User avatar
Chris
Posts: 2940
Joined: Thu Jul 17, 2003 12:07 am
Graphics Processor: ATI/AMD with Vulkan/Metal Support

Re: Blood and its source license

Post by Chris »

lowskill. wrote:But here's the thing I don't understand - yes, NBlood also looks similar, but since the goal of the two ports was to make a faithful recreation of the source, wouldn't the final product still be the same? How are they supposed to be different?
There are many ways to skin a cat. Just because two functions should have the same behavior doesn't mean that the two functions' sources will be (or need to be) identical. For instance, Wine's source implementation for WinAPI functions won't be the same as Windows' source implementation, even though the two implement the same behavior (some functions closer than others). The functions don't need to be written character-for-character identical to get the same results, and can leverage different coding styles, standards, and paradigms. Looking at it from a higher level, having two games play the same doesn't mean they need to have the same internal design and use the same functions. OpenMW plays quite similarly to Morrowind, but the two sources would undoubtedly be very different, using different methods for tracking character stats, scripting and gameplay states, rendering, etc, even though the observable result may appear the same when given the same input data.
Blzut3
 
 
Posts: 3144
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Contact:

Re: Blood and its source license

Post by Blzut3 »

Graf Zahl wrote:So how can this be licensed under the GPL? IMO this isn't really any better than using the leaked sources for Witchaven and TekWar. The core is still some unofficially released code without any proper license
I've stated this awhile ago when people were asking about the latter two games, but I'm fairly certain that the reverse engineered games are in exactly the same situation as those games. Just because it took a lot more effort to rebuild the source code for Blood, RR, et al doesn't suddenly make it the work of the person doing the reverse engineering.

Thus while I think it's valid for Nuke.YKT to declare the intent for the work to be used under the GPL (i.e. anything that might be his own IP is GPL), most of the code as a whole would still be the respective copyright holder's IP. Given that copyright works under the assumption you have no rights until you're explicitly granted rights this would presumably mean that there is no way to use the reverse engineered code. Personally I think the better course of action here would have been for Nuke.YKT to make it GPL with a linking exception for the respective game (and build of course).

As I've said before, this would have technically been the situation with the Strife work prior to SVE effectively blessing the effort. It is probably safe to say that the odds of any action being taken against ports using reverse engineered game code to play the respective game is slim. However, I would strongly suggest no one assume that such code can be used commercially. I've heard that this is why there are no plans to merge the reverse engineered code into the upstream eduke32 code base.

For those in this thread talking about Wine/ReactOS, those are built on clean room reverse engineering. Which is to say that the person writing the code has not seen the machine code for the Windows function they're implementing. This is clearly not the case for the reverse engineered build games since some of the code is still using raw addresses from disassembly for names.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: Blood and its source license

Post by Graf Zahl »

Blzut3 wrote: As I've said before, this would have technically been the situation with the Strife work prior to SVE effectively blessing the effort.
I think the Strife situation was a little different in scope as it wasn't a full reverse emgineering effort on ZDoom's behalf. Strife was a game that merely consisted of some superficial rework of an engine that later was released as GPL. The code could be compared against that base where pointers could be taken from. As a result only fragments of the original code were used, many parts were rewritten to emulate functionality, like the dialogue engine, or were handled by turning existing hard coded properies into configurable parameters. Essentially that leaves the actor AI as the only genuine piece of reverse engineered code that ended up in ZDoom and that's more comparable to EDuke32's inclusion of the World Tour extensions. Most of the reverse engineering here was not done to recreate the code but to gain information to write equivalent new code.

But Blood and Exhumed are complete reverse engineering efforts and RR adds quite a lot to the Duke code on virtually every level.
Blzut3 wrote: It is probably safe to say that the odds of any action being taken against ports using reverse engineered game code to play the respective game is slim. However, I would strongly suggest no one assume that such code can be used commercially.
Overall, what you said here is precisely what my employer's lawyer had to say when I asked him informally. Reverse engineering like it is done here is merely a translation job that doesn't void or supersede the original developers' copyright in any way - comparable to translating a book from one language into another -, and the reverse engineer certainly has no legal right to claim ownership or equip the code with a license aof their own choosing. In short, the code is really no different than using the leaked sources of the Blood alpha, TekWar or Witchaven.
But he also agreed that it's unlikely that something will happen unless somebody tried to make money from it and I'd best treat all reverse engineered code involved in here as *may not be used commercially*, unless clear licensing conditions were given by the original developers - despite the nominal use of the GPL.

Blzut3 wrote: I've heard that this is why there are no plans to merge the reverse engineered code into the upstream eduke32 code base.
Yes, that's precisely what they said about the matter - they won't host any code on their Voidpoint server that is primarily reverse engineered.
Blzut3
 
 
Posts: 3144
Joined: Wed Nov 24, 2004 12:59 pm
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Contact:

Re: Blood and its source license

Post by Blzut3 »

Graf Zahl wrote:I think the Strife situation was a little different in scope as it wasn't a full reverse emgineering effort on ZDoom's behalf. Strife was a game that merely consisted of some superficial rework of an engine that later was released as GPL. The code could be compared against that base where pointers could be taken from. As a result only fragments of the original code were used, many parts were rewritten to emulate functionality, like the dialogue engine, or were handled by turning existing hard coded properies into configurable parameters. Essentially that leaves the actor AI as the only genuine piece of reverse engineered code that ended up in ZDoom and that's more comparable to EDuke32's inclusion of the World Tour extensions. Most of the reverse engineering here was not done to recreate the code but to gain information to write equivalent new code.
I don't disagree that this was much lower risk code, especially since as you mention ZDoom took liberties to emulate rather than replicate in many instances (much to the dismay of the vanilla purists). At the high level though if any code was taken at all you'd be bound to the license for that code, which until SVE was no license at all. There's probably some wiggle room since much, if not all, of the code taken could probably be argued as trivial or something along those lines. But at this point we're definitely firmly in armchair lawyer territory.

Now as you can probably imagine I don't personally care since as far as I'm concerned these reverse engineered ports are made in good faith and just benefiting the respective companies. More sales from the game being more accessible, and the fact that they'd be within their rights to take the port and use it themselves without contributing back. They'd have to be unbelievably stupid to exercise their right to shut them down.
Post Reply

Return to “General”