Das Balancing eines Spiels ist eine große Herausforderung, insbesondere wenn es gilt, Spieler auf unterschiedlichen Niveaus gleichermaßen abzuholen und im Flow-Kanal zu halten. Dabei spielt die automatische Anpassung des Schwierigkeitsgrades eine zentrale Rolle. An dieser Stelle kommt das Konzept des AI-Directors ins Spiel, welcher erlaubt die Balance zentral zu steuern und dynamisch an das Spielerverhalten anzupassen. Wie dieses Konzept konkret umgesetzt wird und sich auf das eigene Spiel übertragen lässt, erklärt Sascha in diesem Talk.
2. @swagentrotz
Blazing Badger
Who is talking?
Sascha Wagentrotz
CEO, Co-Founder and Game Designer
Blazing Badger GmbH
Founded in April 2014
Based in Frankfurt, Germany
5. @swagentrotz
Blazing Badger
Why would your game not be fun?
The challenge structure is unstable.
The challenge parts don’t combine the way they are supposed to.
6. @swagentrotz
Blazing Badger
Specific Problems
Spawn camping
Getting one-shot
Button-mashing to victory
Out of ammo/Stuck on low health
Farmed up to invincibility
Difficulty affects enemy damage/health only
7. @swagentrotz
Blazing Badger
Why does this happen?
Challenge flow is static
Spawn timings are pre-determinedin most cases
Enemy distribution is pre-defined
Each enemy is allowed to make its own decisions
Enemies don’t take the actions of other enemies into account
8. @swagentrotz
Blazing Badger
Solution: AI / Combat Director
DOES:
Controls all elements of the challenge with perfect knowledge
Enforces specificdynamic
Adjusts on the fly within seconds
Offers many parameters to affect difficulty
DOES NOT:
Make the game easier if you play badly!(if done right)
9. @swagentrotz
Blazing Badger
WTF is an AI Director?
Superordinate Entity that takes control of the “big picture” of your game and features a dynamicsystem for game dramatics, pacing and difficulty.
Has been around for decades in simple forms
Was adapted for more genres over the last years
10. @swagentrotz
Blazing Badger
Process: MDA Framework
Mechanics DynamicsAesthetics
The experience (Aesthetics) that arises, when the player interacts (Dynamics) with the game rules (Mechanics).
Therefore:
What Dynamicsdo we want to see?
What Mechanicsdo we employ to facilitate them?
11. @swagentrotz
Blazing Badger
DYNAMICS
What we want:
Smooth challenge flow
Mixof initiative and reaction
Some degree of forgiveness
Achieved with:
Spawn Rate
Attack Behavior
Recovery Rate
12. @swagentrotz
Blazing Badger
STRUCTURE
Intention
Definition of the goal
Dynamic
What happens
Mechanic
How to get there
Parameters
Our “balancing knobs”
13. @swagentrotz
Blazing Badger
Spawn Rate -Intentions
Good players are unable to ever beat the spawn counter (spawn camping)
May even need to put heavy pressure onto enemy numbers to survive incoming damage on higher modes at all
Bad players can never be swamped more than as intended by a tightly designed worst case
14. @swagentrotz
Blazing Badger
Spawn Rate -Dynamic
Spawn rate depends on number of enemies present, desired maximum numberand time to max number
The lessenemies present, the fasterthey spawn
Enemy Amount
Time
Enemy amount over time
Most fights will happen here
15. @swagentrotz
Blazing Badger
Spawn Rate -Mechanic
The n-thenemy spawns after F(n) secondsafter encounter start
F(n)=((n/MaxAmount)^Exp)*MaxTime
The n-thenemy spawns once a certain amount time has elapsed since spawning the previous one:
SpawnTimer=F(n)-F(n-1)
Restart the counter every time an enemy spawns
Time
Enemy #
Time elapsed when nth enemy spawns
t until next enemy
16. @swagentrotz
Blazing Badger
Spawn Rate -Parameters
MaxAmount, MaxTimeand Exponent
Depend on enemy strength and encounter intensity
Manage multiple pools for different challenge categories
Larger desired max number of small enemies
Lower desired max number of strong ones
Lower time to max for “deal with it” like spawn behaviour
Larger time to max for “you cannot ignore this for long” behaviour
17. @swagentrotz
Blazing Badger
Attack Behavior-Intentions
Groups of two should not be boring
Groups of six+should be tough but beatable
The playershould have the initiative most of the time(ratio ~ 2:1 to 3:1) The player should be frequently forced to react
Very high intensity situationslike bosses may changethe initiative/reaction ratio(~1:1 or even 1:2)
The amount of players present shouldn’t influence the challengemuchfor an individual player
18. @swagentrotz
Blazing Badger
Attack Behavior-Dynamic
The enemy attack frequency depends somewhat, but not much, on actual enemy numbers
The player has enough time to dispose of 2-3 foes before reacting to something
The time between attacks dependsa lot on enemy typeand the attack’s strength
On lower difficulties, there is lessneed toreact in time than on higher ones
If multiple players are present, each player is pressuredmore or less evenly (enemy proximity and attacks)
19. @swagentrotz
Blazing Badger
Attack Behavior-Mechanic
All challenging enemy actions have a cost associated
Enemies who are in positionto act registerall their currently possible with the Director very frequently (simultaneously)
The CD selects an action to be executed from what was registered, and incurs its cost in “debt”
The debt degeneratesback to zero over time
Actions can onlybe ordered at zero debt
Makes sure attack cost has no unwanted impact on how often has a chance to be bought
Manage likeliness by other means (e.g. chances, or multiple debt counters)
20. @swagentrotz
Blazing Badger
Attack Behavior-Parameters
Per actor:
Action Cost
Combat Director
One to several debt pools
Initial debt for each pool
Degeneration rate for each pool (does not have to be constant)
Degeneration
Enemy #
Enemy amount over time
21. @swagentrotz
Blazing Badger
Recovery Rate -Intentions
The player shouldn’t be able to hoard beneficial items (as this would trivialize bigger challenges that come along later)
The player shouldn’t ever be so starved for items that he cannot afford to use one every battle or two
There should be no extreme spikes in the drop rate
22. @swagentrotz
Blazing Badger
Recovery Rate -Dynamic
The drop rate of beneficial items should depend on the amount of items already in the player’s possession
The more items the player has, the less likely it is another one will drop
It should not happen that items keep dropping even though there are already plenty waiting to be picked up
23. @swagentrotz
Blazing Badger
Recovery Rate -Mechanic
Items waiting to be picked up count as well
Chance(Possesion)=base^(Posession)
0 < base < 1
Possession=Carried+x*OnGround
X = factor for value of items on the ground e.g. 0.5 = 50% worth
Drop Chance
# in Possession
Time elapsed per enemy
25. @swagentrotz
Blazing Badger
Variants
Want player to wait for opening
Have enemies buy whole sequence
Or regular low/freeze combat point generation
Want moments of frenzy
Occassionally lower costs by large factor
Want hard limits on some attacks/spawns
Add cooldown
Other Genres: e.g. Hint-Directorin a Puzzle Game
26. @swagentrotz
Blazing Badger
THX
follow me on twitter! @swagentrotz
like us on facebook! facebook.com/BlazingBadger
enjoy gamedev;)