Procedural Content Generation By Team Whatever Our Name
Procedural Content Generation By: Team Whatever. Our. Name. Is
Members • Kimberly Boydstun • Mitch Cooley • Stephen Erickson • Michael Mc. Carrick • David Householder • Michael Filliater
Outline • Overview • History • Different Types • Examples • Toolkits/Libraries • Ties to Modular Asset Design • Current Obstacles • Where Procedural Generation is Headed
What is Procedural Content Generation? • Content generated algorithmically rather than manually http: //files. tested. com/photos/2012/11/27/41660 -minecraft. jpg
What is Procedural Content Generation? • Often utilizes randomness • Can mean creating content on the fly • Results in range of possible game play characteristics
What is Procedural Content Generation? • Procedural refers to the process that computes a particular function • From a few parameters, a large number of possible types of content can be generated • Can be applied to most art assets and even AI behavior http: //img 2. wikia. nocookie. net/__cb 201107061901 26/spore/images/6/61/Haloian_Galaxy. jpg
Why Procedurally Generate? • Save time
Why Procedurally Generate? • Save space • The Elder Scrolls II: Daggerfall • Over 88, 000 square miles • Over 15, 000 cities, villages, and dungeons • 750, 000 NPCs http: //static. giantbomb. com/uploads/original/0/5150/1257508 -daggerfall_box 1. jpg
Why Procedurally Generate • . kkrieger • Fairly complex game in 94 kb http: //static. giantbomb. com/uploads/original/0/4511/1095099 -fractalus_cockpit. jpg
Why Procedurally Generate? • Allows content to react differently for different players • Skyrim • Radiant Story System • Change story based on user actions http: //www. gameranx. com/img/11 -Nov/skyrim-1. jpg
Know Your History • Originally, used for reducing size • Rogue • Possibly first use of PCG in games • Created random levels on the fly http: //2. bp. blogspot. com/-oo 1 P 7 e. CZER 0/T 48 OX 07 suu. I/AAAAAM 0/x. Ipr 2 x. D 6 m 4/s 640/rogue-2. jpg
Know Your History • Level creation • River Raid • Random, dynamic level • Banned in West Germany from 1982 until 2002 http: //www. atarimania. com/8 bit/screens/river_raid_2. g if
Know Your History • Generate Art Assets • Rescue on Fractalus! • Generate mountains using fractals • First use of fractal terrain http: //static. giantbomb. com/uploads/original/0/4511/1095099 -fractalus_cockpit. jpg
Know Your History • Computing power increases • Focus shifts to decreasing artist workload http: //features. cgsociety. org/newgallerycrits/g 87/147987_1214418561_large. jp g
Algorithm Overview A quick look at popular algorithm implementations and examples of their use
Applications of PCG • landscape • compression • terrain • items • history • dungeons • mazes • noise • textures • characters • music • AI
Example: Dungeons • • • Used in Games like Rogue Divide the World into Equal-sized cells Iteratively connect cells to a random neighbor until all neighbors are connected Generate randomly sized rooms in each cell Connect the rooms with corridors. Add features and stairs to rooms https: //github. com/mizipzor/roguelike-dungeon-generator/blob/master/README. md
Example: Mazes • • Often accomplished using modified search algorithms to add randomization: Depth First Search Prims Algorithm Other, Simpler algorithms exist as well, like Recursive Division http: //commons. wikimedia. org/wiki/File: MAZE_30 x 20_DFS. gif http: //en. wikipedia. org/wiki/Maze_generation
Example: Terrain/Worlds • • • Created using multiple layers/types of procedurally generated data Interpretation of data as important the technique used to obtain it Examples: Sir, You Are Being Hunted’s British Country. Side Generator
Example: Terrain (Cont) • • • Perlin/Simplex Noise • Produces scaled values generally between 0 -1. • Detail increases with additional ‘octaves’ using f. Bm Fractal Noise • Brownian Motion • Diamond-Square Often used in conjunction/in multiple layers Perlin Noise Diamond-Square
Example: Terrain (Cont) • • • Uses multiple layers of noise and parabolic shifts/masks Divides the world up into organic looking cells Cells are filled in with props based on size, neighboring cell contents, and height Textures applied based on height/slope Towns implemented in a similar fashion to roguelike dungeons
Example: Narrative • • Done primarily through simulation Procedurally create characters/actors and environments with certain set attributes Cycle through interactions and log events out in an interesting way. Example: Dwarf Fortress
Examples: Textures Robo. Blitz • 80% of textures generated with Allegorithmic middleware tool (Pro. FX) • reduces the size of the game (less than 50 MB) http: //en. wikipedia. org/wiki/File: Robo. Blitz_-_Screenshot_11. jpg
Examples: AI Left 4 Dead “AI Director”: • procedurally spawns items, enemies, and weapons • based on players' performance http: //en. wikipedia. org/wiki/Left_4_Dead_2#The_AI_Director_2. 0 http: //pcg. wikidot. com/pcg-games: left 4 dead
Examples: AI Alien Swarm “AI Director”: • dynamically generates swarms of aliens • based on several factors (e. g. , squad’s stress level) http: //alienswarm. wikia. com/wiki/AI_Director http: //img 689. imageshack. us/img 689/8874/alienswarmv. jpg
Examples: Music Wolfram Tones applies a rule to color cells white or black takes a slice/swath and rotates it 2 1 interprets the height of each black 3 square as a different pitch on a scale http: //tones. wolfram. com/about/how. html
Examples: Music Wolfram Tones My tones: • http: //tones. wolfram. com/id/GIt 405 Anj. Ol. Ub. EEyzz 2 Ou. UEYPAn. Rpz. Peus 72 g. St. PZKi. Mg 9&abmnk=1 • http: //tones. wolfram. com/id/GPJc. C 3 Et 3 PFHsba. Fs 5 U Ohm. A 5 cmvb. CDzpawtn 1 Px. NXp. I 1 q. Zhoh&abmnk=1 http: //tones. wolfram. com/about/how. html
Toolkits: Terragen • Planetside Software • Professional Landscape Visualisation • Rendering and Animating • Terragen 3 - Newest Revision - Free http: //planetside. co. uk/
Terragen 3 • Creating Terrains Using Heightfields • Terrain Ends Abruptly in Distance, Limited Detail • Creating Terrains Procedurally • Endless Horizon of Terrain, Infinite Detail
Terragen 3 • Start with Flat Grey Environment • Add Power Fractal Terrain
Terragen 3: Shaders • Use Shaders to Add Interesting Texture/Color • High Color and Low Color • Correspond to High and Low Parts of Internal Noise Function of Shader
Terragen 3: Surface Layer • Added Surface Layer • Limited Altitude • Limited Slope
Terragen 3: Surface Layer • Additional Surface Layer • Minimum Altitude
Terragen 3: Final Product • Terrain Covers Entire Surface • Quick and Relatively Easy
Terragen 3: Export Procedural Terrain Export: (1) As a View-Dependent Triangle Mesh ● LWO, OBJ or FBX ● Choose Level of Detail (2) Converting to Raster Heightfield ●. TER or. EXR
Other Toolkits • Speed. Tree - Interactive Data Visualization, Inc. • 3 D Animated Plants and Trees • Many Other Toolkits • Avida • Dungeon. Maker • City Maze • Etc. http: //www. speedtree. com/
Modular Asset Design • Custom assets • Partially created assets • Asset Re-use
Modular Asset Design Pros Cons Re-usable assets Visual Fatigue Quickly build new content Difficult to construct Consistent art style
Modular Asset Design • Grid • Object Footprint • Snapping
Modular Asset Design • Kits • Bridge Pieces • Transitions pieces
Modular Asset Design • Texture Re-use • Tiling • UV-Layout
Modular Asset Design
Modular Asset Design
Modular Asset Design
Modular Asset Design
Current Obstacles. On the fly • PCG can lack in creating a good player experience. • Too random • Not enough uniqueness • More complexity in design equates to longer time to create and more complex code. http: //upload. wikimedia. org/wikipedia/en/c/c 9/Picture_maze_unsolved. png • What is generated needs to be verified.
Current Obstacles. Pre-Launch • Content needs to fit theme thats already in the game. • Generated content. • Should be efficiently generated • or at least reliable • Requires manual passes to verify level fidelity and allow manual tweaks when needed. • For obstacle placement • Level balance • “Feel” http: //http. developer. nvidia. com/GPUGems 3/element. Links/01 fig 01. jpg
Direction • Pure Procedural • No Man’s Sky http: //www. no-mans-sky. com/ http: //www. rockpapershotgun. com/images/13/dec/nms/neweridu. jpg
Direction • High Fidelity Generation • Star Citizen https: //robertsspaceindustries. com/ http: //www. rockpapershotgun. com/images/14/feb/starcitplanet. jpg
Conclusion • Procedural Content Generation and Modular Asset Design are both valuable tools to have. • Allow generation of otherwise tedious or time intensive assets. • Has great potential in the way games will be shaped.
- Slides: 50