RestlessRodent Posted July 17, 2008 I made a Doom, Heretic and Hexen Source port graph! Accurate for the most part but still missing some ports that noone has ever heard of! Small thumbnail (1/4th Size) if you squint you can see source port names! http://kaptinkurk.googlepages.com/DoomGraph.png Also, tell me if I am wrong so I can fix it and upload a new version! =) 0 Quote Share this post Link to post
myk Posted July 17, 2008 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. 0 Quote Share this post Link to post
RestlessRodent Posted July 17, 2008 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? 0 Quote Share this post Link to post
myk Posted July 17, 2008 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. 0 Quote Share this post Link to post
GreyGhost Posted July 17, 2008 Have I gone blind or is DelphiDoom missing from that graph? 0 Quote Share this post Link to post
Gez Posted July 17, 2008 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). 0 Quote Share this post Link to post
DaniJ Posted July 17, 2008 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. 0 Quote Share this post Link to post
Julian Posted July 17, 2008 Good god, there's even RORDoom in there Oo 0 Quote Share this post Link to post
DaniJ Posted July 17, 2008 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. 0 Quote Share this post Link to post
RestlessRodent Posted July 17, 2008 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 0 Quote Share this post Link to post
myk Posted July 17, 2008 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. 0 Quote Share this post Link to post
DaniJ Posted July 17, 2008 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. 0 Quote Share this post Link to post
skadoomer Posted July 17, 2008 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. 0 Quote Share this post Link to post
RestlessRodent Posted July 17, 2008 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 0 Quote Share this post Link to post
RestlessRodent Posted July 17, 2008 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. 0 Quote Share this post Link to post
myk Posted July 17, 2008 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. 0 Quote Share this post Link to post
Graf Zahl Posted July 17, 2008 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. ;) 0 Quote Share this post Link to post
RestlessRodent Posted July 17, 2008 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... 0 Quote Share this post Link to post
Gez Posted July 17, 2008 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. 0 Quote Share this post Link to post
RestlessRodent Posted July 17, 2008 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. 0 Quote Share this post Link to post
Graf Zahl Posted July 17, 2008 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. 0 Quote Share this post Link to post
leileilol Posted July 17, 2008 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. 0 Quote Share this post Link to post
RestlessRodent Posted July 17, 2008 Updated graph Added more ports 0 Quote Share this post Link to post
Quasar Posted July 17, 2008 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 :) 0 Quote Share this post Link to post
DaniJ Posted July 17, 2008 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. 0 Quote Share this post Link to post
RestlessRodent Posted July 17, 2008 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? 0 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.