SlideShare a Scribd company logo
1 of 94
Download to read offline
Presentation Timeline 
•The problem, the solution and what others are doing 
•The game and the research 
•Ropossum: the framework 
–Content generation 
–Playability 
–Authoring tool 
•Results and analysis 
•Future Perspectives
Presentation Timeline 
•The problem, the solution and what others are doing 
•The game and the research 
•Ropossum: the framework 
–Content generation 
–Playability 
–Authoring tool 
•Results and analysis 
•Future Perspectives
$93 Billion in 2013 
Gaming Industry
Battlefield 4
What is wrong with games now? 
Designer 
Level design 
Players
What is wrong with games now? 
Designer 
Level design 
Gender?
What is wrong with games now? 
Designer 
Level design 
Personalities?
What is wrong with games now? 
Designer 
Level design 
NEEDS
What is wrong with games now? 
Designer 
Level design 
What if I want 
to play More?
What is wrong with games now? 
Designer 
Level design 
What if I want 
to play More?
What is wrong with games now? 
Generator 
Level design 
What if I want 
to play More?
Procedural 
Content 
Generation 
(PCG)
241,920,000 logins per month 
4000 logins per second after 1.0 launch 
2,000,000,000 files download by the launcher 
11,000 skin downloads (in game) per second
No Man's Sky
Presentation Timeline 
•The problem, the solution and what others are doing 
•The game and the research 
•Ropossum: the framework 
–Content generation 
–Playability 
–Authoring tool 
•Results and analysis 
•Future Perspectives
-Popular physics based game 
-Can generate endless levels 
-All levels should be playable 
-Opens the imagination of all players to design, test, modifytheir own levels and helpthem achieve that. 
?
Cut the Rope 
Sequels 2010, 2011, 2012 and 2013 
WWDC 2011,won anApple Design Awardfor the iOSplatform 
100 million times 
1.6 million users/daily
The Game, Demo
This Work Publications, So Far..
“Automatic Generation and Analysis of Physics-Based Puzzle Games” 
IEEE Conference on Computational Intelligence and Games, CIG 2013. Nominated for best paper award. 
CIG 13 
“Evolving Playable Content for Cut the Rope through a Simulation-Based Approach” 
AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013 
AIIDE 13 
“Ropossum: An Authoring Tool for Designing, optimizing and Solving Cut the Rope Levels” 
AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013 
AIIDE 13
Presentation Timeline 
•The problem, the solution and what others are doing 
•The game and the research 
•Ropossum: the framework 
–Content generation 
–Playability 
–Authoring tool 
•Results and analysis 
•Future Perspectives
www.mohammadshaker.com/crust.html
Game Components
GE Context Free Grammars 
<level>::=<candy><Om_Nom><components> <candy>::=candy(<x>,<y>) <Om_Nom>::=Om_Nom(<x>,<y>) <components>::=<rope><air_cush><bumper><rocket><bubble><more_components> <more_components>::=<component>|<component><more_components> <component>::=<rope>|<air_cush>|<rocket>|<bumper>|<bubble> <rope>::=rope(<x>,<y>,<rope_length>) <rocket>::=rocket(<x>,<y>,<rocket_dir>) <air_cush>::=air_cush(<x>,<y>,<air_cush_dir>) <bumper>::=bumper(<x>,<y>,<bumper_dir>) <bubble>::=bubble(<x>,<y>) <x>::=[0, 260] <y>::=[0, 420] <rope_length>::=[0, 170] <air_cush_dir>::= 0 | 1<bumper_dir>::=[0, 7] <rocket_dir>::=[0, 7]
GE Context Free Grammars 
<level>::=<candy><Om_Nom><components> <candy>::=candy(<x>,<y>) <Om_Nom>::=Om_Nom(<x>,<y>) <components>::=<rope><air_cush><bumper><rocket><bubble><more_components> <more_components>::=<component>|<component><more_components> <component>::=<rope>|<air_cush>|<rocket>|<bumper>|<bubble> <rope>::=rope(<x>,<y>,<rope_length>) <rocket>::=rocket(<x>,<y>,<rocket_dir>) <air_cush>::=air_cush(<x>,<y>,<air_cush_dir>) <bumper>::=bumper(<x>,<y>,<bumper_dir>) <bubble>::=bubble(<x>,<y>) <x>::=[0, 260] <y>::=[0, 420] <rope_length>::=[0, 170] <air_cush_dir>::= 0 | 1<bumper_dir>::=[0, 7] <rocket_dir>::=[0, 7]
should be placed higher than Om Nom when the level contains no component to elevate the candy, such as bubbles or water. 
Candy 
should be placed under the closest rope when there is no water, 
bubbles or rockets. 
Om Nom 
should be placed close to the end of a rope, inside a predefined circle surrounding the end of it. 
Blower 
Should be placed in a position where it does intersect with at least one of the ropes. 
Bubble 
rockets should aim at Om Nom 
Rocket 
Components shouldn’t intersect, 3 block size apart 
Comps 
25% 
10% 
10% 
10% 
20% 
25%
=25∗푃푐푎푛푑푦+10∗푃푂푚푁표푚+10∗푁푏푙표푤푒푟∗푃푏푙표푤푒푟 
+20∗푁푟표푐푘푒푡∗푂푟표푐푘푒푡+10∗푁푏푢푏푏푙푒∗푃푏푢푏푏푙푒+25∗퐶_표푣푒푟푙푎푝 
Fitness
candy(481, 143) OmNom(287, 384) rope(445, 69, 90) rope(596, 100, 150) bubble(294, 76) rocket(471, 342, 5)
PCGEngine 
Generate Level (Grammatical Evolution) 
PCG with CRUST Generator Model
PCGEngine 
Generate Level (Grammatical Evolution) 
Fitness Evaluators 
PCG with CRUST Generator Model
PCGEngine 
CRUSTEngine 
Generate Level (Grammatical Evolution) 
Fitness Evaluators 
Level Generator 
Resting Phase 
Visualize Level and Update 
PCG with CRUST Generator Model
Generated Samples
“Automatic Generation and Analysis of Physics-Based Puzzle Games” 
IEEE Conference on Computational Intelligence and Games, CIG 2013
Presentation Timeline 
•The problem, the solution and what others are doing 
•The game and the research 
•Ropossum: the framework 
–Content generation 
–Playability: The Model 
–Authoring tool 
•Results and analysis 
•Future Perspectives
Playability
Player 
Actions 
CRUSTworks on fixed time step 60 times per second 
Rope cut 
Blower press 
Bubble burst 
Rocket press 
Void
If the game is 5 sec long, then we have 5*60 = 300 time step 
Given we have 5 actions, then we need to evaluate
Shrink the SEARCH space with constrained Search with A Rule-based Agent
candy(497, 153). 
velocity(0, 0). 
OmNom(317, 414). 
rope(0, 445, 69, 105). 
rope(1, 596, 100, 165). 
bubble_void(319, 101). 
rocket_void(501, 357, 5).
Constraint search rule sets 
[1] rope_cut :-rope(_,_), Om_Nom(Xo,Yo), 
((candy(Xc,Yc), distance(Xo,Yo,Xc,Yc,50))| (active_bubble(_,Yb),(Yf<Yb))) [2] air-cush_press:-air_cush(X,Y,Dir), candy(Xc, Yc), 
distance(X, Y, Xc, Yc, 80), candy_in_direction_of_air_cush(X,Y) [3] bubble_burst:-active_bubble(X,Y), OmNom(Xo, Yo), (Yo> Y), 
distance(X, Y, 50), 
((velocity_to_right, OmNom_to_right(X, Y)) |(velocity_to_left, OmNom_to_left(X, Y))) [4] rocket_press:-active_rocket(X,Y,_), Yo< Y, OmNom(Xo, Yo), distance(Xo,Yo,X,Y,100) [6] candy_in_direction_of_air_cush(X,Y) :-candy(Xc,Yc), air_cushion(X,Y,Dir), ((Xc< X , dir_to_left(Dir)) [5] void_action
[1] rope_cut :-rope(_,_), reachable(_) 
[2] air-cush_press:-air-cush(X,Y,Dir), candy_in_direction_of_air-cush(X,Y), distance(X, Y, 80) 
[3] bubble_pinch:-active_bubble(_,_), reachable(_) 
[4] rocket_press:-active_rocket(X,Y,Dir), reachable(_) 
[5] void_action :-rope_cut| bubble_pinch| air-cush_press| rocket_press| reachable(_) 
Constraint search rule sets 
[1] rope_cut :-rope(_,_), Om_Nom(Xo,Yo), 
((candy(Xc,Yc), distance(Xo,Yo,Xc,Yc,50))| (active_bubble(_,Yb),(Yf<Yb))) [2] air-cush_press:-air_cush(X,Y,Dir), candy(Xc, Yc), 
distance(X, Y, Xc, Yc, 80), candy_in_direction_of_air_cush(X,Y) [3] bubble_burst:-active_bubble(X,Y), OmNom(Xo, Yo), (Yo> Y), 
distance(X, Y, 50), 
((velocity_to_right, OmNom_to_right(X, Y)) |(velocity_to_left, OmNom_to_left(X, Y))) [4] rocket_press:-active_rocket(X,Y,_), Yo< Y, OmNom(Xo, Yo), distance(Xo,Yo,X,Y,100) [6] candy_in_direction_of_air_cush(X,Y) :-candy(Xc,Yc), air_cushion(X,Y,Dir), ((Xc< X , dir_to_left(Dir)) [5] void_action
Explore each action sub tree 
CRUST Engine 2.0 
Prolog Engine 
Engine State 
as Facts 
Set of ordered potential actions 
Actions tree branch 
New 
Engine State 
Inference Engine 
Playability Model Closed Loop
Demo
rope_cut(0) 
rope_cut(1) 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
rocket_press 
void_action
rope_cut(0) 
rope_cut(1) 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
rocket_press 
void_action
Presentation Timeline 
•The problem, the solution and what others are doing 
•The game and the research 
•Ropossum: the framework 
–Content generation 
–Playability: The Performance 
–Authoring tool 
•Results and analysis 
•Future Perspectives
Performance Enhancement Techniques 
•Adaptive Time Step: 
–blower_Press15 
–rope_cut10 
–void_action12 
–bubble_burst15 
–rocket_press17
rope_cut(0) 
rope_cut(1) 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
rocket_press 
void_action 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15
Performance Enhancement Techniques 
•Adaptive Time Step: 
–blower_Press15 
–rope_cut10 
–void_action12 
–bubble_burst15 
–rocket_press17 
•Branch Cut: 
–Tree branch cut when trajectory doesn’t make sense
rope_cut(0) 
rope_cut(1) 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
void_action 
rocket_press 
void_action
Demo. Only 215 explored nodes
Solution Tree 
Only 205 nodes
Presentation Timeline 
•The problem, the solution and what others are doing 
•Ropossum; the game and the research 
•Ropossum; the framework 
–Content Generation 
–Playability 
•The playability model 
•Performance enhancement 
•Content generation with playability check 
•Other playability models 
–Authoring tool 
•Results and analysis 
•Future Perspectives
PCGEngine 
CRUSTEngine 
Generate Level (Grammatical Evolution) 
fitness = 0.25 ∗design + 0.75 ∗playability_agent 
Level Generator 
Resting Phase 
Visualize Level and Update 
Content generation with playability check
“Evolving Playable Content for Cut the Rope through a Simulation-Based Approach” 
AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013
Presentation Timeline 
•The problem, the solution and what others are doing 
•The game and the research 
•Ropossum: the framework 
–Content generation 
–Playability: Other Models? 
–Authoring tool 
•Results and analysis 
•Future Perspectives
Output 
Input 
Previous State 
StateHidden 
Weights V 
Weights U 
Weights W 
SRN 
Output 
Input 
Previous State 
State/ Hidden 
Weights V 
Weights U 
Copy 
(Delayed) 
Weights W 
Elman 
Output 
Input 
Previous State 
State/ Hidden 
Weights V 
Weights U 
Weights W 
Copy 
(Delayed) 
Jordan 
Recurrent 
Neural 
Networks
Output 
Input 
Previous State 
Hidden 
Weights V 
Weights U 
State 
Weights W 
Standard Recurrent Network (SRN)
Output 
Input 
Previous State 
State/ Hidden 
Weights V 
Weights U 
Weights W 
Elman RNN
Output 
Input 
Previous State 
State/ Hidden 
Weights V 
Weights U 
Copy 
(Delayed) 
Weights W 
Elman RNN
Output 
Input 
Previous State 
State/ Hidden 
Weights V 
Weights U 
Copy 
(Delayed) 
Weights W 
Jordan RNN
Output 
Input 
Previous State 
State/ Hidden 
Weights V 
Weights U 
Copy 
(Delayed) 
Weights W 
Jordan RNN
Experimental setup 
<rope> <rope> <air_cushion> <bumper> <bubble> <rocket> <candy> <Om_Nom> 
Grid 
XY 
Candy distance 
Om Nom distance 
Input Representation
0 
400 
200 
300 
100 
Rope 
Cuts(1) 
Rope 
Cuts(2) 
Rocket 
Presses 
Air- Cushion 
Presses 
Bubble 
Bursts 
Void 
Actions 
Presented actions in the 100 playable levels test set altogether 
Problem, Un-balanced Data
Balancing 
COI 
Data Representation 
Training 
levels # 
Network 
Type 
Setup 
Hidden 
Neurons # 
TestId 
Balanced 
N 
All 
100 
Elman 
10 networks 
50traininglevels 
0.0001 error 
10 runs 
37 
Test 1 
Balanced 
Y 
All 
100 
Elman 
N 
Y 
XY 
10, 50, 100 
Elman 
6 networks 
50traininglevels 
0.0001 error 
6 runs 
37 
Test 2 
4 
Y 
XY 
10, 50, 100 
Elman 
N 
Y 
XY 
150 
Jordan 
8 networks 
50traininglevels 
0.01 error 
8 runs 
5, 10, 15, 20,25, 30, 35, 40 
Test 3 
4 
Y 
XY 
50 
Jordan 
4 
Y 
XY 
50 
Elman 
N 
Y 
XY 
10, 50, 100 
Jordan 
8 networks 
50traininglevels 
0.02 error 
8 runs 
5, 10, 15, 20,25, 30, 35, 40 
Test 4 
2 
Y 
XY 
10, 50, 100 
Jordan 
N 
N 
Cookie distance 
10, 50, 100 
Elman 
8 networks 
50traininglevels 
0.02 error 
5 runs 
5 
Test 5 
N 
N 
XY 
10, 50, 100 
Elman
Presentation Timeline 
•The problem, the solution and what others are doing 
•The game and the research 
•Ropossum: the framework 
–Content generation 
–Playability: Other Models? 
–Authoring tool 
•Results and analysis 
•Future Perspectives
Ropossum: RealtimeAuthoring Tool
Ropossum: RealtimeAuthoring Tool
Ropossum: RealtimeAuthoring Tool
GE Context Free Grammars 
<level>::=<candy><Om_Nom><components> <candy>::=candy(<x>,<y>) <Om_Nom>::=Om_Nom(<x>,<y>) <components>::=<rope><air_cush><bumper><rocket><bubble><more_components> <more_components>::=<component>|<component><more_components> <component>::=<rope>|<air_cush>|<rocket>|<bumper>|<bubble> <rope>::=rope(<x>,<y>,<rope_length>) <rocket>::=rocket(<x>,<y>,<rocket_dir>) <air_cush>::=air_cush(<x>,<y>,<air_cush_dir>) <bumper>::=bumper(<x>,<y>,<bumper_dir>) <bubble>::=bubble(<x>,<y>) <x>::=[0, 260] <y>::=[0, 420] <rope_length>::=[0, 170] <air_cush_dir>::= 0 | 1<bumper_dir>::=[0, 7] <rocket_dir>::=[0, 7]
Ropossum Demo
“Ropossum: An Authoring Tool for Designing, optimizing and Solving Cut the Rope Levels” 
AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013
Presentation Timeline 
•The problem, the solution and what others are doing 
•The game and the research 
•Ropossum: the framework 
–Content generation 
–Playability: Other Models? 
–Authoring tool 
•Results and analysis 
•Future Perspectives
Selected InterestingResults 
•35% of the playable levels haven’t been branch cut [direct solution] 
•72.3% is the percentage of void action in the generated levels [relatively short levels?] 
•29.8 ∓58.3 sec for checking a playable level. 
•210% ∓167.6 for checking a non-playable level 
–115 and 638 nodes is the average number of explored nodes for generated playable and non-playable levels [more explored nodes] 
•10 min is the average time for generating a playable level
Average and standard deviation values of the four components 
extracted from 500 generated levels 
Frequency Analysis
Axialityof 0.1X, 0.9Y 
Axialityof 1X, 0.4Y 
AxialityMeasure
Axialityhistogram over 500 generated levels 
AxialityMeasure
Density of 0.036 
Density of 1 
Density Measure 휎= 푖=1 푛(푥푖− 푥) 푛
The histogram of the density measure for the 500 generated levels 
Density 
Number of levels 
Density Measure
Density-Axialityhistogram over 500 generated levels 
Axiality-Density Histogram
Usedvs. Presentedcomponents by the playability agent over 100 generated playable levels 
0 
2 
1 
1.5 
0.5 
Ropes 
Rockets 
Air- Cushions 
Bubbles 
Bumpers 
# activatedcomponents
Presentation Timeline 
•The problem, the solution and what others are doing 
•Ropossum; the game and the research 
•Ropossum; the framework 
–Content generation 
–Playability 
–Authoring tool 
•Results and analysis 
•Future Perspectives
Marry someoneand break your addiction 
Employedor NOT 
Employed people are 2Xmore likely to feel 
anxiety and 2.25Xlikely to experience anger 
Singlevs. Married 
You are X2likely to be addicted on angry birds if 
you are single than if you are married
6% 
Very 
anxious 
17% 
Somewhat anxious 
22% 
Neither 
32% 
Somewhat relaxed 
23% 
Very 
relaxed 
Player Emotion
Simple 
Easy 
Just right 
Tough 
3% 
6% 
60% 
31% 
Difficulty
Live Demowww.mohammadshaker.com/ropossum.html
Fasten your seatbeltA new GAME era is emerging...
Thank you

More Related Content

Similar to Ropossum: A Game That Generates Itself

Cloudera Data Science Challenge
Cloudera Data Science ChallengeCloudera Data Science Challenge
Cloudera Data Science ChallengeMark Nichols, P.E.
 
Data Science Challenge presentation given to the CinBITools Meetup Group
Data Science Challenge presentation given to the CinBITools Meetup GroupData Science Challenge presentation given to the CinBITools Meetup Group
Data Science Challenge presentation given to the CinBITools Meetup GroupDoug Needham
 
Introduction to Coding
Introduction to CodingIntroduction to Coding
Introduction to CodingFabio506452
 
Snake game implementation in c
Snake game implementation in cSnake game implementation in c
Snake game implementation in cUpendra Sengar
 
Android webinar class_4
Android webinar class_4Android webinar class_4
Android webinar class_4Edureka!
 
Devoxx 2017 - AI Self-learning Game Playing
Devoxx 2017 - AI Self-learning Game PlayingDevoxx 2017 - AI Self-learning Game Playing
Devoxx 2017 - AI Self-learning Game PlayingRichard Abbuhl
 
Agile Agency Scrum: An Introduction to Flexible Project Management for Produc...
Agile Agency Scrum: An Introduction to Flexible Project Management for Produc...Agile Agency Scrum: An Introduction to Flexible Project Management for Produc...
Agile Agency Scrum: An Introduction to Flexible Project Management for Produc...Tim Hamilton
 
Extreme Programming practices for your team
Extreme Programming practices for your teamExtreme Programming practices for your team
Extreme Programming practices for your teamPawel Lipinski
 
Graph-Tool in Practice
Graph-Tool in PracticeGraph-Tool in Practice
Graph-Tool in PracticeMosky Liu
 
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Fwdays
 
進擊的UX - UX and rapid prototyping @ 元智
進擊的UX - UX and rapid prototyping @ 元智進擊的UX - UX and rapid prototyping @ 元智
進擊的UX - UX and rapid prototyping @ 元智伯方 蘇
 
Relay race lego nxt g
Relay race lego nxt gRelay race lego nxt g
Relay race lego nxt gJason Zagami
 
Visibility Optimization for Games
Visibility Optimization for GamesVisibility Optimization for Games
Visibility Optimization for GamesUmbra
 
Visibility Optimization for Games
Visibility Optimization for GamesVisibility Optimization for Games
Visibility Optimization for GamesSampo Lappalainen
 

Similar to Ropossum: A Game That Generates Itself (20)

Extensive Portfolio
Extensive PortfolioExtensive Portfolio
Extensive Portfolio
 
Cloudera Data Science Challenge
Cloudera Data Science ChallengeCloudera Data Science Challenge
Cloudera Data Science Challenge
 
Data Science Challenge presentation given to the CinBITools Meetup Group
Data Science Challenge presentation given to the CinBITools Meetup GroupData Science Challenge presentation given to the CinBITools Meetup Group
Data Science Challenge presentation given to the CinBITools Meetup Group
 
Introduction to Coding
Introduction to CodingIntroduction to Coding
Introduction to Coding
 
Snake game implementation in c
Snake game implementation in cSnake game implementation in c
Snake game implementation in c
 
Android webinar class_4
Android webinar class_4Android webinar class_4
Android webinar class_4
 
Devoxx 2017 - AI Self-learning Game Playing
Devoxx 2017 - AI Self-learning Game PlayingDevoxx 2017 - AI Self-learning Game Playing
Devoxx 2017 - AI Self-learning Game Playing
 
Eyes or heart
Eyes or heartEyes or heart
Eyes or heart
 
fast Introduction scrum
fast Introduction scrumfast Introduction scrum
fast Introduction scrum
 
Agile Agency Scrum: An Introduction to Flexible Project Management for Produc...
Agile Agency Scrum: An Introduction to Flexible Project Management for Produc...Agile Agency Scrum: An Introduction to Flexible Project Management for Produc...
Agile Agency Scrum: An Introduction to Flexible Project Management for Produc...
 
Extreme Programming practices for your team
Extreme Programming practices for your teamExtreme Programming practices for your team
Extreme Programming practices for your team
 
Pong
PongPong
Pong
 
Extensive Portfolio
Extensive PortfolioExtensive Portfolio
Extensive Portfolio
 
Graph-Tool in Practice
Graph-Tool in PracticeGraph-Tool in Practice
Graph-Tool in Practice
 
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
 
Augernaut js
Augernaut jsAugernaut js
Augernaut js
 
進擊的UX - UX and rapid prototyping @ 元智
進擊的UX - UX and rapid prototyping @ 元智進擊的UX - UX and rapid prototyping @ 元智
進擊的UX - UX and rapid prototyping @ 元智
 
Relay race lego nxt g
Relay race lego nxt gRelay race lego nxt g
Relay race lego nxt g
 
Visibility Optimization for Games
Visibility Optimization for GamesVisibility Optimization for Games
Visibility Optimization for Games
 
Visibility Optimization for Games
Visibility Optimization for GamesVisibility Optimization for Games
Visibility Optimization for Games
 

More from Mohammad Shaker

12 Rules You Should to Know as a Syrian Graduate
12 Rules You Should to Know as a Syrian Graduate12 Rules You Should to Know as a Syrian Graduate
12 Rules You Should to Know as a Syrian GraduateMohammad Shaker
 
Interaction Design L06 - Tricks with Psychology
Interaction Design L06 - Tricks with PsychologyInteraction Design L06 - Tricks with Psychology
Interaction Design L06 - Tricks with PsychologyMohammad Shaker
 
Short, Matters, Love - Passioneers Event 2015
Short, Matters, Love -  Passioneers Event 2015Short, Matters, Love -  Passioneers Event 2015
Short, Matters, Love - Passioneers Event 2015Mohammad Shaker
 
Unity L01 - Game Development
Unity L01 - Game DevelopmentUnity L01 - Game Development
Unity L01 - Game DevelopmentMohammad Shaker
 
Android L07 - Touch, Screen and Wearables
Android L07 - Touch, Screen and WearablesAndroid L07 - Touch, Screen and Wearables
Android L07 - Touch, Screen and WearablesMohammad Shaker
 
Interaction Design L03 - Color
Interaction Design L03 - ColorInteraction Design L03 - Color
Interaction Design L03 - ColorMohammad Shaker
 
Interaction Design L05 - Typography
Interaction Design L05 - TypographyInteraction Design L05 - Typography
Interaction Design L05 - TypographyMohammad Shaker
 
Interaction Design L04 - Materialise and Coupling
Interaction Design L04 - Materialise and CouplingInteraction Design L04 - Materialise and Coupling
Interaction Design L04 - Materialise and CouplingMohammad Shaker
 
Android L04 - Notifications and Threading
Android L04 - Notifications and ThreadingAndroid L04 - Notifications and Threading
Android L04 - Notifications and ThreadingMohammad Shaker
 
Android L09 - Windows Phone and iOS
Android L09 - Windows Phone and iOSAndroid L09 - Windows Phone and iOS
Android L09 - Windows Phone and iOSMohammad Shaker
 
Interaction Design L01 - Mobile Constraints
Interaction Design L01 - Mobile ConstraintsInteraction Design L01 - Mobile Constraints
Interaction Design L01 - Mobile ConstraintsMohammad Shaker
 
Interaction Design L02 - Pragnanz and Grids
Interaction Design L02 - Pragnanz and GridsInteraction Design L02 - Pragnanz and Grids
Interaction Design L02 - Pragnanz and GridsMohammad Shaker
 
Android L10 - Stores and Gaming
Android L10 - Stores and GamingAndroid L10 - Stores and Gaming
Android L10 - Stores and GamingMohammad Shaker
 
Android L06 - Cloud / Parse
Android L06 - Cloud / ParseAndroid L06 - Cloud / Parse
Android L06 - Cloud / ParseMohammad Shaker
 
Android L08 - Google Maps and Utilities
Android L08 - Google Maps and UtilitiesAndroid L08 - Google Maps and Utilities
Android L08 - Google Maps and UtilitiesMohammad Shaker
 
Android L03 - Styles and Themes
Android L03 - Styles and Themes Android L03 - Styles and Themes
Android L03 - Styles and Themes Mohammad Shaker
 
Android L02 - Activities and Adapters
Android L02 - Activities and AdaptersAndroid L02 - Activities and Adapters
Android L02 - Activities and AdaptersMohammad Shaker
 
Indie Series 03: Becoming an Indie
Indie Series 03: Becoming an IndieIndie Series 03: Becoming an Indie
Indie Series 03: Becoming an IndieMohammad Shaker
 

More from Mohammad Shaker (20)

12 Rules You Should to Know as a Syrian Graduate
12 Rules You Should to Know as a Syrian Graduate12 Rules You Should to Know as a Syrian Graduate
12 Rules You Should to Know as a Syrian Graduate
 
Interaction Design L06 - Tricks with Psychology
Interaction Design L06 - Tricks with PsychologyInteraction Design L06 - Tricks with Psychology
Interaction Design L06 - Tricks with Psychology
 
Short, Matters, Love - Passioneers Event 2015
Short, Matters, Love -  Passioneers Event 2015Short, Matters, Love -  Passioneers Event 2015
Short, Matters, Love - Passioneers Event 2015
 
Unity L01 - Game Development
Unity L01 - Game DevelopmentUnity L01 - Game Development
Unity L01 - Game Development
 
Android L07 - Touch, Screen and Wearables
Android L07 - Touch, Screen and WearablesAndroid L07 - Touch, Screen and Wearables
Android L07 - Touch, Screen and Wearables
 
Interaction Design L03 - Color
Interaction Design L03 - ColorInteraction Design L03 - Color
Interaction Design L03 - Color
 
Interaction Design L05 - Typography
Interaction Design L05 - TypographyInteraction Design L05 - Typography
Interaction Design L05 - Typography
 
Interaction Design L04 - Materialise and Coupling
Interaction Design L04 - Materialise and CouplingInteraction Design L04 - Materialise and Coupling
Interaction Design L04 - Materialise and Coupling
 
Android L05 - Storage
Android L05 - StorageAndroid L05 - Storage
Android L05 - Storage
 
Android L04 - Notifications and Threading
Android L04 - Notifications and ThreadingAndroid L04 - Notifications and Threading
Android L04 - Notifications and Threading
 
Android L09 - Windows Phone and iOS
Android L09 - Windows Phone and iOSAndroid L09 - Windows Phone and iOS
Android L09 - Windows Phone and iOS
 
Interaction Design L01 - Mobile Constraints
Interaction Design L01 - Mobile ConstraintsInteraction Design L01 - Mobile Constraints
Interaction Design L01 - Mobile Constraints
 
Interaction Design L02 - Pragnanz and Grids
Interaction Design L02 - Pragnanz and GridsInteraction Design L02 - Pragnanz and Grids
Interaction Design L02 - Pragnanz and Grids
 
Android L10 - Stores and Gaming
Android L10 - Stores and GamingAndroid L10 - Stores and Gaming
Android L10 - Stores and Gaming
 
Android L06 - Cloud / Parse
Android L06 - Cloud / ParseAndroid L06 - Cloud / Parse
Android L06 - Cloud / Parse
 
Android L08 - Google Maps and Utilities
Android L08 - Google Maps and UtilitiesAndroid L08 - Google Maps and Utilities
Android L08 - Google Maps and Utilities
 
Android L03 - Styles and Themes
Android L03 - Styles and Themes Android L03 - Styles and Themes
Android L03 - Styles and Themes
 
Android L02 - Activities and Adapters
Android L02 - Activities and AdaptersAndroid L02 - Activities and Adapters
Android L02 - Activities and Adapters
 
Android L01 - Warm Up
Android L01 - Warm UpAndroid L01 - Warm Up
Android L01 - Warm Up
 
Indie Series 03: Becoming an Indie
Indie Series 03: Becoming an IndieIndie Series 03: Becoming an Indie
Indie Series 03: Becoming an Indie
 

Recently uploaded

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 

Recently uploaded (20)

Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 

Ropossum: A Game That Generates Itself

  • 1.
  • 2.
  • 3.
  • 4. Presentation Timeline •The problem, the solution and what others are doing •The game and the research •Ropossum: the framework –Content generation –Playability –Authoring tool •Results and analysis •Future Perspectives
  • 5. Presentation Timeline •The problem, the solution and what others are doing •The game and the research •Ropossum: the framework –Content generation –Playability –Authoring tool •Results and analysis •Future Perspectives
  • 6. $93 Billion in 2013 Gaming Industry
  • 8. What is wrong with games now? Designer Level design Players
  • 9. What is wrong with games now? Designer Level design Gender?
  • 10. What is wrong with games now? Designer Level design Personalities?
  • 11. What is wrong with games now? Designer Level design NEEDS
  • 12. What is wrong with games now? Designer Level design What if I want to play More?
  • 13. What is wrong with games now? Designer Level design What if I want to play More?
  • 14. What is wrong with games now? Generator Level design What if I want to play More?
  • 16. 241,920,000 logins per month 4000 logins per second after 1.0 launch 2,000,000,000 files download by the launcher 11,000 skin downloads (in game) per second
  • 18. Presentation Timeline •The problem, the solution and what others are doing •The game and the research •Ropossum: the framework –Content generation –Playability –Authoring tool •Results and analysis •Future Perspectives
  • 19. -Popular physics based game -Can generate endless levels -All levels should be playable -Opens the imagination of all players to design, test, modifytheir own levels and helpthem achieve that. ?
  • 20.
  • 21. Cut the Rope Sequels 2010, 2011, 2012 and 2013 WWDC 2011,won anApple Design Awardfor the iOSplatform 100 million times 1.6 million users/daily
  • 24. “Automatic Generation and Analysis of Physics-Based Puzzle Games” IEEE Conference on Computational Intelligence and Games, CIG 2013. Nominated for best paper award. CIG 13 “Evolving Playable Content for Cut the Rope through a Simulation-Based Approach” AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013 AIIDE 13 “Ropossum: An Authoring Tool for Designing, optimizing and Solving Cut the Rope Levels” AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013 AIIDE 13
  • 25. Presentation Timeline •The problem, the solution and what others are doing •The game and the research •Ropossum: the framework –Content generation –Playability –Authoring tool •Results and analysis •Future Perspectives
  • 28.
  • 29. GE Context Free Grammars <level>::=<candy><Om_Nom><components> <candy>::=candy(<x>,<y>) <Om_Nom>::=Om_Nom(<x>,<y>) <components>::=<rope><air_cush><bumper><rocket><bubble><more_components> <more_components>::=<component>|<component><more_components> <component>::=<rope>|<air_cush>|<rocket>|<bumper>|<bubble> <rope>::=rope(<x>,<y>,<rope_length>) <rocket>::=rocket(<x>,<y>,<rocket_dir>) <air_cush>::=air_cush(<x>,<y>,<air_cush_dir>) <bumper>::=bumper(<x>,<y>,<bumper_dir>) <bubble>::=bubble(<x>,<y>) <x>::=[0, 260] <y>::=[0, 420] <rope_length>::=[0, 170] <air_cush_dir>::= 0 | 1<bumper_dir>::=[0, 7] <rocket_dir>::=[0, 7]
  • 30. GE Context Free Grammars <level>::=<candy><Om_Nom><components> <candy>::=candy(<x>,<y>) <Om_Nom>::=Om_Nom(<x>,<y>) <components>::=<rope><air_cush><bumper><rocket><bubble><more_components> <more_components>::=<component>|<component><more_components> <component>::=<rope>|<air_cush>|<rocket>|<bumper>|<bubble> <rope>::=rope(<x>,<y>,<rope_length>) <rocket>::=rocket(<x>,<y>,<rocket_dir>) <air_cush>::=air_cush(<x>,<y>,<air_cush_dir>) <bumper>::=bumper(<x>,<y>,<bumper_dir>) <bubble>::=bubble(<x>,<y>) <x>::=[0, 260] <y>::=[0, 420] <rope_length>::=[0, 170] <air_cush_dir>::= 0 | 1<bumper_dir>::=[0, 7] <rocket_dir>::=[0, 7]
  • 31. should be placed higher than Om Nom when the level contains no component to elevate the candy, such as bubbles or water. Candy should be placed under the closest rope when there is no water, bubbles or rockets. Om Nom should be placed close to the end of a rope, inside a predefined circle surrounding the end of it. Blower Should be placed in a position where it does intersect with at least one of the ropes. Bubble rockets should aim at Om Nom Rocket Components shouldn’t intersect, 3 block size apart Comps 25% 10% 10% 10% 20% 25%
  • 33. candy(481, 143) OmNom(287, 384) rope(445, 69, 90) rope(596, 100, 150) bubble(294, 76) rocket(471, 342, 5)
  • 34. PCGEngine Generate Level (Grammatical Evolution) PCG with CRUST Generator Model
  • 35. PCGEngine Generate Level (Grammatical Evolution) Fitness Evaluators PCG with CRUST Generator Model
  • 36. PCGEngine CRUSTEngine Generate Level (Grammatical Evolution) Fitness Evaluators Level Generator Resting Phase Visualize Level and Update PCG with CRUST Generator Model
  • 38. “Automatic Generation and Analysis of Physics-Based Puzzle Games” IEEE Conference on Computational Intelligence and Games, CIG 2013
  • 39. Presentation Timeline •The problem, the solution and what others are doing •The game and the research •Ropossum: the framework –Content generation –Playability: The Model –Authoring tool •Results and analysis •Future Perspectives
  • 41. Player Actions CRUSTworks on fixed time step 60 times per second Rope cut Blower press Bubble burst Rocket press Void
  • 42. If the game is 5 sec long, then we have 5*60 = 300 time step Given we have 5 actions, then we need to evaluate
  • 43. Shrink the SEARCH space with constrained Search with A Rule-based Agent
  • 44. candy(497, 153). velocity(0, 0). OmNom(317, 414). rope(0, 445, 69, 105). rope(1, 596, 100, 165). bubble_void(319, 101). rocket_void(501, 357, 5).
  • 45. Constraint search rule sets [1] rope_cut :-rope(_,_), Om_Nom(Xo,Yo), ((candy(Xc,Yc), distance(Xo,Yo,Xc,Yc,50))| (active_bubble(_,Yb),(Yf<Yb))) [2] air-cush_press:-air_cush(X,Y,Dir), candy(Xc, Yc), distance(X, Y, Xc, Yc, 80), candy_in_direction_of_air_cush(X,Y) [3] bubble_burst:-active_bubble(X,Y), OmNom(Xo, Yo), (Yo> Y), distance(X, Y, 50), ((velocity_to_right, OmNom_to_right(X, Y)) |(velocity_to_left, OmNom_to_left(X, Y))) [4] rocket_press:-active_rocket(X,Y,_), Yo< Y, OmNom(Xo, Yo), distance(Xo,Yo,X,Y,100) [6] candy_in_direction_of_air_cush(X,Y) :-candy(Xc,Yc), air_cushion(X,Y,Dir), ((Xc< X , dir_to_left(Dir)) [5] void_action
  • 46. [1] rope_cut :-rope(_,_), reachable(_) [2] air-cush_press:-air-cush(X,Y,Dir), candy_in_direction_of_air-cush(X,Y), distance(X, Y, 80) [3] bubble_pinch:-active_bubble(_,_), reachable(_) [4] rocket_press:-active_rocket(X,Y,Dir), reachable(_) [5] void_action :-rope_cut| bubble_pinch| air-cush_press| rocket_press| reachable(_) Constraint search rule sets [1] rope_cut :-rope(_,_), Om_Nom(Xo,Yo), ((candy(Xc,Yc), distance(Xo,Yo,Xc,Yc,50))| (active_bubble(_,Yb),(Yf<Yb))) [2] air-cush_press:-air_cush(X,Y,Dir), candy(Xc, Yc), distance(X, Y, Xc, Yc, 80), candy_in_direction_of_air_cush(X,Y) [3] bubble_burst:-active_bubble(X,Y), OmNom(Xo, Yo), (Yo> Y), distance(X, Y, 50), ((velocity_to_right, OmNom_to_right(X, Y)) |(velocity_to_left, OmNom_to_left(X, Y))) [4] rocket_press:-active_rocket(X,Y,_), Yo< Y, OmNom(Xo, Yo), distance(Xo,Yo,X,Y,100) [6] candy_in_direction_of_air_cush(X,Y) :-candy(Xc,Yc), air_cushion(X,Y,Dir), ((Xc< X , dir_to_left(Dir)) [5] void_action
  • 47. Explore each action sub tree CRUST Engine 2.0 Prolog Engine Engine State as Facts Set of ordered potential actions Actions tree branch New Engine State Inference Engine Playability Model Closed Loop
  • 48. Demo
  • 49. rope_cut(0) rope_cut(1) void_action void_action void_action void_action void_action void_action void_action void_action void_action void_action void_action rocket_press void_action
  • 50. rope_cut(0) rope_cut(1) void_action void_action void_action void_action void_action void_action void_action void_action void_action void_action void_action rocket_press void_action
  • 51. Presentation Timeline •The problem, the solution and what others are doing •The game and the research •Ropossum: the framework –Content generation –Playability: The Performance –Authoring tool •Results and analysis •Future Perspectives
  • 52. Performance Enhancement Techniques •Adaptive Time Step: –blower_Press15 –rope_cut10 –void_action12 –bubble_burst15 –rocket_press17
  • 53. rope_cut(0) rope_cut(1) void_action void_action void_action void_action void_action void_action void_action void_action void_action void_action void_action rocket_press void_action 9 10 11 12 13 14 15 16 17 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  • 54. Performance Enhancement Techniques •Adaptive Time Step: –blower_Press15 –rope_cut10 –void_action12 –bubble_burst15 –rocket_press17 •Branch Cut: –Tree branch cut when trajectory doesn’t make sense
  • 55. rope_cut(0) rope_cut(1) void_action void_action void_action void_action void_action void_action void_action void_action void_action void_action void_action rocket_press void_action
  • 56. Demo. Only 215 explored nodes
  • 57. Solution Tree Only 205 nodes
  • 58. Presentation Timeline •The problem, the solution and what others are doing •Ropossum; the game and the research •Ropossum; the framework –Content Generation –Playability •The playability model •Performance enhancement •Content generation with playability check •Other playability models –Authoring tool •Results and analysis •Future Perspectives
  • 59. PCGEngine CRUSTEngine Generate Level (Grammatical Evolution) fitness = 0.25 ∗design + 0.75 ∗playability_agent Level Generator Resting Phase Visualize Level and Update Content generation with playability check
  • 60. “Evolving Playable Content for Cut the Rope through a Simulation-Based Approach” AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013
  • 61. Presentation Timeline •The problem, the solution and what others are doing •The game and the research •Ropossum: the framework –Content generation –Playability: Other Models? –Authoring tool •Results and analysis •Future Perspectives
  • 62. Output Input Previous State StateHidden Weights V Weights U Weights W SRN Output Input Previous State State/ Hidden Weights V Weights U Copy (Delayed) Weights W Elman Output Input Previous State State/ Hidden Weights V Weights U Weights W Copy (Delayed) Jordan Recurrent Neural Networks
  • 63. Output Input Previous State Hidden Weights V Weights U State Weights W Standard Recurrent Network (SRN)
  • 64. Output Input Previous State State/ Hidden Weights V Weights U Weights W Elman RNN
  • 65. Output Input Previous State State/ Hidden Weights V Weights U Copy (Delayed) Weights W Elman RNN
  • 66. Output Input Previous State State/ Hidden Weights V Weights U Copy (Delayed) Weights W Jordan RNN
  • 67. Output Input Previous State State/ Hidden Weights V Weights U Copy (Delayed) Weights W Jordan RNN
  • 68. Experimental setup <rope> <rope> <air_cushion> <bumper> <bubble> <rocket> <candy> <Om_Nom> Grid XY Candy distance Om Nom distance Input Representation
  • 69. 0 400 200 300 100 Rope Cuts(1) Rope Cuts(2) Rocket Presses Air- Cushion Presses Bubble Bursts Void Actions Presented actions in the 100 playable levels test set altogether Problem, Un-balanced Data
  • 70. Balancing COI Data Representation Training levels # Network Type Setup Hidden Neurons # TestId Balanced N All 100 Elman 10 networks 50traininglevels 0.0001 error 10 runs 37 Test 1 Balanced Y All 100 Elman N Y XY 10, 50, 100 Elman 6 networks 50traininglevels 0.0001 error 6 runs 37 Test 2 4 Y XY 10, 50, 100 Elman N Y XY 150 Jordan 8 networks 50traininglevels 0.01 error 8 runs 5, 10, 15, 20,25, 30, 35, 40 Test 3 4 Y XY 50 Jordan 4 Y XY 50 Elman N Y XY 10, 50, 100 Jordan 8 networks 50traininglevels 0.02 error 8 runs 5, 10, 15, 20,25, 30, 35, 40 Test 4 2 Y XY 10, 50, 100 Jordan N N Cookie distance 10, 50, 100 Elman 8 networks 50traininglevels 0.02 error 5 runs 5 Test 5 N N XY 10, 50, 100 Elman
  • 71.
  • 72. Presentation Timeline •The problem, the solution and what others are doing •The game and the research •Ropossum: the framework –Content generation –Playability: Other Models? –Authoring tool •Results and analysis •Future Perspectives
  • 76. GE Context Free Grammars <level>::=<candy><Om_Nom><components> <candy>::=candy(<x>,<y>) <Om_Nom>::=Om_Nom(<x>,<y>) <components>::=<rope><air_cush><bumper><rocket><bubble><more_components> <more_components>::=<component>|<component><more_components> <component>::=<rope>|<air_cush>|<rocket>|<bumper>|<bubble> <rope>::=rope(<x>,<y>,<rope_length>) <rocket>::=rocket(<x>,<y>,<rocket_dir>) <air_cush>::=air_cush(<x>,<y>,<air_cush_dir>) <bumper>::=bumper(<x>,<y>,<bumper_dir>) <bubble>::=bubble(<x>,<y>) <x>::=[0, 260] <y>::=[0, 420] <rope_length>::=[0, 170] <air_cush_dir>::= 0 | 1<bumper_dir>::=[0, 7] <rocket_dir>::=[0, 7]
  • 78. “Ropossum: An Authoring Tool for Designing, optimizing and Solving Cut the Rope Levels” AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013
  • 79. Presentation Timeline •The problem, the solution and what others are doing •The game and the research •Ropossum: the framework –Content generation –Playability: Other Models? –Authoring tool •Results and analysis •Future Perspectives
  • 80. Selected InterestingResults •35% of the playable levels haven’t been branch cut [direct solution] •72.3% is the percentage of void action in the generated levels [relatively short levels?] •29.8 ∓58.3 sec for checking a playable level. •210% ∓167.6 for checking a non-playable level –115 and 638 nodes is the average number of explored nodes for generated playable and non-playable levels [more explored nodes] •10 min is the average time for generating a playable level
  • 81. Average and standard deviation values of the four components extracted from 500 generated levels Frequency Analysis
  • 82. Axialityof 0.1X, 0.9Y Axialityof 1X, 0.4Y AxialityMeasure
  • 83. Axialityhistogram over 500 generated levels AxialityMeasure
  • 84. Density of 0.036 Density of 1 Density Measure 휎= 푖=1 푛(푥푖− 푥) 푛
  • 85. The histogram of the density measure for the 500 generated levels Density Number of levels Density Measure
  • 86. Density-Axialityhistogram over 500 generated levels Axiality-Density Histogram
  • 87. Usedvs. Presentedcomponents by the playability agent over 100 generated playable levels 0 2 1 1.5 0.5 Ropes Rockets Air- Cushions Bubbles Bumpers # activatedcomponents
  • 88. Presentation Timeline •The problem, the solution and what others are doing •Ropossum; the game and the research •Ropossum; the framework –Content generation –Playability –Authoring tool •Results and analysis •Future Perspectives
  • 89. Marry someoneand break your addiction Employedor NOT Employed people are 2Xmore likely to feel anxiety and 2.25Xlikely to experience anger Singlevs. Married You are X2likely to be addicted on angry birds if you are single than if you are married
  • 90. 6% Very anxious 17% Somewhat anxious 22% Neither 32% Somewhat relaxed 23% Very relaxed Player Emotion
  • 91. Simple Easy Just right Tough 3% 6% 60% 31% Difficulty
  • 93. Fasten your seatbeltA new GAME era is emerging...