Eternity C/S support?

I made a separate topic for this because I wanted to have more of a discussion/inquiry about this, but didn't want to derail the original topic it was posted in too much.

Death Egg said:

I still honestly believe that a few ports could stand to find ways to merge some of their features with each other and continue work together, i.e. Eternity and Odamex

Altazimuth said:

I've had very pleasant dreams about this (Oda and EE merging), though sadly that will probably remain a dream. We did have ladna working on a C/S branch for EE but he left Team Eternity before this was finished, which follows into my next point...

Ladna is now working on D2K, which hopes to be some kind of megaport that appears to be trying to do and support everything.


I have quite a few points I'd like to bring up:

1: First off, why was it that ladna split from Team Eternity? Was it disagreements on the direction of the port? Or was it to begin work on his own port?

2: Following the previous question, why not try to convince him to come back to Eternity? His own port has had one update in the last 7 months. It's clear adding everything from scratch to prBoom+ for D2K is going to be an extremely lengthy process. Eternity already has support for quite a bit of these features, and it would be much more advantageous to use it as a jumping point instead.

3: How much code was done on the C/S branch? Did it ever reach a functional state or was it only barely started? Is it still at a place someone could pick it up again and update it for the current development builds, and then continue from there?

4: Lastly, and this is a very different topic from the last three questions, but if Odamex and Eternity could team up, how many obstacles would have to be cleared to pave way for it?


The reason I bring all this up is that I want to see Eternity succeed, I've wanted to for some time. As it stands though, even with all the effort over the past few years to really buff out the features, the amount of mods and players is still pretty much the same. There's been talk in that other topic of why this is, with a GL renderer being blamed as one possible issue, lack of true-color, etc. But easy, convenient multiplayer would go a looooong way for inviting players to the port. Imagine each week on the front page, the Doomworld Multiplayer Digest consisting of ZDaemon, Zandronum, and Eternity, Doomseeker filled with Eternity servers among the Zandronum, Chocolate Doom, etc. This could be the thing that becomes Eternity's big break.


One more thing... any plans to add in the ability to use Legacy skins like Zandronum, or have I just missed where that feature is completely?

Share this post


Link to post
Death Egg said:

1: First off, why was it that ladna split from Team Eternity? Was it disagreements on the direction of the port? Or was it to begin work on his own port?

2: Following the previous question, why not try to convince him to come back to Eternity? His own port has had one update in the last 7 months. It's clear adding everything from scratch to prBoom+ for D2K is going to be an extremely lengthy process. Eternity already has support for quite a bit of these features, and it would be much more advantageous to use it as a jumping point instead.


I heard that he left because he felt that Eternity's development was going too fast for him to make any meaningful changes, he wanted a more stable codebase to experiment with... don't remember where exactly those things were said...

Share this post


Link to post

There's plans for an experimental C/S branch sometime soon (when is dependent on external factors). The gist is there's some core concepts I want to try out in Doom, and Eternity is the cleanest codebase for it.
Last I checked, Quasar was super excited, helped by the fact he knows exactly what that concept is.

Share this post


Link to post

I imagine this would be a hard thing to tackle that it couldn't possibly be it, but is that idea splitscreen being able to join netgames? Like four people playing one setup joining a server together.

Share this post


Link to post

Depends on your angle. If it's a new netcode, it's actually remarkably easy to do if you design it as part of the netcode from the start, that being a simple node<->client translation that can account for the same node holding multiple players.

Share this post


Link to post

Well if this new netcode is early enough for this to be put in, could I request it as a feature?

Share this post


Link to post

I wouldn't make a splitscreen branch and a new netcode without ever consider merging to two, now would I? ;)

Share this post


Link to post

Hey there!

Death Egg said:

1: First off, why was it that ladna split from Team Eternity? Was it disagreements on the direction of the port? Or was it to begin work on his own port?


