Practical Game AI(give or take)
Dave Pottinger, President/CEO@dcpottinger
www.bonusxp.com
What is this talk?
• ½ AI Programming bits• ½ Designer-y stuff• ½ Hard/Fun/Sh*tty Lessons Learned• Q&A
WTF do I know?• Increasingly little;)• Making games since 1993• Programmer, Designer, Reluctant Biz Guy
What is Practical Game AI?
“…more what you’d call guidelines than actual rules.”
Buzzwords vs. Basics
• Sexy– Genetic Algorithms– Neural Nets, Learning Code– Expert Systems– A*
• Useful– Data driven code– Understandable, reusable code– Good team dev skills– A*
So, let’s design an AI!
• 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?
RTS Unit AI
• Action system– Idle, Attack, Gather– Animation management
• Player Commands• Entity Logic– Searching, Attack Response
• Pathfinding & Movement• Player AI interface
RTS Player AI
• Basics– Resource Gathering– Base Construction– Attacking
• Advanced– Situational Response– Planning & Unit Coordination– Variety, Replay
• Strategic Layers
OMFFFG, where do I start?
• Play the Game• Blank files are scary, therefore…
“Baby Steps”
Breadth Example: RTS Attacking
• Attack components– Troops (which require buildings & resources)– Target– Path– Timing/Coordination– Difficulty level– Etc
This is a HUGE task!
Breadth Example: RTS Attacking
• TLDR: Fake everything;)• Phase 1:– Pre-placed troops– Specific target– TASK: Get the troops to attack the target
Breadth Example: RTS Attacking
• Phase 2:– Pre-placed troops– Multiple targets– TASK: Data-drive the target priorities
Breadth Example: RTS Attacking
• Phase 3:– Pre-placed buildings– Cheat the resources– TASK: Train the troops
Breadth Tidbits
• Get an End Result ASAP• Designers must use it• Ingame debug display• Love the Iteration
Representation Example #1: Abstract Type System
• Like hashtags• Blends base types and logical types• Lists are precomputed• Use everywhere– Searching– Research Prereqs
Representation Example #2:Resource Site Aggregation
• Combine individual items• Done at load time• Makes AI play more “like a human”• Faster to search
Representation Example #3:Terrain Analysis
• Make areas @ load• More “human”, etc.• Add data• Feed into Strategy
Managing the Player
• 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
General Advice
• AI should be fun for players, not you• Build & Iterate, don’t Plan• Get it running quickly!• Build a good test harness
Programmer Advice #1
• Ideally, wait until the game is fun• Stick to what you know• 90% of effective AI is simple code• Everyone should do AI… Yay?
Programmer Advice #2
• 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
Design Advice
• Learn how to program;)• Pick the team’s battles• Players will fill in the gaps• One exploit ruins everything• Exaggerate the AI
Side Effects of Good 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
Questions?
Dave Pottinger, President/CEO@dcpottinger
www.bonusxp.com
Top Related