ONLINE CONFERENCE -...
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/5.jpg)
Paul Foster Microsoft
@Paulfo
http://wotudo.net
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/6.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/7.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/8.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/9.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/10.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/11.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/12.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/15.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/17.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/22.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/23.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/24.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/25.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/26.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/28.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/29.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/30.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/31.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/32.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/33.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/34.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/35.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/36.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/37.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/38.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/39.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/40.jpg)
• 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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/41.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/42.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062504/5b08956e7f8b9a5f6d8cb327/html5/thumbnails/43.jpg)
© 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