I want to increase my 2d shooter games difficulty based on what level they are on and was wondering what would be the best way to do this? I was thinking of storing data of difficulty based on thier level etc if level == 1, enemies are x difficulty and spawn y frequently a bit like a switch function but i dont want to clog up my character bp.
Or maybe theres a better way which wont involve setting predetermined values, but values which increment per level you go up in?
Many games have increasing Enemy health, Damage, number of enemies, available Health packs , and or Time Limit to complete the level. You could work with these as you see fit. It’s a balancing act however, you want increasing difficulty but still fun of course.
Some like the push / pull of a increased difficulty and a reward system, as the further you go in difficulty, the better weapons / abilities you get. an accomplishment system of sorts that a player can be proud of.
If you just want to scale enemy properties, I’d have a Base_{Var} variable for each stat you want to scale and a function library which have functions that take the variable and scales it either up or down. So you could have Base_PlayerWeaponDamage and call LevelScaleForNerf which would then return the scaled value. You’d also want LevelScaleForBuff which would do the opposite.
Inside of the scaling functions, you’ve got a lot of control. You can make a data curve for the multiplier to apply per player level-
Or you can write your own function for doing so that factors in the player’s level and the base stat.
Regardless of your method for scaling this, you’d also have a {Var} variable which is used in actual gameplay. So Base_MaxHealth would be put into a function call which scales it to the player’s level, and then MaxHealth is set to whatever comes out of the function.
I’m digging the scale buff direction! Might also be worth exploring UGameInstance in order to track some of this stuff. Spawned at game creation time and not destroyed until the game shuts down.
Key is determining what parts of the game design should increase in difficulty. Once you’ve got those defined it’ll be a bit easier to map things out. Enemies become smarter/more agile, the weapons become more powerful, the player can soak up more damage, the level scroll speed increases, traps and other devious methods to distract/destroy the player emerge… All kinds of interesting ways to ramp up that curve. Once you get things in place you’ll just play it a ton and begin tweaking; “This is too hard” or “Well, just breezed through that! Let’s ramp this up!”
Separately, once you think you have it dialed in, and think that you have the right “easy, normal, hard” levels tweaked right, make sure to add a “content tourist” level where all enemies make half damage and take twice as much damage.
Also add a “quite the challenge” level where it’s the reverse; enemies deal double damage and take half.
Many players have different preferences for challenge. Some just want the story and the art, and perhaps even have slower hands (age, handicap, etc.) Others are amazingly well-trained game-beating machines, and want whatever nightmare you can produce
Is the easy, normal, and hard mode all in the same game mode file? I have not been able to find commands to switch files out. Many games have things that only appear in easy or hard modes, and that seemed connected to this stuff as well.