26
\$\begingroup\$

For a sidescrolling shooter I’m working on, I got stuck on the following: The game allows the player to buy upgrades for their character. This oppertunity comes in the form of a shop that sits at the end of each world (containing a couple of levels each).

Now, it’s entirely possible that the player does not purchase any upgrade (extra health, stronger weapons, etc) because they lack the money for it, or simply choose not to. This potentially causes them to move to the next levels being slightly/very underpowered, only able to fix their situation once they completed the full world again.

I’m looking for some advice on how to best mitigate this issue. The conflicting features seem to be:

  • Upgrades are not always available
  • The player has the choice not to purchase them
  • The levels get more difficult every world

Some ways to solve this, inelegantly:

  • Make upgrades automatically unlock, but that takes away some of the player autonomy I want to include.
  • Only scale the difficulty once an upgrade is purchased, but this feels a bit silly
  • Allow the player to restart from an earlier world, so they can make different choices and/or play better (to be able to afford an upgrade this time around) — obviously not ideal either.

It's worth pointing out that this game follows a “campaign” like structure. For a rouguelite, simply having to try again would suffice, but I want to avoid making the player retry anything more than just their current level.

\$\endgroup\$
5
  • 1
    \$\begingroup\$ Didn't this situation happen in R-type? I remember that you could get lots of power-ups, but if you lost a life then you started without any, which made the game a lot harder \$\endgroup\$
    – Aaron F
    Commented Sep 11, 2023 at 21:34
  • 13
    \$\begingroup\$ Do not implement scaling. This is a terrible design. If you scale the difficulty with upgrades, then the upgrades become pointless, as the enemies also get stronger. Actually they can even make the harder, because more upgrades usually mean more complex gameplay. \$\endgroup\$
    – Trang Oul
    Commented Sep 12, 2023 at 11:31
  • 4
    \$\begingroup\$ Only scale the difficulty once an upgrade is purchased aah, the bane of "Oblivion" by BGS. "Don't sleep, hero, your enemies grow stronger while you do." \$\endgroup\$
    – Swift
    Commented Sep 12, 2023 at 20:47
  • 2
    \$\begingroup\$ Before you do anything here, who is your core player demographic? Because the gaming community is relatively split on how much handholding they want the game to do for them, and I suggest tailoring this experience to your players. If the game is casual or kid-friendly, hold their hand. If this game is technically difficult to master (e.g. the combat mechanics), those kinds of players won't take kindly to handholding, especially if you force it. \$\endgroup\$
    – Flater
    Commented Sep 12, 2023 at 23:26
  • 1
    \$\begingroup\$ Please avoid posting solutions/answers as comments. Some of these suggestions are already present as answers below - go upvote those answers if you want to second them. If you don't see a suggestion you want to make, post it as a new answer. \$\endgroup\$
    – DMGregory
    Commented Sep 14, 2023 at 21:50

12 Answers 12

43
\$\begingroup\$

I think you should embrace the choice to deliberately underpower themselves as another expression of player autonomy. This is a play pattern you'll often see in speedrunning communities, or players showing off for a stream: "look, I'm so good at this, I can get X far / beat the game with just the starting loadout!" — even/especially in notoriously challenging games like Souls-likes.

So that's a vote against forced upgrades or scaling difficulty to match the upgrade level.

Scaling difficulty to upgrades also risks hitting the other side of the Red Queen effect: rather than needing to upgrade just to avoid falling behind, now even when the player upgrades, they can't get ahead. The difficulty scaling adjusting to balance out upgrades can rob the player of a tangible sense of growth or impact of their choices. Ideally you'll usually want the difficulty steps slightly offset from the upgrade opportunities, so players have a chance to use their new toys at the old difficulty and feel how much more powerful they are now, before the challenge escalates to demand that new power just to survive.


An alternative approach you could take is to offer backup upgrades "just in time" when it becomes a problem. Say, if the player dies twice on the same world, a rescue ship picks them up to drop them at the start of the current level again, and the player has a choice to purchase upgrades from the rescue ship.

This way, a player who's successfully playing the game with a lower upgrade level than you planned for doesn't get pressured/badgered into buying upgrades they don't need: the rescue ship never comes to them.

But a player who thought they could do one more world without upgrades and discovers they were wrong has an opportunity to fix the mistake after a limited amount of frustration/setback that you can control, by choosing how many deaths trigger the rescue.

Players are disincentivized from just upgrading willy-nilly because they have to die for it — something they'll often avoid out of pride or to avoid delays/re-doing sections, even beyond any extra penalties you might impose. A death counter reported on the game-end screens can be enough to strongly motivate players to keep that number low. You can even add a range of randomness so the rescue, they can't predict exactly how many deaths it will take. The net effect is that players will mostly try to survive the whole world and upgrade at the regular shop as intended. This can be further incentivized by giving the world-end shop better selection than the just-in-time version.

