ONLINE CONFERENCE -...

43
ONLINE CONFERENCE DESIGN.BUILD.DELIVE R with WINDOWS PHONE THURSDAY 24 MARCH 2011

Transcript of ONLINE CONFERENCE -...

Page 1: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

ONLINE

CONFERENCE

DESIGN.BUILD.DELIVE

R

with WINDOWS PHONE

THURSDAY 24 MARCH

2011

Page 2: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Welcome to the Windows Phone 7

tech days 2011 online conference XNA Track

Delivered by the XNA UK user group

http://xna-uk.net

Page 3: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Video demonstrations

http://YouTube.com/WP7XNA

Session_SequenceNumber

XNAAI_1 XNACollisions_1

XNARender_1 XNASunBurn_1

Page 4: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Please use the Q&A dialogue box to share your questions OR TWEET with #uktechdays

QUESTIONS

Page 5: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Paul Foster Microsoft

@Paulfo

http://wotudo.net

[email protected]

Practical AI in XNA Games

Page 6: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Academic AI

– ‘…concerns itself with trying to create systems that mimic human thought processes or with applying AI technologies to the solution of real-world problems…’

AI defined

Page 7: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Video game AI

– Delivers absorbing game play

• Objectives

– Not to clever

– Not to stupid

– Balanced CPU usage

AI defined

Page 8: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• AI Agents

• Path finding

• Fuzzy logic

AI Techniques

Page 9: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Finite State machines

– Basis for many game AI

– Simple to code

– Easy to debug

– Require little computational overhead

– Are intuitive

– Flexible

AI Agents

Page 10: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• If-then/switch statements

FSM Patterns

Page 11: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• If-then/switch statements

• State transition table

– External look up

FSM Patterns

Current State Condition State transition

Runaway Safe Patrol

Attack WeakerThanEnemy Runaway

Patrol Threatened AND StrongerThanEnemy Attack

Patrol Threatened AND WeakerThanEnemy Runaway

Page 12: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• If-then/switch statements

• State transition table

– External look up

• State design pattern

– Distinct state objects/functions

– Embedded transition rules

FSM Patterns

Page 13: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Pluggable behaviours sample

Page 14: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Demonstration XNAAI_1 http://youtube.com/WP7XNA

Flocking Example

Sample available from App Hub

Page 15: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• C# Iterators produce

– Finite State Machine

– Provide readable code with Yield Return

• But is it practical to use them to produce your AI FSM?

C# Iterators

Page 16: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Demonstration XNAAI_2 http://youtube.com/WP7XNA

C# Iterators Example

Sample available from wotudo.net

Page 17: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Path finding allows AI agents to navigate worlds

• Search dynamic or predefined maps for routes

• Use edge costs to identify terrain features

• Add meta-data to nodes to define features

Practical path finding

Page 18: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

0

10

20

30

40

50

10 20 30 40 50 60

Series 1

Graph theory

Page 19: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

0

10

20

30

40

50

10 20 30 40 50 60

Y- Axis

X -axis

Graph theory

Page 20: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

0

10

20

30

40

50

10 20 30 40 50 60

Y- Axis

X -axis

Graph theory

waypoints edges

Page 21: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

0

10

20

30

40

50

10 20 30 40 50 60

Y- Axis

X -axis

Graph theory

waypoints edges

Page 22: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Graph types

– Navigation graph

– Dependency graph

– State graph

• Data structures

– Adjacency matrix

– Adjacency list

Graph implementations

Page 23: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Best-first search

• Depth-first search

• Depth-limited search

• Dijkstra’s search algorithm

• A* search algorithm

Algorithms

Page 24: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• OpenList

• ClosedList

• Paths

• Map

Pathfinding sample

1. Current node taken from OpenList[0] 2. Each node connected horizontally or vertically to current node and not a

barrier is evaluated against search criteria 3. Successfully evaluated node:

1. Is added to OpenList where not on either list already 2. Current node is added to Paths 3. Current node is removed from OpenList 4. Current node is added to ClosedList

