Your SlideShare is downloading. ×
0
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Ropossum: A Game That Generates Itself
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ropossum: A Game That Generates Itself

1,948

Published on

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 …

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.

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,948
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
11
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 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
  • 2. 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
  • 3. $93 Billion in 2013 Gaming Industry
  • 4. Battlefield 4
  • 5. What is wrong with games now? Designer Level design Players
  • 6. What is wrong with games now? Designer Level design Gender?
  • 7. What is wrong with games now? Designer Level design Personalities?
  • 8. What is wrong with games now? Designer Level design NEEDS
  • 9. What is wrong with games now? Designer Level design What if I want to play More?
  • 10. What is wrong with games now? Designer Level design What if I want to play More?
  • 11. What is wrong with games now? Generator Level design What if I want to play More?
  • 12. Procedural Content Generation (PCG)
  • 13. 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
  • 14. No Man's Sky
  • 15. 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
  • 16. -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. ?
  • 17. 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
  • 18. The Game, Demo
  • 19. This Work Publications, So Far..
  • 20. “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
  • 21. 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
  • 22. www.mohammadshaker.com/crust.html
  • 23. Game Components
  • 24. 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]
  • 25. 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]
  • 26. 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%
  • 27. =25∗푃푐푎푛푑푦+10∗푃푂푚푁표푚+10∗푁푏푙표푤푒푟∗푃푏푙표푤푒푟 +20∗푁푟표푐푘푒푡∗푂푟표푐푘푒푡+10∗푁푏푢푏푏푙푒∗푃푏푢푏푏푙푒+25∗퐶_표푣푒푟푙푎푝 Fitness
  • 28. candy(481, 143) OmNom(287, 384) rope(445, 69, 90) rope(596, 100, 150) bubble(294, 76) rocket(471, 342, 5)
  • 29. PCGEngine Generate Level (Grammatical Evolution) PCG with CRUST Generator Model
  • 30. PCGEngine Generate Level (Grammatical Evolution) Fitness Evaluators PCG with CRUST Generator Model
  • 31. PCGEngine CRUSTEngine Generate Level (Grammatical Evolution) Fitness Evaluators Level Generator Resting Phase Visualize Level and Update PCG with CRUST Generator Model
  • 32. Generated Samples
  • 33. “Automatic Generation and Analysis of Physics-Based Puzzle Games” IEEE Conference on Computational Intelligence and Games, CIG 2013
  • 34. 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
  • 35. Playability
  • 36. Player Actions CRUSTworks on fixed time step 60 times per second Rope cut Blower press Bubble burst Rocket press Void
  • 37. 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
  • 38. Shrink the SEARCH space with constrained Search with A Rule-based Agent
  • 39. 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).
  • 40. 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
  • 41. [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
  • 42. 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
  • 43. Demo
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. Performance Enhancement Techniques •Adaptive Time Step: –blower_Press15 –rope_cut10 –void_action12 –bubble_burst15 –rocket_press17
  • 48. 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
  • 49. 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
  • 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. Demo. Only 215 explored nodes
  • 52. Solution Tree Only 205 nodes
  • 53. 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
  • 54. 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
  • 55. “Evolving Playable Content for Cut the Rope through a Simulation-Based Approach” AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013
  • 56. 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
  • 57. 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
  • 58. Output Input Previous State Hidden Weights V Weights U State Weights W Standard Recurrent Network (SRN)
  • 59. Output Input Previous State State/ Hidden Weights V Weights U Weights W Elman RNN
  • 60. Output Input Previous State State/ Hidden Weights V Weights U Copy (Delayed) Weights W Elman RNN
  • 61. Output Input Previous State State/ Hidden Weights V Weights U Copy (Delayed) Weights W Jordan RNN
  • 62. Output Input Previous State State/ Hidden Weights V Weights U Copy (Delayed) Weights W Jordan RNN
  • 63. Experimental setup <rope> <rope> <air_cushion> <bumper> <bubble> <rocket> <candy> <Om_Nom> Grid XY Candy distance Om Nom distance Input Representation
  • 64. 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
  • 65. 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
  • 66. 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
  • 67. Ropossum: RealtimeAuthoring Tool
  • 68. Ropossum: RealtimeAuthoring Tool
  • 69. Ropossum: RealtimeAuthoring Tool
  • 70. 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]
  • 71. Ropossum Demo
  • 72. “Ropossum: An Authoring Tool for Designing, optimizing and Solving Cut the Rope Levels” AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, AIIDE 2013
  • 73. 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
  • 74. 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
  • 75. Average and standard deviation values of the four components extracted from 500 generated levels Frequency Analysis
  • 76. Axialityof 0.1X, 0.9Y Axialityof 1X, 0.4Y AxialityMeasure
  • 77. Axialityhistogram over 500 generated levels AxialityMeasure
  • 78. Density of 0.036 Density of 1 Density Measure 휎= 푖=1 푛(푥푖− 푥) 푛
  • 79. The histogram of the density measure for the 500 generated levels Density Number of levels Density Measure
  • 80. Density-Axialityhistogram over 500 generated levels Axiality-Density Histogram
  • 81. 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
  • 82. 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
  • 83. 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
  • 84. 6% Very anxious 17% Somewhat anxious 22% Neither 32% Somewhat relaxed 23% Very relaxed Player Emotion
  • 85. Simple Easy Just right Tough 3% 6% 60% 31% Difficulty
  • 86. Live Demowww.mohammadshaker.com/ropossum.html
  • 87. Fasten your seatbeltA new GAME era is emerging...
  • 88. Thank you

×