Keep your game in the fun zone - Designing an AI Director

2,099 views

Published on

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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,099
On SlideShare
0
From Embeds
0
Number of Embeds
966
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Keep your game in the fun zone - Designing an AI Director

  1. 1. @swagentrotz Blazing Badger
  2. 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
  3. 3. @swagentrotz Blazing Badger Softography
  4. 4. Keep your game in the fun zone Designing an AI Director
  5. 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. 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. 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. 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. 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. 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. 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. 12. @swagentrotz Blazing Badger STRUCTURE Intention Definition of the goal Dynamic What happens Mechanic How to get there Parameters Our “balancing knobs”
  13. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  24. 24. @swagentrotz Blazing Badger Recovery Rate -Parameters Base OnGroundModifier (x) Example: Possesion= Carried+x*OnGround= 0+0.5*0 = 0 Chance(Possesion)=0.5^(0) = 1 = 100% drop chance Possesion= Carried+x*OnGround= 1+0.5*1= 1.5 Chance(Possesion)=0.5^(1.5) = 0.353 ~ 35% drop chance Chance(Possesion)=0.7^(1.5) = 0.585 ~ 59% drop chance
  25. 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. 26. @swagentrotz Blazing Badger THX follow me on twitter! @swagentrotz like us on facebook! facebook.com/BlazingBadger enjoy gamedev;)

×