Jump to content

Balancing the SSG & Encounter design questions


Recommended Posts

I think that the SSG is really fun, but after a player gets one, many open encounters just become a cookie clicker simulator with some fun sound effects.

It might have slightly less DPS than the Rocket Launcher, but it takes just 2 shells to fire. The Shotgun Guy, drops 4 shells.

 

Unless the encounter is really tight and punishes the SSG's long reload animation, the weapon choice is pretty obvious.

 

And even then, the SSG's older brother is punished even more in those kinds of scenarios.

To fire the regular shotgun, you need press 3, wait for the raise state of the SSG to finish, press 3 again, wait for the raise state to finish AND THEN fire.

 

How do you guys balance your maps and encounters around the SSG?

How can I make the shotgun useful, besides post encounter cleanup?

How can I make the player's choices around weapons less obvious and more varied throughout an encounter?

Share this post


Link to post

I think you've gotten DPS (damage per second) mixed up with damage per shot; the SSG does comparable damage to the rocket launcher each time you fire, but the rocket launcher has nearly triple the firing speed, so it does a lot more DPS, even without counting splash damage.

 

The regular shotgun has its uses over the SSG, mostly centered around its greater accuracy and lack of vertical spread. The real weapon it gets outclassed by is the chaingun; everything the shotgun does well, the chaingun does better, limited only by ammo. And I think that's fine; not every weapon needs to have a use in the presence of every other weapon and in every map. The shotgun being outclassed by other weapons isn't any more of a problem than those weapons being outclassed by the BFG. The power curve is a tool for you to use.

Share this post


Link to post

I balance for the SSG by:

- making it hard to time the shots - you're being attacked from all directions and might not want to stick around to fire a second burst

- using a lot of arachnotrons or mancubi - stemming the tide of an approaching horde of these guys can be a losing battle, especially if cacodemons are firing over the top

- considering it a heavy weapon and not giving it to the player on map 02 to fight imps with

Edited by yakfak

Share this post


Link to post

Delaying giving it to the player for a while is one option. A simple way is to have many enemies outside the effective range of the SSG. Also, as has been said, is having threats in multiple directions at once so the slow firing speed is a detriment. Another way is to provide less shell ammo and more ammo for other weapons to encourage players to use those.

 

A way to encourage single-barrel shotgun use is to combine trash tier enemies with less shell ammo, and one way to accomplish this is to have fewer shotgunners in the mix so you're not spending 2 shells and getting 12 back from the three sergeants you just killed. Another way is to have trash tier enemies on fixed positions outside optimal SSG use.

Share this post


Link to post

Personally, I just lean way too heavily into the rocket launcher. Problem solved... oh wait 😉😂

 

Joking aside, so long as shotgun shells are available, people are gonna use it primarily. It has the least valuable ammo, is perhaps the most abundant ammo type to find, and does great burst dmg. Aside from nerfing it, buffing the rest of the weapons, or refusing to provide much ammo for it (all of which will take people out of their comfort zones) the only way to get it out of player hands is to also provide a bunch of rockets and/or plasma to lightly encourage their use instead. Even then though, even in a map bursting to the brim with plasma ammo, people will still choose to use the ssg if it is provided 🙃😂 Plasma and rockets are simply too valuable to use in a beautiful, paradoxical way lol.

 

Funny as that may be, it's just so ubiquitous that there's no getting around it and it's perhaps better to just embrace it being a thing while subtly adding other means for players to forge their fun through your maps.

Edited by Fonze

Share this post


Link to post

A lot is interconnected here. You already got suggestions about thing placements, so I'll ask about your layout design.

 