4. On reaching target end node, paths contains all linked nodes 5. Paths is examined working backwards from end node to find the final path

Page 25: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Demonstration XNAAI_3 http://youtube.com/WP7XNA

Pathfinding

Sample available from App Hub

Page 26: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Humans use vague linguistic terms

• AI needs to understand same vague terms

Fuzzy Logic

Close 0m to 5m

Medium 2m to 5m

Far >5m

Page 27: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Crisp

Fuzzification

Fuzzy rules

Defuzzification

Crisp

Fuzzification

Page 28: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

0

1

2

3

4

5

Dumb Average Clever

Me

mb

ersh

ip

IQ

Crisp sets

70 90 110 130

Page 29: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

0

1

2

3

4

5

Obj-C Silverlight XNA

Me

mb

ersh

ip

IQ

Crisp sets

70 90 110 130

Page 30: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

0

1

2

3

4

5

Dumb Average Clever

Me

mb

ersh

ip

IQ

Crisp sets

70 90 110 130

Page 31: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

0

0.2

0.4

0.6

0.8

1

Dumb Average Clever

Mem

ber

ship

IQ

Fuzzy sets: degree of membership

70 90 110 130

0.75

0.25

Clever(dev) = Fclever (110) = 0.75

Average(dev) = Faverage (110) = 0.25

Illustration credit: Mat Buckland

Page 32: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Speed = {Slow, medium, Fast}

• Height = {Midget, Short, Medium, Tall, Giant}

• Allegiance = {Friend, Neutral, Foe}

• Target Heading = {Far Left, Left, Centre, Right, Far Right}

Fuzzy linguistic variables

Page 33: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

0

0.2

0.4

0.6

0.8

1

-15 -10 -5 0 5 10 15

Target Heading

FLV: Target heading

Illustration credit: Mat Buckland

Degrees

Page 34: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• IF antecedent THEN consequent

• IF Target_isFarRight Then Turn_QuicklyToRight

• IF Target_isFarAway AND Allegiance_isEnemy THEN Shields_OnLowPower

Fuzzy rules

Page 35: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Which mouse to chase?

• Fuzzy linguistic terms:

– Distance to mouse

– Time chasing mouse

– Angle from facing mouse

Calculating Mouse Desirability

Page 36: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Distance • (1 - ((distance - MinDistance) /

(MaxDistance - MinDistance)))

• Time (clamped) • ((time - MinTime).TotalSeconds /

(MaxTime - MinTime).TotalSeconds);

• Angle • (1 - ((angleDifference - MinAngle)

/ (MaxAngle - MinAngle)));

Calculating fuzzy factors

Page 37: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• The process of turning a fuzzy set into a crisp value

– Summation

– Mean of maximum

– Centroid

– Average of maxima

• Mouse with highest score is chased

Defuzzificaton

Page 38: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Demonstration XNAAI_4 http://youtube.com/WP7XNA

Fuzzy Logic

Sample available from App Hub

Page 39: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• XNA is a great platform for game development!

• AI can be built easily

• AI has to be balanced

– For game play

– For computing resource usage

Summary

Page 40: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

• Programming Game AI by example – Mat Buckland, Wordware Publishing Inc. (1 Oct 2004),

– ISBN-10: 1556220782

• App Hub education samples

– http://create.msdn.com

• XNA-UK.net

– User group, blogs and samples!

Resources

Page 41: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Please use the Q&A dialogue box to share your questions OR TWEET with #uktechdays

QUESTIONS

Page 42: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

Thank You for attending today’s Tech.Days Online Conference.

Today’s Online Conference will be recorded. It will be made available on-demand very soon.

Your Feedback Matters! Please complete the online evaluation form which will be emailed to you.

Page 43: ONLINE CONFERENCE - download.microsoft.comdownload.microsoft.com/documents/uk/msdn/TechDays/TechDaysW… · ONLINE CONFERENCE DESIGN.BUILD.DELIVE R ... Flocking Example ... –Mean

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the

U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this

presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot

guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS

TO THE INFORMATION IN THIS PRESENTATION.

ONLINE

CONFERENCE