ultra fast, cross genre, procedural content generation in games [master thesis]
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.