You can also limit the rescues/upgrades obtained on rescue to the number of upgrades passed up, if desired, to allow the player to use it only to catch up to where you planned them to be, rather than cheese it to get further ahead. But I might recommend letting the player buy past the planned upgrade level — this gives some in-built player-controlled difficulty and can improve the game's accessibility, while staying unobtrusive to players who don't want or need it.

This can of course take different forms depending on your game's fiction: a wormhole anomaly littered with junk you can salvage for upgrades, an ancient alien vessel with mysterious motives, divine intervention, or maybe you don't even dress it up in fiction at all and just present it as a non-diegetic menu like the "Continue?" screens of old.

\$\endgroup\$
6
  • 6
    \$\begingroup\$ Note that this will also help the player who is 'underskilled' or made some relatively bad choices in the upgrades, not just the ones who are deliberatetely underpowering themselves. \$\endgroup\$
    – quarague
    Commented Sep 11, 2023 at 19:24
  • 1
    \$\begingroup\$ Many recent Mario games implement a similar rescue mechanic where, if you die enough times on a level, Luigi will offer to help you in one way or another. (Mario Maker 2 way overdid it, though, having Luigi pop up after just 2 deaths, and if you accepted his help you'd skip the level entirely. Other games do it much more tastefully.) \$\endgroup\$ Commented Sep 11, 2023 at 20:24
  • 2
    \$\begingroup\$ See the Three Heart Challenge, in which hardcore Zelda players try to beat the game without ever collecting any additional heart pieces. \$\endgroup\$
    – Kevin
    Commented Sep 11, 2023 at 23:23
  • 1
    \$\begingroup\$ @Kevin here's a link to a non-Wikia mirror: zeldawiki.wiki/wiki/Three_Heart_Challenge \$\endgroup\$ Commented Sep 14, 2023 at 10:37
  • \$\begingroup\$ @htmlcoderexe Is there a particular reason not to link to Wikia? \$\endgroup\$
    – Kevin
    Commented Sep 15, 2023 at 18:51
17
\$\begingroup\$

One of my favourite games from childhood, Zeliard, solved this particularly well I think. The player could always go back to previous worlds, re-visit old shops, look for missed treasure, etc. The maps were often asymmetrical and going back was often different from going forward (e.g. could just jump off some ledge going back, versus finding some long way to climb it going forward), making this more interesting. Also, in more advanced worlds the player could get items that made traversing earlier worlds different and much easier (e.g. boots for higher jumps, ability to go through fire or water, better weapons), this made these "backwards trips" much less painful than they sound, and often fun and interesting. I may be mis-remembering some details but that was the gist of it, and I think it can work well if done right.

\$\endgroup\$
1
  • 5
    \$\begingroup\$ Yeah, I was going to say that having shops only accessible upon finishing a world is not really compatible with what OP wants. Allowing players to revisit shops is the simplest solution. Allowing players to replay/"farm" earlier levels for more resources (not just missed things) is also a common feature in games (arpgs in particular). Then less skilled players can always just grind a bit longer to get better gear if they're stuck on a difficult section (not that this is necessarily ideal - it's often better to just have different difficulty options). \$\endgroup\$
    – NotThatGuy
    Commented Sep 12, 2023 at 11:37
7
\$\begingroup\$

