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

Merging of source ports?

Recommended Posts

So, I saw this post, and was wondering if merging both prBoom+ and Eternity Engine is something that both maintainers might be interested in doing?

Or, on a similar note, Odamex and Eternity Engine might also benefit from such a merge too, Eternity Engine getting decent c/s multiplayer and Odamex getting a slew of new features.

I'm no coder though, so for all I know making something like this happen is akin to smashing two completely different things together and hoping it works.

Share this post


Link to post

For some historical context, way back yonder in 1998, people got the idea to merge several then-current source ports into one next-gen Doom-esque engine called OGRE. It failed miserably, of course.

Which is not to say no source ports have ever "merged" per se - PrBoom was effectively a merger between Boom, LxDoom, and LSDLDoom. But the latter two there were pretty standard ports of the original code, not mature ports with their own features and idiosyncrasies.

Most source ports today have developed into their own separate "species," so to speak, and trying to cross-breed them would be far more work than it would probably be worth.

Share this post


Link to post

Yeah, the prBoom merger was part of what got me to thinking about this. has prBoom+ had any major updates since the last version anyway? Eternity could just absorb the features it doesn't already share.

Share this post


Link to post

Probably the biggest thing PrBoom-Plus has that Eternity hasn't is complevels (and along with it "partial emulation of a DOS machine's address space, behavior of x86-specific mathematical or logical operations, and overflow emulation based on reverse engineering of the segment layouts of the original games' executable files in order to attain as close to 100% compatibility as is possible.").

Share this post


Link to post

Many Odamex players are salivating for any sort of lead programmer to begin with at this point

Share this post


Link to post

Well, then maybe that's another reason something like this could be attempted, it'd be mutually beneficial! If I knew the first thing about programming I'd try helping but alas...

Share this post


Link to post
Ralphis said:

Many Odamex players are salivating for any sort of lead programmer to begin with at this point

Is Odamex in hiatus?

Share this post


Link to post
printz said:

Is Odamex in hiatus?


From a programming perspective, right now, it appears so. There have been no commits in a long while and no fresh blood has shown up with patches. It's a shame because Odamex has more people playing it than ever (as well as trying to play it - it has hundreds of downloads every week).

The lead programmer up until the points where the commits stopped, Dr_Sean, was a great dude that did a lot of awesome things with Odamex. Odamex has arguably the "best" netcode of the three popular engines, a true-color mode, widescreen, GPL slopes, and a lot of other cool things.

Unfortunately, since he seems to have moved onto other things in his life, there are a lot of half-finished project branches such as SDL2 conversion, abstracting the video system, and a netcode rewrite. He also had planned to add a scripting system so that players and server admins could create their own game modes. Bummer.

Like Sean was once the "savior" of the project after his predecessor Denis moved on, everyone is hoping that someone else will eventually get interested in helping out

Share this post


Link to post
Ralphis said:

Odamex has ... GPL slopes,

I wonder why those haven't been "merged" into ZDoom yet.

Share this post


Link to post
scifista42 said:

I wonder why those haven't been "merged" into ZDoom yet.

Unless the authors of that code give an explicit, special permission similar to the one fraggle granted for SMMU code, GPL stuff is unusable in ZDoom unless you get rid of the FMOD EX backend and some parts of the OPL code.

Share this post


Link to post

Nevermind. I knew the facts you stated, but I failed to realize how this prevents the code being included into ZDoom rather than just preventing ZDoom itself being included into other projects. I understood it upside down, apparently.

Share this post


Link to post
Ralphis said:

Odamex has [...] a true-color mode, [...], GPL slopes

I guess I can try to copy those features into Eternity. I hope the code is not hard to read.

I guess it would be nice if key features from PrBoom+ and Odamex get copied into Eternity, heheheh.

Share this post


Link to post
printz said:

I guess it would be nice if key features from PrBoom+ and Odamex get copied into Eternity, heheheh.


I think it would be nicer if key features were copied into Odamex ;]

Share this post


Link to post

I'd would've liked to see the expansion of Eternity tbh, I thought that had a lot of potential to be a great port, especially one that didn't have to pretend to be zdaemon to get players.

Share this post


Link to post
Ralphis said:

I think it would be nicer if key features were copied into Odamex ;]


I think it would be nicer if key features were copied into (my nonexistent port, especially since I have very little coding knowledge, and even less of c and c++) *shot*

To be completely serious, Eternity and PrBoom-Plus lack decent netcode, Odamex and to a lesser extent Eternity lack a stable demo recording protocol (both can record vanilla demos, but that's kind of worthless on the mp side of Odamex. To be fair, Odamex is still in beta, and both Eternity and Odamex probably have better demo stability than (G)ZDoom 2.x, which has zero.

Eternity has stuff like EDF, and UDMF support is being planned, while I think Odamex has better support for ZDoom 1.22/1.23 stuff. PrBoom-Plus has complevels and tools useful for tool assisted speedruns.

PrBoom-Plus is fairly stable ATM, and it seems like there aren't any plans to implement major features. Odamex and Eternity are both full of potential, especially in the environments they were designed for (MP and SP respectively), but both have issues that discourage me from using them. Maybe in a couple years, or even a couple months, Odamex will become stable, or Eternity and/or PrBoom-Plus will finally get decent netcode.

...as for Odamex pretending to be ZDaemon, there are similarities between the two ports, sure, but *censored*.

Share this post


Link to post

Another thing I just thought of, Odamex plans on adding Heretic support some day in the future. If it combined with Eternity it would get nearly complete Heretic support right off the bat.

Share this post


Link to post
Linguica said:

Which is not to say no source ports have ever "merged" per se - PrBoom was effectively a merger between Boom, LxDoom, and LSDLDoom. But the latter two there were pretty standard ports of the original code, not mature ports with their own features and idiosyncrasies.

Pretty much all past attempts at "merges" have failed and PrBoon is basically the only anomalous example of one that succeeded. In the case of PrBoom a merge was probably relatively straightforward because they all derived from a common codebase (Boom) and there were really just pure "ports" and minor cleanups of that codebase, rather than adding a ton of new features. You might draw an analogy with feature branches which add complementary features.

I have a passing familiarity of the codebases for some of the source ports in this thread and I just don't see any of the merges proposed here as being possible.

Share this post


Link to post

Just copy all files in one folder and issue a "make both" command. If you encounter errors, ifdef the lines out. Very easy.

Share this post


Link to post
VGA said:

Just copy all files in one folder and issue a "make both" command. If you encounter errors, ifdef the lines out. Very easy.

I accidentally typed > SEND SPIKE and I think I hacked the CIA, what do I do now??

Share this post


Link to post

One thing that I have noticed while developing ReMooD, is that after Doom Legacy was revived and continued development, I was completely unable to just directly apply patches to my code base. Very active ports which change many of the details can very rapidly become very different.

Linguica said:

I accidentally typed > SEND SPIKE and I think I hacked the CIA, what do I do now??


Well, raise both your hands and shout "I am invicible" while literally complying with the demands of a police officer.

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
×