Quake Brutalist Jam III

Now that I've reviewed the mod, I would like to ask about Quakes stagger system. How does it work? Is it the same as DOOMs? I figure that I'd ask here, since the Nightmare difficulty apparently alters the stagger chances for enemies, and I've always been quite curious about how it works since it seems inconsistent. I do apologise if this is not the right place to ask.
 
Now that I've reviewed the mod, I would like to ask about Quakes stagger system. How does it work? Is it the same as DOOMs? I figure that I'd ask here, since the Nightmare difficulty apparently alters the stagger chances for enemies, and I've always been quite curious about how it works since it seems inconsistent. I do apologise if this is not the right place to ask.
Each enemy monster has it's own logic to determine when the pain animation gets triggered and how often it can be triggered. The monster code is in the "src" folder and each monster's file is prefixed by m_, such as m_ogre.qc. Each time a monster takes damage, it's pain function is called and it will check to see if the monster should become staggered. For the Ogre in QBJ3 the function is called ogre_pain and looks like this:

Code:
void(entity attacker, float damage) ogre_pain =
{
    local float    r;
    
    // don't make multiple pain sounds right after each other
    if (self.pain_finished > time)
        return;
        
    ogre_pain_sound();
    
    r = random();
    
    if (skill == 3)
        r *= random();    // nightmare: make the long stuns rare
    
    if (r > 0.12) //since we removed the other pain anims, i recalculated the base chance of the pain anims. longest is 12% #funfact
        ogre_pain1 ();
    else
        ogre_paind1 ();
}

First of all, it checks to see if it was already staggered too recently. This is the self.pain_finished > time line. pain_finished specifies at what time in the future the monster can be staggered again, time is the current time. If the monster was staggered too recently then the function stops there and then and won't be triggered again until the Ogre takes more damage, at which point it'll check again. For this example we'll assume enough time has passed for the monster to be staggered again, or that the monster has yet to be staggered at all.

Next line ogre_pain_sound(); triggers the pain sound effect.

After that, it generates a random number. Quake's random numbers are between 0.0 and 1.0.

Next line, it checks to see if the skill is set to nightmare (skill == 3 means nightmare). If so then it makes the random number smaller by multiplying it by another random number. On average it will halve the value of the random number.

Finally, it picks between two different pain animations based on the final result of the random number. If the random number is above 0.12 (88% chance usually) then it triggers the short stagger animation which is started by ogre_pain1(). Otherwise if the random number is equal to or below 0.12 (12% chance usually) then it triggers the much longer stagger animation through ogre_paind1(). Usually monsters have multiple pain animations but the Ogre in QBJ3 only has 2: a short and long stagger. On nightmare, the extra modification to the random number ends up meaning that the chance for a long stagger fluctuates between 0% and 12% each time the monster takes damage, or 6% on average.

Those two stagger animation functions also determine how much time has to pass until the monster can be staggered again by calling the PainFinished function (code for this not shown). The short stagger prevents the Ogre from being staggered again until 1.0 seconds have passed, and the long stagger prevents the Ogre from being staggered until 2.0 seconds have passed.

TLDR: On non-nightmare, the Ogre has a 88% chance of suffering a short stagger when taking damage, and a 12% chance of suffering a long stagger. If a short stagger occurs then it can't be staggered again until 1 second has passed, and for long staggers it's until 2 seconds have passed. On nightmare the long stagger chance fluctuates between 0% and 12% (average at 6%).

And that's just the Ogre. For the Hell Knight in QBJ3, on non-nightmare it will be staggered if 44 damage was taken in one go or if 8 seconds have passed since it was last staggered. On nightmare, the auto-stagger after 8 seconds is disabled and you have to do 44 damage in one hit to stagger. Regardless of difficulty, it can't be staggered again until 1 second has passed.

Shambers have different logic as well, etc. It's all custom per monster type.

Finally, if you're wondering why they chose to multiply two random numbers for the Ogre instead of just changing the nightmare long stagger threshold to 6%... your guess is as good as mine!
 
TLDR: On non-nightmare, the Ogre has a 88% chance of suffering a short stagger when taking damage, and a 12% chance of suffering a long stagger. If a short stagger occurs then it can't be staggered again until 1 second has passed, and for long staggers it's until 2 seconds have passed. On nightmare the long stagger chance fluctuates between 0% and 12% (average at 6%).

And that's just the Ogre. For the Hell Knight in QBJ3, on non-nightmare it will be staggered if 44 damage was taken in one go or if 8 seconds have passed since it was last staggered. On nightmare, the auto-stagger after 8 seconds is disabled and you have to do 44 damage in one hit to stagger. Regardless of difficulty, it can't be staggered again until 1 second has passed.

Shambers have different logic as well, etc. It's all custom per monster type.

That is really, really interesting! Assuming the stagger chances weren't changed much from base Quake (which I think is a fair assumption since it seems none of the stats were changed), it'd explain why I've always found staggers there to be so inconsistent. Thank you!
 
  • Like
Reactions: Gubbins
By the way, how come this mod isn't available on Quaddicted? QBJ1 and 2 are on there, so I find this exclusion to be a but strange.
 
quaddicted adds things to its database whenever quaddicted gets around to adding things to its database, but generally archives everything. it'll show up when it does
 
hope they wait until after the update, they can take their time. but also with the size of the pack, they just might skip it. who knows.
we'll put it up on moddb tho
 
The very first screenshot in the description "qbj3_hcm.jpg" is worth the mentioning. Since I don't know how to progress after this place (even with the help of a fan).
P.S. The ladder to heaven was soooo uneasy to notice :)
 
