The 2010 Mario AI Championship Learning, Gameplay and Level - - PowerPoint PPT Presentation

the 2010 mario ai championship
SMART_READER_LITE
LIVE PREVIEW

The 2010 Mario AI Championship Learning, Gameplay and Level - - PowerPoint PPT Presentation

The 2010 Mario AI Championship Learning, Gameplay and Level Generation tracks WCCI competition event Sergey Karakovskiy, Noor Shaker, Julian Togelius and Georgios Yannakakis Sunday, July 25, 2010 How many of you saw the paper about the


slide-1
SLIDE 1

The 2010 Mario AI Championship

Learning, Gameplay and Level Generation tracks WCCI competition event Sergey Karakovskiy, Noor Shaker, Julian Togelius and Georgios Yannakakis

Sunday, July 25, 2010

slide-2
SLIDE 2

How many of you saw the paper about the 2009 Mario AI Competition yesterday?

Sunday, July 25, 2010

slide-3
SLIDE 3

What was the Mario AI Competition?

  • A competition based on “Super Mario

Bros”...

  • ...designed to test and rank AI methods for

game playing...

  • ...where researchers submitted their best

Mario-playing controllers...

  • ...and the best Mario AI won?

Sunday, July 25, 2010

slide-4
SLIDE 4

Why bother?

  • Problem faced (voluntarily) by hundreds of

millions of gamers around the world since 1985

  • Games are designed to challenge human

cognitive skills and learning abilities

  • Could help improve game design/

development (e.g. for PCG)

  • Similarity to robotics problems etc.

Sunday, July 25, 2010

slide-5
SLIDE 5

Competition objectives

  • Ease of participation
  • Transparency
  • Ease of finding a winner
  • Depth of challenge

Sunday, July 25, 2010

slide-6
SLIDE 6
  • by Markus Persson
  • quite faithful SMB 1/3

clone

  • in Java
  • random level generation
  • open source

Infinite Mario Bros

Friday, September 11, 2009 Sunday, July 25, 2010

slide-7
SLIDE 7

Making a benchmark

  • Control loop rewritten
  • Tunable FPS, up to 1000 times faster than

real-time

  • Removed stochasticity
  • Created and interface for agents/

controllers

Sunday, July 25, 2010

slide-8
SLIDE 8

Sunday, July 25, 2010

slide-9
SLIDE 9

Last year’s winner

  • Robin Baumgarten of Imperial College, UK
  • Approach based on A*
  • Goal: get to the right edge of the screen
  • Internal model of the game’s physics

Sunday, July 25, 2010

slide-10
SLIDE 10

A* IN MARIO: CURRENT POSITION

current node Goal: right border

  • f screen

Friday, September 11, 2009 Sunday, July 25, 2010

slide-11
SLIDE 11

A* IN MARIO: CHILD NODES

current node

right, speed left, jump, speed right, jump jump

Friday, September 11, 2009 Sunday, July 25, 2010

slide-12
SLIDE 12

A* IN MARIO: BEST FIRST

current node

right, speed

Friday, September 11, 2009 Sunday, July 25, 2010

slide-13
SLIDE 13

A* IN MARIO: BACKTRACK

current node

right, speed right, jump, speed

Friday, September 11, 2009 Sunday, July 25, 2010

slide-14
SLIDE 14

A* IN MARIO: BEST FIRST

current node

right, speed right, jump, speed

Friday, September 11, 2009 Sunday, July 25, 2010

slide-15
SLIDE 15

A* IN MARIO: CREATE CHILDS

current node

Friday, September 11, 2009 Sunday, July 25, 2010

slide-16
SLIDE 16

Some takeaways from last year

  • A* plays this type of levels very well, but

not in a human-like manner

  • The task did not test learning
  • And was too easily beaten

Sunday, July 25, 2010

slide-17
SLIDE 17

The 2010 Mario AI Championship

  • An attempt to...
  • ...deepen the challenge:

Gameplay track

  • ...test learning as well as controller design:

Learning track Cancelled for this event

  • ...test the capabilities of CI in game design:

Level generation track Demo only for this event

Sunday, July 25, 2010

slide-18
SLIDE 18

The 2010 Mario AI Championship

  • Gameplay track

Same as last year, except that the toughest levels are much tougher.

  • In particular: dead ends that force

backtracking, meant to be lethal for A*

  • Learning track

