Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Graf Zahl

GZDoom = ZDoom + OpenGL + 3D floors

Recommended Posts

Of course many are illegal. I've pointed that out for a long time now. Indeed a long thread where you participated concerned JDOOM and RISEN3D. There you were quite mistaken in trying to say that the code was GPL when in no way was it LEGAL GPL. IOW, just because some of these ports say they are GPL (or BSD), they can't possibly be in the complete context of the port.

However, to state that

If someone who was involved in developing that code tells me to take it out I'll take it out.

is like saying you can do something illegal so long as nobody complains (or get caught). Clearly that's a bit absurd :) The onus is always on YOU.

What may not be obvious, those same ports that explicitly give you permission (as 1 just did), in fact, degrade their own license to where they can't complain in another case where they "don't like" the usage.

Every licensing action or inaction has a consequence.

Share this post


Link to post

The stupid license that got slapped onto the Heretic & Hexen code is worth ignoring IMO, although I myself have gone to (in some cases great) pains to avoid using their code directly. I think some code in Eternity might still bear too much of a resemblance to Heretic's, but I'm constantly changing stuff so eventually there probably won't be a trace of it :)

Share this post


Link to post

OK. So if someone decides that some license is "stupid", therefore it can be ignored?

Does that apply to any license?

Hopefully that makes it clear why that statement is not reasonable.

A footnote to "rewriting":

Just because you change the code to look different, doesn't allow you to change the license either. Once you've looked at the code and have "re-engineered" it, you actually are still bound by the original license. That's what the reverse engineering wording is all about in all the licenses. [hence the need for "chinese wall" coding]

Share this post


Link to post

I don't "re-engineer" it. I write my own solutions to the same problems. I'm saying there's still a bit of code in Eternity that was not created this way. I am in the process of eliminating it. And you're wrong. The source is open and information can be gleaned from it without using it directly, so my own replacement solutions are not Raven's property.

An excellent example would be my method of calculating D'Sparil's probability curve. Raven used a static array of probability values. I use a continuous function which happens to have the same values at the boundaries where Raven's table changed. I had to look at their source to find out what those values were, but you can't own single numbers -- and it's irrelevant in the end because I could have also obtained that information (approximately at least) in an empirical fashion, by measuring D'Sparil's teleport rate relative to his max HP. In the end, you can't even tell if I've done one or the other.

Share this post


Link to post
Quasar said:

I don't "re-engineer" it. I write my own solutions to the same problems.

Umm, that's what "re-engineer means:) What do you think it means?

And your descriptions are precisely that. You even admit to looking at the source. It's real simple, once you look at the source, it's a direct admission of "re-engineering". Here's a basic def of "chinese wall" for reference - something any coder needs to understand:

in computer science, Chinese wall refers to a reverse engineering method involving two separate groups. One group reverse-engineers the original code and writes thorough documentation, while the other group writes new code based only on the new documentation. The first group never writes new code, and the second group never looks at the original code. This method insulates the new code from the old code, so that the new code is not considered a derived work of the old code. See also clean room design.


The key part is that YOU don't see the code. Once you see it, it becomes "derived code" no matter how you write it.

I'm really always surprised at how little coders know about licensing and how to actually create code that has no chance in hell of being involved in any dispute.

So far, what you've described follows exactly the line I described. I think you don't follow my drift on this topic and there's nothing I can add that can clarify this.

And back to the point: you can't decide to ignore some license as stated, which is the relevance of the above.

Share this post


Link to post
Quasar said:

The stupid license that got slapped onto the Heretic & Hexen code is worth ignoring IMO, although I myself have gone to (in some cases great) pains to avoid using their code directly. I think some code in Eternity might still bear too much of a resemblance to Heretic's, but I'm constantly changing stuff so eventually there probably won't be a trace of it :)

What I actually meant to say here was that it DESERVES to be ignored because it is so stupid. I don't ignore it and don't use Heretic's code in Eternity. Once I'm done, I'll encourage anybody to prove that I ever looked at the original code. For all you should know at that point, I'm lying and have never looked at it :P

Share this post


Link to post

FraggleScript is from SMMU which is under the GPL. Technically, therefore, combining the FraggleScript code with the non-free ZDoom code is a violation of the GPL.

As this may be a problem for you and I'm not a jerk, I hereby grant an exception to my copyright on the SMMU source (including FraggleScript). You may use any code from SMMU in GZDoom, provided that:

  • For any binary release of the port, the source code is also made available.
  • The copyright notice is kept on any file containing my code.
