Survey of Procedural Content

Survey of Procedural Content
Procedural Content Generation
• Procedural generation refers to content
generated algorithmically rather than manually.
– numbers, strings, movies, games, pictures, simulation,
programs, natural language, etc.
• Why have procedural content?
– Replayability
• Scene variety
• Infinite levels
– Development time and costs
Development costs – facts and figures
• Gran Turismo 5 budget: $60 Million [source]
• Average AAA game development cost:
$28 Million [source]
• For comparison:
– Movie budgets
• Kick-Ass (2012) : budget of $28 Million
– Television
• Game of Thrones : budget approx. $60 Million [source]
Development costs – facts and figures
• How the Wii was born
• Cost and Sales breakdowns
• $60 price point – inflation and cost breakdown
Procedural content in games
Procedural generation algorithms
Examples in commercial games
Additional reading and resources
• Procedural Content Generation for Games: A
Survey
– Direct Link to author’s preprint
– ACM Digital Library Link
• Essential facts about the computer and video
game industry: Sales, demographics, and
usage data
– 2012 infographic
Examples
Adapted from material by James
Grisetti and Luke Aust
Contemporary Generators
Perlin Noise
• Mathematical interpolation of floating point
numbers
• Creates fractional Brownian Motion
• Used to make CGI textures look more realistic
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)
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 “turtle graphic”
• One of the most commonly used PCGs
Contemporary Generators
L-Systems Continued
Example
V = {A,B}
ω=A
P = {A→AB,
B →A}
Iteration
•
•
•
•
•
A
AB
ABA
ABAAB
ABAABABA
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}
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 }
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 Left4Dead
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
maps
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.
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 platform
Example Applications
Minecraft
• Terrain is generated procedurally
• “Mobs” are placed procedurally
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 parameters
Example Applications
Subversion
• Independently developed game
• Goal is for the entire world to be procedurally
generated
Example Applications
.kkrieger
• Created circa 2004 for the then state-of-theart hardware
• Uses PCG techniques to create maps, play
music, and place items and enemies all at
runtime
• Executable is 97,280 bytes
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.net
Software
•
•
•
•
•
•
.kkreiger (2004 .theprodukkt)
.debris (2009 .theprodukkt)
.werkkzeug 1 (2002 .theprodukkt)
.werkkzeug 3 TE (2007 .theprodukkt)
Dwarf Fortress (2006 Bay 12 Games)
Vega Strike (2008 TVST)
All above content is Open Source and Freeware that
can not be resold or redistributed for any price, all
credit is given to original publishers and contributors
who have allowed me to distribute this content.
Bibliography
•
•
•
•
•
http://pcg.wikidot.com
http://vegastrike.sourceforge.net
http://www.theprodukkt.com/
http://www.bay12games.com/dwarves/
http://df.magmawiki.com/