There's a certain type of primitive layout made mostly of flat rooms and corridors, which simply dumps roaming enemies in the layout -- and that style of mapping is basically tailor made for the player to be able to coast on SSG. Not only that, but a lot of the typical ways of encouraging other weapons don't easily work in that layout. Want to set up some mid-range combat that encourages SG/CG/RL/PR? Well in that type of layout there aren't many reasonable spots to place mid-range ledge monsters or turrets or monsters kept organically further away by height variation; everything will allow the player to get closer. Want a brief moment of urgency the player has to quickly react to? They just flee to a chokepoint and comfortably SSG camp, instead of having to lob a rocket or two or quickly take out the major threat with plasma or painstun something with the shotgun/chaingun. Want to design a dead drop the player gets spooked by and so pulls out the chaingun or plasma rifle as a ready weapon for their pain-stunning capabilities? Well the layout is flat so you have no dead drops or lift rides up to the unknown; there's no dynamic architecture so a lowering floor will never drop the player into a fight. Even rocket spam won't work as well because the player can still flee to the nearest door and SSG camps it anyway. 

 

So it's an indirect answer but "better layout design" already helps quite a lot. (The causality doesn't work the other way. SSG-centric gameplay does not imply that a map's layout is primitive. But that sort of primitive layout, unless you spam so many enemies the player has no choice but to use bigger weapons, usually allows this type of SSG coasting.) 

Share this post


Link to post

From a different angle than discussed above - not keeping things vanilla has plenty of options to explore. A lot will involve a degree of power creep, but nonetheless:

1) faster weapon switching

It's not a problem to pull out SG when it takes little time. Plenty of wads have done that.

 

2) low ammo allotment

Not just placement, but actual pickups and max limits. This does not necessarily mean "low ammo in the level overall", but rather "you don't get to build a bank of 80 shells to spam SSG off of when your total is 30/60". Early Struggle (Antharesian, not Solar) is an example of having to swap out weapons often and hunt for pickups.

 

3) buff the shotgun into relevance

Match the monster usage desires with weapons provided. Imps not dying in one hit might be intended ("look, they're tougher than human fodder") or it might be an artifact of vanilla design ("they're fodder for my vision's purposes, so let's allow SG to just drop them and introduce a couple new tougher enemies").

 

4) make SSG eat more ammo

Not necessarily full-blown "super heavy shot with slow reload for 3 shells" rework like in Vesper, but some form of widening the gap.

 

5) more varied fodder roster

Alongside "better layout design" - also more enemy types that can be reliably dealt with by SG, with some form of gameplay other than "they hitscan too".

 

6) drop the pistol and put SG into slot 2, forget slot 3 (or 3+, whichever)

Depending on what you're making, maybe you don't need/want to care about token "discarded after 40 seconds until a shootable switch" situation.

 

7) move shotgun out of hitscan space

A more radical option, but if SG is a projectile weapon its presence can be widely different.

Share this post


Link to post

Design combats where the player needs to use other weapons. Multiple revenants that the player can't get close to forces them to use the rocket launcher or plasma instead, or waste a lot of ammo in the process. Having vertically narrow "slots" in between the player and projectile-throwing monsters that block most of the pellets' vertical spread makes the chaingun and single shotgun more viable, too.

Share this post


Link to post

The way I like to do it is put SSG in a secret prior to big encounter.  This rewards the player for exploring and makes the following encounter much easier than without the SSG.  I use these same tactics for BFG as well.  Design an encounter that is doable, but absolutely punishing without the weapon you have in mind..

 

In my opinion tho, encounters shouldn't be designed solely around a weapon in the fashion of, you just gave the player a weapon and now expect them to use it.  Go look up any version of doom speedruns and i do mean any.. from doom 1 all the way to doom eternal. the top players of this game don't just get the new most powerful weapon, then stick to it.  they are constantly cycling between guns.  the goal of this i think is to ensure the player is always outputting damage, regardless of what gun is reloaded or not.

 

However if you are adamant about balancing and encounter to the SSG for example, in my opinion its gonna come down to striking a balance between 1 shootable and non 1 shootable enemies.  Like you said part of the reason SSG is good is because it feels like a powerhouse.  If you just throw a player in a room with 4 barons, that's not fun.  that's just forcing the player against bullet sponges their best weapon cant effectively and quickly kill.  I would do something along the lines of like, 5-10 low tier enemies followed by 2 hell knights, then alternate that pattern.  Example, player walking down hall with SSG, 10 low hit scanners and 2 hell knights pop out.  Player knows hit scanner > hell knight as a threat.  so they use SSG to mow down the low teirs.  that = fun.  but the 2 hell knights will take between 4-6 shots to kill, so its not like a tank bullet sponge like a baron and can be dispatched relatively quickly.  but then as the player is widdling down the knights, spawn another 10 hit scanners to elevate the stress level. 2 well placed shots could probably kill em all, but you still dealing with hell knights.

 

