/
Procedural Content Generation Procedural Content Generation

Procedural Content Generation - PowerPoint Presentation

trish-goza
trish-goza . @trish-goza
Follow
400 views
Uploaded On 2016-06-22

Procedural Content Generation - PPT Presentation

James Grisetti Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications Introduction What is Procedural Content Generation ID: 373388

generation procedural generators contemporary procedural generation contemporary generators content basic work future introduction applications systems state history overview generatorsl

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Procedural Content Generation" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Procedural Content Generation

James

GrisettiSlide2

Overview

Introduction

Brief History of Procedural Generation

Basic Generators

Contemporary Generators

Future Work

Example ApplicationsSlide3

Introduction

What is Procedural Content Generation?

Generic

t

erm for the usage of algorithms to generate content rather than manual creation of content.

“Content” refers to media content such as in movies, games, pictures, simulation, etc.Slide4

Introduction

Why Use Procedural Generation?

Reduce production time by focusing on mechanics, rather than simulation artifacts

Maintain consistent design style across multiple artifact designs, while allowing for controlled variationSlide5

Overview

Introduction

Brief History of Procedural Generation

Basic Generators

Contemporary Generators

Future Work

Example ApplicationsSlide6

(Very) Brief History

Procedural Content Generation has existed to some extent for as long as the Computer Science field

Simple generators have been used in Monte Carlo simulation

Used in computer games as early as 1982

First notable use of procedural animation was in the Lord of the Rings trilogy

Widespread use in video games and simulationSlide7

Overview

Introduction

Brief History of Procedural Generation

Basic Generators

Contemporary Generators

Future Work

Example ApplicationsSlide8

Basic Generators

Linear

Congruential

Generator

In the form of X

N+1

=

aX

N

+ c (mod m)

Programmer controls output through values of a, c, m, and X

0

(seed value)

Implemented in the C language through rand() and

srand

()

May be expanded to higher order polynomialSlide9

Basic Generators

Linear Feedback Shift Registers

Based on a “shift register” with bits shifted in to the left and shifted out to the right

Programmer controls output through setting the “polynomial” and initial state

Slightly higher quality than LCGsSlide10

Basic Generators

Linear Feedback Shift Register Varieties

Fibonacci

Bit shifted in is based on several bits of current state

Galois

Several bits are modified based on bit shifting outSlide11

Overview

Introduction

Brief History of Procedural Generation

Basic Generators

Contemporary Generators

Future Work

Example ApplicationsSlide12

Contemporary Generators

Perlin

Noise

Mathematical interpolation of floating point numbers

Creates fractional Brownian Motion

Used to make CGI textures look more realisticSlide13

Contemporary Generators

L-Systems

Lindenmayer

systems

Defined as a 3-tuple

V, the alphabet of the system (variables and constants)

ω, initial string of the system (axiom, start, or initiator)

P, set of production rules (one for each variable in V)Slide14

Contemporary Generators

L-Systems Continued

At each iteration, each variable in the current string is replaced with its corresponding production to produce the next string

State is the string after a given number of iterations

The state is usually used to direct a “

t

urtle graphic”

One of the most commonly used PCGsSlide15

Contemporary Generators

L-Systems Continued

Example

V = {A,B}

ω = A

P = {A→AB,

B →A}

Iteration

A

AB

ABA

ABAAB

ABAABABASlide16

Contemporary Generators

L-Systems Demonstration 1

V = {F,+,-}

F means “draw forward”

‘+’ and ‘-’ are used to change angle

ω = F--F--F--

P = {F→F+F--F+F}Slide17

Contemporary Generators

L-Systems Demonstration 2

V = {X,F,[,],+,-}

F means “draw forward”

‘[‘ and ‘]’ are used to save and restore position

‘+’ and ‘-’ are used to change angle

X has no meaning outside of the L-System

ω = X

P = { X → F-[[X]+X]+F[+FX]-X,

F → FF }Slide18

Contemporary Generators

Expert Systems

Departure from previous approaches

Use statistical methods to determine world shape and item placement

First notably used in Procedural

Content Generation in

Valve’s

Left4DeadSlide19

Overview

Introduction

Brief History of Procedural Generation

Basic Generators

Contemporary Generators

Future Work

Example ApplicationsSlide20

Future Work

Most contemporary PCGs are involved in generating terrain artifacts (landscape)

Some use in animations, textures, and lighting

The next generation of Procedural Content Generation will be involved in creating entire mapsSlide21

Future Work

Going to the extreme:

Programming programs that program programs

In a paper published this year,

Mahlmann

,

Togelius

,

Yannakakis

at the IT University of Denmark suggest the use of Procedural Content Generation for entire games, including rule sets, unit hierarchies, game maps, etc.Slide22

Future Work

Another paper by

Dimovska

,

Jarnfelt

,

Selvig

,

Yannakakis

from the same university explores the use of procedural techniques to aid in physical rehabilitation using the

Wii

platformSlide23

Example Applications

Minecraft

Terrain is generated procedurally

“Mobs” are placed procedurallySlide24

Example Applications

CityEngine

Middleware intended for simulation and use in motion pictures

Requires map data for input

Creates road layouts, building shapes, and textures based on user parametersSlide25

Example Applications

Subversion

Independently developed game

Goal is for the entire world to be procedurally generatedSlide26

Example Applications

.

kkrieger

Created circa 2004 for the then state-of-the-art hardware

Uses PCG techniques to create maps, play music, and place items and enemies all at runtime

Executable is 97,280 bytesSlide27

References

Knowledge

The omniscient

www.wikipedia.org

Mahlmann

, et al. “Towards Procedural Strategy Game Generation: Evolving Complementary Unit Types” (

link

)

Dimovska

, et al. “Towards Procedural Level Generation for Rehabilitation” (

link

)

Müller

and Parish. “Procedural Modeling of Cities” SIGGRAPH 2001 (

link

)

Example Applications:

http://www.theprodukkt.com/kkrieger

http://www.introversion.co.uk/subversion

http://www.procedural.com

http://www.minecraft.netSlide28

"Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin."

-- John von Neumann