Gibbon Posted December 8, 2021 (edited) So, I hear you ask "what is this Gib? Another source port?!" Well.. yes actually. Since Pooch is in maintenance mode now, I wanted to tackle something a bit more advanced than Sprinkled and ReBOOM. So what is RZDoom? It is a continuation of classic ZDoom, software renderer and all, just as you (we) remember it. Initially it began life as an innocent port to modern 64bit systems of Zdoom 2.9pre, but oh no, Gibbon just couldn't keep his hands off it. So I took 2.8.1 and after a bunch of fixes for Cocoa for Mac and some scrubbing of OpenAL and assembly routines, it was rebranded from ZDoom64 to RZDoom and now to RZDoom, to distinguish it and to keep it separated from Randi's ZDoom. This will be developed differently than most ZDoom-based source ports, rather than adding yet more features, it will be aimed towards reducing features / stabilising existing features and clean / optimise existing code. I'm not part of the ZDoom community (nor have any intention to be) so those who know about my work on Pooch/Sprinkled/ReBOOM know the kind of direction I'll take it. RZDoom is (for now) save-game compatible with ZDoom 2.8.1 , but I cannot promise that for future releases. So what has been changed? All Assembler code has been removed from the compilation steps (I read it all and really, the performance gain is negligible nowadays). Cocoa backend for MacOS has been fixed (Obj-C updates still needed). OpenAL has been removed and FMOD Studio is the only default. CMake files have been updated to 3.15 minimum. MacOS iwadpicker has been updated to compile cleanly and with modern Objective-C standards. What will be done in the future? More optimisations. Cleanups and clean compilation with -Werror. MacOS upgrade for Cocoa and Obj-C. Demo recording and playback removal (let's face it, it is useless as it desyncs with each new version). Win32 upgrades to more recent D3D versions (still using the DX9 layer for software rendering). Eventual porting of Obj-C code to Swift (for future-proof Mac support). M1 Mac support. Windows launcher updates. More Gibbing!. Comparing the functionality of Hexen/Heretic to Sprinkled and changing it where required. All in all, a decent, optimised, clean and fast software renderered ZDoom-based source port is what I intend this to be. With no feature-creep or bloat. Wads Tested Temple of Ancients <- For replacement of textures Altar of Evil <- For a general gameplay wad with effects and DECORATE scripts Knee Deep in ZDoom <- For heavy use of ZDoom-specific features The Darkest Hour <- For heavy use of scripting and gameplay modifications Onira <- For colourmaps Lilith.pk3 <- For software renderer bugs Ancient Aliens <- Because I like it :) What won't work Wads that need a GL Renderer Wads that need Zandronum Wads that are absolutely spectacularly gigantic (ok they will work but the software renderer will get choppy) if the visuals have a lot of buildings / linedefs etc.. or if there are a huge amount of mobs at once. Wads that were designed with GZDoom in-mind (Cold as Hell: Standard Edition) for example. It works, but sound effects and music are buggy. Bugs 1. Secret 'gong sound' doesn't work when entering a secret sector. Why RZed? Because I'm British and saying 'Zee' makes me die inside just a little more each time. That and 'innit mate' isn't a good name for a source port :) Who made that icon? That is taken from the wad of Altar of Evil - by Dutch Doomer. It is my absolute favourite ZDoom wad of all time and it only seems right that the icon, be from a ZDoom wad. Plus, it scared the crap out of me back in the day.. Enough talking, where is it! https://github.com/atsb/rzdoom/releases/tag/3.0.1 Cheers! ~Gib Edited April 18, 2022 by Gibbon : new release 60 Share this post Link to post
Dragonfly Posted December 8, 2021 Exciting concept, will likely watch progress on this. Just one comment though: 2 hours ago, Gibbon said: it was rebranded from ZDoom64 to ZedDoom, to distinguish it and to keep it separated from Randi's ZDoom. Both of these names are misleading. ZedDoom, phonetically, is identical to how some people pronounce ZDoom already, which could be confusing. ZDoom64 sounds like a Doom64 port with (G)Z-Features. Sadly I've no good suggestions for alternatives... That said 2 hours ago, Gibbon said: 'innit mate' gets my vote! ;) 6 Share this post Link to post
Biodegradable Posted December 8, 2021 Man, at this rate, all the other sourceport devs might as well retire. We got Gibbon just making all of them at this point lmao. Good stuff, fam. You're absolutely insane, but I guess you must just love Doom and programming THAT much. As for the name dilemma Dragonfly mentioned, I also think you'll need to come up with something a little bit more unique to differentiate itself. I can see you want it to be a bit of a nod and wink to ZDoom though so... how about... GibbZoom? 7 Share this post Link to post
Gibbon Posted December 8, 2021 34 minutes ago, Dragonfly said: Exciting concept, will likely watch progress on this. Just one comment though: Both of these names are misleading. ZedDoom, phonetically, is identical to how some people pronounce ZDoom already, which could be confusing. ZDoom64 sounds like a Doom64 port with (G)Z-Features. Sadly I've no good suggestions for alternatives... That said gets my vote! ;) 6 minutes ago, Biodegradable said: Man, at this rate, all the other sourceport devs might as well retire. We got Gibbon just making all of them at this point lmao. Good stuff, fam. You're absolutely insane, but I guess you must just love Doom and programming THAT much. As for the name dilemma Dragonfly mentioned, I also think you'll need to come up with something a little bit more unique to differentiate itself. I can see you want it to be a bit of a nod and wink to ZDoom though so... how about... GibbZoom? Haha! Agree with you both, I'm of course open to suggestions. I think it should at least have a Z in the name. So hit me with them! 4 Share this post Link to post
Gez Posted December 8, 2021 Zombie Doom Since it's resurrecting a dead port, and losing bits of it. Also it's just fun to say. 12 Share this post Link to post
DSC Posted December 8, 2021 2 minutes ago, Gez said: Zombie Doom Since it's resurrecting a dead port, and losing bits of it. Also it's just fun to say. ZombiemanDoom :) 0 Share this post Link to post
SilverMiner Posted December 8, 2021 3 hours ago, Gibbon said: All Assembler code has been removed from the compilation steps (I read it all and really, the performance gain is negligible nowadays). 3 hours ago, Gibbon said: All in all, a decent, optimised, clean and fast software renderered ZDoom-based source port is what I intend this to be. With no feature-creep or bloat. As far as I can see you've made your task a little more difficult :) 0 Share this post Link to post
Gibbon Posted December 8, 2021 (edited) 36 minutes ago, SilverMiner said: As far as I can see you've made your task a little more difficult :) Not really. The compiler will produce far better assembler then what most programmers can write today. Some lines calculating segs is negligible really that and all that assembler would not work on raspberry pi's or Apple Silicon macs. Which would mean rewriting it all in ARM64 assembler. However well written C++, templating common routines, using fast math all go a long way to achieving that. I appreciate the small piece of feedback as always :) Edited December 8, 2021 by Gibbon 3 Share this post Link to post
JackBoi Posted December 8, 2021 (edited) im confused, will this be adding new features or just polishing existing ones? theres plently of features zdoom never had that i always wanted, although i'd hate to talk about features i always wished zdoom had on a project that doesnt intend to add any new ones. im just confused because im pretty sure reboom's doom wiki article talked about adding new features, but from what i understand pooch was just a direct port of winmbf to modern systems without any improvements, so if this is similar to those im completely lost. 0 Share this post Link to post
Gibbon Posted December 8, 2021 2 minutes ago, JackBoi said: im confused, will this be adding new features or just polishing existing ones? theres plently of features zdoom never had that i always wanted, although i'd hate to talk about features i always wished zdoom had on a project that doesnt intend to add any new ones, as i think it would be rude. Depends how large they are really. I mean I'm adding extra gibbing and a few other tiny things but no major features or additions, at least not until I have reduced the cruft and cleaned it up. 0 Share this post Link to post
JackBoi Posted December 8, 2021 (edited) 4 minutes ago, Gibbon said: Depends how large they are really. I mean I'm adding extra gibbing and a few other tiny things but no major features or additions, at least not until I have reduced the cruft and cleaned it up. i meant tiny features. the features i would have talked about would be an option to disable zdoom's weapon attack alignment and an option to disable the projectile transparency. just "quality of life" stuff i guess. in fact, the weapon attack alignment has pretty much been the only reason why i never use zdoom because it bugs me so much that the game quickly becomes annoying to play. 2 Share this post Link to post
Gibbon Posted December 8, 2021 I'll add them to my list along with extra gibbing :) 2 Share this post Link to post
JackBoi Posted December 8, 2021 2 minutes ago, Gibbon said: I'll add them to my list along with extra gibbing :) wow thanks! i actually asked for that "weapon attack alignment" feature on the zdoom forum, but the post was deleted, so i guess im just getting my request fulfilled in another place. 1 Share this post Link to post
Dweller Dark Posted December 8, 2021 While I don't have any feature suggestions, RZDoom wouldn't be a bad name imo. It'd stand for Retro ZDoom. 5 Share this post Link to post
Gibbon Posted December 8, 2021 2 minutes ago, JackBoi said: wow thanks! i actually asked for that "weapon attack alignment" feature on the zdoom forum, but the post was deleted, so i guess im just getting my request fulfilled in another place. No worries it is fairly small and as you said a QOL feature. DW is a friendlier place than those forums. 2 Share this post Link to post
drfrag Posted December 8, 2021 Are you sure? The post wasn't deleted, just nobody else replied. For me it was never a problem. Wasn't it requested before? May be it was one of those ZDoom "fixes", you still fire at the center after all. https://forum.zdoom.org/viewtopic.php?f=15&t=74012 About ZedDoom i don't know what to say. For the name what about Gibbon's ZDoom or GZDoom? xD RZDoom? I registered that one just in case but i think you could use it. xD 1 Share this post Link to post
DuckReconMajor Posted December 8, 2021 5 hours ago, Gibbon said: Demo recording and playback removal (let's face it, it is useless as it desyncs with each new version) Won't you be the one who decides that? Or am I reading this wrong? I thought there was interest in 2.8.1 demo standardization With the optimizations you're providing i thought this was headed in the demo-compat direction 6 hours ago, Gibbon said: Because I'm British and saying 'Zee' makes me die inside just a little more each time. Zed-Doom rolls off the tongue like a fistful of peanut butter lol 3 Share this post Link to post
Gibbon Posted December 8, 2021 (edited) @drfrag No no, esta bien :P I'll let you have RZDoom if you'll choose it :) I am a generous person. I'm sure we can come up with something here. 0 Share this post Link to post
Gibbon Posted December 8, 2021 (edited) 6 minutes ago, DuckReconMajor said: Won't you be the one who decides that? Or am I reading this wrong? I thought there was interest in 2.8.1 demo standardization With the optimizations you're providing i thought this was headed in the demo-compat direction Zed-Doom rolls off the tongue like a fistful of peanut butter lol I guess but to be honest, I had zero idea of any standardisation planned because I never kept up with these things on the forums. It's definitely something that I would like as removing them is just because of the constant desyncs. 1 Share this post Link to post
drfrag Posted December 8, 2021 (edited) I've tried Cold as Hell Special Edition, it runs in software but there are severe slowdowns even on modern versions. I dunno why may be it's about the weather effects. 6 hours ago, Gibbon said: Win32 upgrades to more recent D3D versions You mean D3D11? I considered it but i'm not sure about the benefits. I can't do it anyway. I already commented it i think, dpJudas started a D3D11 backend but it was very incomplete. 6 minutes ago, Gibbon said: No no, esta bien :P I was kidding of course, but i considered doing it at some point. About demos you haven't made any changes to the core of the engine AFAIK, so it should be still compatible with 2.8.1. 1 Share this post Link to post
Catoptromancy Posted December 8, 2021 Once more things are done, having demo code would be useful. Stabilizing features is a great point to lock in demo compatibility. 4 Share this post Link to post
JackBoi Posted December 8, 2021 (edited) 17 minutes ago, drfrag said: Are you sure? The post wasn't deleted, just nobody else replied. sorry, checked back again and it was there. my profile said i didnt make any posts when i went back to check on it after editing the post for clarification this morning, i guess a post just disappears before an edit is approved? i dont really use the zdoom forums so im not particularly knowlageable on the rules and how the site works, so im sorry for thinking it was deleted. 1 Share this post Link to post
Gibbon Posted December 8, 2021 Correct, right now you can play any 2.8.1 demo on it. Yeah, D3D11 but with the DX9 fallback. Not many benefits at all, I just don't trust MS to keep that header for directx9 around. It's probably the last thing I'll do as the Mac stuff is a lot easier :) 1 Share this post Link to post
Redneckerz Posted December 8, 2021 (edited) Wonderful to see this happening. And also wonderful that you are crazy enough to not only consider the stupid ideas brought forward to you in private @Gibbon but that you land them so well too. Jval has competition that's for sure. ;) Also shoutout to @drfrag for your ZZDoom work (Yes, another port folks! The more the merrier). Both have their own set of rules carrying the oldskool ZDoom torch :) 4 hours ago, Dragonfly said: Both of these names are misleading. ZedDoom, phonetically, is identical to how some people pronounce ZDoom already, which could be confusing. ZDoom64 sounds like a Doom64 port with (G)Z-Features. Sadly I've no good suggestions for alternatives... Some historic throwback: ZDoom 64 (With a space) was a custom (and illegal!) port of Doom 64 to ZDoom 2.2.0 back in 2007. ZDoom64 in the basis started as ''ZDoom, but just under 64 bit'' like WinMBF64 used to be a 64-bit update of WinMBF and nothing more. Because 2.9pre just broke a lot of stuff, i discussed with Gibbon the idea of a continuation of ZDoom 2.8.1, but for the modern ages. ZDoom 2.8.1 is finally in a fixed state, but it isn't getting any updates anymore. So with ZedDoom/RZDoom, you get a slimline ZDoom build that should run most things out of the box. 1 hour ago, JackBoi said: im confused, will this be adding new features or just polishing existing ones? theres plently of features zdoom never had that i always wanted, although i'd hate to talk about features i always wished zdoom had on a project that doesnt intend to add any new ones. im just confused because im pretty sure reboom's doom wiki article talked about adding new features, but from what i understand pooch was just a direct port of winmbf to modern systems without any improvements, so if this is similar to those im completely lost. This is about minor fixes and additions, but remaining classic. ZZDoom by drfrag is more liberal and has UMAPINFO/DEHEXTRA, for instance. Not so much with RZDoom (I just like this name enough to already use it lol) though. 1 hour ago, Eddie 2077 said: While I don't have any feature suggestions, RZDoom wouldn't be a bad name imo. It'd stand for Retro ZDoom. Quoting this for agreement, and it significantly differs still from Doom Retro. It also plays well with the theme :) 27 minutes ago, Gibbon said: I guess but to be honest, I had zero idea of any standardisation planned because I never kept up with these things on the forums. It's definitely something that I would like as removing them is just because of the constant desyncs. I think that would be great. Perhaps @kraflab can lend some tips from the DSDA toolshed? One of the criticisms on the ZDoom codebase are its demo's. If that could be standardized, ZDoom demo's may take a big leap. 2.8.1 compatibility should be a good basis. 25 minutes ago, drfrag said: I've tried Cold as Hell Special Edition, it runs in software but there are severe slowdowns even on modern versions. I dunno why may be it's about the weather effects. You mean D3D11? I considered it but i'm not sure about the benefits. I can't do it anyway. I already commented it i think, dpJudas started a D3D11 backend but it was very incomplete. Pretty much has to be the custom Weather-FX system that comes into play. I remember conversations from back then that Cold As Hell melted most rigs due to it. A bit like Crysis but for Doom i suppose :P Still the idea remains ever the innovative! Currently ZDoom has that DX9 surface, right? This would do the same but under DX11 - Inevitiably this would raise the system requirements. 4 Share this post Link to post
Gez Posted December 8, 2021 2 hours ago, SilverMiner said: As far as I can see you've made your task a little more difficult :) The assembly routines were also removed from GZDoom a while ago because it was found out that on modern systems, they were at best negligible, at worst counter-productive. Because yeah, as if programming wasn't complicated enough, but it turns out that what gives better performances on a processor from two decades ago may actually give worse performances on a processor from the last decade. 5 Share this post Link to post
Gibbon Posted December 8, 2021 23 minutes ago, Gez said: The assembly routines were also removed from GZDoom a while ago because it was found out that on modern systems, they were at best negligible, at worst counter-productive. Because yeah, as if programming wasn't complicated enough, but it turns out that what gives better performances on a processor from two decades ago may actually give worse performances on a processor from the last decade. Indeed, don't get me wrong I love assembler coding but it literally took me 10 minutes of reading it to find out it is woefully inefficient on modern multi core systems. It wouldn't even give you .5 frames more. It would just make you feel warm and fuzzy that "I am using assembler" ;) RZDoom does roll off the tongue, and you still don't have to say Zee. 5 Share this post Link to post
Astronomical Posted December 8, 2021 I personally prefer zdoom over gzdoom so this may be interesting. 3 Share this post Link to post
GoneAway Posted December 8, 2021 1 hour ago, DuckReconMajor said: I thought there was interest in 2.8.1 demo standardization As far as demo competition goes, we already have 2.8.1 - demos won't desync in a future version because there is no future version. The only zdoom fork that would be used for speed demo recording would be a dsda-branded and moderated fork with changes and alterations that would be irrelevant for the audience outside speedrunning. Of course there are other applications for demos, but since I was pinged in this thread that is the stance of dsda. 4 Share this post Link to post
Gibbon Posted December 8, 2021 (edited) Thanks Kraflab for that clarity, guess I can try to stabilise the demo format enough that it won't desync each version. Ok, so thanks to the feedback, it is now RZDoom (Retro Z(ed)Doom) :P. I've updated the Mac and CMake stuff to reflect this, renamed the repo. I'll do the Windows projects and binary again when I'm back on it. 4 Share this post Link to post
Xaser Posted December 8, 2021 (edited) Huh, this is interesting -- something that's been on my mind for a while now is that most of ZDoom's "it's super-inaccurate" reputation is because of poor choices of default settings more than anything else. There's plenty of compat/gameplay options that, with a bit of fiddling, can let you configure the port to be Close Enough(tm) to the base game that all but the most geeky of users won't be able to tell the difference (excluding multiplayer and demos). It's been a while since I've looked at this, so I need to comb through it again and come up with a list of suggestions, but would you consider changing some of the defaults so it's a closer-to-Doom experience out-of-the-box? Funny enough, the port already solves a bunch of these already by not having the GL renderer (GZDoom's default rendering options are way far from how the software renderer looks), so that's one victory already. :P [EDIT] Hmm, if this port is based on 2.9pre, that means it has at least some level of ZScript support, right? Having just the basics is still a gigantic step up from 2.8.1 DECORATE, so this might be an interesting thing for mods to target. 14 Share this post Link to post