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
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.
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