Thats my take, if you're absolutely wanting the player to be using a certain weapon, you have to have pretty solid knowledge on what gameplay with that weapon is like.  if you just throw low teirs, the player cuts thru everything, no challenge no fun.  but also locking a player in a room with a bunch of barrons and an ssg is also not fun.  Learn what it can one hit because that will make the player feel powerful.  but then learn how to strategically place monsters it cannot 1 hit to bring the players power fantacy back down in check.

 

Hate to do a self-plug but try out my map UAC blacksite.  I'm also new to the whole classic doom community and it was my first map, but it received nothing but positive comments.  A couple people really liked my encounter that gives the player the SSG and commented that it was well balanced and fun.

 

Another map i can recommend if you haven't played is lullaby.  Its one of the most famous classic doom maps, but it gives the player SSG right off the bat.  so just playing the map should help you learn how to structure encounters if you are going to front load the player with all the powerful stuff.

 

All this being said, and as im sure you're noticing from all the different comments on this post.  People have different ideas on how to balance things, and what they would do.  No one can tell you how to balance your encounter, because we arent building your map.  If you are struggling with balance, the best thing you can do for yourself is play the games.  play community WADS.  people have been building doom maps for 30 years at this point.  see how they balance encounters, and youll discover tactics you like and ones you dont like.

Share this post


Link to post

I use this in all maps:

Spoiler

ACTOR PistolPlus : DoomWeapon replaces Pistol
{
  Weapon.SelectionOrder 1900
  Weapon.AmmoUse 1
  Weapon.AmmoGive 10
  Weapon.SlotNumber 2
  Weapon.AmmoType "Clip"
  Obituary "$OB_MPPISTOL"
  +WEAPON.WIMPY_WEAPON
  Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED"
  Tag "$TAG_PISTOL"
  Decal "BulletChip"
  States
  {
  Ready:
    PISG A 1 A_WeaponReady
    Loop
  Deselect:
    PISG A 1 A_Lower
    PISG A 0 A_Lower
    Loop
  Select:
    PISG A 1 A_Raise
    PISG A 0 A_Raise
    Loop
  Fire:
    PISG A 3
    PISG B 4 A_GunFlash
    PISG A 0 A_PlaySound ("weapons/pistol", CHAN_WEAPON)
    PISG B 2 A_FireBullets (2.5, 2.5, 1, 5, "BulletPuff")
    PISG C 2
    PISG B 3 A_ReFire
    Goto Ready
    PISG A 2

    PISG C 4
    PISG B 4 A_ReFire
    Goto Ready
  Flash:
    PISF A 7 Bright A_Light1
    Goto LightDone
    PISF A 7 Bright A_Light1
    Goto LightDone
  Spawn:
    PIST A -1
    Stop
  }
}

ACTOR ShotgunPlus : DoomWeapon replaces Shotgun
{
  Weapon.SelectionOrder 1300
  Weapon.AmmoUse 1
  Weapon.AmmoGive 8
  Weapon.AmmoType "Shell"
  Weapon.SlotNumber 3
  Inventory.PickupMessage "$GOTSHOTGUN"
  Obituary "$OB_MPSHOTGUN"
  Tag "$TAG_SHOTGUN"
  Decal "BulletChip"
  States
  {
  Ready:
    SHTG A 1 A_WeaponReady
    Loop
  Deselect:
    SHTG A 1 A_Lower
    SHTG A 0 A_Lower
    Loop
  Select:
    SHTG A 1 A_Raise
    SHTG A 0 A_Raise
    Loop
  Fire:
    SHTG A 0 A_PlaySound("weapons/shotgf", CHAN_WEAPON)
    SHTG A 0 A_GunFlash
    SHTG A 0 A_Recoil(1)
    SHTG A 5 A_FireBullets (3, 3, 7, 5, "BulletPuff")

    SHTG BC 4
    SHTG D 3
    SHTG CB 4
    SHTG A 5
    SHTG A 5 A_ReFire
    Goto Ready
  Flash:
    SHTF A 3 Bright A_Light1
    SHTF B 1 Bright A_Light2
    Goto LightDone
  Spawn:
    SHOT A -1
    Stop
  }
}


