lecture 16 - cornell university · lecture 16: game design initiative at cornell university the...
TRANSCRIPT
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content
Generation
Lecture 16:
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Updates
Second prototype due Thursday!
Upload through CMS
Thursday: playtesting
Tuesday: postmortems
You need to be in class Thursday and Tuesday
Procedural Content Generation2
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
A* Mario
Procedural Content Generation3
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Infinite Mario
Procedural Content Generation4
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Minecraft
Procedural Content Generation5
Source: Mojang
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Today you will learn
Two bread-and-butter techniques
Perlin Noise
Grammars
Standard
Graph
Shape
How Minecraft’s terrain generation works*
Procedural Content Generation6
*to the extent that has been discussed publicly
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Programmers
Engine
Implementing mechanics
Designers
Levels
Animations
Procedural Content Generation7
Traditional Workflow
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Why?
Creating content is a bottleneck
Increases replayability
Shows that you deeply understand your game
Procedural Content Generation8
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Challenges
Procedural Content Generation9
“You’ve just taken a really hard problem and made it harder”
Source: spore.wikia.com
Kate Compton
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Challenges
Quality
Good?
Fun?
Beatable?
Interesting?
As good as human-designed content?
Consistency - is it always acceptable?
Speed
Procedural Content Generation10
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Rogue
Procedural Content Generation11
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Diablo II
Procedural Content Generation12
Source: www.dlcompare.com
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Spelunky
Procedural Content Generation13
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Minecraft
Procedural Content Generation14
Source: Mojang
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Management of Randomness
Procedural Content Generation15
more random
more structured
Random numbers
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Ugly
Unstructured
Procedural Content Generation16
Random numbers
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Actual surface of the earth
Procedural Content Generation17
Source: Google maps
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Management of Randomness
Procedural Content Generation18
more random
more structured
Perlin Noise
Random numbers
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Perlin Noise
Procedural Content Generation19
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation20
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation21
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation22
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation23
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation24
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation25
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation26
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation27
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation28
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation29
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation30
~0
~0 ~.6
~.3
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation31
~0
~0 ~.6
~.3
~.15
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation32
Source: http://blog.movingblocks.net/2011/06/11/goodbye-perlin-noise-2d-perlin-noise-3d/
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Management of Randomness
Procedural Content Generation33
more random
more structured
Perlin Noise
Random numbers
Evolutionary algs.
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Galactic Arms Race
Procedural Content Generation34
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation35
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Zelda: Twilight Princess, Forest Temple
Procedural Content Generation36
Source: ZorZelda Youtube
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation37
Create
Game World
Interesting
Decisions?
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation38
Create
Game World
Choose
Decisions
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Management of Randomness
Procedural Content Generation39
more random
more structured
Perlin Noise
Random numbers
Evolutionary algs.
Grammars
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Zelda: Twilight Princess, Forest Temple
Procedural Content Generation40
Source: ZorZelda Youtube
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Can we automatically generate these?
Procedural Content Generation41
Joris Dormans, “Engineering Emergence”
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Steps
1. Understand the decisions
2. Create content that forces specific decisions
Procedural Content Generation42
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Missions
Procedural Content Generation43
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
S → a a
Procedural Content Generation44
Grammars
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
S → a | b a
b
Procedural Content Generation45
Grammars
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
S → Sb | a
S
Sb
Sbb
abbProcedural Content Generation46
Grammars
S → Sb
S → Sb
S → Sa
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
S → Sb | a a
ab
abb
abbb
Procedural Content Generation47
Grammars
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
S → aSc
S → b
abc
aabcc
aaabccc
Procedural Content Generation48
Grammars
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
S → X | Y
X → XX | ab
Y → YY | bc
ab
ababab
bcbc
bcbcbcbcbc
NOT: ababbc
Procedural Content Generation49
Grammars
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Why is this called a “grammar”?
sentence → noun phrase verb phrase
noun phrase → (det.) (adjective) noun (prep. phrase)
verb phrase → (adv.) verb noun phrase
(prep. phrase) (adv.)
the red fox quickly found the hedgehog
Procedural Content Generation50
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Graph Grammars
Procedural Content Generation51
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation52
Level Task
Task Task Task
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation53
Key DoorTask
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation54
Key Door
Key
Door
Key
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation55
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation56
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Shape Grammar
Procedural Content Generation57
A
B
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Shape Grammar
Procedural Content Generation58
B
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Shape Grammar
Procedural Content Generation59
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation60
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation61
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Management of Randomness
Procedural Content Generation62
more random
more structured
Perlin Noise
Random numbers
Evolutionary algs.
Grammars
Constraint satisfaction
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation63
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation64
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Procedural Content Generation65
Source: Gillian Smith, Launchpad
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Management of Randomness
Procedural Content Generation66
more random
more structured
Perlin Noise
Random numbers
Evolutionary algs.
Grammars
Constraint satisfaction
gamedesigninitiativeat cornell university
thegamedesigninitiative
at cornell university
the
Summary
Procedural content generation
can enhance your design power
enables some games that are impossible otherwise
(Minecraft)
is a beautiful combination of programming and design
Key techniques
Perlin Noise
Evolutionary Algorithms
Grammars
Constraint Solving
Procedural Content Generation67