Presentation is loading. Please wait.

Presentation is loading. Please wait.

Procedural Content Generation James Grisetti. Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future.

Similar presentations


Presentation on theme: "Procedural Content Generation James Grisetti. Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future."— Presentation transcript:

1 Procedural Content Generation James Grisetti

2 Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

3 Introduction What is Procedural Content Generation? Generic term 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.

4 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 variation

5 Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

6 (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 simulation

7 Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

8 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 polynomial

9 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 LCGs

10 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 out

11 Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

12 Contemporary Generators Perlin Noise Mathematical interpolation of floating point numbers Creates fractional Brownian Motion Used to make CGI textures look more realistic

13 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)

14 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

15 Contemporary Generators L-Systems Continued Example V = {A,B} ω = A P = {A→AB, B →A} Iteration A AB ABA ABAAB ABAABABA

16 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}

17 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 }

18 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

19 Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future Work Example Applications

20 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

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

22 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

23 Example Applications Minecraft Terrain is generated procedurally “Mobs” are placed procedurally

24 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

25 Example Applications Subversion Independently developed game Goal is for the entire world to be procedurally generated

26 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 bytes

27 References Knowledge The omniscient www.wikipedia.orgwww.wikipedia.org Mahlmann, et al. “Towards Procedural Strategy Game Generation: Evolving Complementary Unit Types” (link)link Dimovska, et al. “Towards Procedural Level Generation for Rehabilitation” (link)link Müller and Parish. “Procedural Modeling of Cities” SIGGRAPH 2001 (link)link Example Applications: http://www.theprodukkt.com/kkrieger http://www.introversion.co.uk/subversion http://www.procedural.com http://www.minecraft.net

28 "Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin." -- John von Neumann


Download ppt "Procedural Content Generation James Grisetti. Overview Introduction Brief History of Procedural Generation Basic Generators Contemporary Generators Future."

Similar presentations


Ads by Google