Dave Pottinger – Practical Game AI 02/25/14

Dave Pottinger, President/CEO
@dcpottinger
www.bonusxp.com
•
•
•
•
½ AI Programming bits
½ Designer-y stuff
½ Hard/Fun/Sh*tty Lessons Learned
Q&A
• Increasingly little;)
• Making games since 1993
• Programmer, Designer, Reluctant Biz Guy
“…more what you’d call
guidelines than actual rules.”
• Sexy
–
–
–
–
Genetic Algorithms
Neural Nets, Learning Code
Expert Systems
A*
• Useful
–
–
–
–
Data driven code
Understandable, reusable code
Good team dev skills
A*
• Unit/Character vs. Player
• Player AI Questions
– Does it have to play a symmetric game?
– Can it Cheat? Should it Cheat?
– Difficulty levels?
– Replayable?
– Learning?
• Action system
– Idle, Attack, Gather
– Animation management
• Player Commands
• Entity Logic
– Searching, Attack Response
• Pathfinding & Movement
• Player AI interface
• Basics
– Resource Gathering
– Base Construction
– Attacking
• Advanced
– Situational Response
– Planning & Unit Coordination
– Variety, Replay
• Strategic Layers
• Play the Game
• Blank files are scary, therefore…
“Baby Steps”
• Attack components
– Troops (which require buildings & resources)
– Target
– Path
– Timing/Coordination
– Difficulty level
– Etc
This is a HUGE task!
• TLDR: Fake everything;)
• Phase 1:
– Pre-placed troops
– Specific target
– TASK: Get the troops to attack the target
• Phase 2:
– Pre-placed troops
– Multiple targets
– TASK: Data-drive the target priorities
• Phase 3:
– Pre-placed buildings
– Cheat the resources
– TASK: Train the troops
•
•
•
•
Get an End Result ASAP
Designers must use it
Ingame debug display
Love the Iteration
•
•
•
•
Like hashtags
Blends base types and logical types
Lists are precomputed
Use everywhere
– Searching
– Research Prereqs
•
•
•
•
Combine individual items
Done at load time
Makes AI play more “like a human”
Faster to search
•
•
•
•
Make areas @ load
More “human”, etc.
Add data
Feed into Strategy
• Context Hook
– Give Players a way to believe
– They will fill in the gaps
• Some randomness is important
• No one likes to lose to an AI
– Make them sweat
– Create excuse options
•
•
•
•
AI should be fun for players, not you
Build & Iterate, don’t Plan
Get it running quickly!
Build a good test harness
•
•
•
•
Ideally, wait until the game is fun
Stick to what you know
90% of effective AI is simple code
Everyone should do AI… Yay?
• Structure and Representation
are the keys
• Write defensive logic
• Don’t be afraid to refactor
• If you can’t recite A*, you’re
doing it wrong
•
•
•
•
•
Learn how to program;)
Pick the team’s battles
Players will fill in the gaps
One exploit ruins everything
Exaggerate the AI
• You’ll find
– Misplaced game logic
– New & exciting ways to break the game
– Performance problems
– Hard to understand game systems
– Multiplayer exploits
• Automated Testing potential
Dave Pottinger, President/CEO
@dcpottinger
www.bonusxp.com