1 of 36

Procedural Content Generation

Josep Valls - Drexel EGS - 1/26/2016

jv384@drexel.edu

2 of 36

*Spelunky original is free!

3 of 36

What do they have in common?

Indie

Platformers

Exploration-adventure gameplay

2D tile-based 16-bit art style

Procedurally generated

4 of 36

What is Procedural Content Generation?

5 of 36

Procedural Content Generation

Procedural Content Generation (PCG) refers to content generated algorithmically rather than manually

PCG leverages the power of computers to help designers create bigger and better computer games

6 of 36

PCG in Games

1984 2016

7 of 36

PCG in Games

8 of 36

Other uses of PCG

9 of 36

Why PCG?

Why do games use PCG?

Generation of novel content

Increase replayability

Gameplay customization

Why do developers use PCG?

Allows small teams to multiply their output

10 of 36

How does it work?

11 of 36

Random?

*More on random later

12 of 36

How PCG works?

13 of 36

Rules

14 of 36

Rules

15 of 36

Rules

16 of 36

Rules

{

'base': [['sub_b'], ['res_b'], ['ind_b']],

'ind_b': [['base_t', 'floor2_t', 'top']],

'res_b': [['base_t', 'separator_t', 'floor1_t', 'top'],

['base_t','separator_t','floor1_t','border_t','floor1_t','top']],

'sub_b': [['base_t', 'fence_t', 'flat_t', 'base_t', 'size_t', 'res_b'],

['base_t','fence_t','flat_t','base_t','size_t','rotate_t','res_b']],

'top': [['roof'],

['separator_t', 'roof'],

['border_t', 'roof'],

['in_border_t', 'roof']],

'roof': [['roof1_t'], ['roof2_t'], ['roof3_t', 'flat_t'], ['flat_t']],

}

17 of 36

Search

18 of 36

Search

19 of 36

Search

20 of 36

Simulation

21 of 36

Simulation

22 of 36

How do they do it?

23 of 36

24 of 36

Level generation

25 of 36

Level Evolution

26 of 36

27 of 36

28 of 36

Overworld

29 of 36

Caverns

30 of 36

Biomes

31 of 36

*What about random?

32 of 36

More information

http://www.redblobgames.com

http://www.esri.com/software/cityengine�http://www.youtube.com/watch?v=aFRqSJFp-I0�G. Kelly, H. McCabe. A Survey of Procedural Techniques for City Generation.

http://en.wikipedia.org/wiki/L-system�P. Prusinkiewicz, A. Lindenmayer. The Algorithmic Beauty of Plants.

33 of 36

More information

http://davesmapper.com/

https://en.wikipedia.org/wiki/Maze_generation_algorithm

http://accidentalnoise.sourceforge.net/minecraftworlds.html

http://www.futuredatalab.com/proceduraldungeon/

http://makegames.tumblr.com/post/4061040007/�http://tinysubversions.com/spelunkyGen/

34 of 36

More information (added after the presentation)

http://gamasutra.com/view/news/262869/7_uses_of_procedural_generation_that_all_developers_should_study.php

35 of 36

Image sources

Derek Yu: Spelunky, Re-Logic: Terraria�Acornsoft: Elite, Hello Games: No man's sky�EA: Spore, Bethesda: Skyrim�ESRI City engine, IDV SpeedTree�PSMage for Starcraft (Uriarte, Ontanon)�Saltsman: Canabalt, Nintendo: Super Mario Bros

Wikimedia foundation�

36 of 36

Procedural Content Generation

Josep Valls - Drexel EGS - 1/26/2016

jv384@drexel.edu