Allows the controller 1000 runs on each level to allow it to learn the level; scored

  • n the 1001st attempt

Sunday, July 25, 2010

slide-19
SLIDE 19

The 2010 Mario AI Championship

  • Level generation track

Competitors submit level generators that

  • utput fun levels for particular players,

based on measurements of playing style. Live judging! (We need you! Do you have Java installed?)

Sunday, July 25, 2010

slide-20
SLIDE 20

The 2010 Mario AI Championship

  • EvoStar (April, Istanbul): Gameplay track
  • WCCI (July, Barcelona): Gameplay, Learning

and Level Generation tracks

  • CIG (August, Copenhagen): Gameplay,

Learning and Level Generation tracks

  • ICE-GIC (December, Hong Kong):

Turing Test track

Sunday, July 25, 2010

slide-21
SLIDE 21

Gameplay track

Sergey Karakovskiy and Julian Togelius

Sunday, July 25, 2010

slide-22
SLIDE 22

Agent goals

  • Develop an agent that gets as far and as fast as

possible...

  • ...on as many levels as possible...
  • ...which are previously unseen
  • Scoring: progress on 40 randomly generated levels

(of different difficulty, length, type) with seed 17564

  • If two agents complete all the levels: tiebreakers

Friday, September 11, 2009 Sunday, July 25, 2010

slide-23
SLIDE 23

Challenges

  • Handle a large state/observation space
  • Handle very different situations (now more

different than before)

  • Tactical tradeoffs (e.g. go back and get the

power-up or continue forward?)

Sunday, July 25, 2010

slide-24
SLIDE 24

Interface

Friday, September 11, 2009 Sunday, July 25, 2010

slide-25
SLIDE 25
  • 22x22 arrays describing
  • landscape features (e.g. walls, cannons,

gaps)

  • creatures
  • Fine position of Mario and creatures
  • Booleans: mario is on the ground, may

jump, is carrying a shell, is small/big/fire

Environment Interface

Friday, September 11, 2009 Sunday, July 25, 2010

slide-26
SLIDE 26

benchmark outputs Score: 13998.645 Levels cleared = 9 Total time left = 6780 Total Kills = 87 Mario mode = 32 TOTAL SUM = 20906.645 action

  • bservation

Your Agent 22x22 byte arrays float[] positions (0, 1, 0, 1, 1) float[] rewards

Mario AI in a nutshell

Sunday, July 25, 2010

slide-27
SLIDE 27

Very simple agent

Example

Sunday, July 25, 2010

slide-28
SLIDE 28

Differences from last year

  • Framework more developed, now with

better support for non-Java agents (e.g. Python)

  • Tighter bound on time taken/action
  • More difficult levels!
  • Level generator augmented to generate

really hard levels on higher difficulties

  • Some levels are impossible

Sunday, July 25, 2010

slide-29
SLIDE 29

Evaluation setup

  • total episodes: 126
  • Main score: distance passed
  • Tie-breakers: speed, creatures killed, mode
  • all 3 types of levels, fixed seed, difficulties = {0,

1, 3, 5, 12, 16, 20}

  • 42 ms per action (violating the limit results in

disqualification for the entire level)

  • tweaked JVM run to skip the GC executions.

Sunday, July 25, 2010

slide-30
SLIDE 30

Results

Sunday, July 25, 2010

slide-31
SLIDE 31

Evaluation parameters

  • Seed 429766
  • 576 trials
  • Remember: a controller is disqualified on a

level if it takes more than 42 ms (real time) in any frame

Sunday, July 25, 2010

slide-32
SLIDE 32

Team Members Score Disc Technique

Robin Baumgarten 1537834 312 A* Sergey Polikarpov 1637935 1 CyberNeuron (RL) wSUMariO- CAT Robert Reynolds, Leonard Kinnaird- Heether, Tracy Lai 1113437 Elman network / cultural algorithm Alexander Buck 991372 ? Eamon Wong 972341 Q-learning Mathew Erickson 634239 Genetic Programming

Sunday, July 25, 2010

slide-33
SLIDE 33

Winner of the Gameplay track: Sergey Polikarpov

Sunday, July 25, 2010

slide-34
SLIDE 34

Videos

Sunday, July 25, 2010

slide-35
SLIDE 35