ACTOR SuperShotgunPlus : DoomWeapon replaces SuperShotgun
{
  Weapon.SelectionOrder 400
  Weapon.AmmoUse 2
  Weapon.AmmoGive 8
  Weapon.AmmoType "Shell"
  Weapon.SlotNumber 3
  Inventory.PickupMessage "$GOTSHOTGUN2"
  Obituary "$OB_MPSSHOTGUN"
  Tag "$TAG_SUPERSHOTGUN"
  Decal "BulletChip"
  States
  {
  Ready:
    SHT2 A 1 A_WeaponReady
    Loop
  Deselect:
    SHT2 A 1 A_Lower
    SHT2 A 0 A_Lower
    Loop
  Select:
    SHT2 A 1 A_Raise
    SHT2 A 0 A_Raise
    Loop
  Fire:
    SHT2 A 3
    SHTG A 0 A_Recoil(3)
    SHT2 A 0 A_FireBullets (13, 13, 20, 5, "BulletPuff")

    SHT2 A 0 A_PlaySound ("weapons/sshotf", CHAN_WEAPON)
    SHT2 A 7 A_GunFlash

    SHT2 B 7
    SHT2 C 7 A_CheckReload
    SHT2 D 7 A_OpenShotgun2
    SHT2 E 7
    SHT2 F 7 A_LoadShotgun2
    SHT2 G 6
    SHT2 H 6 A_CloseShotgun2
    SHT2 A 5 A_ReFire
    Goto Ready
    // unused states
    SHT2 B 7
    SHT2 A 3
    Goto Deselect
  Flash:
    SHT2 I 4 Bright A_Light1
    SHT2 J 3 Bright A_Light2
    Goto LightDone
  Spawn:
    SGN2 A -1
    Stop
  }
}

ACTOR ChaingunPlus : DoomWeapon replaces Chaingun
{
   Weapon.SelectionOrder 700
   Weapon.AmmoUse 1
   Weapon.AmmoGive 20
   Weapon.AmmoType "Clip"
   Weapon.SlotNumber 4
   Inventory.PickupMessage "$GOTCHAINGUN" // "You got the chaingun"
   Obituary "$OB_MPCHAINGUN" // "%o was mowed down by %k's chaingun."
   Tag "$TAG_CHAINGUN"
   Decal "BulletChip"
   States
   {
   Ready:
     CHGG A 1 A_WeaponReady
     Loop
   Deselect:
     CHGG A 1 A_Lower
     CHGG A 0 A_Lower
     Loop
   Select:
     CHGG A 1 A_Raise
     CHGG A 0 A_Raise
     Loop
  Fire:
     CHGG A 0 A_PlaySound("weapons/chngun", CHAN_WEAPON)
     CHGG A 0 A_GunFlash
     CHGG B 0 A_Recoil(0.3)
     CHGG A 3 A_FireBullets(3, 3, 1, 5, "BulletPuff")
     CHGG B 0 A_PlaySound("weapons/chngun", CHAN_WEAPON)
     CHGG B 0 A_GunFlash("Flash2")
     CHGG B 0 A_Recoil(0.3)
     CHGG B 3 A_FireBullets(3, 3, 1, 5, "BulletPuff")
     CHGG B 0 A_ReFire
     Goto Ready
  Flash:
     CHGF A 4 Bright A_Light1
     Goto LightDone
  Flash2:
     CHGF B 4 Bright A_Light2
     Goto LightDone
  Spawn:
     MGUN A -1
     Stop
   }
}

 

