The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs

  • 550 views
Uploaded on

Stavros Vassos, and Michail Papakonstantinou, In Proceedings of the Non-Player Character AI workshop (NPCAI-2011) of the Artificial Intelligence & Interactive Digital Entertainment (AIIDE-2011) …

Stavros Vassos, and Michail Papakonstantinou, In Proceedings of the Non-Player Character AI workshop (NPCAI-2011) of the Artificial Intelligence & Interactive Digital Entertainment (AIIDE-2011) Conference, Stanford CA, USA, 2011.

http://stavros.lostre.org/2011/09/12/simplefps-int4-2011/

Abstract: In this paper we focus on proactive behavior for nonplayer characters (NPCs) in the first-person shooter (FPS) genre of video games based on goal-oriented planning. Some recent approaches for applying realtime planning in commercial video games show that the existing hardware is starting to follow up on the computing resources needed for such techniques to work well. Nonetheless, it is not clear under which conditions real-time efficiency can be guaranteed. In this paper we give a precise specification of SimpleFPS, a STRIPS planning domain expressed in PDDL that captures some basic planning tasks that may be useful in a first-person shooter video game. This is intended to work as a first step towards quantifying the performance of different planning techniques that may be used in real-time to guide the behavior of NPCs. We present a simple tool we developed for generating random planning problem instances in PDDL with user defined properties, and show some preliminary results based on SimpleFPS instances that vary in the size of the domain and two well-known planners from the planning community.

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
550
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. NPCAI-2011: AIIDE Workshop on Non-Player Character AI stavrosv@di.uoa.gr October 2011 The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs Stavros Vassos Michail Papakonstantinou University of Athens, Greece
  • 2. Very brief introduction2  Focus on first-person shooter (FPS) games and the non-player characters (NPCs) that act against the human player.  Focus on goal-oriented action planning (GOAP) for NPC behavior.
  • 3. Very brief introduction3  Focus on first-person shooter (FPS) games and the non-player characters (NPCs) that act against the human player.  Focus on goal-oriented action planning (GOAP) for NPC behavior.  SimpleFPS is a first step towards evaluating how the existing academic approaches for planning would perform if directly applied in an FPS setting.
  • 4. Overview4  STRIPS planning and PDDL  The SimpleFPS planning domain  Preliminary results using award-winning planners  Conclusions and future work
  • 5. STRIPS Planning5  Given:  Initial State
  • 6. STRIPS Planning6  Given:  Initial State  Goal
  • 7. STRIPS Planning7  Given:  Initial State  Goal  Available actions
  • 8. STRIPS Planning8  Given:  Initial State  Goal  Available actions  Find: A sequence of actions that satisfy the goal  E.g.: [Left, Down, Left, Up, …]
  • 9. STRIPS Planning9  Given:  Initial State  Goal  Available actions  Find: A sequence of actions that satisfy the goal  Planner: Works for every initial state/goal
  • 10. STRIPS Planning10  Given:  Initial State  Goal  Available actions  Find: A sequence of actions that satisfy the goal  Planner: Works for every initial state/goal, domain
  • 11. Planning Domain Description Language11  Language for specifying STRIPS planning problems  Formal syntax like a programming language  Initial State (:init …)  Goal (:goal …)  Actions (:action name :parameters (?from ?to ?dir) :preconditions (…) :effects (…) )
  • 12. Planning Domain Description Language12  Language for specifying STRIPS planning problems  Formal syntax like a programming language  Initial State (:init …)  Goal (:goal …)  Actions (:action name :parameters (?from ?to ?dir) :preconditions (…) :effects (…) )  Based on literals, e.g., bot-at(area1) (bot-at area1)
  • 13. Planning Domain Description Language13  Language for specifying STRIPS planning problems  Formal syntax like a programming language  Predicates (:predicates …)  Actions (:action name :parameters (?from ?to ?dir) :preconditions (…) Planning :effects (…) Domain )  Objects (:objects …) Planning  Initial State (:init …) Problem  Goal (:goal …)
  • 14. Planning Domain Description Language14  International Planning Competition 1998 – today  SAT Plan Planning Domains in PDDL:  TL Plan Blocks world, Storage, Trucks, …  FF  BlackBox Planning Problems in PDDL for these domains  SHOP2  TALPlanner … Comparisons Evaluation Conclusions
  • 15. Planning Domain Description Language15  International Planning Competition 1998 – today  SAT Plan Planning Domains in PDDL:  TL Plan SimpleFPS Domain  FF  BlackBox Planning Problems in PDDL for SimpleFPS domain  SHOP2  TALPlanner … Comparisons Evaluation Conclusions
  • 16. Motivation for SimpleFPS16  Planning in academia: extensively tested  Many PDDL planning domains and problems available  Many off-the-shelf PDDL planners available  Planning in FPS video games: not extensively tested A few success stories but not clear if the same works under different assumptions or what is the best approach  SimpleFPS: A PDDL domain for evaluating academic planning techniques for NPCs in First-Person Shooters
  • 17. SimpleFPS17  SimpleFPS_PDDL_Domain.txt  SimpleFPS_PDDL_ProblemGenerator.c
  • 18. SimpleFPS18  SimpleFPS_PDDL_Domain.txt:  Specifies the predicates that can be used to describe the initial state of the game-world and the goal condition for the NPC.  Specifies a list of available actions that the NPC can perform, along with their preconditions and effects in terms of the predicates of the domain.  SimpleFPS_PDDL_ProblemGenerator.c: A tool to generate problem instances, i.e., an initial state of the game-world and a goal for the NPC.
  • 19. SimpleFPS domain19
  • 20. SimpleFPS domain20  Represent only very simple features:  Game-world consists of interconnected areas, each of which has a number of points of interest (POIs). A few types of items located at POIs (weapons, ammo, med-kits, keycards).  NPC can perform basic actions (move between areas or POIs, pick-up/use items, attack, take cover).
  • 21. A SimpleFPS problem instance21  (:init …)
  • 22. A SimpleFPS problem instance22  (:init …) 6 areas, some of them connected through doors a1 a3 and corridors: a2  (area a1)  (area a2) a4  (area a3)  (area a4) a6 a5  (area a5)  (area a6)
  • 23. A SimpleFPS problem instance23  (:init …) 6 areas, some of them connected through doors a1 and corridors: a2  (poi door1 a1)  (waypoint door1)  (connected a1 a2 door1)  (closed door1)  (opens door1 keycard1)
  • 24. A SimpleFPS problem instance24  (:init …)  For each area a number of POIs are listed along with their properties: a2  (poi door1 a2)  (poi c1 a2)  (poi c2 a2)  (connected a2 a1 door1)  (cover-point c1)  (cover-point c2)
  • 25. A SimpleFPS problem instance25  (:init …)  For each area a number of POIs are listed along with their properties:  (poi g1 a5)  (poi amm1 a5)  (gun g1)  (unloaded g1) a5  (ammo amm1 g1)
  • 26. A SimpleFPS problem instance26  (:init …)  For each area a number of POIs are listed along a1 a3 with their properties: a2  knife  med-kit a4  control-box  night-vision-gun a6 a5 …
  • 27. SimpleFPS domain: Predicates27  NPC-related  Area-related  Item-related:  (npc-at ?a)  (area ?a)  (med-kit ?m)  (npc-close-to ?p)  (conn ?a1 ?a2 ?w)  (knife ?k)  (npc-covered)  (waypoint ?w)  (gun ?g)  (npc-uncovered)  (lighted ?area)  (loaded ?g)  (npc-holding ?o)  (dark ?area)  (unloaded ?g)  (npc-injured)  (poi ?p ?a)  (ammo ?i ?g)  (npc-full-health)  (control-box ?p)  (night-vision ?g)  (npc-aware)  (cover-point ?p)  (npc-unaware)  (item ?p)
  • 28. SimpleFPS domain: Actions28  (: action …)  Available NPC actions: a1 a3  move-to-area a2  move-to-poi  pick-up-item  use-item a4  take-cover a6 a5  un-cover
  • 29. SimpleFPS domain: move-to-point29 (:action move-to-point :parameters (?area ?point) :precondition (and (npc-at ?area) (point-of-interest ?point ?area) ) :effect (and (npc-close-to ?point) ) )
  • 30. SimpleFPS domain: reload30 (:action reload :parameters (?gun ?item) :precondition (and (npc-holding ?gun) (gun ?gun) (unloaded ?gun) (npc-holding ?item) (ammo ?item ?gun) ) :effect (and (not (unloaded ?gun)) (loaded ?gun) (not (npc-holding ?item)) ) )
  • 31. The SimpleFPS domain: Actions31  Location-related:  Attack-related:  moving-to-patrol  make-contact  moving-to-take-position  take-cover  move-away-from-point  uncover  move-to-point  use-med-kit  move-to-point-from-point  reload  make-accessible  attack-melee  place-in-inventory  attack-ranged  turn-on-lights  sneak-kill  turn-off-lights
  • 32. A SimpleFPS problem instance32  (:goal …)  NPC goals: a1 a3  g1: (player-wounded) a2  g2: (npc-covered)  g3: (npc-full-health) a4  g4: (and g1 g2 g3) a6 a5
  • 33. A SimpleFPS problem instance33  1. (move-to-point area0 door3-0)  2. (moving-to-patrol area0 area3 door3-0)  3. (move-to-point area3 control-box3)  4. (turn-on-lights area3 control-box3)  5. (move-to-point-from-point area3 ammogun3 control-box3)  6. (make-contact area3 p)  7. (place-in-inventory area3 ammogun3)  8. (move-to-point area3 gun3)  9. (place-in-inventory area3 gun3)  10. (move-to-point area3 firstaid1)  11. (reload gun3 ammogun3)  12. (attack-ranged area3 gun3 p)  13. (place-in-inventory area3 firstaid1)  14. (move-to-point area3 coverpoint1)  15. (use-medikit firstaid1)  16. (take-cover area3 coverpoint1)
  • 34. SimpleFPS problem generator34
  • 35. SimpleFPS problem generator35  Takes as input:  -a number of areas,  -c the probability that two areas are connected  -n total number of points of interest  -g the goal condition as one of g1, g2, g3, g4  -l the number of instances to be generated  Generates problem instances also using some rules:  Card-keysare added for locked doors  Ammo is added for guns that are unloaded …
  • 36. Preliminary results with SimpleFPS36  Used the tool to generate 3 datasets: 5 areas  7 areas  10 areas  For each dataset we generated 10 instances with:  10 items …  100 items  For each of the 4 goals:  g1, g2, g3, g4
  • 37. Preliminary results with SimpleFPS37  Used three award-winning planners in these datasets:  BlackBox (Kauts and Selman 1999)  FastForward (Hoffman 2001)  FastDownward (Helmert 2006)  Laptop specs
  • 38. Preliminary results with SimpleFPS38  BlackBox, FastForward: Two graphs in the paper  Problems planners always return an answer within 1.5sec BB: up to 5 areas/50 POIs FF: up to 10 areas/70 POIs
  • 39. Preliminary results with SimpleFPS39  BlackBox,Different planning techniques paper FastForward: Two graphs in the  Problems planners a lot of difference within 1.5sec make always return an answer BB: up to 5 areas/50 POIs FF: up to 10 areas/70 POIs
  • 40. Preliminary results with SimpleFPS40  FastDownward:  Always returns an answer within ~0.25sec FD: 10 areas/100 POIs/g4 FF: up to 10 areas/70 POIs
  • 41. Preliminary results with SimpleFPS41  FastDownward: techniques and planners Planning  Always returns an answer within ~0.25sec get better over time FD: 10 areas/100 POIs/g4 FF: up to 10 areas/70 POIs
  • 42. Preliminary results with SimpleFPS42  FastDownward:  Uses up to ~6.5MBs FD: Running time FD: Memory
  • 43. Preliminary results with SimpleFPS43  Relatively small-sized problems wrt FPS games: 7 areas/100 POIs  The planner takes a lot of resources: A lots of time: ~7 frames to respond using 100% of the CPU resources of a laptop  A lot of memory: ~6.5MB
  • 44. Preliminary results with SimpleFPS44  Relatively small-sized problems wrt FPS games: 7 areas/100 POIs  The planner takes a lot of resources: A lots of time: ~7 frames to respond using 100% of the CPU resources of a laptop  A lot of memory: ~6.5MB  Different assumptions in academia and FPS games
  • 45. Preliminary results with SimpleFPS45  Relatively small-sized problems wrt FPS games: 7 areas/100 POIs  The planner takes a lot of resources: A lots of time: ~7 frames to respond using 100% of the CPU resources of a laptop  A lot of memory: ~6.5MB  Different assumptions in academia and FPS games  Plan length up to 20 actions
  • 46. Conclusions46  BB, FF, FD more or less perform as expected:  One of them performs poorly  One of them is slow but not too slow  One of them is good but not good enough for real-time planning
  • 47. Conclusions47  BB, FF, FD more or less perform as expected:  One of them performs poorly  One of them is slow but not too slow  One of them is good but not good enough for real-time planning  But this is not necessarily bad news as these planners are designed to fulfill different needs:  Find complete solutions as long lists of actions  Optimal  Aim for speed using memory at will
  • 48. Future work48  Search for plans that are:  not optimal  not complete  Take advantage of “propositionalization”  6.5 MBs is too much for 1 character but how about 100?  Combine with non-planning approaches for NPCs along with minimal planning capabilities  The Golog family of languages
  • 49. The SimpleFPS benchmark49  Available at http://stavros.lostre.org/sFPS  SimpleFPS_PDDL_Domain.txt  SimpleFPS_PDDL_ProblemGenerator.c  Datasets with 5 areas, 7 areas, 10 areas  Feel free to download and experiment!  Any feedback is mostly appreciated!  Email: stavros@cs.toronto.edu