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

I made a Source port graph!

Recommended Posts

The placement of Doom95 is kind of wrong. It seems to be based on the sources for the executable of The Ultimate DOOM, but with the text string data for the Final DOOM IWADs. Final DOOM and Doom95 were released more or less about the same time, and Doom95 lacks the teleporter bug found in the Final DOOM executable. Its story is similar to that of the Linux source release (based on v1.9u, but with info for Final DOOM).

ZDaemon comes from csDoom, although its network code was rewritten for v1.0 (but some stuff might still be csDoom-based), and at one point Skulltag used ZDaemon network code. Even if a lot of changes were made, these are historically related as far as development is concerned.

Share this post


Link to post
myk said:

The placement of Doom95 is kind of wrong. It seems to be based on the sources for the executable of The Ultimate DOOM, but with the text string data for the Final DOOM IWADs. Final DOOM and Doom95 were released more or less about the same time, and Doom95 lacks the teleporter bug found in the Final DOOM executable. Its story is similar to that of the Linux source release (based on v1.9u, but with info for Final DOOM).

ZDaemon comes from csDoom, although its network code was rewritten for v1.0 (but some stuff might still be csDoom-based), and at one point Skulltag used ZDaemon network code. Even if a lot of changes were made, these are historically related as far as development is concerned.


So how would the modified tree look then?

also Doom 95 has Episode 4 messed up, so would it be basically Ultimate and Final munged together?

And also, what version of csDoom is ZDaemon based off and what version of ZDaemon did Skulltag (w/ version) take the code from?

Share this post


Link to post

Yeah, I guess Doom95 may be based on the plain v1.9, but the MS guys received extra snippets or info of v1.9u and v1.9f stuff, so they messed up U, and managed to include the F info without the tele bug.

I don't recall the versions (looking at old Doomworld news entries should uncover this), but there was a period when both ZDaemon and Skulltag were releasing their sources, and Skulltag was using ZDaemon stuff.

You might want to used dotted lines where there's an influence but another engine is not used as a base... this might force you to make judgment calls on relevance though or it'll get filled with lines for minor stuff.

Share this post


Link to post

For example of influence, you can have lines from ZDoom to Vavoom as Janis ported many things from (G)ZDoom to Vavoom. Also, some ZDoomGL features were ported into GZDoom, either directly or after reimplementation in Skulltag (particles and sprite billboarding on the top of my head).

Share this post


Link to post

The arrows showing the relationship between Doomsday, jDoom, jHeretic and jHexen would suggest that code from the original games has been incorporated into the engine. In fact, that is not correct except in the case of DOOM where some basic functionality of mobjs and various math/map utility routines were used.

I don't quite know how you should represent the deng project on this graph as the game plugins are separate projects derived from the original source releases but the engine is almost 100% new code. The games are dependant upon the engine to function but the inverse is not true.

Also note that in recent times, all games and the engine have incorporated various bits of functionality from PrBoom.

Share this post


Link to post

Sorry to be a pain but that still doesn't look right for Doomsday. The updated graph implies that Doomsday is based on Hexen, which is not correct. The Doomsday engine was created by separating out of the game plugins, common functionality that had been written for jHexen originally (and then ported to jDoom and jHeretic) plus various bits such as the blockmap stuff which was taken from jDoom.

Share this post


Link to post
DaniJ said:

Sorry to be a pain but that still doesn't look right for Doomsday. The updated graph implies that Doomsday is based on Hexen, which is not correct. The Doomsday engine was created by separating out of the game plugins, common functionality that had been written for jHexen originally (and then ported to jDoom and jHeretic) plus various bits such as the blockmap stuff which was taken from jDoom.


The Doomsday site said Doomsday is based off Hexen though, just to inform you!

EDIT: In fact, What version of Doomsday seperated into DLLs and the engine?

I can do Doomsday vx.x -> Doomdsay vx.x -> JDoom, JHeretic and JHexen

Share this post


Link to post

A line goes from Quakeworld to ZDoom, although I think ZDoom took some stuff from Quake and Quake2 (maybe for the console and HUD)... I can't be exact on this. I know csDoom did take Quakeworld code directly, though, for its client/server implementation.

Share this post


Link to post

The Doomsday site said Doomsday is based off Hexen though, just to inform you!

I take it you mean the archived homepage? The statement on the about page is a bit of a misnomer actually. In the same sense it is also based on DOOM, Heretic and Hexen. As you can see, the relationship is somewhat complicated but when it says it is based on Hexen, it really means it is based on the new code written for jHexen but that isn't nearly as succinct (however invalid).