Last edited:
Is KOE-37 the largest/longest Quake map to date? I haven't played 37th Relic, Rubicon Rumble, or Smej2 yet so I'm not sure how they compare. Just know they're also huge.
 
Sector 7 by id0 also causes driver crashes (had to restart my PC again) using Ironwail 0.8.1 + RX 6600 with the latest driver release (25.12.1). vkquake seemingly has no issues with this one too.
 
This mod contains really awesome maps! I can't stop to replay scampie's map, it's one of the greatest maps I ever played in Quake (and many recent commercial games)!

Several maps and the player's model (a gal in Quake, at last!) strongly reminds me some aspects of the Borderland game, and most especially Oni (an old Mac game):


Was there an influence there? I'm really curious, since the player's model looks similar in some ways to Konoko from Oni.

640px-Konoko_Multiple_Render.jpg


And really, Scampie's map is totally awesome! Can't still stop replaying it with some dark techno music...
 
Last edited:
There are several maps in the mod that I really don't like (too low quality for my taste), and I would like to change them to some other maps from my collection. So is there a way to change maps that are associated to the start map?

For example, suppose there's a map called "qbj3_scampie.bsp" in the maps directory (this is for the example only, since this particular map is the one that I prefer!), and I would like to change it to some "quakemap.bsp" from my default id1 directory. Of course, I could simply drop that map and change its name to "qbj3_scampie.bsp". That would do the trick. But I prefer to keep the original map name. Is there a way to edit the start map so it recognizes "quakemap.bsp" in the scampie's slipgate?
 
quaddicted adds things to its database whenever quaddicted gets around to adding things to its database, but generally archives everything. it'll show up when it does
Hey Scampie, I'm wondering: are you working in the commercial game industry?

Your map is trully awesome! It's of commercial level quality.
 
I would like to change them to some other maps from my collection. So is there a way to change maps that are associated to the start map?

The portals simply point towards maps based on filenames. If what you want is to play other maps with the qbj3 progs, you can just map command into them.
 
There are several maps in the mod that I really don't like (too low quality for my taste), and I would like to change them to some other maps from my collection. So is there a way to change maps that are associated to the start map?

For example, suppose there's a map called "qbj3_scampie.bsp" in the maps directory (this is for the example only, since this particular map is the one that I prefer!), and I would like to change it to some "quakemap.bsp" from my default id1 directory. Of course, I could simply drop that map and change its name to "qbj3_scampie.bsp". That would do the trick. But I prefer to keep the original map name. Is there a way to edit the start map so it recognizes "quakemap.bsp" in the scampie's slipgate?
If you would replace some of the maps in QBJ3 with maps that are already in your collection (and I would assume that those are not maps made for the QBJ3 progs), they would probably come out somewhat unbalanced, given that the weapons are changed a lot. Just don't play the levels you don't like. Or play the other levels you want via the console (like riktoi pointed out).

This is kinda like getting a book with short stories from different authors and then ripping out the pages of the stories you do not like and pasting in some stories you like instead. Bit odd, imo.
 
Is there a way to edit the start map so it recognizes "quakemap.bsp" in the scampie's slipgate?
With a resource editor. You need to search the start.bsp in ASCII for the text entry you want and change it according to your needs.
Beware though, the new entry has to be of exact same chars amount as the previous one.
This means in some cases you'll have to shorten the new file name or add some spaces in the resouce name to match the new file name.
Save the modified .bsp and test it.

Remember : a single char more or less than the original entry and the modified bsp is rendered useless...
And @ptoing remark above has to be taken into consideration too !
 
Hey Scampie, I'm wondering: are you working in the commercial game industry?
...i don't think my map is THAT good, it's kinda 4/5 imho... but thanks glad you liked it. i don't work for anyone right now


With a resource editor. You need to search the start.bsp in ASCII for the text entry you want and change it according to your needs.
Beware though, the new entry has to be of exact same chars amount as the previous one.
This means in some cases you'll have to shorten the new file name or add some spaces in the resouce name to match the new file name.
Save the modified .bsp and test it.

Remember : a single char more or less than the original entry and the modified bsp is rendered useless...

better way to do this is is to use bsputil and use the command to extract the entities from the bsp. this will produce a .ent file, which is essentially the same thing as a .map file except without any brushes. you can then edit the entities in this .ent file to your heart's delight, and then run qbsp with the -onlyents flag to recompile the maps entities. you will also need to run light with -onlyents as well if the level has switchable lights
 
...i don't think my map is THAT good, it's kinda 4/5 imho... but thanks glad you liked it. i don't work for anyone right now

But did you worked for the game industry before? I'm curious. Your maps show an high quality that I do appreciate a lot.
 
...i don't think my map is THAT good, it's kinda 4/5 imho... but thanks glad you liked it. i don't work for anyone right now

Scampie, how do you activate that secret below the large escalator? I tried very hard to find the switch that open the walls.

I did found two other secrets, near the start point (switches on both sides of the stair, and switch on top of a box), but still can't find the two others.
 
yes, i've worked on AAA games and indie games over the last 20 so years, and have been professionally unemployed for most of that time

re elevator secret: if i told you, it wouldn't be a secret... all the secrets are shootable buttons that are at angles you wouldn't normally look when playing normally... look around that elevator, i'm sure you'll find it eventually

thanks for enjoying my map, but this thread isn't 'ask scampie a million questions', it's for the entire jam pack, so make sure you go play the other maps there's lots of good stuff in there