There are many solutions:

  • Allow backtracking. Two approaches:
    • Allow grinding. Many games allow you to replay old stages to grind for money or experience to get strong enough to clear the next stage. Some people prefer to be overpowered all the time. This means players can always win.
    • Allow backtracking, but cap the rewards. Think along the lines of mobile games where you get 0-3 stars for clearing a level and you use stars as currency to unlock something. If a bad build is possible with max stars, then this doesn't completely solve the problem.
    • (Side note) You can also make backtracking a standard part of the game, by making some rewards unobtainable until later progress has been made (as suggested by Eugene Osovetsky. I want to say the Metroid games do this, but i haven't played them in years--Cereza and the Lost Demon definitely does this well.
  • Allow respec. Maybe once per char or with some sort of reasonable cost. If the character uses their respec chance, they can get all their money back (at once), then maybe they get presented with all of the items they've seen so far with the chance to repurchase, smarter. This can make the game trivial though--for roguelikes it's sad when you try for a specific build but RNG doesn't go your way and you end up very weak, but that rarity is what makes it fun. If you could always make the most of whatever the RNG gives you, the game becomes much much easier.
  • Don't make a failing build possible. If the player doesn't have enough money, you can still give them a free item for clearing the level that is enough to go by. In this case, money doesn't make you "strong enough", it makes the game simpler (overpowered) or more interesting (more unique toys. fight with a gun instead of a sword, etc).
  • Consider intermingled systems. If you use a level-up system and backtracking, even if the player can't get money from backtracking they should still eventually get strong enough just from levelups to be able to progress.
  • Make bad builds possible and part of the learning experience. Assuming your game isn't insanely long, you can just let players restart when their build fails. Throw in some RNG and you have a "rogue-like". Trying new builds or making the best of what is presented to you in each run becomes the fun part. GG, try something new next time!
  • Embrace the difficulty. As long as there are no unwinnable situations, being difficult is not actually bad. Just make sure there are no places where you need a minimum jump strength to clear and no bosses/enemies/scenarios that deal unavoidable damage greater than the player's HP. If you have an HP system, consider making some attacks percent-based rather than fixed number based. It's not a problem, it's a feature
  • From a comment by a user without a username: You can let the player know that they are becoming underpowered. If YOU know that they are underpowered, then you can let a dialog or NPC tell them. Or you can do something similar to what Genshin Impact does with "artifacts" (equipment)--have a dialog/GUI element that shows what other players choose.
  • Simpler than the last suggestion--write "Recommended!" or "Recommended for newbies!" under some set of items that gives the player at least the minimal viable build.

A few side notes:

  • Games where you're expected to die a million times as you learn attack patterns, etc, to pass the game are called 死にゲー (she-knee-gay) in Japanese. The first and last options fall under this category. Dark Souls and the original Super Mario games fall under this category.
  • Unwinnable situations are okay if it's a game built for replay. The concept of a "DPS check" is when there is an opponent that you cannot defeat unless you can do a certain amount of damage quickly--timed fights or opponents that heal. A health/armor check is when you take a guaranteed hit and if your HP is too low, you cannot win. You can extend this logic to things like jumping or money, etc, which create hurdles for the player in your replayable game. "Remember, DPS check at level 12, health check at level 25, money check at 30!"
\$\endgroup\$
5
  • \$\begingroup\$ Be sure to check the last paragraph of the question, where OP mentions they're aware of the roguelike approach of starting over, but specifically want solutions that don't require replaying more than just the current level. Also note that a high difficulty bar isn't functionally different from an unwinnable situation for players whose skill or physical abilities fall under that bar. \$\endgroup\$
    – DMGregory
    Commented Sep 12, 2023 at 11:03
  • 1
    \$\begingroup\$ Regarding allowing bad builds, roguelikes is certainly the go-to example. But Path of Exile is also a good example of something that definitely isn't short (especially not for the average player), you can completely ruin your character with poor build choices, large-scale respec'ing is non-trivial, and it's still quite a popular game. This could be said of a lot of arpgs, although it's much easier to mess up your build in PoE, or to never figure out how to make a build with which it's actually possible to kill some of the later bosses. \$\endgroup\$
    – NotThatGuy
    Commented Sep 12, 2023 at 11:26
  • 3
    \$\begingroup\$ My two cents about "DPS checks" (and similar): do them right, do them early. A game where a low damage ank build is viable for 90% of the game and then suddenly there is a DPS-check boss is so frustrating. If you do them early and multiple times throughout the game, the player has an opportunity to learn and adapt. \$\endgroup\$
    – datacube
    Commented Sep 12, 2023 at 14:51
  • \$\begingroup\$ @datacube It's frustrating, but at the same time, that's almost essentially what some bosses are. FTL comes to mind \$\endgroup\$
    – Mars
    Commented Sep 13, 2023 at 0:59
  • 1
    \$\begingroup\$ @DMGregory I definitely missed that. I'll re-order my suggestions. For what it's worth, I try to answer the title question (because people with similar problems will come here) rather than OP specifically :) \$\endgroup\$
    – Mars
    Commented Sep 13, 2023 at 1:02
5
\$\begingroup\$

Offer the shop also at the beginning of each level but with a caveat. You have to complete a short bonus level at (current difficulty - 1) to access it. It could be about rescuing the shop keeper or opening up his blocked trading routes etc...

Also consider making the "end of world shop" better than the "start of level shop" for example by having a broader selection or discounts. Keeping the difficulty slightly below the current difficulty ensures that the player is always able to reach the "start of level shop" since he has already proven he can mange that content to reach the current level.

\$\endgroup\$
0
1
\$\begingroup\$

Maybe you could make the player choose between 3 upgrades at the end of each world. The upgrades should be free and it should be mandatory to pick one.

This way the player gets rewarded for finishing several levels and he gets to choose his play style for the next few levels.