I bailed because I'm a tyrant and don't like adhering to someone else's structure in my hobby projects. EE's a great project; I basically just wanted to hack away (recklessly) and realized I couldn't do that in an established port. The C -> C++ transition wasn't great, but it was OK. Mostly I didn't like having to keep up the level of coordination with other EE devs. In retrospect, I probably should have forked and kept up, like Zandronum and ZDoom (except actually kept up with upstream).

Death Egg said:

2: Following the previous question, why not try to convince him to come back to Eternity? His own port has had one update in the last 7 months. It's clear adding everything from scratch to prBoom+ for D2K is going to be an extremely lengthy process. Eternity already has support for quite a bit of these features, and it would be much more advantageous to use it as a jumping point instead.


I love EE but I doubt I'd return to being a full dev. Even though EE's a great codebase, I'm not a fan of C++ and again with me being a tyrant. I worked on the Hillary Clinton campaign for 5 of those months. I don't know what you know about US Presidential campaigns but let me tell you don't get a lot of free time, plus we lost so I've just been a sad piece of shit lately. But I'm getting it together.

Death Egg said:

3: How much code was done on the C/S branch? Did it ever reach a functional state or was it only barely started? Is it still at a place someone could pick it up again and update it for the current development builds, and then continue from there?


C/S branch development spanned 9 months and was a big change compared to trunk. I implemented a bunch of shit like voting, bans, WAD downloading, a master server, unlagged, an announcer, spectating, maybe CTF I don't remember (oh yeah, hey look at that) etc. I struggled with the netcode itself though. I had a lot of wrong ideas I needed to work through, and eventually came around to believing that the network message system used by ZDaemon, Skulltag and Odamex is fundamentally flawed.

As far as status, it was possible to run a server, advertise on the master, join a game via the master and play. The master would even show stats! The game was pretty buggy though, with desyncs and jittery players -- the kind of stuff you get from the network messaging system and packet loss.

At the risk of overstepping (if Edward850 has plans to work on EE netcode that's awesome!! He's got experience and is obviously pretty smart, so I have high hopes), I wouldn't start from the client-server branch. Logistics aren't really the issue; yeah it's a pain in the ass to pull the code up to EE's current rev, but it probably wouldn't take more than a day or two of work.

I just didn't get sync right in EE and that's pretty much the whole ballgame. I spent a lot of time working on moving sector prediction (i.e. you start up a lift, it doesn't skip around and you don't quake on it if you're riding it) and couldn't really get it. I didn't really know why it was so inconsistent, but now having worked on D2K I know that sync wasn't working. In fairness, it's... probably not possible to get sync right without deltas... but I'm not totally sure. I do think you'd have to conceive of the netcode entirely differently to get around it though.

That said, I'd keep a lot of the features though. They're kind of fun to implement so maybe it's not as fun to copy, but whatever. Honestly I'll probably yoink at least some of them for D2K.

EDIT: Wow I even implemented demos and waypoints. How have I forgotten all of this haha.

Share this post


Link to post

Perhaps acting as some level of a consultant might be useful? I'm sure that a lot of code from the C/S branch is still useful. Would being able to know and use the appropriate bits of code or ideas in a new C/S branch possibly reduce the workload a reasonable amount?

Share this post


Link to post

Ladna's certainly not overstepping if he still wants to make a C/S branch himself. In fact, it's entirely possible my concepts are similar to his (mine is a mixed delta/reliable protocol hybrid), so there'll be no harm in contributing if I have a public codebase soon enough, if all works well.

The reason why it's in pre-production and with no public code is it is based on concepts from commercial code, which I need to be careful not to include any copy/pasted code itself (well, not largely), while also needing to translate codepointers to Doom's equivalents.

Share this post


Link to post
On 2/11/2017 at 2:23 AM, Ladna said:

I'm a tyrant.

Noted and logged.

Share this post


Link to post

Quiet down Chemohamster.

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