SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
Stavros Vassos, University of Athens, Greece   stavrosv@di.uoa.gr   May 2012




INTRODUCTION TO AI
STRIPS PLANNING
.. and Applications to Video-games!
Course overview
2


       Lecture 1: Game-inspired competitions for AI research,
        AI decision making for non-player characters in games
       Lecture 2: STRIPS planning, state-space search
       Lecture 3: Planning Domain Definition Language (PDDL),
        using an award winning planner to solve Sokoban
       Lecture 4: Planning graphs, domain independent
        heuristics for STRIPS planning
       Lecture 5: Employing STRIPS planning in games:
        SimpleFPS, iThinkUnity3D, SmartWorkersRTS
       Lecture 6: Planning beyond STRIPS
Course overview
3


       Lecture 1: Game-inspired competitions for AI research,
        AI decision making for non-player characters in games
       Lecture 2: STRIPS planning, state-space search
       Lecture 3: Planning Domain Definition Language (PDDL),
        using an award winning planner to solve Sokoban
       Lecture 4: Planning graphs, domain independent
        heuristics for STRIPS planning
       Lecture 5: Employing STRIPS planning in games:
        SimpleFPS, iThinkUnity3D, SmartWorkersRTS
       Lecture 6: Planning beyond STRIPS
SimpleFPS planning benchmark
4



       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 planning benchmark
5



       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.
SimpleFPS planning benchmark
6



       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.
STRIPS Planning
7


       Given:
         Initial   State

         Goal


         Available    actions


       Find:
        A  sequence of actions that satisfy the goal
         E.g.: [Left, Down, Left, Up, …]
Planning Domain Description Language
8


       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 (…)
                          )
Planning Domain Description Language
9


       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 (…)
                          )

       Literals like Lisp, e.g., bot-at(area1) (bot-at area1)
Planning Domain Description Language
10


        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 …)
Planning Domain Description Language
11


        Planning Domain Description Language

          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
Planning Domain Description Language
12


        Planning Domain Description Language

          SAT  Plan
                         Planning Domains in PDDL:
          TL Plan              SimpleFPS
                                  Domain
          FF

          BlackBox      Planning Problems in PDDL
                           for SimpleFPS domain
          SHOP2

          TALPlanner

         …                    Comparisons
                               Evaluation
                               Conclusions
Motivation for SimpleFPS
13


        Planning in academia: extensively tested



        Planning in FPS video games: not extensively tested



        SimpleFPS: A PDDL domain for evaluating academic
         planning techniques for NPCs in First-Person Shooters
Motivation for SimpleFPS
14


        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
SimpleFPS planning benchmark
15


        SimpleFPS_PDDL_Domain.txt




        SimpleFPS_PDDL_ProblemGenerator.c
SimpleFPS planning benchmark
16


        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.
SimpleFPS planning benchmark
17


        Summer student project at the University of Athens
          Michail   Papakonstantinou


        AIIDE-2011 workshop paper
          TheSimpleFPS Planning Domain:
           A PDDL Benchmark for Proactive NPCs


        Code/datasets available online
          http://code.google.com/p/simple-fps-pddl/
SimpleFPS domain
18
SimpleFPS domain
19


        Represent only very simple high-level 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).
A SimpleFPS problem instance
20


        (:init …)
A SimpleFPS problem instance
21


        (: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)
A SimpleFPS problem instance
22


        (: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)
A SimpleFPS problem instance
23


        (: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)
A SimpleFPS problem instance
24


        (: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)
A SimpleFPS problem instance
25


        (: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
                                …
SimpleFPS domain: predicates
26



    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)
SimpleFPS domain: actions
27


        (: 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
SimpleFPS domain: move-to-point
28


      (:action move-to-point
         :parameters (?area ?point)
         :precondition (and
                   (npc-at ?area)
                   (point-of-interest ?point ?area)
         )
         :effect (and
                   (npc-close-to ?point)
         )
      )
SimpleFPS domain: reload
29


      (: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))
         )
      )
The SimpleFPS domain: actions
30



    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
A SimpleFPS problem instance
31


        (:goal …)
                                NPC    goals:

     a1                   a3    g1: (player-wounded)
                a2
                                g2: (npc-covered)

                                g3: (npc-full-health)


                          a4    g4:   (and g1 g2 g3)
     a6              a5
A SimpleFPS problem instance
32


        blackbox -o problemssfps-domain.txt -f
         problemssfps-problem1.txt
        1.    (move-to-point area3 door3-2)
        2.    (move-to-point area2 control-box2)
        3.    (turn-on-lights area2 control-box2)
        4.    (make-contact area2 p)
        5.    (move-to-point-from-point area2 knife2 control-box2)
        6.    (place-in-inventory area2 knife2)
        7.    (move-to-point area2 p)
        8.    (attack-melee area2 knife2 p)
        9.    (move-to-point-from-point area2 door2-0 p)
        10.   (moving-to-take-position area2 area0 door2-0)
        11.   (move-to-point area0 coverpoint1)
        12.   (take-cover area0 coverpoint1)
SimpleFPS problem generator
33
SimpleFPS problem generator
34


        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

         …
SimpleFPS datasets
35


        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
Preliminary results with SimpleFPS
36


        Used two award-winning planners in these datasets:

          BlackBox [Kauts, Selman 1999]
          FastForward [Hoffman 2001]



        Run the planners on an average laptop
          1.4GHz
          2 GB RAM
Preliminary results with SimpleFPS
37


        BlackBox, FastForward
          Problems   planners always return an answer within 1.5sec

     BB: up to 5 areas/50 POIs          FF: up to 10 areas/70 POIs
Preliminary results with SimpleFPS
38


        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
Preliminary results with SimpleFPS
39


        Investigate further the available heuristics for
         progression planning using FastDownward as a
         framework
Thorough results with SimpleFPS
40


        Left: best-first search with FF heuristic
        Right: weighted A* search with a combination of FF
         and landmark cut heuristic
        Average (total) run-time of planner
Thorough results with SimpleFPS
41


        Left: best-first search with FF heuristic
        Right: weighted A* search with a combination of FF
         and landmark cut heuristic
        Average (total) run-time of planner
Thorough results with SimpleFPS
42


        Left: best-first search with FF heuristic
        Right: weighted A* search with a combination of FF
         and landmark cut heuristic
        Average run-time of planner doing search
Thorough results with SimpleFPS
43


        Left: best-first search with FF heuristic
        Right: weighted A* search with a combination of FF
         and landmark cut heuristic
        Average run-time of planner doing search
Thorough results with SimpleFPS
44


        Left: best-first search with FF heuristic
        Right: weighted A* search with a combination of FF
         and landmark cut heuristic
        Average plan length
Thorough results with SimpleFPS
45


        Left: best-first search with FF heuristic
        Right: weighted A* search with a combination of FF
         and landmark cut heuristic
        Average plan length
Some conclusions
46
Some conclusions
47


        Relatively small-sized problems wrt FPS games:
          10   areas/100 POIs

        The planner takes a lot of resources:
         A  lot of time: up to 1.4 sec to respond using 100%
           of the CPU resources of a laptop
          A lot of memory: up to 6.5MB for each problem
Some conclusions
48


        Relatively small-sized problems wrt FPS games:
          10   areas/100 POIs

        The planner takes a lot of resources:
         A  lot of time: up to 1.4 sec to respond using 100%
           of the CPU resources of a laptop
          A lot of memory: up to 6.5MB for each problem


        Different assumptions in academia and FPS games
Some conclusions
49


        There is a lot of room for improvement

        Take advantage of pre-processing
          6.5 MBs is too much for 1 character but how about 100?
          Maintain the pre-processed state and update instead of
           re-computing it each time


        Guide the search method
          The   Golog family of languages
Bibliography
50


        References
          The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs.
           Stavros Vassos, Michail Papakonstantinou. In Proceedings of the Non-
           Player Character AI workshop (NPCAI-2011), 2011
          PDDL - The Planning Domain Definition Language. Drew McDermott,
           Malik Ghallab, Adele Howe, Craig Knoblock, Ashwin Ram, Manuela
           Veloso, Daniel Weld, David Wilkins. Technical report, Yale Center for
           Computational Vision and Control, TR-98-003, 1998.
          Unifying SAT-Based and Graph-Based Planning. Henry Kautz, Bart
           Selman. In Proceedings of the International Joint Conference on
           Artificial Intelligence (IJCAI), 1999
          The FF planning system: Fast plan generation through heuristic search.
           Jörg Hoffmann, Bernhard Nebel. Artificial Intelligence Research, Vol.
           14, 2001
          The Fast Downward Planning System. Malte Helmert. Artificial
           Intelligence Research (JAIR), Vol. 26, 2006

Mais conteúdo relacionado

Mais procurados

Unity Internals: Memory and Performance
Unity Internals: Memory and PerformanceUnity Internals: Memory and Performance
Unity Internals: Memory and PerformanceDevGAMM Conference
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴예림 임
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발흥배 최
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향Young-Ho Cho
 
NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014KwangSam Kim
 
언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링TonyCms
 
ECS (Part 1/3) - Introduction to Data-Oriented Design
ECS (Part 1/3) - Introduction to Data-Oriented DesignECS (Part 1/3) - Introduction to Data-Oriented Design
ECS (Part 1/3) - Introduction to Data-Oriented DesignPhuong Hoang Vu
 
Game Project / Working with Unity
Game Project / Working with UnityGame Project / Working with Unity
Game Project / Working with UnityPetri Lankoski
 
Optimize your game with the Profile Analyzer - Unite Copenhagen 2019
Optimize your game with the Profile Analyzer - Unite Copenhagen 2019Optimize your game with the Profile Analyzer - Unite Copenhagen 2019
Optimize your game with the Profile Analyzer - Unite Copenhagen 2019Unity Technologies
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버iFunFactory Inc.
 
Using Entity Command Buffers – Unite Copenhagen 2019
Using Entity Command Buffers – Unite Copenhagen 2019Using Entity Command Buffers – Unite Copenhagen 2019
Using Entity Command Buffers – Unite Copenhagen 2019Unity Technologies
 
업적,칭호,타이틀 그게 뭐든간에...
업적,칭호,타이틀 그게 뭐든간에...업적,칭호,타이틀 그게 뭐든간에...
업적,칭호,타이틀 그게 뭐든간에...SeungYeon Jeong
 
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들DongMin Choi
 
웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기
웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기
웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기Kim Hunmin
 
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard LibraryDongMin Choi
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기Hyunsuk Ahn
 
재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안Sunnyrider
 
3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택JinTaek Seo
 
UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1Hong-Gi Joe
 

Mais procurados (20)

Unity Internals: Memory and Performance
Unity Internals: Memory and PerformanceUnity Internals: Memory and Performance
Unity Internals: Memory and Performance
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴
 
C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발C#을 사용한 빠른 툴 개발
C#을 사용한 빠른 툴 개발
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
 
NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014NDC 2014) 별바람의 기묘한 모험 1991-2014
NDC 2014) 별바람의 기묘한 모험 1991-2014
 
언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링언리얼을 활용한 오브젝트 풀링
언리얼을 활용한 오브젝트 풀링
 
ECS (Part 1/3) - Introduction to Data-Oriented Design
ECS (Part 1/3) - Introduction to Data-Oriented DesignECS (Part 1/3) - Introduction to Data-Oriented Design
ECS (Part 1/3) - Introduction to Data-Oriented Design
 
Game Project / Working with Unity
Game Project / Working with UnityGame Project / Working with Unity
Game Project / Working with Unity
 
Optimize your game with the Profile Analyzer - Unite Copenhagen 2019
Optimize your game with the Profile Analyzer - Unite Copenhagen 2019Optimize your game with the Profile Analyzer - Unite Copenhagen 2019
Optimize your game with the Profile Analyzer - Unite Copenhagen 2019
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
 
Using Entity Command Buffers – Unite Copenhagen 2019
Using Entity Command Buffers – Unite Copenhagen 2019Using Entity Command Buffers – Unite Copenhagen 2019
Using Entity Command Buffers – Unite Copenhagen 2019
 
업적,칭호,타이틀 그게 뭐든간에...
업적,칭호,타이틀 그게 뭐든간에...업적,칭호,타이틀 그게 뭐든간에...
업적,칭호,타이틀 그게 뭐든간에...
 
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
 
웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기
웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기
웹 프론트엔드 개발자의 얕고 넓은 Rx 이야기
 
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard Library
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기NDC 2015 삼시세끼 빌드만들기
NDC 2015 삼시세끼 빌드만들기
 
재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안재미이론의 시사점과 게임 플레이 개선에 적용방안
재미이론의 시사점과 게임 플레이 개선에 적용방안
 
3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택
 
UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1
 

Destaque

Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part1Stavros Vassos
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part2Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part2Stavros Vassos
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1Stavros Vassos
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2Stavros Vassos
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part2Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part2Stavros Vassos
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part1Stavros Vassos
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1Stavros Vassos
 

Destaque (7)

Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part1
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part2Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture4-Part2
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture3-Part1
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture2-Part2
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part2Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part2
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part2
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture1-Part1
 
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
 

Semelhante a Introduction to AI STRIPS Planning for Video Games

The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs
The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCsThe SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs
The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCsStavros Vassos
 
thu-blake-gdc-2014-final
thu-blake-gdc-2014-finalthu-blake-gdc-2014-final
thu-blake-gdc-2014-finalRobert Taylor
 
Declarative Language Definition
Declarative Language DefinitionDeclarative Language Definition
Declarative Language DefinitionEelco Visser
 
nand2tetris 舊版投影片 -- 第四章 機器語言
nand2tetris 舊版投影片 -- 第四章 機器語言nand2tetris 舊版投影片 -- 第四章 機器語言
nand2tetris 舊版投影片 -- 第四章 機器語言鍾誠 陳鍾誠
 
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...Fahad Cheema
 
LISP: назад в будущее, Микола Мозговий
LISP: назад в будущее, Микола МозговийLISP: назад в будущее, Микола Мозговий
LISP: назад в будущее, Микола МозговийSigma Software
 
Introduction to MapReduce using Disco
Introduction to MapReduce using DiscoIntroduction to MapReduce using Disco
Introduction to MapReduce using DiscoJim Roepcke
 
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++jamieayre
 
Unit1 jwfiles
Unit1 jwfilesUnit1 jwfiles
Unit1 jwfilesmrecedu
 
Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31Magnus Christerson
 
[Droidcon]Developing Apps for Android on 2.x/3.x/4.x
[Droidcon]Developing Apps for Android on 2.x/3.x/4.x[Droidcon]Developing Apps for Android on 2.x/3.x/4.x
[Droidcon]Developing Apps for Android on 2.x/3.x/4.xKenichi Kambara
 
Programming Languages & Tools for Higher Performance & Productivity
Programming Languages & Tools for Higher Performance & ProductivityProgramming Languages & Tools for Higher Performance & Productivity
Programming Languages & Tools for Higher Performance & ProductivityLinaro
 
Tuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkTuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkPatrick Wendell
 

Semelhante a Introduction to AI STRIPS Planning for Video Games (20)

The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs
The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCsThe SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs
The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs
 
thu-blake-gdc-2014-final
thu-blake-gdc-2014-finalthu-blake-gdc-2014-final
thu-blake-gdc-2014-final
 
Declarative Language Definition
Declarative Language DefinitionDeclarative Language Definition
Declarative Language Definition
 
nand2tetris 舊版投影片 -- 第四章 機器語言
nand2tetris 舊版投影片 -- 第四章 機器語言nand2tetris 舊版投影片 -- 第四章 機器語言
nand2tetris 舊版投影片 -- 第四章 機器語言
 
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
Resource to Performance Tradeoff Adjustment for Fine-Grained Architectures ─A...
 
Machine language
Machine languageMachine language
Machine language
 
LISP: назад в будущее, Микола Мозговий
LISP: назад в будущее, Микола МозговийLISP: назад в будущее, Микола Мозговий
LISP: назад в будущее, Микола Мозговий
 
Rsltollvm
RsltollvmRsltollvm
Rsltollvm
 
Introduction to MapReduce using Disco
Introduction to MapReduce using DiscoIntroduction to MapReduce using Disco
Introduction to MapReduce using Disco
 
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
 
Pixel shaders
Pixel shadersPixel shaders
Pixel shaders
 
Unit1 jwfiles
Unit1 jwfilesUnit1 jwfiles
Unit1 jwfiles
 
Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31Univ of va intentional introduction 2013 01-31
Univ of va intentional introduction 2013 01-31
 
[Droidcon]Developing Apps for Android on 2.x/3.x/4.x
[Droidcon]Developing Apps for Android on 2.x/3.x/4.x[Droidcon]Developing Apps for Android on 2.x/3.x/4.x
[Droidcon]Developing Apps for Android on 2.x/3.x/4.x
 
C Language Unit-1
C Language Unit-1C Language Unit-1
C Language Unit-1
 
Programming Languages & Tools for Higher Performance & Productivity
Programming Languages & Tools for Higher Performance & ProductivityProgramming Languages & Tools for Higher Performance & Productivity
Programming Languages & Tools for Higher Performance & Productivity
 
Pixel shaders
Pixel shadersPixel shaders
Pixel shaders
 
02paradigms.ppt
02paradigms.ppt02paradigms.ppt
02paradigms.ppt
 
Tuning and Debugging in Apache Spark
Tuning and Debugging in Apache SparkTuning and Debugging in Apache Spark
Tuning and Debugging in Apache Spark
 
Hadoop-Introduction
Hadoop-IntroductionHadoop-Introduction
Hadoop-Introduction
 

Último

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Último (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Introduction to AI STRIPS Planning for Video Games

  • 1. Stavros Vassos, University of Athens, Greece stavrosv@di.uoa.gr May 2012 INTRODUCTION TO AI STRIPS PLANNING .. and Applications to Video-games!
  • 2. Course overview 2  Lecture 1: Game-inspired competitions for AI research, AI decision making for non-player characters in games  Lecture 2: STRIPS planning, state-space search  Lecture 3: Planning Domain Definition Language (PDDL), using an award winning planner to solve Sokoban  Lecture 4: Planning graphs, domain independent heuristics for STRIPS planning  Lecture 5: Employing STRIPS planning in games: SimpleFPS, iThinkUnity3D, SmartWorkersRTS  Lecture 6: Planning beyond STRIPS
  • 3. Course overview 3  Lecture 1: Game-inspired competitions for AI research, AI decision making for non-player characters in games  Lecture 2: STRIPS planning, state-space search  Lecture 3: Planning Domain Definition Language (PDDL), using an award winning planner to solve Sokoban  Lecture 4: Planning graphs, domain independent heuristics for STRIPS planning  Lecture 5: Employing STRIPS planning in games: SimpleFPS, iThinkUnity3D, SmartWorkersRTS  Lecture 6: Planning beyond STRIPS
  • 4. SimpleFPS planning benchmark 4  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.
  • 5. SimpleFPS planning benchmark 5  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.
  • 6. SimpleFPS planning benchmark 6  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.
  • 7. STRIPS Planning 7  Given:  Initial State  Goal  Available actions  Find: A sequence of actions that satisfy the goal  E.g.: [Left, Down, Left, Up, …]
  • 8. Planning Domain Description Language 8  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 (…) )
  • 9. Planning Domain Description Language 9  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 (…) )  Literals like Lisp, e.g., bot-at(area1) (bot-at area1)
  • 10. Planning Domain Description Language 10  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 …)
  • 11. Planning Domain Description Language 11  Planning Domain Description Language  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
  • 12. Planning Domain Description Language 12  Planning Domain Description Language  SAT Plan Planning Domains in PDDL:  TL Plan SimpleFPS Domain  FF  BlackBox Planning Problems in PDDL for SimpleFPS domain  SHOP2  TALPlanner … Comparisons Evaluation Conclusions
  • 13. Motivation for SimpleFPS 13  Planning in academia: extensively tested  Planning in FPS video games: not extensively tested  SimpleFPS: A PDDL domain for evaluating academic planning techniques for NPCs in First-Person Shooters
  • 14. Motivation for SimpleFPS 14  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
  • 15. SimpleFPS planning benchmark 15  SimpleFPS_PDDL_Domain.txt  SimpleFPS_PDDL_ProblemGenerator.c
  • 16. SimpleFPS planning benchmark 16  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.
  • 17. SimpleFPS planning benchmark 17  Summer student project at the University of Athens  Michail Papakonstantinou  AIIDE-2011 workshop paper  TheSimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs  Code/datasets available online  http://code.google.com/p/simple-fps-pddl/
  • 19. SimpleFPS domain 19  Represent only very simple high-level 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).
  • 20. A SimpleFPS problem instance 20  (:init …)
  • 21. A SimpleFPS problem instance 21  (: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)
  • 22. A SimpleFPS problem instance 22  (: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)
  • 23. A SimpleFPS problem instance 23  (: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)
  • 24. A SimpleFPS problem instance 24  (: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)
  • 25. A SimpleFPS problem instance 25  (: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 …
  • 26. SimpleFPS domain: predicates 26  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)
  • 27. SimpleFPS domain: actions 27  (: 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
  • 28. SimpleFPS domain: move-to-point 28 (:action move-to-point :parameters (?area ?point) :precondition (and (npc-at ?area) (point-of-interest ?point ?area) ) :effect (and (npc-close-to ?point) ) )
  • 29. SimpleFPS domain: reload 29 (: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)) ) )
  • 30. The SimpleFPS domain: actions 30  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
  • 31. A SimpleFPS problem instance 31  (:goal …)  NPC goals: a1 a3  g1: (player-wounded) a2  g2: (npc-covered)  g3: (npc-full-health) a4  g4: (and g1 g2 g3) a6 a5
  • 32. A SimpleFPS problem instance 32  blackbox -o problemssfps-domain.txt -f problemssfps-problem1.txt  1. (move-to-point area3 door3-2)  2. (move-to-point area2 control-box2)  3. (turn-on-lights area2 control-box2)  4. (make-contact area2 p)  5. (move-to-point-from-point area2 knife2 control-box2)  6. (place-in-inventory area2 knife2)  7. (move-to-point area2 p)  8. (attack-melee area2 knife2 p)  9. (move-to-point-from-point area2 door2-0 p)  10. (moving-to-take-position area2 area0 door2-0)  11. (move-to-point area0 coverpoint1)  12. (take-cover area0 coverpoint1)
  • 34. SimpleFPS problem generator 34  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 …
  • 35. SimpleFPS datasets 35  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
  • 36. Preliminary results with SimpleFPS 36  Used two award-winning planners in these datasets:  BlackBox [Kauts, Selman 1999]  FastForward [Hoffman 2001]  Run the planners on an average laptop  1.4GHz  2 GB RAM
  • 37. Preliminary results with SimpleFPS 37  BlackBox, FastForward  Problems planners always return an answer within 1.5sec BB: up to 5 areas/50 POIs FF: up to 10 areas/70 POIs
  • 38. Preliminary results with SimpleFPS 38  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
  • 39. Preliminary results with SimpleFPS 39  Investigate further the available heuristics for progression planning using FastDownward as a framework
  • 40. Thorough results with SimpleFPS 40  Left: best-first search with FF heuristic  Right: weighted A* search with a combination of FF and landmark cut heuristic  Average (total) run-time of planner
  • 41. Thorough results with SimpleFPS 41  Left: best-first search with FF heuristic  Right: weighted A* search with a combination of FF and landmark cut heuristic  Average (total) run-time of planner
  • 42. Thorough results with SimpleFPS 42  Left: best-first search with FF heuristic  Right: weighted A* search with a combination of FF and landmark cut heuristic  Average run-time of planner doing search
  • 43. Thorough results with SimpleFPS 43  Left: best-first search with FF heuristic  Right: weighted A* search with a combination of FF and landmark cut heuristic  Average run-time of planner doing search
  • 44. Thorough results with SimpleFPS 44  Left: best-first search with FF heuristic  Right: weighted A* search with a combination of FF and landmark cut heuristic  Average plan length
  • 45. Thorough results with SimpleFPS 45  Left: best-first search with FF heuristic  Right: weighted A* search with a combination of FF and landmark cut heuristic  Average plan length
  • 47. Some conclusions 47  Relatively small-sized problems wrt FPS games:  10 areas/100 POIs  The planner takes a lot of resources: A lot of time: up to 1.4 sec to respond using 100% of the CPU resources of a laptop  A lot of memory: up to 6.5MB for each problem
  • 48. Some conclusions 48  Relatively small-sized problems wrt FPS games:  10 areas/100 POIs  The planner takes a lot of resources: A lot of time: up to 1.4 sec to respond using 100% of the CPU resources of a laptop  A lot of memory: up to 6.5MB for each problem  Different assumptions in academia and FPS games
  • 49. Some conclusions 49  There is a lot of room for improvement  Take advantage of pre-processing  6.5 MBs is too much for 1 character but how about 100?  Maintain the pre-processed state and update instead of re-computing it each time  Guide the search method  The Golog family of languages
  • 50. Bibliography 50  References  The SimpleFPS Planning Domain: A PDDL Benchmark for Proactive NPCs. Stavros Vassos, Michail Papakonstantinou. In Proceedings of the Non- Player Character AI workshop (NPCAI-2011), 2011  PDDL - The Planning Domain Definition Language. Drew McDermott, Malik Ghallab, Adele Howe, Craig Knoblock, Ashwin Ram, Manuela Veloso, Daniel Weld, David Wilkins. Technical report, Yale Center for Computational Vision and Control, TR-98-003, 1998.  Unifying SAT-Based and Graph-Based Planning. Henry Kautz, Bart Selman. In Proceedings of the International Joint Conference on Artificial Intelligence (IJCAI), 1999  The FF planning system: Fast plan generation through heuristic search. Jörg Hoffmann, Bernhard Nebel. Artificial Intelligence Research, Vol. 14, 2001  The Fast Downward Planning System. Malte Helmert. Artificial Intelligence Research (JAIR), Vol. 26, 2006