Basically increased the fire/reload speed for pistol/shotgun/chaingun, added circular spread to these weapons, and increased bullet capacity to 600.
On SSG, keeped the same except for spread, that i raised. This way, SSG is still powerfull, but the player need to go close to have the efficacy.
For all weapons, increased weapon change speed. Not instant, just a bit faster.

 

Also did the same for enemies that use these weapons, to keep things fair.

Spoiler

ACTOR ZombieManPlus replaces ZombieMan
{
  Health 20
  Radius 20
  Height 56
  Speed 11
  PainChance 200
  Monster
  +FLOORCLIP
  SeeSound "grunt/sight"
  AttackSound "grunt/attack"
  PainSound "grunt/pain"
  DeathSound "grunt/death"
  ActiveSound "grunt/active"
  Obituary "$OB_ZOMBIE" // "%o was killed by a zombieman."
  DropItem "Clip"
  States
  {
  Spawn:
    POSS AB 10 A_Look
    Loop
  See:
    POSS AABBCCDD 4 A_Chase
    Loop
  Missile:
    POSS E 5 A_FaceTarget
    POSS F 4 Bright A_CustomBulletAttack (8, 8, 1, 3)
    POSS E 4
    Goto See
  Pain:
    POSS G 3
    POSS G 3 A_Pain
    Goto See
  Death:
    POSS H 5
    POSS I 5 A_Scream
    POSS J 5 A_NoBlocking
    POSS K 5
    POSS L -1
    Stop
  XDeath:
    POSS M 5
    POSS N 5 A_XScream
    POSS O 5 A_NoBlocking
    POSS PQRST 5
    POSS U -1
    Stop
  Raise:
    POSS K 3
    POSS JIH 3
    Goto See
  }
}

ACTOR ShotgunGuyPlus Replaces ShotgunGuy
{
  Health 30
  Radius 20
  Height 56
  Mass 100
  Speed 9
  PainChance 170
  Monster
  +FLOORCLIP
  +AVOIDMELEE
  +falldamage
  SeeSound "shotguy/sight"
  AttackSound "shotguy/attack"
  PainSound "shotguy/pain"
  DeathSound "shotguy/death"
  ActiveSound "shotguy/active"
  Obituary "$OB_SHOTGUY"
  DropItem "Shotgun"
  States
  {
  Spawn:
    SPOS AB 10 A_Look
    Loop
  See:
    SPOS AABBCCDD 3 A_Chase
    Loop
  Missile:
    SPOS E 6 A_FaceTarget
    SPOS A 0 A_Recoil(1)
    SPOS F 6 Bright A_CustomBulletAttack (8, 8, 3, 3)
    SPOS E 6
    Goto See
  Pain:
    SPOS G 3
    SPOS G 3 A_Pain
    Goto See
  Death:
    SPOS H 5
    SPOS I 5 A_Scream
    SPOS J 5 A_NoBlocking
    SPOS K 5
    SPOS L -1
    Stop
  XDeath:
    SPOS M 5
    SPOS N 5 A_XScream
    SPOS O 5 A_NoBlocking
    SPOS PQRST 5
    SPOS U -1
    Stop
  Raise:
    SPOS L 5
    SPOS KJIH 5
    Goto See
  }
}

