Procedural content generation for maze game

Preview:

Citation preview

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

Recommended