What can we learn?

  • A* is not invincible!
  • At least not on its own
  • All entrants fail at dead ends, but fail in

different ways

  • We probably need to combine micro- and

macro-strategy

  • Still time left to compete at CIG event

Sunday, July 25, 2010

slide-36
SLIDE 36

Learning track

Sergey Karakovskiy and Julian Togelius

Sunday, July 25, 2010

slide-37
SLIDE 37

Please compete!

  • The interface is almost as simple as for the

GamePlay track (and almost the same)

  • Allows you 1000 runs to optimize your

controller

  • Scores you on the 1001st
  • Too few entrants for the WCCI event
  • Still time left to compete...

Sunday, July 25, 2010

slide-38
SLIDE 38

Level generation track

Noor Shaker, Julian Togelius and Georgios Yannakakis

Sunday, July 25, 2010

slide-39
SLIDE 39

The Goal

Submit a level generator that generates fun levels, personalized for individual players The levels generated also has to adhere to constraints to force the generation of diverse levels

Sunday, July 25, 2010

slide-40
SLIDE 40

The process

  • Each judge plays a test level, and his

performance on this level is recorded (various metrics such as jumps, deaths etc.)

  • Each level generator generates a level

tailored to each judge

  • The judges play “their own” levels and rank

them

Sunday, July 25, 2010

slide-41
SLIDE 41

Setup

Sunday, July 25, 2010

slide-42
SLIDE 42

Interface

GamePlay.java contains information about the level design and how the testers played public int totalEnemies; //total number of enemies public int totalEmptyBlocks; //total number of empty blocks public int totalpowerBlocks; //total number of power blocks public int totalCoins; //total number of coins public int GreenTurtlesKilled;//number of Green Turtle Mario killed public int ArmoredTurtlesKilled; //number of Armored Turtle Mario killed public int GoombasKilled; //number of Goombas Mario killed public int timeRunningLeft;//total time spent running to the left public int emptyBlocksDestroyed; //number of empty blocks destroyed public int coinsCollected; //number of coins collected .

Sunday, July 25, 2010

slide-43
SLIDE 43

Interface

  • LevelInterface.java provides a simple interface

that should be implemented when constructing your customized level: public byte[][] getMap(); public SpriteTemplate[][] getSpriteTemplates()

  • Constructed levels should communicate with

the simulation only through the LevelGenerator interface: public LevelInterface generateLevel (GamePlay playerMetrics);

Sunday, July 25, 2010

slide-44
SLIDE 44

Interface

  • All submitted levels should satisfy the

constraints defined in the Constraints

  • interface. Example:

public static int levelWidth= 320; public static int gaps = 10; public static int turtles = 7; public static int coinBlocks = 10;

Sunday, July 25, 2010

slide-45
SLIDE 45

Instructions

  • Download the jar file
  • Run it (double click)
  • Play the first level (controls A, S, arrows)
  • Play two additional levels
  • Rank the levels: most and second most fun
  • Turn your laptops towards me!
  • Scoring: 2 point for most fun level, 1 for

second most fun

Sunday, July 25, 2010

slide-46
SLIDE 46

http:// julian.togelius.com/ competition.jar

Sunday, July 25, 2010

slide-47
SLIDE 47

Scores:

  • Random: 12
  • Optimized: 7
  • Nathan: 20
  • Demo winner: Nathan Sorenson

Sunday, July 25, 2010

slide-48
SLIDE 48

Optimized gaps level

  • Refinement of the original Infinite Mario

level generator

  • Placement, number and width of gaps

generated using a model based on preference learning from 240 players

  • Christoffer Pedersen, Julian Togelius and

Georgios Yannakakis (2010): Modeling Player Experience for Content Creation. IEEE TCIAIG.

  • Also forthcoming AIIDE paper (Shaker et al)

Sunday, July 25, 2010

slide-49
SLIDE 49

Nathan Sorenson

  • Simon Fraser University
  • Level generator based on GA (high level) and

constraint solver (low level)

  • Preliminary work reported in:

Sorenson, N. & Pasquier, P . (2010). "Towards a Generic Framework for Automated Video Game Level Creation", EvoGames 2010

Sunday, July 25, 2010

slide-50
SLIDE 50

http://groups.google.com/group/mariocompetition/ http://www.marioai.org

Sunday, July 25, 2010

slide-51
SLIDE 51

Sunday, July 25, 2010