Two curiosities about competitive Dooming

IIRC Max-Kill runs are when you don't actually obtain all of the secrets. You can still get credit for it, but UV-Max seemed to be the standard. This is because it's actually encountering everything in the map and doing everything necessary to fully complete it. It's like beating a game but not getting all of the achievements. It could be a nuisance sometimes, but it's not a full completion until all of those secret sectors are tagged.

 

For the most part, damage on monsters isn't really RNG. There are standards in which it normally takes to kill all monsters (i.e. 3x point-blank SSG for a Hell Knight, 2x point-blank SSG for a revenant, etc.). Speedrunners have mastered this algorithm before they even attempt a UV-Max run. The real RNG is the monster positioning and infighting. Is that Cyberdemon gonna infight with that revenant horde? Is that Spider Mastermind gonna ignore you? Are those Archviles going to make their way out of the hallway and into the main arena? You can control this to a certain extent, but sometimes shit just happens that's out of your control. It's frustrating but that's what makes Doom so dynamic and playable. My theory is this: if your route/method requires too much RNG, attempt it a different way.

2 people like this

Share this post


Link to post
24 minutes ago, stru said:

algorithm

Well, but some of them are awkward. For example, Cacodemons take 2.5 SSG blasts/rockets and Mancubi take 3.5 SSG blasts/rockets. The number is not average, but to show these things may have variances.

1 person likes this

Share this post


Link to post
28 minutes ago, GarrettChan said:

Well, but some of them are awkward. For example, Cacodemons take 2.5 SSG blasts/rockets and Mancubi take 3.5 SSG blasts/rockets. The number is not average, but to show these things may have variances.

Thats because the bullet spread of the SSG is nuts. Maybe that gun was a bad example lol 

Share this post


Link to post
On 11/14/2017 at 1:21 PM, Linguica said:

Once I wondered if it would be possible to create a custom PRNG table that would eliminate randomness in damage calculations but would still allow the game to function more or less normally. This could be done by having a spread of values, but which all ended up giving the same damage after the modulo operation the code does. The problem is that the damage calculations include: mod 3, mod 5, mod 7, mod 8, and mod 10; certain things want a balanced spread of even and odd values; you need a number of 160 or 161 in order to have archvile ever be spawned by an icon of sin; you need values of 3 or less for enemies to ever respawn in Nightmare BUT any values of 4 or less also cause super nukage to damage you through a radiation suit; etc. So in other words it's not really feasible.

It would be very easy to manipulate prndindex, or have an array of prndindex[] values, by setting the start index and a wraparound factor (mod), so that each action works the same, every X times. For example, on shotgun blast X, you get the same pattern as you did during shotgun blast X-4. This would give you 4 different blasts (for the sake of pseudo-randomness, or boredom elimination), yet be predictably deterministic. A separate formula could be used for each type of randomness, even without modifying each calculation that uses P_Random(). A table-driven approach could be implemented.

 

But, here's the issue with a non-PRNG Doom: When you add a pseudo-randomness factor to a game like Doom, you get something else "for free": The randomness completes the lack of a proper physics engine. It accounts for the lack of proper collision detection. What if your bullet hits the imp's arm? This should cause minimal damage, vs. him being shot in the chest. What if a gust of wind affects a long-distance shot? The randomness actually simulates some real-world complications in a very simple way.

 

In the 70's/80's video games, if an alien missile hits you dead center, or just grazes the side of your ship, you're dead - game over, no matter how direct the hit. Knowing that it takes 2 pistol shots to kill a shotgun guy might actually create a fun game, no doubt. But, depending on how long you play with that dynamic, you'd become so good that you wouldn't even have to look - you'd just fire twice, and move on, knowing that the enemy is dead. Again, it could create a new level of elitism, a new level of Doom mastery.

 

So, on one hand, I do think non-random damage could actually be fun, as a new, specific way to play Doom.

 

On the other hand, you would lose that extra simulated realism that fills in the missing checks in collision detection, steadiness of the firing hand, the effects of fatigue, sweatiness and greasiness of the hand, unsteady stance while running across uneven floors, heavy cross winds, and a million other factors affecting the ability to aim. Adding some randomness goes far towards including consideration for all those factors, without actually having to test for them during every shot.

 

Also, the randomness forces you to look: "Is it dead yet?" This is a dangerous look at times, so it adds a tenseness and a bit of fear, contributing to the feel of the game. And, I think this is valid for all game modes.

2 people like this

Share this post


Link to post
3 hours ago, stru said:

My theory is this: if your route/method requires too much RNG, attempt it a different way.

More like if your route doesn't depend on rng you have a bad route.

3 people like this

Share this post


Link to post
4 hours ago, stru said:

Thats because the bullet spread of the SSG is nuts. Maybe that gun was a bad example lol 

Actually no. A full blast of SSG ranges from 170~255 (may have error because it's my way to calculate, another said its range is 175~260 or 165~250, can't remember) due to the RNG table in vanilla Doom (GZDoom has a different RNG table). Cacodemons have 400 hit points, so there's a chance that both blasts get a low damage roll and don't kill one. The same happens to Mancubi since they have 600 hit points.

 

Rockets deal 20D8 + blast damage (0~128). If full blast damage is assumed (which doesn't usually happen), the range of a direct hit rocket is 148~288, which is sort of similar to the range of a full SSG blast.

 

According to the range, you can never kill a Mancubus with 2 full SSG blasts, but maybe an Arachnotron (500 hp) or a Hell Knight (500 hp). However, I haven't seen that happen. Rockets do happen relatively more frequently though.

Edited by GarrettChan

Share this post


Link to post

I think the post a couple of posts above nails it on the head. The PRNG adds a distinguishing chaotic element, and it makes events in the game feel more discrete. The game was made by D&D players, so something like a super-slime floor dealing damage through the rad suit is like them telling you that you rolled a 1.

Share this post


Link to post

A long time ago, I cared about 100% items and in my DHT Master exams I actually take the time to do so.  Later on, I decided that if I'm at 200/200 and full ammo, going for a higher item % was busywork with no gain.  These days, I'm happier if I complete a map without needing every last soulsphere (Deus Vult's 40 or so comes to mind here).

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