procedural content generation for maze- game
DESCRIPTION
slide show for our fourth year project at damascus university this project is a research for generate a content for maze game procedurally.TRANSCRIPT
In Supervision of
DR.Ammar Jokhadar DR.Noor Shaker
Designed and Implemented By
Rawan Al-Omari Fawzia Shams Al-Deen
Walaa Baghdadi Zeina Al-Helwani
FITE of Damascus, Syria, Department of AI - 2013
Content
• Work scope • Goal • The Game • Model • Future Perspective • Tools
Sokoban
• Maze game
• Single player
• Components: • Goal areas • Walls • Passways: - warehouse keeper - Objects - Empty
The Goal
Levels generation, PCG
Different levels, all time
The Goal
No more designers
Adventure game Free copy(Version) for Microsoft windows Commercial game for Xbox
Used GameMaker platform (GML)
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
Spelunky Scenario
X X
Bomb X
Princess
X
X
End
The Real Game,
Spelunky Levels
20% Randomization
80% Hand made design
The Model
Difficulty
Model
Generated Level
The Model
Difficulty
Model
Generated Level
Level Generation
Items distribution
Assessing Difficulty
Assessing Difficulty
Items Distribution
Level Design
Level Representation
4*4 matrix Each cell is a room
Level Representation
4*4 matrix Each cell is a room
Level Representation
Start Room
Level Representation
Bomb Room
Level Representation
Princess Room
Level Representation
End Room
Every room is 8 * 10
Cells Values
• Block • Space • Enemy • Item
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
Digger Algorithm in a Room
PhenoType Representation
Main Rooms (4)
Graph Connections
Items Path Length
PhenoType Representation
Graph Connections
Items Path Length
Main Rooms (4)
PhenoType Representation
Graph Connections
Items Path Length
Main Rooms (4)
PhenoType Representation
Graph Connections
Items Path Length
Start room Bomb room
Princess room Exit room
Main Rooms (4)
PhenoType Representation
Graph Connections
Items Path Length
Snakes number Bats number
Ladders number Coins number Spikes number
Main Rooms (4)
PhenoType Representation
Graph Connections
Items Path Length
Main Rooms (4)
PhenoType Representation
Graph Connections
Items Path Length
Main Rooms (4)
Items Path Length
Main Rooms (4)
Start Bomb Princess End
Graph Connections
Graph Connections
Items Path Length
Main Rooms (4)
Start Bomb Princess End
3
10
5
7
9
15
the start, end, Princess, bomb room are in the graph #1
there is connection between start and end room #2
the path is valid (start -> bomb -> Princess -> exit) #3
Start, exit, Princess and bomb rooms are unique in the phenotype #4
Start room should be in the first eight rooms #5
Exit room should be in the last eight rooms #6
15%
10
%
10%
10
%
10%
10
%
check the length of the path if according with the destination length #7
Difficulty #8
35%
10
0%
= 15 ∗ 𝑐𝑜𝑛𝑑1 + 10 ∗ 𝑐𝑜𝑛𝑑2 + 10 ∗cond3 + 10 ∗ 𝑐𝑜𝑛𝑑4 + 10 ∗ 𝑐𝑜𝑛𝑑5 + 10 ∗ 𝑐𝑜𝑛𝑑6 + 35 ∗ 𝑐𝑜𝑛𝑑7
Design Fitness
Fitness
= 𝑐𝑜𝑛𝑑8
Difficulty Fitness
= 15 ∗ 𝑐𝑜𝑛𝑑1 + 10 ∗ 𝑐𝑜𝑛𝑑2 + 10 ∗cond3 + 10 ∗ 𝑐𝑜𝑛𝑑4 + 10 ∗ 𝑐𝑜𝑛𝑑5 + 10 ∗ 𝑐𝑜𝑛𝑑6 + 35 ∗ 𝑐𝑜𝑛𝑑7
Design Fitness
Fitness
= 𝑐𝑜𝑛𝑑8
Difficulty Fitness
= 15 ∗ 𝑐𝑜𝑛𝑑1 + 10 ∗ 𝑐𝑜𝑛𝑑2 + 10 ∗cond3 + 10 ∗ 𝑐𝑜𝑛𝑑4 + 10 ∗ 𝑐𝑜𝑛𝑑5 + 10 ∗ 𝑐𝑜𝑛𝑑6 + 35 ∗ 𝑐𝑜𝑛𝑑7
Design Fitness
= 10% ∗ 𝐷𝑒𝑠𝑖𝑔𝑛 𝑓𝑖𝑡𝑛𝑒𝑠𝑠 + 90% 𝐷𝑖𝑓𝑓𝑖𝑐𝑢𝑙𝑡𝑦 𝑓𝑖𝑡𝑛𝑒𝑠𝑠
Overall Fitness
Fitness
Assessing Difficulty
Items Distribution
Level Design
Snakes, Snakes around Gaps, Bats
Ladders, Coins, Spike
Items Distribution Over Level
Items Distribution Over Level
Snakes, Snakes around Gaps, Bats, Spikes, Ladder, Coin
Items Distribution Over Level
Snakes/4 Snakes around Gaps/4
Bats/4 Spikes/4 Ladder/4 Coin/4
Snakes, Snakes around Gaps, Bats, Spikes, Ladder, Coin
Ladder
Snakes
Snakes around Gaps
Bats
Coins
Spikes
Assessing Difficulty
Items Distribution
Level Design
Assessing Difficulty
Assessing Difficulty
20%
25%
10%
45%
• Path Length • Vertical Length • Shape • Enemies
– Snakes – Snakes around Gaps – Bats – Spikes
• Path Length
Assessing Difficulty
20%
25%
10%
45%
• Vertical Length
Assessing Difficulty
20%
25%
10%
45%
Vertical Length
• Path Shape
Assessing Difficulty
20%
25%
10%
45%
• Enemies – Snakes 10% – Snakes around Gaps 15% – Bats 10% – Spikes 10%
Assessing Difficulty
20%
25%
10%
45%
Simple Level – 10% Difficulty
Hard Level – 70% Difficulty
Add Extra Items and Adaptive
Enemies
Shop Keeper Cave man
The implementation of an Authoring Tool that combines the gamer imagination and machine varity designs.
Designers
The difficulty of the game that is determined by a player's skills, facial
expressions, gameplay features.
Adaptive Content
Generation
Tools
• Game Maker • Ecj (Java-based Evolutionary Computation) • Java