ACTOR ChaingunGuyPlus replaces ChaingunGuy
{
  Health 70
  Radius 20
  Height 56
  Mass 100
  Speed 9
  PainChance 170
  Monster
  +FLOORCLIP
  +AVOIDMELEE
  +falldamage
  SeeSound "chainguy/sight"
  PainSound "chainguy/pain"
  DeathSound "chainguy/death"
  ActiveSound "chainguy/active"
  AttackSound "chainguy/attack"
  Obituary "$OB_CHAINGUY"
  Dropitem "Chaingun"
  States
  {
  Spawn:
    CPOS AB 10 A_Look
    Loop
  See:
    CPOS AABBCCDD 3 A_Chase
    Loop
  Missile:
    CPOS E 6 A_FaceTarget
    CPOS F 0 A_Recoil(0.3)
    CPOS FE 3 Bright A_CustomBulletAttack (8, 8, 1, 3)
    CPOS F 1 A_CPosRefire
    Goto Missile+1
  Pain:
    CPOS G 3
    CPOS G 3 A_Pain
    Goto See
  Death:
    CPOS H 5
    CPOS I 5 A_Scream
    CPOS J 5 A_NoBlocking
    CPOS KLM 5
    CPOS N -1
    Stop
  XDeath:
    CPOS O 5
    CPOS P 5 A_XScream
    CPOS Q 5 A_NoBlocking
    CPOS RS 5
    CPOS T -1
    Stop
  Raise:
    CPOS N 5
    CPOS MLKJIH 5
    Goto See
  }
}

ACTOR SSGZombie 30001

{
    //$Category Monsters
    Health 120
    Radius 20
    Height 56
    Scale 0.9
    Speed 9
    PainChance 170
    MONSTER
    Translation "112:127=16:47"
    +FloorClip
    +avoidmelee
    +falldamage
    SEESOUND "SSGUNER/sight"
    ATTACKSOUND "SSGUNER/SSG"
    PAINSOUND "grunt/pain"
    DEATHSOUND "SSGUNER/death"
    ACTIVESOUND "SSGUNER/idle"
    OBITUARY "%o was blown open by a Super Shotgunner!"
    DropItem "SuperShotgun"
    Decal Bulletchip
    states
    {
    Spawn:
        GPOS A 10 A_Look
        Loop
    See:
        GPOS AABBCCDD 4 A_Chase
        Loop
    Missile:
        GPOS E 7 A_FaceTarget
        GPOS F 5 BRIGHT A_CustomBulletAttack(13, 13, 18, 3, "Bulletpuff")
        GPOS A 0 A_Recoil(3)
        GPOS E 5
        Goto See
    Pain:
        GPOS G 3
        GPOS G 3 A_Pain
        Goto See
    Death:
        GPOS H 7
        GPOS I 7 A_Scream
        GPOS J 7 A_NoBlocking
        GPOS K 7
        GPOS L 7
        GPOS M 7
        GPOS N -1
        Stop
    XDeath:
        GPOS O 5
        GPOS P 5 A_XScream
        GPOS Q 5 A_NoBlocking
        GPOS RS 5
        GPOS T -1
        Stop
    Raise:
        GPOS NMLKJIH 4
        Goto See
    }
}

 

Got this after a LOT testing. And still testing...

 

Edit. You can balance it by controlling the quantity of shells in maps.
Seeing people playing my maps, usually, when they get the SSG, they use this weapon to kill any mob, be a Baron or a Zombie.
Reduce the number of shells avaliable, and people start to "Think". (or start to cry...)

Edited by Aeddes666

Share this post


Link to post
On 1/13/2024 at 10:30 AM, Hypersprite said:

How do you guys balance your maps and encounters around the SSG?

if i'm in a rush, i'd make the map section just have enough shells to use the sg and not ssg. ssg uses less ammo for close encounters. then add a few boxes of ammo for the chaingun as backup if the shells are insufficient.

 

On 1/13/2024 at 10:30 AM, Hypersprite said:

How can I make the shotgun useful, besides post encounter cleanup?

i primarily use the sg unless the situation forces me to use other weapons, so not exactly "post encounter cleanup". imo to make sg useful, put in a group of low-tier monsters at long range. the sweeping horizontal fire the sg makes is suitable for such encounters.

 

On 1/13/2024 at 10:30 AM, Hypersprite said:

How can I make the player's choices around weapons less obvious and more varied throughout an encounter?

imo, have a preferred weapon (just enough ammo) and a backup weapon for every monster group encounter. eg. against a horde of barons, preferred is using rockets but have a box of cells for the plasma gun in case the rockets run out.
 

imo there is no definite way of balancing a map however. and please do take my 2 cents with a grain of salt since i'm still very inexperienced in map making. good luck :)

 

Edited by rita remton

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...