View
1.910
Download
0
Category
Tags:
Preview:
DESCRIPTION
Ropossum is a framework that lets you play the beloved Cut The Rope game as much as you want and the levels will keep coming. You can design your own levels, check your designed levels for playability at real time, ask it to complete your unfinished designs according to your own preferences, or even suggest endless playable design variations according to your initial level design.
Citation preview
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 B i l l i o n i n 2 0 1 3
G a m i n g I n d u s t r y
Battlefield 4
W h at i s w r o n g w i t h g a m e s n o w ?
Designer Level design Players
W h at i s w r o n g w i t h g a m e s n o w ?
Designer Level design Gender?
W h at i s w r o n g w i t h g a m e s n o w ?
Designer Level design Personalities?
W h at i s w r o n g w i t h g a m e s n o w ?
Designer Level design
NEEDS
W h at i s w r o n g w i t h g a m e s n o w ?
Designer Level design
What if I want
to play More?
W h at i s w r o n g w i t h g a m e s n o w ?
Designer Level design
What if I want
to play More?
W h at i s w r o n g w i t h g a m e s n o w ?
Generator Level design
What if I want
to play More?
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 )
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, modify their own levels and help them achieve that.
?
Cut the Rope
Sequels 2010, 2011, 2012 and 2013
WWDC 2011, won an Apple
Design Award for the iOS platform
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
AII
DE
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
AII
DE
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.C
andy
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.Bl
ower
Should be placed in a position where it does intersect with at least one of the ropes.Bu
bble
rockets should aim at Om Nom
Rock
et
Components shouldn’t intersect, 3 block size apart
Com
ps
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)
PCG Engine
Generate Level (Grammatical Evolution)
PCG with CRUST Generator Model
PCG Engine
Generate Level (Grammatical Evolution)
Fitness Evaluators
PCG with CRUST Generator Model
PCG Engine CRUST Engine
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
PlayerActions
CRUST works on fixed time step 60 times per second
Rope cutBlower pressBubble burstRocket pressVoid
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
S h r i n k t h e S E A R C H s pa c e
w i t h c o n s t r a i n e d S e a r c h
w i t h A R u l e - b a s e d A g e n t
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_Press 15
– rope_cut 10
– void_action 12
– bubble_burst 15
– rocket_press 17
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_Press 15
– rope_cut 10
– void_action 12
– bubble_burst 15
– rocket_press 17
• 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
PCG Engine CRUST Engine
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
InputPrevious State
State\ Hidden
Weights V
Weights U
Weights W
SRN
Output
InputPrevious State
State/ Hidden
Weights V
Weights U
Copy(Delayed)
Weights W
Elman
Output
Input
Previous State
State/ Hidden
Weights V
Weights UWeights 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 StateState/ Hidden
Weights V
Weights U
Copy(Delayed)Weights W
Jordan RNN
Experimental setup
<rope> <rope> <air_cushion> <bumper> <bubble> <rocket> <candy> <Om_Nom>
GridXY Candy distance Om Nom distance
Input Representation
0
400
200
300
100
RopeCuts(1)
RopeCuts(2)
RocketPresses
Air-CushionPresses
BubbleBursts
VoidActions
Presented actions in the 100 playable levels test set altogether
Problem, Un-balanced Data
BalancingCOIData Representation
Training levels #
Network Type
SetupHidden
Neurons #Test Id
Balanced NAll100Elman10 networks50 training levels
0.0001 error10 runs
37Test 1
BalancedYAll100Elman
N YXY10, 50, 100Elman6 networks50 training levels
0.0001 error6 runs
37Test 2
4YXY10, 50, 100Elman
NYXY150Jordan
8 networks50 training levels
0.01 error8 runs
5, 10, 15, 20, 25, 30, 35, 40
Test 3 4YXY50Jordan
4YXY50Elman
NYXY10, 50, 100Jordan8 networks50 training levels
0.02 error8 runs
5, 10, 15, 20, 25, 30, 35, 40
Test 4
2YXY10, 50, 100Jordan
NNCookie distance
10, 50, 100Elman8 networks50 training levels
0.02 error5 runs
5Test 5
NNXY10, 50, 100Elman
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: Realtime Authoring Tool
Ropossum: Realtime Authoring Tool
Ropossum: Realtime Authoring 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 Interesting Results
• 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 componentsextracted from 500 generated levels
Frequency Analysis
Axiality of 0.1X, 0.9Y
Axiality of 1X, 0.4Y
Axiality Measure
Axiality histogram over 500 generated levels
Axiality Measure
Density of 0.036
Density of 1
Density Measure𝜎 = 𝑖=1
𝑛 (𝑥𝑖− 𝑥)
𝑛
The histogram of the density measure for the 500 generated levels
Density
Num
ber
of
level
sDensity Measure
Density-Axiality histogram over 500 generated levels
Axiality-Density Histogram
Used vs. Presented components by the playability agent over 100 generated playable levels
0
2
1
1.5
0.5
Ropes Rockets Air-Cushions
Bubbles Bumpers
# activated components
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 someone and break your addiction
Employed
o r N O T
Employed people are 2X more likely to feel anxiety and 2.25X likely to experience anger
Singlevs. Married
You are X2 likely 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%
Veryrelaxed
Player Emotion
Simple
Easy
Just right
Tough
3%
6%
60%
31%
Difficulty
Live Demo
www.mohammadshaker.com/ropossum.html
Fas t e n yo u r s e at b e lt
A n e w G A M E e r a i s
e m e r g i n g . . .
T h a n k yo u
Recommended