lecture 16 - cornell university · lecture 16: game design initiative at cornell university the...

67
gamedesigninitiative at cornell university the gamedesigninitiative at cornell university the Procedural Content Generation Lecture 16:

Upload: others

Post on 25-May-2020

2 views

Category:

Documents


0 download

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