Possible upgrades could be more powerful but slower / faster but weaker projectiles, more shield / health, faster or more maneuverable ship etc.

This system is similar to what you can find in games like Vampire Survivors where every level you HAVE to pick an upgrade for your character and thus you can influence the way you play one upgrade at a time.

\$\endgroup\$
1
\$\begingroup\$

If:

  • you are ok with giving players access to the shop more often than once per world, and
  • you have some kind of overworld map or mission-select menu,

you could allow players to access the shop at any time they aren't in a level. This ensures that upgrade decisions are still impactful since you're locked into them for the duration of a level (or at least until you quit out of it), but gives the player plenty of opportunities to dig themselves out of a hole.

\$\endgroup\$
1
\$\begingroup\$

As @DMGregory said, I think you should allow players to have the option of going through the game without buying any upgrades, as a sort of self-imposed challenge. I released a scrolling shooter of my own last year (a bullet hell game, to be precise), and I decided to do exactly that: allow players to leave the upgrades screen at the end of each level without buying anything.

My exact approach was one that hasn't been mentioned yet: if the player doesn't buy any upgrades, either by choice or because they can't afford to, they're given some kind of gameplay bonus in exchange. In my case, it was a score multiplier that increased every time they cleared a stage without buying anything. This created an inherent risk/reward system: if you made the game harder for yourself, either by accident or by choice, you got more points for it.

If your game doesn't focus on high-scores, you can think of some other gameplay benefit to provide players, that will reward them for choosing not to upgrade (or compensate them if they do it by accident or necessity). There have already been plenty of good suggestions about this in the other answers.

\$\endgroup\$
1
\$\begingroup\$

Here's a slightly different suggestion. If you're worried about players getting stuck, how about offering a special "repair shop" when they've failed? This way, if they struggle, they've got the option of purchasing upgrades.

You could require them to fail a number of times before they see it. This way, it won't impact players that haven't been having any problems (or just the occasional failure), so your main use case still works as intended, and you've got this system to help people that are struggling.

\$\endgroup\$
1
  • 1
    \$\begingroup\$ This is the solution described in my answer from three days ago. I just called it a "rescue ship" rather than a "repair shop". \$\endgroup\$
    – DMGregory
    Commented Sep 14, 2023 at 11:03
0
\$\begingroup\$

Another approach I've seen here is to make upgrades and rewards increase in expense while providing more or less linear benefit. E.g. Your first +5 armor costs 10 hardtogetium, your second costs 20, your third costs 30 and so on. Similarly, the rewards you get for blowing up a level 1 Ugly is 1 hardtogetium, a level 2 is 2, a level 3 is 3, and so on.

If you only have a small number of upgrade paths this can feel like railroading - it makes no sense to boost your weapons a little if you can bring your armor up to par for the same price. But if you have multiple options it opens up more strategies. E.g. do you have moderately good missiles and lasers, or super missiles? Etc.

\$\endgroup\$
0
\$\begingroup\$

Let players set game difficulty.

Easy difficulty: players are able to replay previous worlds/levels with their current upgrades, upgrades they buy in these retries of course stay; or make each subsequent shop automatically have all of the unbought equipment from previous shops, so that they can grind their way to whatever they wish to buy just by replaying the current level over and over again; etc.

Hard difficulty: None of the above is included. By design, players can get locked out by choosing what to buy poorly or by failing to obtain enough coins in previous levels, etc. Put a warning that players are expected to know the game beforehand before attmpting Hard difficulty. That way, also, easier levels will no longer be just a waste of time when replaying the game, to be 'skipped' in order to get to harder levels ASAP; it will actually matter how well you pass easier levels. Especially so if you will have to plan your upgrades for harder levels, so that they are not as perfect for easier levels as they could be.

\$\endgroup\$
0
\$\begingroup\$

You're talking about difficulty in general. Instead of scaling difficulty you can add increase the number of challenges the player faces instead, i.e. damage types, movement patterns, different enemy behaviour etc.. This way a player has different approaches but doesn't feel 'weak'.

Personally I like the idea with a mandatory upgrade at the end of each world and temporary power-ups inside a level. This way you hand the player all the tools to complete the game. You could also add loadouts that the player chooses before each level. This allows for player automomy and allows individual challenges

\$\endgroup\$
-1
\$\begingroup\$

For player that intentionally not buying any stuff. Its their choice, they will learn it the hard way. Let them be.

For player that cannot buy any stuff because they didn't beat the whole level, it's either your level is too hard or they are too weak.

Essentially the actual problem is player may not fully utilize their money due to simply a mis match of money.

Introduce debt system where user can have -10 debt or even -100 debt and only allow debt when money is >0.

So money can be fully utilize.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .