Procedural Content
         and
  Player Modelling
Recap

    • Yesterday
      ‣ Talked about how we can generate things inside the game
        automatically.
      ‣ Discussed difficulty systems and how we can adapt our
        PCG systems to take difficulty into account
    • Last week
      ‣ How we can model a player as a datapoint and use that
        to better inform our AI systems
2
Motivation

    • Is the purpose of AI to create “unbeatable” games?
    • Games should be
       ‣ Challenging
       ‣ Rewarding
       ‣ Entertaining
    • AI can be a central tool for managing the player’s
     experience.
    • AI to create engagement between player and game
3
Silent Hill : Shattered
                        Memories
    • AAA title in the Silent Hill series. Horror genre.
    • Opens with a psychologist analysing the main
     character.
    • This is an actual psychological test
       ‣ Of the player!
    • Based on the classification that the test generates,
     game is customised in several ways.
4
Silent Hill : Shattered
                      Memories



    • Next few slides are based on material presented by
     Gwaredd Mountain, Technical Director for Climax
     on SH:SM




5
Silent Hill : Shattered
                        Memories

    Stick images from Paris
    ’10 here




                          DISC Personality Model
6
Silent Hill : Shattered
                       Memories


    • Myers-Briggs “Dichotomies”
      ‣ Extraversion / Introversion
      ‣ Sensing / Intuition
      ‣ Thinking / Feeling
      ‣ Judgement / Perception



7
Silent Hill : Shattered
                       Memories


    • Content is selected based on player classification.
       ‣ Note that it isn’t generated.
    • Effectively, three different sets of content written
       ‣ Game shows you the most appropriate one based on
        your psychological profile



8
Silent Hill : Shattered
          Memories




9
Silent Hill : Shattered
           Memories




10
Modelling Players


     • It’s rare that we get to run a psychological profile
      on players as part of the game.
     • It’s about as rare that we can afford to create
      multiple copies of assets targeted at specific classes
      of player.
     • How can we get around this?

11
Player Observation


     • The best way is to monitor what people are doing
      in the game.
     • We can build up a model of players
       ‣ See what they are doing
       ‣ Understand why they’re doing it
       ‣ Tailor their experience specifically to their tastes


12
Player Observation



     • Metrics!
     • Logs!
     • One of the simplest ways hinges on use of Google
      Analytics.
     • Libraries exist to streamline the process.


13
Observation with Google
                    Analytics

     • “Traditional” use of GA
       ‣ Web page is loaded
       ‣ Small piece of javascript is executed
       ‣ Contacts Google systems and creates a log entry
          - Non-identifying info about the user and computer
          - Page being requested
          - Several parameters specified by the website


14
Observation with Google
                     Analytics
     • All the Javascript is really doing is formatting and
      sending a request to a Google web server.
     • We can create and spoof this same action inside a
      game environment
        ‣ Or any application
     • Then, we can use the GA reporting tools to see a
      range of player metrics.
15
What might we want to
                      track?

     • Start-up
        ‣ This lets us get some information about how many
         people are playing, where they are coming from and so
         on.
     • Item collection
        ‣ We can’t track physical location of a player (too much
         data) but we can infer from things like item collection.

16
What might we want to
                       track?

     • Player death
        ‣ This is a big one - we need to know when the player dies
          and where. Why would also be good. We can pass these
          in using the parameters mentioned previously
     • Player kills
        ‣ It might be good to know where our players are when
          the kill something. What they killed. How they killed it

17
Drawbacks of Google
                      Analytics

     • GA doesn’t allow you to track specific individuals.
     • Hacking this into the analytic data is a violation of
      Google ToS, account may be banned.
     • Means we can only track general trends about
      players.


18
Working with Trends

     • One of the most important things we can use this
      for is to track kill and death locations.
     • This can give us a good understanding of areas
      within a map that are advantageous and dangerous
     • We can feed this into an AI system to automatically
      avoid or be cautious in the dangerous areas
       ‣ Understand the map without actual “understanding”
     • Also useful during design, monitoring flow etc.
19
Creating Models


     • Need bespoke solutions for more granular analysis
      of players.
     • Want to see specific information about specific
      players
     • Understand what type of players aspects of the
      game are appealing to.
       ‣ Need to classify players into types then.

20
Bartle Player Types


     • Richard Bartle gives a well used profiling system
      based on a set of game-scenario questions
     • Classifies players into four types
        ‣ Explorer, Achiever, Socialiser, Killer
     • A player’s Bartle Quotient scores out of a total of
      up to 200% affinity for each type
        ‣ No single rating higher than 100%

21
Bartle Player Types



     • Explorer
       ‣ Players who “dig around”
       ‣ Enjoy discovering areas, learning about the world
       ‣ Find glitches and easter eggs




22
Bartle Player Types



     • Achiever
       ‣ Players who want to gain points, levels or gear.
       ‣ In it for the glory (even if it is minor, fake in-game glory)
       ‣ Will go to great lengths to accomplish various challenges




23
Bartle Player Types



     • Socialiser
        ‣ The game is a mechanism for social interaction.
        ‣ Single player - able to join in with others on discussion
        ‣ Multi-player - participate in online groups, create
         engagement with others



24
Bartle Player Types



     • Killer
        ‣ What it says on the tin, interested in destruction
        ‣ Also into seeing their actions have high impact in worlds
           - May be positive or negative impacts
        ‣ May use non-standard techniques e.g. economic war



25
My Type


     • Explorer - 67%
     • Socialiser - 67%
     • Killer - 40%
     • Achiever - 27%
     • Test taken : http://www.gamerdna.com/quizzes/
      bartle-test-of-gamer-psychology

26
Players in
             Tomb Raider Underworld

     • Researchers from ITU Copenhagen put data logging
      into Tomb Raider Underworld on Xbox.
     • Gathered four distinct metrics
       ‣ Causes of death
       ‣ Total number of deaths
       ‣ Completion time
       ‣ Use of “Help on Demand” system

27
Players in
                  Tomb Raider Underworld
     • Classified into four distinct groups
     • Veterans
        ‣ Fast progression, few deaths, little help
     • Solvers
        ‣ Good puzzle solving, slow progression, bad navigation
     • Pacifists
        ‣ Good navigation, poor response to threats
     • Runners
        ‣ Very fast progression, many deaths
28
Further Metrics and
                      Analytics
     • The better you understand the player, the better
      you understand your customer.
     • Analytics and Metrics are where AI techniques
      overlap with business development.
     • Outwith the scope of this course
     • Games Analytics (based in Edinburgh) presented at
      IGDA Scotland’s October meeting. Link on MyPlace
29
Player Models for PCG


     • We talked yesterday about Procedural Content
      Generation.
     • We saw in SH:SM that a model of a player could be
      used to select one of several moods for a game.
     • We can tie the player classification more directly to
      PCG to alter the experience in a less clunky way

30
Mario Level Generation


     • Asked yesterday how we could alter difficulty in a
      Mario style game.
     • Let’s look first at how we can model players in this
      game.
     • Fortunately, our friends at ITU Copenhagen have
      done the hard work already. Again!

31
Player Modelling in Mario


     • Model a range of features in six categories
        ‣ Jumps - total number of jumps, number of gaps
        ‣ Time - completion time, per-life time
        ‣ Items - number of items collected, % of coins collected
        ‣ Death - number of times player died by cause
        ‣ Kill - ratio of different ways of killing enemies
        ‣ “Misc” - number of times run, number of times ducked

32
Player Modelling in Mario



     • Also makes use of surveys on a batch of play-
      testers.
     • Allows for more thorough analysis of a specific
      group of players.
       ‣ More detailed training data


33
Level Modelling in Mario


     • We can categorise each level based on a number of
      features of the level
       ‣ Number of gaps
       ‣ Width of gaps
       ‣ “Spatial diversity of gaps”
       ‣ Number of “direction switches”


34
Mapping Levels to Players

     • Correlation based on 3 metrics
       ‣ Fun
       ‣ Challenge
       ‣ Frustration
     • We can now associate different player types to
      different level types
     • We’ve learnt what each type of player enjoys in a
      level.
35
Procedurally Generating
                     Content

     • “Infinite Mario” is an adaptation of Mario that
      generates new levels for the player.
       ‣ No end game.
     • We can tie the generator into the system we’ve just
      described to classify players and maps.
     • We can give players more of what they like

36
Dynamic Difficulty

     • We talked yesterday about selection of a fixed
      difficulty system.
     • The ways we can change a variety of factors to
      provide variable challenge to the player.
     • Can we use the profiling techniques we’ve seen to
      automatically determine what difficulty level to
      present to the player?
37
Simplistic Dynamic
                      Difficulty


     • Think about Poker.
     • Say everything we talked about last week works.
     • We now have a (fairly) unbeatable Poker AI.
     • How can we dynamically adjust its strength?



38
Simplistic Dynamic
                      Difficulty
     • So the easiest way to implement dynamic difficulty
      in this system is to simply change what the AI is
      trying to do.
     • We expect that it wants to maximise its reward.
     • Change this so that big rewards are less desirable.
     • This is a Utility Function - redefining the concept of
      “optimal” to suit the aim (player satisfaction)
39
Simplistic Dynamic
                       Difficulty
     • What we’re really talking about is defining
      mathematically a process by which our “unbeatable”
      AI will deliberately take a dive.
     • In Decision Making terms, we’re going to choose the
      “wrong” action to take
       ‣ “Lose with style” Brian Schwab, Blizzard Entertainment
     • The rate we do this is determined by our profile of
      the player’s strength.
40
Dynamic Difficulty in
                  Strategy Games
     • Johanson and Hagelback made an interesting user
      study of Dynamic Difficulty in the context of a 2-
      player strategy game.
     • Each turn the player got to make an action
     • Dynamic Difficulty - Depending on the strength of
      the player’s forces, enemy may not make a move this
      turn.
41
Ability vs Challenge

     • One thing of note is that certain players use
      difficulty as an indicator of desired challenge.
     • I’m a fairly good player, I could play on hard.
     • I choose to play on lower settings because the
      experience (e.g. narrative) is more important to me
      than challenge.
     • Good Dynamic Difficulty systems cater to this.
42
Turing Tantrums




     • Session from GDC (technology permitting)




43
Reading

     • ““Player Modeling using Self-Organization in Tomb Raider:
      Underworld” Drachen, Canossa and Yannakakis, Proceedings of
      CIG 2009
     • “Measuring Player Experience on Runtime Dynamic Difficulty
      Scaling in an RTS Game” Hagelback and Johansson,
      Proceedings of CIG 2009
     • “Modelling Player Experience in Super Mario Bros” Pedersen,
      Togelius,Yannakakis, Proceedings of CIG 2009

44
Summary




     • Player modelling as psychological profiling
     • Adapting/generating content based on models
     • Dynamic Difficulty systems based on models



45
Next Week




     • Looking at other stuff we can do with AI in the
      context of games.




46

Lecture 6 - Procedural Content and Player Models

  • 1.
    Procedural Content and Player Modelling
  • 2.
    Recap • Yesterday ‣ Talked about how we can generate things inside the game automatically. ‣ Discussed difficulty systems and how we can adapt our PCG systems to take difficulty into account • Last week ‣ How we can model a player as a datapoint and use that to better inform our AI systems 2
  • 3.
    Motivation • Is the purpose of AI to create “unbeatable” games? • Games should be ‣ Challenging ‣ Rewarding ‣ Entertaining • AI can be a central tool for managing the player’s experience. • AI to create engagement between player and game 3
  • 4.
    Silent Hill :Shattered Memories • AAA title in the Silent Hill series. Horror genre. • Opens with a psychologist analysing the main character. • This is an actual psychological test ‣ Of the player! • Based on the classification that the test generates, game is customised in several ways. 4
  • 5.
    Silent Hill :Shattered Memories • Next few slides are based on material presented by Gwaredd Mountain, Technical Director for Climax on SH:SM 5
  • 6.
    Silent Hill :Shattered Memories Stick images from Paris ’10 here DISC Personality Model 6
  • 7.
    Silent Hill :Shattered Memories • Myers-Briggs “Dichotomies” ‣ Extraversion / Introversion ‣ Sensing / Intuition ‣ Thinking / Feeling ‣ Judgement / Perception 7
  • 8.
    Silent Hill :Shattered Memories • Content is selected based on player classification. ‣ Note that it isn’t generated. • Effectively, three different sets of content written ‣ Game shows you the most appropriate one based on your psychological profile 8
  • 9.
    Silent Hill :Shattered Memories 9
  • 10.
    Silent Hill :Shattered Memories 10
  • 11.
    Modelling Players • It’s rare that we get to run a psychological profile on players as part of the game. • It’s about as rare that we can afford to create multiple copies of assets targeted at specific classes of player. • How can we get around this? 11
  • 12.
    Player Observation • The best way is to monitor what people are doing in the game. • We can build up a model of players ‣ See what they are doing ‣ Understand why they’re doing it ‣ Tailor their experience specifically to their tastes 12
  • 13.
    Player Observation • Metrics! • Logs! • One of the simplest ways hinges on use of Google Analytics. • Libraries exist to streamline the process. 13
  • 14.
    Observation with Google Analytics • “Traditional” use of GA ‣ Web page is loaded ‣ Small piece of javascript is executed ‣ Contacts Google systems and creates a log entry - Non-identifying info about the user and computer - Page being requested - Several parameters specified by the website 14
  • 15.
    Observation with Google Analytics • All the Javascript is really doing is formatting and sending a request to a Google web server. • We can create and spoof this same action inside a game environment ‣ Or any application • Then, we can use the GA reporting tools to see a range of player metrics. 15
  • 16.
    What might wewant to track? • Start-up ‣ This lets us get some information about how many people are playing, where they are coming from and so on. • Item collection ‣ We can’t track physical location of a player (too much data) but we can infer from things like item collection. 16
  • 17.
    What might wewant to track? • Player death ‣ This is a big one - we need to know when the player dies and where. Why would also be good. We can pass these in using the parameters mentioned previously • Player kills ‣ It might be good to know where our players are when the kill something. What they killed. How they killed it 17
  • 18.
    Drawbacks of Google Analytics • GA doesn’t allow you to track specific individuals. • Hacking this into the analytic data is a violation of Google ToS, account may be banned. • Means we can only track general trends about players. 18
  • 19.
    Working with Trends • One of the most important things we can use this for is to track kill and death locations. • This can give us a good understanding of areas within a map that are advantageous and dangerous • We can feed this into an AI system to automatically avoid or be cautious in the dangerous areas ‣ Understand the map without actual “understanding” • Also useful during design, monitoring flow etc. 19
  • 20.
    Creating Models • Need bespoke solutions for more granular analysis of players. • Want to see specific information about specific players • Understand what type of players aspects of the game are appealing to. ‣ Need to classify players into types then. 20
  • 21.
    Bartle Player Types • Richard Bartle gives a well used profiling system based on a set of game-scenario questions • Classifies players into four types ‣ Explorer, Achiever, Socialiser, Killer • A player’s Bartle Quotient scores out of a total of up to 200% affinity for each type ‣ No single rating higher than 100% 21
  • 22.
    Bartle Player Types • Explorer ‣ Players who “dig around” ‣ Enjoy discovering areas, learning about the world ‣ Find glitches and easter eggs 22
  • 23.
    Bartle Player Types • Achiever ‣ Players who want to gain points, levels or gear. ‣ In it for the glory (even if it is minor, fake in-game glory) ‣ Will go to great lengths to accomplish various challenges 23
  • 24.
    Bartle Player Types • Socialiser ‣ The game is a mechanism for social interaction. ‣ Single player - able to join in with others on discussion ‣ Multi-player - participate in online groups, create engagement with others 24
  • 25.
    Bartle Player Types • Killer ‣ What it says on the tin, interested in destruction ‣ Also into seeing their actions have high impact in worlds - May be positive or negative impacts ‣ May use non-standard techniques e.g. economic war 25
  • 26.
    My Type • Explorer - 67% • Socialiser - 67% • Killer - 40% • Achiever - 27% • Test taken : http://www.gamerdna.com/quizzes/ bartle-test-of-gamer-psychology 26
  • 27.
    Players in Tomb Raider Underworld • Researchers from ITU Copenhagen put data logging into Tomb Raider Underworld on Xbox. • Gathered four distinct metrics ‣ Causes of death ‣ Total number of deaths ‣ Completion time ‣ Use of “Help on Demand” system 27
  • 28.
    Players in Tomb Raider Underworld • Classified into four distinct groups • Veterans ‣ Fast progression, few deaths, little help • Solvers ‣ Good puzzle solving, slow progression, bad navigation • Pacifists ‣ Good navigation, poor response to threats • Runners ‣ Very fast progression, many deaths 28
  • 29.
    Further Metrics and Analytics • The better you understand the player, the better you understand your customer. • Analytics and Metrics are where AI techniques overlap with business development. • Outwith the scope of this course • Games Analytics (based in Edinburgh) presented at IGDA Scotland’s October meeting. Link on MyPlace 29
  • 30.
    Player Models forPCG • We talked yesterday about Procedural Content Generation. • We saw in SH:SM that a model of a player could be used to select one of several moods for a game. • We can tie the player classification more directly to PCG to alter the experience in a less clunky way 30
  • 31.
    Mario Level Generation • Asked yesterday how we could alter difficulty in a Mario style game. • Let’s look first at how we can model players in this game. • Fortunately, our friends at ITU Copenhagen have done the hard work already. Again! 31
  • 32.
    Player Modelling inMario • Model a range of features in six categories ‣ Jumps - total number of jumps, number of gaps ‣ Time - completion time, per-life time ‣ Items - number of items collected, % of coins collected ‣ Death - number of times player died by cause ‣ Kill - ratio of different ways of killing enemies ‣ “Misc” - number of times run, number of times ducked 32
  • 33.
    Player Modelling inMario • Also makes use of surveys on a batch of play- testers. • Allows for more thorough analysis of a specific group of players. ‣ More detailed training data 33
  • 34.
    Level Modelling inMario • We can categorise each level based on a number of features of the level ‣ Number of gaps ‣ Width of gaps ‣ “Spatial diversity of gaps” ‣ Number of “direction switches” 34
  • 35.
    Mapping Levels toPlayers • Correlation based on 3 metrics ‣ Fun ‣ Challenge ‣ Frustration • We can now associate different player types to different level types • We’ve learnt what each type of player enjoys in a level. 35
  • 36.
    Procedurally Generating Content • “Infinite Mario” is an adaptation of Mario that generates new levels for the player. ‣ No end game. • We can tie the generator into the system we’ve just described to classify players and maps. • We can give players more of what they like 36
  • 37.
    Dynamic Difficulty • We talked yesterday about selection of a fixed difficulty system. • The ways we can change a variety of factors to provide variable challenge to the player. • Can we use the profiling techniques we’ve seen to automatically determine what difficulty level to present to the player? 37
  • 38.
    Simplistic Dynamic Difficulty • Think about Poker. • Say everything we talked about last week works. • We now have a (fairly) unbeatable Poker AI. • How can we dynamically adjust its strength? 38
  • 39.
    Simplistic Dynamic Difficulty • So the easiest way to implement dynamic difficulty in this system is to simply change what the AI is trying to do. • We expect that it wants to maximise its reward. • Change this so that big rewards are less desirable. • This is a Utility Function - redefining the concept of “optimal” to suit the aim (player satisfaction) 39
  • 40.
    Simplistic Dynamic Difficulty • What we’re really talking about is defining mathematically a process by which our “unbeatable” AI will deliberately take a dive. • In Decision Making terms, we’re going to choose the “wrong” action to take ‣ “Lose with style” Brian Schwab, Blizzard Entertainment • The rate we do this is determined by our profile of the player’s strength. 40
  • 41.
    Dynamic Difficulty in Strategy Games • Johanson and Hagelback made an interesting user study of Dynamic Difficulty in the context of a 2- player strategy game. • Each turn the player got to make an action • Dynamic Difficulty - Depending on the strength of the player’s forces, enemy may not make a move this turn. 41
  • 42.
    Ability vs Challenge • One thing of note is that certain players use difficulty as an indicator of desired challenge. • I’m a fairly good player, I could play on hard. • I choose to play on lower settings because the experience (e.g. narrative) is more important to me than challenge. • Good Dynamic Difficulty systems cater to this. 42
  • 43.
    Turing Tantrums • Session from GDC (technology permitting) 43
  • 44.
    Reading • ““Player Modeling using Self-Organization in Tomb Raider: Underworld” Drachen, Canossa and Yannakakis, Proceedings of CIG 2009 • “Measuring Player Experience on Runtime Dynamic Difficulty Scaling in an RTS Game” Hagelback and Johansson, Proceedings of CIG 2009 • “Modelling Player Experience in Super Mario Bros” Pedersen, Togelius,Yannakakis, Proceedings of CIG 2009 44
  • 45.
    Summary • Player modelling as psychological profiling • Adapting/generating content based on models • Dynamic Difficulty systems based on models 45
  • 46.
    Next Week • Looking at other stuff we can do with AI in the context of games. 46