ultra fast, cross genre, procedural content generation in games [master thesis]

Post on 13-Apr-2017

387 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

A Progressive Approachfor Content Generation of Games

A Projection-Based Approachfor Real-time Assessment of Physics-based Games

A Progressive Approachfor Content Generation of Games

A Projection-Based Approachfor Real-time Assessment of Physics-based Games

A Progressive Approachfor Content Generation of Games

A Projection-Based Approachfor Real-time Assessment of Physics-based Games

Real-time

A Progressive Approachfor Content Generation of Games

A Projection-Based Approachfor Real-time Assessment of Physics-based Games

Real-time

Generic

State of the Art

P r o c e d u r a l

C o n t e n t

G e n e r at i o n

( P C G )

P r o c e d u r a l

C o n t e n t

G e n e r at i o n

( P C G )

Mario

Physics-based Games/ Angry Birds

Physics-based Games/ Cut the Rope

Sequels 2010, 2011, 2012 and 2013, 2014

WWDC 2011, won an Apple Design Award for the iOS platform

150 million downloads

1.6 million users/daily

Physics-based Games/ Cut the Rope

Demo of CTR

A Projection-Based Approachfor Real-time Assessment and Playability Check for Physics-Based Games

Design

The Problem in Physics-based Games

Design Playable?

The Problem in Physics-based Games

Design Playable?

The Problem in Physics-based Games

Design Playable?

The Problem in Physics-based Games

Design Playable?

The Problem in Physics-based Games

Design Playable?

The Problem in Physics-based Games

A 5 sec Game

A 5*60 = 300 time steps

5 Actions

The Problem in Physics-based Games

S T A T E S

4.9 *10214

A Simulation-based Approach

A Simulation-based Approach

A Simulation-based Approach

Simulate All Paths (Tree Search + AI Prolog Agent) 29 sec

State of the Art

Simulation-based

Comparison (Check)

State of the Art

Simulation-based

29 sec

Comparison (Check)

State of the Art

Simulation-based

Our Approach

Projection-based

29 sec

Comparison (Check)

State of the Art

Simulation-based

Our Approach

Projection-based

29 sec 0.1 sec

Comparison (Check)

A Projection Approach

A Projection Approach

?

A Projection Approach

A Projection Approach

A Projection Approach

A Projection Approach

A Projection Approach

A Projection Approach

A Projection Approach

A Projection Approach

Playable! 0.1 sec

A Projection Approach

Using the Influence Area 0.1 sec

Ok, but this is over-simplified!

The Influence Area (IA)

Simple IA

The Influence Area (IA)

Simple IA

Complex IA

Activation Order

Non-playable

Activation Order

Non-playable Playable

Context is Vital

Context is Vital

Context is Vital

Context is Vital

A Projection Approach

Using the Influence Area

A Projection Approach

Using the Influence Area

A Projection Approach

Using the Influence Area using tree search ( ) + intelligence

A Projection Approach

Using the Influence Area using tree search ( ) + intelligence

Static Demo

Tree Search + Intelligence

Searching only 8 nodes for 7 components in 0.1 sec

Online Demo

A Progressive Approach for Content Generation in Games

A Progressive Approach for Content Generation in Games

Progressive Approach

Constructive Search-based

[+] Fast

[-] Playability[-] Slow

[+] Playability, Balance Control

PCG Approaches (in literature)

Progressive Approach

Constructive Search-based

[+] Fast

[-] Playability[-] Slow

[+] Playability, Balance Control

PCG Approaches (in literature)

Progressive Approach

[+] Fast[+] Playability, Balance Control

Constructive Search-based

[+] Fast

[-] Playability[-] Slow

[+] Playability, Balance Control

PCG Approaches (in literature)

Progressive Approach

[+] Fast[+] Playability, Balance Control

Constructive Search-based

[+] Fast

[-] Playability[-] Slow

[+] Playability, Balance Control

PCG Approaches (in literature)

Progressive Approach

[+] Fast[+] Playability, Balance Control

Constructive Search-based

[+] Fast

[-] Playability[-] Slow

[+] Playability, Balance Control

PCG Approaches (in literature)

The Generation Problem on its HEAD!

The Generation Problem on its HEAD!

Generator

(Comps Placement)

The Generation Problem on its HEAD!

Level

(Player Interactions)

Generator

(Comps Placement)

Current Evolution Approaches

Current Evolution Approaches Rep.

Current Evolution Approaches Rep.

Rope(200, 10) Rope(220, 23) Bubble(170, 130) OmNom(150, 200)

Current Evolution Approaches Rep.

Rope(200, 10) Rope(220, 23) Bubble(170, 130) OmNom(150, 200)

Current Evolution Approaches Rep.

Rope(200, 10) Rope(220, 23) Bubble(170, 130) OmNom(150, 200)

The Generation Problem on its HEAD!

Level

(Player Interactions)

Generator

(Comps Placement)

The Generation Problem on its HEAD!

Level

(Player Interactions)

Generator

(Comps Placement)

Generator

(Player Interactions)

The Generation Problem on its HEAD!

Level

(Player Interactions)

Generator

(Comps Placement)

Generator

(Player Interactions)

Level

(Comps Placement)

Progressive Approach Rep.

0 600 2000 4100 5400

EndStart

Time(MS)

Progressive Approach Rep.

0 600 2000 4100 5400

EndStart

Time(MS)

RopeCut RopeCut BubblePop OmnomFeed

Progressive Approach Rep.

0 600 2000 4100 5400

EndStart

Time(MS)

RopeCut RopeCut BubblePop OmnomFeed

Progressive Approach Rep.

0 600 2000 4100 5400

EndStart

Time(MS)

RopeCut RopeCut BubblePop OmnomFeed

