GZDoom chokes playing Megawads

Need help running G/Q/ZDoom/ECWolf/Zandronum/3DGE? Did your computer break? Ask here.

Moderator: GZDoom Developers

Re: GZDoom chokes playing Megawads

Postby Graf Zahl » Sun Jun 20, 2021 4:32 am

If it was that easy somebody woulld have tried already over the last 20 years, wouldn't you think?

You have to accept that the only way to handle several thousands of monsters at the same time is with an utterly primitive AI and movement code. And even then you still have to cope with serial execution of all this so all the multiple cores of modern CPUs won't help at all. If you tried to change the rtules the result would no longer play like Doom so there is no port that tried to go that route.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Joined: 19 Jul 2003
Location: Germany

Re: GZDoom chokes playing Megawads

Postby Flynn Peffingtug » Sun Jun 20, 2021 4:50 am

I accepted it after yesterdays replies saying this is all that is possible, now im just curious IF it could be done with a genius coder making a doom only engine from the ground up.

FYI I don't know code nor know what is even possible with game engines and current tech advancements, just some dumb dude wanting to kill thousands of monsters very smoothly lol

You've all been helpful in informing me what i thought was wrong on my end turns out it's the game's limitation itself, thank you.

Awesome community.

Flynn Peffingtug

Re: GZDoom chokes playing Megawads

Postby Rachael » Sun Jun 20, 2021 5:14 am

With the eponymous "genius coder" you quite easily invoke, many things are surely possible, but why recreate Doom when you already have, er, Doom? You seem to ask a lot while offering so little in return.

I am sure the current GZDoom+Raze team could manage a new engine from the ground up if we really wanted but it would be extremely labor intensive and for the most part it would be too much work for too little gain. Not that it wouldn't be a fun project, mind you. But personally I simply don't have the time needed to do something like that, and I'm fairly sure I am not the only one with that problem.

Keep in mind that GZDoom is the result of 23 years of dedication and is really a labor of love. And truth be told Graf is responsible for like ... 70% of it if not more. Actually it's nearly impossible to accurately quantify the amount of work he's put into it because none of the code he outputs actually indicates how much time he's actually spent on it or how much time he's run into problems where something wouldn't work and he spent a whole frustrating night trying to figure out what stupidly simple thing may have broken where, and the same is true of the other developers as well.

So it's really better to leave things the way they are, at least until someone comes along with enough free time to actually do a full rewrite.

That being said though - the Doom engine has actually been rewritten completely, multiple times, in different languages. DelphiDoom and Mocha Doom in particular comes to mind, but I think there are others as well.
User avatar
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Debian-like Linux (Debian, Ubuntu, Mint, etc) 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: GZDoom chokes playing Megawads

Postby Flynn Peffingtug » Sun Jun 20, 2021 6:26 am

So thank you Graf for your hard work, can't tell you how many hours I've spent playing vanilla Doom let alone all the mods and fun with consoles commands making my own fun ways to play.

Just so you're all wondering where this curiosity came from I stumbled upon megawads from googling map packs and after playing Map27 of SlaughterFest 2012 it was lagging as all F. Was wondering why and google lead me to a YouTube play of Map27 seen here:

Blown away from the smooth gameplay with no noticeable lag but didn't realize it was PrBoom being used. This is what brought me here to ask this question. It's was a simple 'that does it, why can't this do it?' thing and now I know.

Also I'm not requesting anything (please don't take actions from this thread) I just have a habit of asking what if question.
Flynn Peffingtug

Re: GZDoom chokes playing Megawads

Postby Gez » Sun Jun 20, 2021 7:05 am

Flynn Peffingtug wrote:but have it where it CAN run more info than the 35 frame limit

More info than 35 frames of "thinking" per second? It'd be even slower.

In fact, modern games often behind the scene have the equivalent of a thinker system that's slower than that -- like only 20 frames per second. On the other hand, animation and physics are decoupled from AI, so those can be at 144 frames per second or even more if your monitor can handle it.

The thing is that what you want if you want better performances is to run less info, not more. Modern games generally have different levels of "thinkers", like some entities in the game do nothing and are just there, some do nothing except collision, etc. This allows to reduce the number of checks that have to be done because not all entities have the full thinker treatment. In the Doom engine, though, there's only one type of actor. A non-solid decoration is the same as a cyberdemon. They go through the same processes exactly. Obviously, the cyberdemon will still need more work because it has an AI that can run extra actions (such as looking for a target, checking line of sight to this target, and shooting at it) while the simple decoration will not do that. But technically it could. That's the basis of how DEHACKED can turn props into monsters and vice-versa.

And as already explained, GZDoom does allow modders to do a lot more things with these actors than PrBoom+, so the price to pay for that increased flexibility is more complexity and the ensuing lower performances. This would be a problem if PrBoom+ did not exist. But it does. The Doom community has plenty of actively-developed ports, and that allows each developer to go in a different direction.
Joined: 06 Jul 2007

Re: GZDoom chokes playing Megawads

Postby SanyaWaffles » Sun Jun 20, 2021 8:22 am

I think what people forget is before ZScript came along the base Actor class had to keep being extended to support more and more features, thus causing more overhead. Even then, all ZScript did was expose all this and allow custom Actors and Thinkers to be created. It didn't make each object "think" differently. Actor has to do a metric ton of processing.

... basically what Gez said, really.

Even with the JIT compiler for ZScript, as well.

It's something that keeps being brought up time and time again - and I see so many people try to play the "what if" game. I feel if you really need something that allows for more abstraction and splitting up of what does what, use a different engine... or do what me and plenty of others do, work within the limits. Limits can help with creativity.

I just wonder how many of these threads it's going to take before people understand... at least the ones who want to understand. Some people simply want to hate on the devs when it comes to the work they do.

(Not saying that's what your doing here, but I have seen it.)
User avatar
Certified Heretic and Grill Champion
Joined: 25 Apr 2013
Location: Disappointment Island
Discord: SanyaWaffles#5095
Twitch ID: sanyawaffles
Operating System: Windows 11
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: GZDoom chokes playing Megawads

Postby Charles Nupperstere » Sun Jun 20, 2021 10:53 pm

Can't stress this enough, I'm a caveman and I don't know how games work nor what most of this stuff even means. I'm a dumbass. Giving me more technical explanations isn't gonna drive the nail deeper, it's in and I got it:

'It's not you, the game has limitations and throwing faster hardware at it won't solve it.'

'Ahh okay, had a feeling. Someone asked what the wad was and it's X wad with results as to where it lags. Also curious what if someone made...'

'No, still won't. Sorry dude.'

'Huh, didn't know. Okay thanks.'


Not here to argue anything, my question was answered 4-5 times and now it seems like same thing is just getting repeated. Let's just let this thread end and get some In N Out, I'm hungry.

Again, thanks.

Charles Nupperstere


Return to Technical Issues

Who is online

Users browsing this forum: No registered users and 3 guests