The engine has a hard object limit of 350, which includes all players, powerups, robots, and transient weapon fire. Some slop is reserved at the top end to avoid the situation that nobody can fire their weapons, so calling it 300ish is reasonable. That limit has not been raised ever in Rebirth, as far as I know. There's some interest in doing so, but historically some of the data structures reacted badly to very high object limits. I fixed the worst of that. We might be able to raise it now. However, there is a problem with save file compatibility too. According to a comment I made almost exactly a year ago on Github, part of the savegame expects exactly MAX_OBJECTS to be written. If we raise MAX_OBJECTS, then the savegames become incompatible.

Zico also expressed concern about a higher object limit causing problems with multiplayer sync; that should not be an issue for single-player slaughter maps though.

Overhauling the savegame format has been on my to-do list for a while, but it sits below some other very big projects. Since I'm the only one working on any of those, progress is a bit slow.

(10-14-2017, 12:21 AM)Kp Wrote: The engine has a hard object limit of 350, which includes all players, powerups, robots, and transient weapon fire. Some slop is reserved at the top end to avoid the situation that nobody can fire their weapons, so calling it 300ish is reasonable. That limit has not been raised ever in Rebirth, as far as I know. There's some interest in doing so, but historically some of the data structures reacted badly to very high object limits. I fixed the worst of that. We might be able to raise it now. However, there is a problem with save file compatibility too. According to a comment I made almost exactly a year ago on Github, part of the savegame expects exactly MAX_OBJECTS to be written. If we raise MAX_OBJECTS, then the savegames become incompatible.

Zico also expressed concern about a higher object limit causing problems with multiplayer sync; that should not be an issue for single-player slaughter maps though.

Overhauling the savegame format has been on my to-do list for a while, but it sits below some other very big projects. Since I'm the only one working on any of those, progress is a bit slow.

The sync issue zico referenced isn't with objects during gameplay. It's with objects during first load. As I understand his post, when a client joins an in-progress game, the host sends to the guest all objects. If the objects change in relevant ways before the transmission is complete, the host restarts from the beginning (rather than sending only what is changed). This repeats until either a full sync with no changes or somebody gives up. For a large enough number of objects, it could be difficult to get to the end without restarting.

As for what is reasonable, if the multiplayer code were more clever about not resetting, I'd probably push it up to at least 1024, but maybe much higher. I'd have to run the numbers on how much data bloat that causes, since the game always allocates space for the maximum possible number of elements.

Vignettes is amazing and everyone should play it but it's not slaughter. The biggest dogfight in Vignettes map25 is this, whereas Doom slaughtermaps tend to be more like this.

I think the main issue with slaughtermaps would be design-based, not implementation-based. Slaughtermaps are based around a number of gameplay elements in Doom - notably monster infighting and the fact that monsters block each other as well as you - that aren't present in Descent.

Slaughtermaps try to fill up an area with as many monsters as possible (sometimes thousands of Revies and HKs clogging up a massive courtyard) and make you cut your way through the weakest point. They can actually be very carefully choreographed so there's only one "proper" way to beat a given fight. Even if Descent had an object limit of >10000, that kind of gameplay just wouldn't be feasible - a full-3D environment is much, much harder to "clog up", robots don't have proper collision with each other so you can just bunch them up, and if you gave the player the Fusion it would cut massive swaths through just about any swarm of robots.

And that's just one example - another thing slaughtermaps like to do is put a bunch of revenants or cyberdemons behind a "meat-shield" of Barons or HKs, with you on the outside. You have to circle them, making sure the mass of demons doesn't get too close to you to wall you off, while making them infight with each other to thin them out (since you're not given enough ammo to kill them all yourself). Not doable in Descent, partly because of 3D and the bunching-up but also because robots don't infight - in fact, I think I've seen robot shots going right through other robots, so I'm not sure if they can hurt each other at all except with missile splash damage.

It might be possible to stage a fight in a way that mimics some of the typical slaughtermap characteristics, but I'm not sure if you could really make a slaughtermap that plays like Doom slaughtermaps.