Progressive Approach Rep.

0 600 2000 4100 5400

EndStart

Time(MS)

RopeCut RopeCut BubblePop OmnomFeed

Progressive Approach Rep.

0 600 2000 4100 5400

EndStart

Time(MS)

RopeCut RopeCut BubblePop OmnomFeed

Progressive Approach Rep.

0 600 2000 4100 5400

EndStart

Time(MS)

RopeCut RopeCut BubblePop OmnomFeed

Rope(200, 10) Rope(220, 23) Bubble(170, 130) OmNom(150, 200)

Progressive Approach Framework

• A Progressive Approach

1. Timeline Generation (Grammatical Evolution)rope_cut(200) rope_cut(500) aircuh_press(700) rocket_press(600) omNom_feed(0)

2. Timeline Simulation (Game Engine)

Progressive Approach Framework

• A Progressive Approach

1. Timeline Generation (Grammatical Evolution)rope_cut(200) rope_cut(500) aircuh_press(700) rocket_press(600) omNom_feed(0)

2. Timeline Simulation (Game Engine)

Timeline Generation

Grammatical Evolution

.

.

.

Progressive Approach Framework

• A Progressive Approach

1. Timeline Generation (Grammatical Evolution)rope_cut(200) rope_cut(500) aircuh_press(700) rocket_press(600) omNom_feed(0)

2. Timeline Simulation (Game Engine)

Timeline Generation

Grammatical Evolution

.

.

.

Simulation

Game

level

Game

simulator

Evaluator

Progressive Approach Framework

• A Progressive Approach

1. Timeline Generation (Grammatical Evolution)rope_cut(200) rope_cut(500) aircuh_press(700) rocket_press(600) omNom_feed(0)

2. Timeline Simulation (Game Engine)

Timeline Generation

Grammatical Evolution

.

.

.

Simulation

mapping Game

level

Game

simulator

Evaluator

Assign score

• A Progressive Approach

1. Timeline Generation (Grammatical Evolution)rope_cut(200) rope_cut(500) aircuh_press(700) rocket_press(600) omNom_feed(0)

2. Timeline Simulation (Game Engine)

Framework Customization in CTR

• A Progressive Approach

1. Timeline Generation (Grammatical Evolution)rope_cut(200) rope_cut(500) aircuh_press(700) rocket_press(600) omNom_feed(0)

2. Timeline Simulation (Game Engine)

Framework Customization in CTR

Timeline Generation

Grammatical Evolution

.

.

.

• A Progressive Approach

1. Timeline Generation (Grammatical Evolution)rope_cut(200) rope_cut(500) aircuh_press(700) rocket_press(600) omNom_feed(0)

2. Timeline Simulation (Game Engine)

Framework Customization in CTR

<timeline>::=<IEs><IE_terminal><IEs>::=<IE><IEs_more><IEs_more>::=<IE>|<IE><IEs_more><IE>::=<rope_cut>|<aircush_press>|<bubble_pop>|<bumper_inter>|<rocket_press><rope_cut>::=rope_cut(<default_ET>)<aircush_press>::=aircush_press(<default_ET>)<bubble_pop>::=bubble_pop(<short_ET>)<rocket_press>::=rocket_press(<short_ET>)<bumper_inter>::=bumper_inter(<long_ET>)<IE_terminal>::=OmNom_feed(0)<short_ET>::=[600,1600]<default_ET>::=[800,1800]

<long_ET>::=[1200,2200]

• A Progressive Approach

1. Timeline Generation (Grammatical Evolution)rope_cut(200) rope_cut(500) aircuh_press(700) rocket_press(600) omNom_feed(0)

2. Timeline Simulation (Game Engine)

Framework Customization in CTR

Simulation

Game

level

Game

simulator

Evaluator

• A Progressive Approach

1. Timeline Generation (Grammatical Evolution)rope_cut(200) rope_cut(500) aircuh_press(700) rocket_press(600) omNom_feed(0)

2. Timeline Simulation (CRUST 2D Engine)

Framework Customization in CTR

Simulation

Game

level

Game

simulator

Evaluator

Demo

Results

&

Analysis

Generator Analysis – Axiality

Axiality Histogram over 100 generated levels of the Projection Agent

Generator Analysis – Color Maps

Air-cushion placement color maps for 100 generated levels of the Progressive Agent

Comparison (Check)

29sec

Simulation-based

Comparison (Check)

29sec

Simulation-based

0.1 sec

Projection

Comparison (Evolution)

470sec

Simulation-based

Comparison (Evolution)

470sec

Simulation-based

13 sec

Projection

Comparison (Evolution)

470sec

Simulation-based

13 sec

Projection

7 sec

Progressive

Comparison (Quality)

-Simulation-based

Comparison (Quality)

-Simulation-based

-Projection

Comparison (Quality)

-Simulation-based

-Projection

Usage+

Difficulty+

Playability+Progressive

Future [Research?] Directions

Progressive Approach in Mario?

Progressive Approach in Mario?

0 600 2000 4100 5400

EndStart

Time(MS)

KillEnemy MiniJumpx5 KillTurtle

HighJump

Progressive Approach in Mario?

0 600 2000 4100 5400

EndStart

Time(MS)

KillEnemy MiniJumpx5 KillTurtle

HighJump

NEXT www.mohammadshaker.com/next.html

Thesis Publications

A Projection-Based Approach for Real-time Assessment and Playability Check for Physics-Based GamesIn Proceedings of EvoGames: Applications of Evolutionary Computation, Lecture Notes on Computer Science, 2015

A Progressive Approach to Content GenerationIn Proceedings of EvoGames: Applications of Evolutionary Computation, Lecture Notes on Computer Science, 2015

Live Demo

Thx.

top related