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

Do you think Zandronum should merge with [G/L]ZDoom at some point?

Zandronum and ZDoom: What to do?  

119 members have voted

  1. 1. Should a merge happen?

    • Yes, Zandronum should merge with modern ZDoom ports.
      54
    • No, Zandronum should stay it's own thing.
      48
    • I'm more of a ZDaemon/Odamex sort of guy.
      6
    • I don't play multiplayer.
      11
  2. 2. If you want Zandronum to stay it's own thing, what do you think should be done?

    • Zandronum should implement some Skulltag-Compatible ZScript fucntionality from the ZDoom family
      36
    • Zandronum should continue to do it's own thing
      27
    • Zandronum should ditch Skulltag and try to focus moreso on netcode and ZDoom compatibility
      20
    • [Not Applicable]
      36


Recommended Posts

I don't know if this has been asked before, but I figured I'd put this here since this seems like a good place to do so.

 

Anyways, I've noticed that there's been quite the divide of mod compatibility ever since ZScript (or an overhaul of ZScript, I don't entirely know) was introduced, given that a mods I've seen over at the ZDoom forums seem to require newer versions of GZDoom, and maybe LZDoom compatibility if you're lucky. While in terms of singleplayer, this isn't really much of a hassle (save for the vanilla purists who don't seem to be all too happy about that), I have noticed that this causes many of the mods I play to be completely incompatible with Zandronum, and by extension, TSPG's services.

 

I've also noticed that Zandronum hasn't really updated in quite a while, the last developer update being months ago, I don't know if that's due to them trying to integrate the netcode with newer versions of DECORATE/ZScript, or if they're taking a break from development, or if it's even being continued at all. There's also very little activity going on over at the Zandronum forums, only about 5 or so posts every month, I think.

 

There was a discussion over at the Zandronum forums about this back in 2012, back when 3.0 was still under it's rather long development cycle, but now that 8+ years have passed, and now that GZDoom is well underway with version 4.3.3 and above, do you think that it might be time for Zandronum to merge back into the ZDoom family, or do you still think Zandronum could still be it's own thing?

Share this post


Link to post

Pretty sure implementing GZDoom's features into multiplayer is the only thing keeping these two source ports apart. There's just so much work to be done.

Share this post


Link to post

Zandronum is good the way it is. Some of the players (including me) don't really have high-end devices to run many of GZDoom's advanced features.

Share this post


Link to post
1 minute ago, InDOOMnesia said:

Zandronum is good the way it is. Some of the players (including me) don't really have high-end devices to run many of GZDoom's advanced features.

There's also the possibility Zandronum could merge with LZDoom (A more system-compatible version of GZDoom for lower end computers) and receive it's features too, hence [G/L]ZDoom instead of just GZDoom.

Share this post


Link to post
6 minutes ago, Senor500 said:

Even LZDoom doesn't run as well for me like Zandronum does.

There is Odamex and/or ZDaemon if you prefer vanilla gameplay over mods 'n stuff, otherwise I can understand why you'd want Zandronum to continue what it might be doing.

Share this post


Link to post
Posted (edited)

Zandronum still has some pretty strong mods, I can't play that over on Odamex or Zdaemon.

Most notably, I'm very fond of Quake Champions: Doom Edition.

Share this post


Link to post
Posted (edited)
1 hour ago, Senor500 said:

Even LZDoom doesn't run as well for me like Zandronum does.

Out of curiosity, what's your system specs?

 

 

Regading the question, a merge is unlikely. Zandronum's network code and ZScript do not mix - it'd need a rather fundamental rewrite, and from the looks of it that's not going to happen.

 

 

Share this post


Link to post
10 hours ago, kinker31 said:

I've also noticed that Zandronum hasn't really updated in quite a while, the last developer update being months ago,

You think that's long? I am waiting for more than a decade till Legacy 2 comes out. ;)

 

(Ill give an serious response on your later comment)

 

7 hours ago, kinker31 said:

There's also the possibility Zandronum could merge with LZDoom (A more system-compatible version of GZDoom for lower end computers) and receive it's features too, hence [G/L]ZDoom instead of just GZDoom.

  • Zandronum is currently based on GZDoom 1.8.6. This is a build from 2014 and its one of the first builds to implement OpenGL 2.0 support. These got introduced with the arrival of the ATI Radeon 9700 Pro, all the way back in 2002 (!)
  • As GZDoom moved to new OpenGL versions, these usually came in the form of significant code changes, whereby legacy API support was redelegated or just outright scrapped altogether.
  • Moving to a new GZDoom build with new features like ZScript is very much different from how Zandronum scripting occurs. As Graf says, this would require an extensive rewrite.
  • As Zandronum is multiplayer focussed, one of the key aspects (i assume) should be stability, hence why an old build is used. However, i do agree that the current codebase is quite outdated, though the codebase is stable
  • In order to have any kind of upgrade that would make sense on a LTS approach, Zandronum should move to GZDoom 3.4/3.4.1. These are the last official builds based around the OpenGL 2.0 before support for that was moved to a Vintage build, and later on taken over by LZDoom.

LZDoom is, according to latest posts by drfrag, moving away from its intended purpose and is now looking into rendering using the SoftPoly II backend.

 

1 hour ago, Senor500 said:

Even LZDoom doesn't run as well for me like Zandronum does.

Id love to hear your hardware specs. On my ancient work PC, LZDoom does work pretty well. (Athlon X2 215, 3 GB DDR2, Geforce 6150 SE IGP)

Share this post


Link to post
45 minutes ago, Redneckerz said:

In order to have any kind of upgrade that would make sense on a LTS approach, Zandronum should move to GZDoom 3.4/3.4.1. These are the last official builds based around the OpenGL 2.0

 And that wouldn't make sense. First 1.8.6 already supported GL3 and probably GL4 features but i can't remember right now. Those official builds were not based on but just happened to still support GL2. Just becouse they were official doesn't mean they are a better choice, the vintage build was not that bad and supported later mods. But anyway why would they need to support GL2 in the first place? An easier route would be to merge with ZDoom32, it still had decorate and then they'd jump from may 2014 to dec 2016. To support ZScript they'd better just merge with the latest GZDoom.

Share this post


Link to post
1 minute ago, drfrag said:

 And that wouldn't make sense. First 1.8.6 already supported GL3 and probably GL4 features but i can't remember right now. Those official builds were not based on but just happened to still support GL2. Just becouse they were official doesn't mean they are a better choice, the vintage build was not that bad and supported later mods.

Seeing as Zandronum moved to an official build as some sort of LTS release, my suggestion was to retain the similarity.

 

Ideally there should be a ZDoom/GZDoom based build that functions similar to LTS releases in the Linux world: Being supported for a longer amount of time than others, retaining a conservative approach. Sort of like the opposite of QZDoom, but for LTS stability.

 

However, i am not sure if that could be a thing due to the various new improvements GZ and QZ iterate at a rather quick rate.

1 minute ago, drfrag said:

But anyway why would they need to support GL2 in the first place?

Because Zandronum is the only MP focused Doom port that has OpenGL support. Users running Zandro tend to do so on a variety of machines that are significantly less powerful.

 

It also would make less sense to incorporate cutting edge rendering features as i can imagine might be a strain on the network code.

1 minute ago, drfrag said:

An easier route would be to merge with ZDoom32, it still had decorate and then they'd jump from may 2014 to dec 2016.

That would only be beneficial if the current ZDoom32 version will remain similar throughout its updates and not change radically over time. I can see the benefits of ZD32, but stability may need to be tested before it can be actively used.

 

1 minute ago, drfrag said:

To support ZScript they'd better just merge with the latest GZDoom.

Which would require a significant rewrite on the Zandronum end of things, which is relatively unfeasible given the current situation.

Share this post


Link to post

LZDoom is the LTS release. Zandronum is lagging behind for different reasons. I'm not updating ZDoom32 anymore since long ago, but there's a pending minor bugfix release and i added/removed a couple of things. I considered adding more complete decorate support but since there was no interest...

 It's also faster than LZDoom on old hardware (still has the classic fixed function renderer). I've heard other people complain but for me LZDoom is fast enough.

Share this post


Link to post
Posted (edited)
On 4/3/2020 at 12:14 PM, drfrag said:

LZDoom is the LTS release. Zandronum is lagging behind for different reasons.

You are considering moving away from LZDoom's current intent with a new version that differs from it. So i don't feel compelled to suggest LZDoom as a base, unless 3.85 is going to be the last version with GL2 support.

 

Even then, it would require a significant rewrite considering ZScript and all. Hence why one would opt for ZDoom32 or an official GZ build.

Quote

I'm not updating ZDoom32 anymore since long ago, but there's a pending minor bugfix release and i added/removed a couple of things.

So that rules out using ZDoom32 as a base for a new Zandronum build.

Quote

I considered adding more complete decorate support but since there was no interest...

I can't recall you asking if people wanted more complete DECORATE support for ZDoom32.

Share this post


Link to post
Posted (edited)

Zandronum (formerly Skulltag) was always known as the most advanced (modding wise) multiplayer port of Doom. But sadly, the gap between Zandronum and latest GZdoom is greater than ever before. It is based on GZdoom 1.8.6, which is 5+ years old at this point. And this gap will keep increasing as I don't see a Zandronum 4.0 anywhere in sight.

 

Thus I think Zandronum should ditch the old Skulltag era code and stuff if it wants to move forward as this is holding back the port from moving on to newer versions of GZdoom.

Edited by ReaperAA

Share this post


Link to post

I actually never thought of this. And while it would make sense, I'd rather prefer Zandronum to remain the way it is. I feel like it would be too much with all the fancy features from the modern ZDoom ports.

Share this post


Link to post
Posted (edited)

Let me put an idea on the table.

 

Doom's problem is that it's a deterministic lockstep simulation that can butterfly-effect its way into chaos at the slightest deviation.  It is so antithetical to Client/Server that it borders on deliberately antagonistic, and it is frankly shocking that the developers of these ports have gotten them to work as well as they have, for as long as they have.  The thing is, when you keep adding features to this lockstep simulation that allow for more and more modding flexibility, but keep the underlying design that assumes deterministic lockstep, I feel like there's a breaking point where traditional Client/Server just might not be feasible anymore, without exposing a ton of the internal fiddly bits of netcode to the mod author or wasting tons of bandwidth.

 

However, I think I might have an idea about how to fix this.  Client/Server rollback netcode.  This is not my idea, and I will provide sources for it later.

 

Let's say you have two clients and a server.  The server is running the game simulation.  The clients are also running the same simulation, but ahead of the server in time.  They observe the world and send their inputs to the server.  Because the clients are ahead of the server in time, the server gets the inputs at the exact frame that they are needed and runs the simulation with everybody's inputs for that frame.  It then sends everybody's inputs out to the other players.

 

Okay, now this is the tricky bit.  Every client keeps multiple copies of the state of the game in memory in a circular buffer.  It keeps the current frame, plus the last...say...8 frames of the game in memory.  And every frame, because it does not have the inputs for the other players, it simply guesses as to what they are.  Maybe it guesses "nothing".  Maybe it guesses "Whatever was previously held".  Maybe for the mouse it guesses "Half of what their previous X and Y were".  It doesn't have to be perfect, you'd be surprised at how far you can get with guesses.  But the important bit is that when the client does get inputs from other players, it "rolls back" to the old version of the game in memory, inserts those inputs, and then plays the simulation back with those updated inputs until it reaches the current (client) frame again.  If there is a misprediction, you might see an actor jerk from one location to another, but since the game has momentum in it and players are not 100% random, I imagine it would work surprisingly well a lot of the time.

 

So, this is all neat and tidy, but there is of course no such thing as a free lunch:

 

  • Instead of having one game state, you need to take your game state and make a copy of it every frame.  It's been a while since I've seen ZDoom's internals, but that might not be a small problem to solve.
  • The client would need more CPU in order to be able to run multiple game frames at a time.
  • The server must babysit each client connection to ensure they are far enough ahead of the server so the packets get there in time (missed inputs are just dropped by the server - they have to be), but not so far that there is additional unnecessary latency.  I recommend a tutorial on PID controllers.
  • The "butterfly effect" where a Pain Elemental wiggling its arms on one side of the map can completely change the behavior on another side of the map is still a problem.  You would have to cut down on misprediction opportunities throughout the simulation by compartmentalizing RNG and changing behavior so a misprediction for a few frames would either be invisible or not noticed.  This is likely not something you'd want to do in the default GZDoom - maybe this is what "Zandronum" could be, a version of the default game code made deterministic?

 

But you get a bunch of positives too:

 

  • You don't need to come up with a massive protocol that has to be updated with every release.  At the end of the day, you're still just passing inputs back and forth.  The hardest part is probably ensuring your initial connections have the complete state and that times when the client drops out can be resynced with the complete state.
  • Network traffic is now much less of an issue.  You're not sending actor updates every frame, so pile on as many monsters as you have CPU for.
  • The modded gameplay code does not need to concern itself with clientside or serverside in concrete terms.  You'll never need to run an if clientside or if serverside check or send any packets.  Maybe possibly there might need to be a "Please do not roll this actor back" flag for special effects that would look weird if rolled back.

 

Here is how I learned about the netcode - the first two videos are about C/S rollback, the third video concerns P2P rollback but has some really good info and examples in it:

 

 

 

 

Edited by AlexMax

Share this post


Link to post

No, it should NEVER merge for some of the reasons detailed below. I think Zandronum has its core audience and purpose (multiplayer) You don't need to become a copy of another product that already serves a portion of the market, there's no sense in doing that. Doom was not like this 10 years ago, and will not be the same 10 years from now.

 

And I also think it's kind of unfair posting such an important and potentially decisive poll like that here in this forum, which clearly has become biased in favor of all things "gzdoom". The result you get from this poll will be biased towards the merge and innacurate.

 

 

On 4/3/2020 at 1:01 AM, kinker31 said:

There's also the possibility Zandronum could merge with LZDoom (A more system-compatible version of GZDoom for lower end computers)

The intention may be good and truthful, but the results can end badly. While LZdoom allows for many people to play recent mods, the renderer code is fundamentally flawed for how much hardware resources it uses (and as far as I've been able to grasp this can be traced back to original ZDoom early 2000's before openGL renderer was really a thing) This means that all today's versions and variants of gzdoom (and projects that merge with it) will come shipped with that flawed renderer at its core. I remember last month trying a mod called "Brutal Heretic RPG", and I was testing it in Heretic's stock E1M2 map. Everyone that knows about Doom and Heretic knows that that map is not "intensive" by any means by today's computer standards, but there was lag slowdown in that initial area (all doors closed, right at the start of the map on the initial hall) I don't know what causes the lag, if it's the particles used by the custom gameplay mod, or something else. I just know this leaves me very worried for the state things are headed into.

Share this post


Link to post
Posted (edited)

Uh, so I had an account here on this forum at some point; oh well, though.  I'm going to ask this with a bit of naivety, mainly because I really don't know much if anything about ZDoom's renderer or the like.  Anyway, I just wanted to say that I'm interested whether or not the caveat/flaw of the Zdoom renderer that you mentioned above has to do with perhaps a facet of the Doom engine, or what.  I just can't imagine that this would be still present in GZDoom today.  Not to say that it's impossible, but after 10-20 years, certainly, this would have been at least tweaked?

 

I do agree the poll itself is somewhat less representative of Zandronum with the Zan devs (as far as I'm aware) don't really check here.  Also, they're quite busy (Torr's a professor and at least one of the other developers are studying in classes) so I don't think it's very likely that this kind of development push will actually happen.

 

So, if my post here holds any weight at all, I'd be kinda surprised I guess, because I rarely ever post here.  Really, if someone wants to try GZDoom c/s or whatever go for it.  You're going to be a part of one hell of a project.

EDIT: I had a quote in here but it was incredibly borked somehow so yeah

Edited by V-Pariah

Share this post


Link to post
Posted (edited)
2 hours ago, V-Pariah said:

Anyway, I just wanted to say that I'm interested whether or not the caveat/flaw of the Zdoom renderer that you mentioned above has to do with perhaps a facet of the Doom engine, or what.  I just can't imagine that this would be still present in GZDoom today.

Ah, crap, this is going off-topic AGAIN. But if I just stay silent I'm being part of the problem. And the whole purpose of forums is to have conversations/discussions, so here it goes...  Well, here's the thing, if you are willing to create an account just to post here in the defense of anyone (ultimately denying that other people's complaints are real) you have to also be willing to make some tests with some mods and see it with your own eyes. Are you willing to go that far in the search of truth? Or are you only willing to go where the popular "politically correct" opinion goes? That's my problem with most people, they go out of their way to defend someone, just like relatives of victims of rape refuse to believe the victim because they are too seduced by the uncle's or father's charisma or whatever. "He would never do that", they say...  That's when problems start and the truth is not being a priority anymore.

 

So are you willing to do some tests? Let's go then.

What's your hardware? New, old, good, bad?

A really simple way of testing this is downloading the mod Winter's Fury and testing it out to see how well it runs in your hardware. Even better if you have at your disposal some older machine to perform the same test (pre-2012 GPUs)

Mind you: it's a mod from 2006 and it STILL causes problem for some people on their computers.

 

Then, take this modified version of mine that I was trying to optimize for my machine and tell us how well it runs. I did minimal job for this one*, I was just trying to help another guy in another thread, I only made some preliminary stuff to cut some of the fat, it still runs like crap on my hardware.

It's inside the "Other Butchering Projects" folder

https://www.dropbox.com/sh/cy4b3dvu7k7clzp/AAA5Aju7NeDa6vZoVruhXDpJa?dl=0

(if you go to map02 there's a locked up transparent door that has to be opened, after you open that door, tell me if you face any slowdown entering that corridor, or looking back behind after crossing... for some reason this section really broke down for me...)

 

So, hey, Mr Defender of Random Strangers, I'm gonna wait for your test reports, ok? And don't forget to tell us what hardware you have.

 

edit: typos*

Edited by DwarfCleric

Share this post


Link to post
Posted (edited)

Not sure what else there is to say really so I'll just jump straight to it.  The oldest chip I have is a GT 640M (edit: it's GT, not GTX), which is Q1 2012.  That's on a Dell laptop.  I can test it on that in the morning (will post full specs and that of my desktop PC).  It'll be easier for me to edit this post so I'll do that.

EDIT: okay, two things: first, my old laptop is actually in a major prehistoric condition at the moment due to Windows completely not working with the awful HDD they put on this laptop, and of course, more importantly, I have no idea if there's any heat damage to the mainboard.  A workaround would be to use Ubuntu LTS, which would give new life to my L521X, but also means a plethora of installations and updates are ahead.  That said, check out the L521X specs if you have time and let me know if perhaps this might be old enough.

 

secondly, I'm an old-fashioned map enthusiast and naturally only used SLumpEd for most of my life.  Needless to say, I was a bit surprised when MAP02 of that wad happened to show a particular pattern of scrambled lines in a particular area of the map, but not in other parts.  So, already I have a general idea of where in the map these special effects are.  Further, some (or most) of the other maps render correctly in the editor so this effect probably wasn't used much elsewhere in the mod.  I can only imagine if more of these features were to be added in a c/s format, the faster these implementations are done, the less likely is there going to be time to change the base or foundation of which these things actually render by/with.

EDIT 2: just to put this out there, I'm removing the last sentence I had which was "we'd be at the mercy of zdoom" since it felt a bit way too tropey. :(
 

Edited by V-Pariah : removing trope

Share this post


Link to post
On 4/3/2020 at 5:00 AM, Redneckerz said:

Id love to hear your hardware specs. On my ancient work PC, LZDoom does work pretty well. (Athlon X2 215, 3 GB DDR2, Geforce 6150 SE IGP)

 

On 4/3/2020 at 3:20 AM, Graf Zahl said:

Out of curiosity, what's your system specs?

I forgot to post it, damn.

Intel Celeron N2840 2.16 GHz, 4 GB DDR3, IntelHD (Not sure which, it just says IntelHD).

Share this post


Link to post
3 hours ago, Senor500 said:

 

I forgot to post it, damn.

Intel Celeron N2840 2.16 GHz, 4 GB DDR3, IntelHD (Not sure which, it just says IntelHD).

Well, that's more modern than what i have both in CPU and GPU. LZDoom should run fine considering it does run fine on my junk pc. (You have a Bay Trail gpu, with 4 EU (Execution Units).

 

However, perhaps memory bandwidth is an issue here, or the amount of video memory that is given to the HD Graphics.

 

Share this post


Link to post
3 hours ago, Senor500 said:

 

I forgot to post it, damn.

Intel Celeron N2840 2.16 GHz, 4 GB DDR3, IntelHD (Not sure which, it just says IntelHD).

If you want you could download GPU-Z which is the CPU-Z for GPUs , but it runs only on windows. 

Share this post


Link to post
6 hours ago, Redneckerz said:

Well, that's more modern than what i have both in CPU and GPU. LZDoom should run fine considering it does run fine on my junk pc. (You have a Bay Trail gpu, with 4 EU (Execution Units).

 

However, perhaps memory bandwidth is an issue here, or the amount of video memory that is given to the HD Graphics.

 

The GPU seems to be damaged and it also seems to heat up easily, that is why it isn't running well I think, last year it worked a lot better than it does now.

Share this post


Link to post
1 hour ago, Senor500 said:

The GPU seems to be damaged and it also seems to heat up easily, that is why it isn't running well I think,

That would mean your SoC is damaged since the GPU is part of the CPU.

It seems to heat up easily, have you verified this?

 

1 hour ago, Senor500 said:

last year it worked a lot better than it does now.

That does not have to be the GPU that causes it.

Share this post


Link to post
Just now, Redneckerz said:

It seems to heat up easily, have you verified this?

Yeah, sometimes I leave the computer doing nothing and then I touch it and it's really heated, other times it doesn't happen.

1 minute ago, Redneckerz said:

 

That does not have to be the GPU that causes it.

Should've said the computer is damaged.

Share this post


Link to post
1 hour ago, Senor500 said:

The GPU seems to be damaged and it also seems to heat up easily

Let me keep this short for everyone's sanity sake, my long rants have been using a lot of server space lately...

What mod or mods exactly are you trying to run? Give me one or two examples.

 

And lastly, try to open these same mods using ZDoom32 (renderer is done by cPU, not gPU)

Download link for it already pre-configured right here: https://www.dropbox.com/sh/8m9wrub7k42p22z/AAC8-H3Avpn2qZ1Y9ef3xxV8a?dl=0

 

You load it like this: zdoom32.exe -file mod1.deh mod2.wad mod3.pk3

Share this post


Link to post
4 minutes ago, Senor500 said:

Yeah, sometimes I leave the computer doing nothing and then I touch it and it's really heated, other times it doesn't happen.

Should've said the computer is damaged.

But that isn't absolutely related to LZDoom?

 

If it gets really heated without a possible reason, it might be that the CPU clocks aren't adjusted and they constantly run at max. Depending on the closure (This CPU was used in laptops and mini PC's) that might be strenous for the system.

 

Share this post


Link to post
13 hours ago, V-Pariah said:

Needless to say, I was a bit surprised when MAP02 of that wad happened to show a particular pattern of scrambled lines in a particular area of the map, but not in other parts.

 

uh, are we talking about the same thread here or you posted here on accident? what map or mod are you talking about? what port?

 

13 hours ago, V-Pariah said:

I have no idea if there's any heat damage to the mainboard

 

again... what is even happening?

 

13 hours ago, V-Pariah said:

check out the L521X specs

 

dude, you said you just created an account right here to argument with me and counteract the points I made before, it's up TO YOU to write down these specs, I am not looking up SHYTE, pal

 

Share this post


Link to post

Old laptops heat up and can be damaged unless you change the thermal paste.

@DwarfClericWhy are you still using an old LZDoom version? Latest is 3.85. My ports are in the releases GitHub section https://github.com/drfrag666/gzdoom/releases

I don't like the idea of people posting unofficial release archives. Why don't you post just your configs or at least keep them out of the zip files? Those are not the original release zips and that could be a concern (possible viruses among other things, even using different file names could be a problem).

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
×