I'm not sure when the split officially occurred but I would guess around the v0.96 mark? It happened a long time ago (mid 1999) and before I joined the project. The best person to ask is naturally skyjake.

Share this post


Link to post
myk said:

A line goes from Quakeworld to ZDoom, although I think ZDoom took some stuff from Quake and Quake2 (maybe for the console and HUD)... I can't be exact on this.

Some Networking code was taken from quake, and the railgun was taken from quake 2.

Share this post


Link to post
skadoomer said:

Some Networking code was taken from quake, and the railgun was taken from quake 2.


wasn't it just the sound though? The tree is source code wise

Share this post


Link to post
Graf Zahl said:

Where's Strife on that graph?


What is strife based off anyway? And also, No doom port will ever get a line from it since there is no strife source code available for anyone.

Share this post


Link to post

Perhaps you could add notes to clarify relations when they get complicated. This might mean having to include a bunch of text under the graph, though.

Share this post


Link to post
GhostlyDeath said:

What is strife based off anyway? And also, No doom port will ever get a line from it since there is no strife source code available for anyone.



Having the source is not the only way to get at the code. ;)

Share this post


Link to post
Graf Zahl said:

Having the source is not the only way to get at the code. ;)


:O Assembly cut in paste/porting will only get a dotted line though...

Share this post


Link to post
GhostlyDeath said:

:O Assembly cut in paste/porting will only get a dotted line though...


Actually looked like full reverse engineering. Some Strife code pointers had (until recently) names like A_24d0e or such -- I thought decompilers could only produce assembly code, but that's not the kind of function name I imagine a human mind to come up with.

Share this post


Link to post
Gez said:

Actually looked like full reverse engineering. Some Strife code pointers had (until recently) names like A_24d0e or such -- I thought decompilers could only produce assembly code, but that's not the kind of function name I imagine a human mind to come up with.


Depends if the symbols were stripped or not. And that could be a coincidence too.

Share this post


Link to post
Gez said:

Actually looked like full reverse engineering. Some Strife code pointers had (until recently) names like A_24d0e or such -- I thought decompilers could only produce assembly code, but that's not the kind of function name I imagine a human mind to come up with.



The numbers were hexadecimal indices into the executable image stripped off the DOS extender (i.e. actual memory addresses.) Randy was just lazy and never renamed them from their development name.

Share this post


Link to post
skadoomer said:

Some Networking code was taken from quake, and the railgun was taken from quake 2.


Zdoom does not use any Quake2 code, the railgun particles were an original implementation in Zdoom (kinda hard to take quake2 code anyway 2 years before the engine source released!)
also Zdoom using Quake code would mean a strong GPL violation
csdoom and zdaemon used some gpl network code from quakeworld iirc though

DaniJ said:

I take it you mean the archived homepage? The statement on the about page is a bit of a misnomer actually. In the same sense it is also based on DOOM, Heretic and Hexen. As you can see, the relationship is somewhat complicated but when it says it is based on Hexen, it really means it is based on the new code written for jHexen but that isn't nearly as succinct (however invalid).

This thread is about inheritance of origin. Doomsday is originally based off the Hexen source. This is a fact.

Share this post


Link to post
leileilol said:

Zdoom does not use any Quake2 code


We'll pretend that's true for purposes of politeness, but I do have questions about the origin of the particle system :) It is nearly identical to the system in the Fusion port, which is GPL licensed, and was heavily derived from Quake ;) I'm not trying to start yet another license war, but if the code could be legally GPL'd, I'd rather have it that way in EE than the mess of GPL and BSD intermixing that it currently is :)

Share this post


Link to post
leileilol said:

This thread is about inheritance of origin. Doomsday is originally based off the Hexen source. This is a fact.

If you want to interpret it that way, then sure, Doomsday is based on Hexen. However, if you actually look at the source, you'll find no Hexen code in there.

A slight mistake in the new graph:
Officially, Risen3D is based on Doomsday 1.7.8 though it actually forked much earlier than that under the name Boomsday.

Share this post


Link to post
DaniJ said:

If you want to interpret it that way, then sure, Doomsday is based on Hexen. However, if you actually look at the source, you'll find no Hexen code in there.

A slight mistake in the new graph:
Officially, Risen3D is based on Doomsday 1.7.8 though it actually forked much earlier than that under the name Boomsday.


any more details?

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
×