Thanks.

Share this post


Link to post

Thanks for the clarification. I'll put your response into the source so that there are no further misunderstandings.

(I'd really like to use the GPL myself. Stupid Raven. :( )

Share this post


Link to post

I'm intruiged as to how much Raven source is actually in ZDoom, as there only seem to be copyright notices on a couple of files. Polyobjects was the main one, I seem to recall. I think he wrote his own ACS implementation. What else?

Share this post


Link to post

The biggest chunk by far are the actors' code pointers and definitions. That's the entire subdirectories 'g_raven', 'g_heretic' and 'g_hexen' with the exception of the status bar code. Other examples:

- The floor waggling code in p_floor.cpp
- The sight checking code in p_sight.cpp (replaced with Doom's in upcoming versions though)


Of course there's features here and there scattered throughout the entire code. How much exactly in the two main files (p_map.cpp and p_mobj.cpp) is coming from Raven is probably impossible to tell now. It has all thoroughly been mixed together to a point where it is most likely impossible to say which parts were just recreated from analyzing the game's behavior and which were taken from the source. Large parts have been so heavily rewritten that the code looks completely different now which makes it even harder.

Share this post


Link to post

This is my final word here about Raven licensing issues, and then we can hopefully let the issue rest for a while once again.

The legality of Raven's source release is questionable in the first place, since they didn't own the DOOM engine and didn't previously secure Carmack's blessing for its release (they correctly assumed it was ok). I'm 99% certain and would bet money on it given the chance that their licensing agreement with id for that source included a permanent non-disclosure agreement, which having been negotiated separately, is not affected by DOOM having been subsequently released under the GPL.

Raven's been allowed to released the source anyways because clearly Carmack doesn't care, or he wouldn't have released DOOM's source to begin with. However, he did (when emailed) express discontent with the nature of the license placed on it by Raven or Activision, and said that if he weren't so busy (DOOM 3 was being worked on at that time), he'd bother them about it. He never got around to it, unfortunately, and my subsequent web petition effort was ignored by all parties concerned.

With that in mind, if Raven did suddenly choose to try to enforce the license by suing GPL port creators because some of their code is a little too close to Heretic or Hexen's, not only do they have to demonstrate the "theft" in question, but Carmack could easily put his foot down. You can't steal something from somebody who doesn't own it in the first place.

For me, there's still the principle of the matter. Raven wanted to release their source but didn't feel commercial profit from it was appropriate. Unfortunately that makes it incompatible with the GPL. Clearly they intended the source to be of use to us, though. So, regardless of the exact legal details, I avoid using the source directly as much as possible and try to replace it with my own solutions. Sometimes the code comes out virtually the same though, because so little of Heretic's code (like codepointers) is truly anything unique -- they are solutions which will be reached by any authors working from the same base source to solve the given problem.

To me, this suffices. If I get a cease and desist order from Raven, I will be quite surprised, and quite ready to challenge it as well.

Share this post


Link to post
Quasar said:

I'll encourage anybody to prove that I ever looked at the original code. For all you should know at that point, I'm lying and have never looked at it :P

LOL - too late :)

The legality of Raven's source release is questionable in the first place

ZDOOM has much more then just Raven's license though. See BUILD.

Secondly it's not for you to decide (same as original argument really). More importantly Id explictly gave Raven the right to license their engine using Raven's own terms. Too late for Carmack to change this - simple principle: too much time has gone by. [As for his statement, very suspect - all he had to do was tell his legal staff and they go sick'um. Know that from personal experience no less]

ZDOOM can NEVER be legal GPL and any code derived from same can never be legal GPL.

The FS "permission" technically is also not legal since you can't force a minor subset of code to force a GPL sort of restriction on the rest of the code. Unless you give permission for the FS code that is in line with the more restrictive licenses :)

try to replace it with my own solutions.

Doesn't matter as I already explained.

the principle of the matter.

EXACTLY! What is not obvious is that these arguments cut BOTH ways. One can just as safely ignore the GPL license using the same sort of reasoning used above.

quite ready to challenge it as well

Do you have about $50k to waste :) That's the minimum it would take to just get it to the starting stages - even if you "won" in the end, you'd still be out that much money.

Sounds nice as a "principle" and lucky for you it will never happen. My point is the paragraph before this one.

Share this post


Link to post

Lets consider the fact that nobody's making money on this, and carmack doesn't really care or else he wouldn't have released the source in the first place, no?

Share this post


Link to post
deep said:

The FS "permission" technically is also not legal since you can't force a minor subset of code to force a GPL sort of restriction on the rest of the code. Unless you give permission for the FS code that is in line with the more restrictive licenses :)


Where's the problem? It isn't really different from the LGPL. As long as it is used one additional condition (releasing the source) has to be obeyed and none of the other licenses prohibit this or make any restrictions colliding with this requirement.

Furthermore, anyone who wanted to use the rest of the code but not comply to this specific condition can easily take out the entire FS module by removing 4 lines of code so it doesn't in any way impose its condition on the rest of the code.

Share this post


Link to post

"More restrictive"? BSD license is less restrictive and doesn't contain the principle of share and share alike. You can take BSD code, modify it, and place it into a commercial project without releasing the source yourself. Last time I checked, zdoom uses a modified BSD license - legal or not; if you have the author's permission to relicense, you can put GPL code into a BSD project.

Share this post


Link to post

Althoug this is off the licensing topic, here goes: Does GZdoom have to have openGL in order to display the 3d bridges?

chris

Share this post


Link to post
z34chris said:

Althoug this is off the licensing topic, here goes: Does GZdoom have to have openGL in order to display the 3d bridges?

chris



Yes. The software renderer is unaltered from ZDoom.

Share this post


Link to post
deep said:

The FS "permission" technically is also not legal since you can't force a minor subset of code to force a GPL sort of restriction on the rest of the code. Unless you give permission for the FS code that is in line with the more restrictive licenses :)

I couldn't understand this paragraph.

Fraggle wrote the FS code, so he is entitled to relicense it any way he likes, although his permission should have made clear what the new license is.

And this is probably not in question, but I'll say it anyway: any piece of GPL coded "forces" the whole to be GPL, due to clause 2(b):

(b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

Share this post


Link to post
deep said:

The FS "permission" technically is also not legal since you can't force a minor subset of code to force a GPL sort of restriction on the rest of the code. Unless you give permission for the FS code that is in line with the more restrictive licenses :)

The FraggleScript source code is licensed under the GPL. You can only use it in GPLed programs. To link it with non-GPL-compatible licensed code (such as the Raven license) is a violation of my copyright, since I have not granted any other permission to use the code (until now). It isn't a matter of "forcing" anything on anyone.

Share this post


Link to post
Ajapted said:

Fraggle wrote the FS code, so he is entitled to relicense it any way he likes, although his permission should have made clear what the new license is.

And this is probably not in question, but I'll say it anyway: any piece of GPL coded "forces" the whole to be GPL, due to clause 2(b):

(b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

EXACTLY. It is that simple. Not even the author can modify the GPL license. And if he modifies it, he's just nullified his own terms - you see all one has to do is use the GZDOOM authorized version. Duh!

Why is this relevant: Neither ZDOOM nor GZDOOM can be legal GPL. And any port that has "borrowed" or "re-engineered" code from Raven(or BUILD) can't be legal GPL - even if they say they are GPL. Even if the port authors do not realize this - which most of them do not.

Gotta go :)

Share this post


Link to post
deep said:

EXACTLY. It is that simple. Not even the author can modify the GPL license. And if he modifies it, he's just nullified his own terms - you see all one has to do is use the GZDOOM authorized version. Duh!


So, if the license is so restrictive and no exceptions must be made, how come that the Free Software Foundation itself put this particular clause into bison.simple?

/* Skeleton output parser for bison,
   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */
According to your logic it completely invalidates the GPL.

Share this post


Link to post

I tried using the gzdoom.wcf file for WadAuthor. At first, it caused one of those "The program has genrated errors and will be closed by windows" errors upon loading a map. But now, after switching to the default doom2.wcf, then back to gzoom.wcf, it now works.

All the ZDoom/Hexen things and sector types are listed, but the linetypes are just the standard Doom ones.

Share this post


Link to post
Graf Zahl said:

the Free Software Foundation itself put this particular clause into bison.simple?

"This special exception was added by the Free Software Foundation in version 1.24 of Bison."

According to your logic it completely invalidates the GPL.

Nope. It still agrees 100% with what I said. Not only that it confirms what I said.

It says the Free Software Foundation allowed that modification. IOW, you have to ask THEM if it's ok to modify the license.

To me that's crystal clear proof that you need permission to modify the license. So get permission :) [even if it's not applicable to GZDOOM)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×