Nick Rudzicz COMP521 – Winter 2008
Procedural Content Generation in Video Games
A Guefte-Leckture in Several Diftinguish'd Actes A Guefte-Leckture in Several Diftinguish'd Actes
Nick Rudzicz (loves fonts)
A Guefte-Leckture in Several Diftinguish'd Actes A Guefte-Leckture - - PowerPoint PPT Presentation
Procedural Content Generation in Video Games A Guefte-Leckture in Several Diftinguish'd Actes A Guefte-Leckture in Several Diftinguish'd Actes Nick Rudzicz (loves fonts) Nick Rudzicz COMP521 Winter 2008 Background The Man: Nick
Nick Rudzicz COMP521 – Winter 2008
Nick Rudzicz (loves fonts)
Nick Rudzicz COMP521 – Winter 2008 The Man: Nick Rudzicz
Nick Rudzicz COMP521 – Winter 2008 The Man: Nick Rudzicz The Legend: It's pronounced ''ROO-jich''
Nick Rudzicz COMP521 – Winter 2008 The Man: Nick Rudzicz The Legend: It's pronounced ''ROO-jich'' ...the hell? Seeking a Master's degree in Computer
Nick Rudzicz COMP521 – Winter 2008 I am both a giant nerd and a giant geek
Nick Rudzicz COMP521 – Winter 2008 I am both a giant nerd and a giant geek Nerd: I can read this:
Nick Rudzicz COMP521 – Winter 2008 I am both a giant nerd and a giant geek Nerd: I can read this:
Geek: The following is the
Nick Rudzicz COMP521 – Winter 2008 I am both a giant nerd and a giant geek Nerd: I can read this:
Geek: The following is the
Nick Rudzicz COMP521 – Winter 2008 I am both a giant nerd and a giant geek Nerd: I can read this:
Geek: The following is the
Nick Rudzicz COMP521 – Winter 2008 I am both a giant nerd and a giant geek Nerd: I can read this:
Geek: The following is the
Nick Rudzicz COMP521 – Winter 2008
I get a kick out of world creation, exploration
Nick Rudzicz COMP521 – Winter 2008
I get a kick out of world creation, exploration (Recall your 4 basic gamer types...)
Nick Rudzicz COMP521 – Winter 2008
Q: What is content?
Nick Rudzicz COMP521 – Winter 2008
Q: What is content? A: Everything in the game that provides the gamer
Nick Rudzicz COMP521 – Winter 2008
Q: What is content? A: Everything in the game that provides the gamer
Content:
Nick Rudzicz COMP521 – Winter 2008
Q: Why is content important?
Nick Rudzicz COMP521 – Winter 2008
Q: Why is content important? A: Storage space is expanding, graphical capability
Nick Rudzicz COMP521 – Winter 2008
Q: Why is content important? A: Storage space is expanding, graphical capability
Gamers expect more ''stuff'' in their games!
Nick Rudzicz COMP521 – Winter 2008
Q: Why is content important? (cont'd)
Compare:
1993 2002 2006
Nick Rudzicz COMP521 – Winter 2008
Q: What makes content an important business problem?
Nick Rudzicz COMP521 – Winter 2008
Q: What makes content an important business problem? A: It sucks up resources like the Mega Maid in
Game development budget
Content Everything else
Game development time
Content Everything else
* Entirely made-up graphs, but probably not far off
Nick Rudzicz COMP521 – Winter 2008
A problem of scale:
Nick Rudzicz COMP521 – Winter 2008
A problem of scale:
Dorval: 20.87km2 GTA:SA: 36km2 TES:Oblivion: 41.439km2 WoW: 207.2km2
Nick Rudzicz COMP521 – Winter 2008
A problem of scale:
Dorval: 20.87km2 GTA:SA: 36km2 TES:Oblivion: 41.439km2 WoW: 207.2km2 Island of Montreal: 500km2 Tolkien's world (Arda): ???
Nick Rudzicz COMP521 – Winter 2008
Various levels of environmental content creation:
Nick Rudzicz COMP521 – Winter 2008
Various levels of environmental content creation:
Landscape Vegetation Cities Buildings Objects
Nick Rudzicz COMP521 – Winter 2008
Various levels of environmental content creation:
Landscape Vegetation Cities Buildings Objects
Forms a nice hierarchy
Nick Rudzicz COMP521 – Winter 2008
Various levels of environmental content creation:
Landscape Vegetation Cities Buildings Objects
Forms a nice hierarchy Work has been done on individual levels
Nick Rudzicz COMP521 – Winter 2008
Levels of content creation:
Landscape Vegetation Cities Buildings Objects
Nick Rudzicz COMP521 – Winter 2008
Landscapes
Perlin Noise (!), Iterated fault lines, GIS, ...
Nick Rudzicz COMP521 – Winter 2008
Landscapes
Perlin Noise (!), Iterated fault lines, GIS, ... Terragen (+ user input) is very good at this:
Nick Rudzicz COMP521 – Winter 2008
[Prusinkiewicz 1993] discusses the formation of
Nick Rudzicz COMP521 – Winter 2008
Levels of content creation:
Landscape Vegetation Cities Buildings Objects
Nick Rudzicz COMP521 – Winter 2008
[Wells 2005] uses cellular automata to simulate a
Nick Rudzicz COMP521 – Winter 2008
[Wells 2005] uses cellular automata to simulate a
Nick Rudzicz COMP521 – Winter 2008
Even individual plants can be procedurally
Nick Rudzicz COMP521 – Winter 2008
Even individual plants can be procedurally
String rewriting mechanism, much like a context-free
Nick Rudzicz COMP521 – Winter 2008
Even individual plants can be procedurally
String rewriting mechanism, much like a context-free
Nick Rudzicz COMP521 – Winter 2008
Levels of content creation:
Landscape Vegetation Cities Buildings Objects
Nick Rudzicz COMP521 – Winter 2008
[Parish & Mueller 2000] developed CityEngine
Re-uses L-Systems for branching road networks!
Nick Rudzicz COMP521 – Winter 2008
[Parish & Mueller 2000] developed CityEngine
Re-uses L-Systems for branching road networks! Results are visually phenomenal
Nick Rudzicz COMP521 – Winter 2008
CityEngine
Nick Rudzicz COMP521 – Winter 2008
CityEngine
Nick Rudzicz COMP521 – Winter 2008
[Glass 2006] uses Voronoi diagrams to generate
Nick Rudzicz COMP521 – Winter 2008
[Glass 2006] uses Voronoi diagrams to generate
Nick Rudzicz COMP521 – Winter 2008
Levels of content creation:
Landscape Vegetation Cities Buildings Objects
Nick Rudzicz COMP521 – Winter 2008
[Wonka 2003] uses a ''shape grammar'' (much like
Nick Rudzicz COMP521 – Winter 2008
[Wonka 2003] uses a ''shape grammar'' (much like
Nick Rudzicz COMP521 – Winter 2008
Levels of content creation:
Landscape Vegetation Cities Buildings Objects
Nick Rudzicz COMP521 – Winter 2008
Very little (if any) work done at this level
Nick Rudzicz COMP521 – Winter 2008
Very little (if any) work done at this level
...which makes this exciting
Nick Rudzicz COMP521 – Winter 2008
Very little (if any) work done at this level
...which makes this exciting
What would this look like?
A formal grammar or rule set?
Object fork {
placedIn{ ''counterDrawer'', 0.5; ''toilet'', 0.0 }; placedOn{ ''table'', 0.5; ...} ... nextTo{ ''plate'', 0.75; ...} }
Nick Rudzicz COMP521 – Winter 2008
Very little (if any) work done at this level
...which makes this exciting
What would this look like?
A swarm of interior decorator agents? Sort of like a backwards riot...
Nick Rudzicz COMP521 – Winter 2008
Nick Rudzicz COMP521 – Winter 2008
Thesising!
Word? No. Fun to say? Very yes!
Nick Rudzicz COMP521 – Winter 2008
Thesising!
Word? No. Fun to say? Very yes!
My goal: make a world at the touch of a button
Nick Rudzicz COMP521 – Winter 2008
Thesising!
Word? No. Fun to say? Very yes!
My goal: make a world at the touch of a button
Nick Rudzicz COMP521 – Winter 2008
Given:
Nick Rudzicz COMP521 – Winter 2008
Given:
Nice hierarchy of creation levels (Landscape, vegetation,
Nick Rudzicz COMP521 – Winter 2008
Given:
Nice hierarchy of creation levels (Landscape, vegetation,
A lot of work already done on individual levels
Nick Rudzicz COMP521 – Winter 2008
Given:
Nice hierarchy of creation levels (Landscape, vegetation,
A lot of work already done on individual levels
We want:
Nick Rudzicz COMP521 – Winter 2008
Given:
Nice hierarchy of creation levels (Landscape, vegetation,
A lot of work already done on individual levels
We want:
A data framework for the hierarchy
Nick Rudzicz COMP521 – Winter 2008
Given:
Nice hierarchy of creation levels (Landscape, vegetation,
A lot of work already done on individual levels
We want:
A data framework for the hierarchy A tool for rapid content creation
Nick Rudzicz COMP521 – Winter 2008
The platform: Mammoth
Nick Rudzicz COMP521 – Winter 2008
The platform: Mammoth
Made at McGill Has content editor, well-defined map files
Nick Rudzicz COMP521 – Winter 2008
The data framework
Nick Rudzicz COMP521 – Winter 2008
The data framework
Definition of data structures (heightmap, city, building...) Interaction between objects
Nick Rudzicz COMP521 – Winter 2008
The data framework
Definition of data structures (heightmap, city, building...) Interaction between objects Software engineering!
Nick Rudzicz COMP521 – Winter 2008
The data framework
Nick Rudzicz COMP521 – Winter 2008
The data framework
MODULAR!
Nick Rudzicz COMP521 – Winter 2008
The data framework
MODULAR! Anyone can
Nick Rudzicz COMP521 – Winter 2008
The tool
Nick Rudzicz COMP521 – Winter 2008
The tool
Provide an interface to choose modules
(Cellular automata vs. L-Systems vs. etc...)
Nick Rudzicz COMP521 – Winter 2008
The tool
Provide an interface to choose modules
(Cellular automata vs. L-Systems vs. etc...)
Data framework defines how modules behave
Nick Rudzicz COMP521 – Winter 2008
Finally!
Nick Rudzicz COMP521 – Winter 2008
Content: scale and detail are growing exponentially!
Nick Rudzicz COMP521 – Winter 2008
Content: scale and detail are growing exponentially! Work has been done on individual levels
Nick Rudzicz COMP521 – Winter 2008
Content: scale and detail are growing exponentially! Work has been done on individual levels Trend toward automated creation tools
Nick Rudzicz COMP521 – Winter 2008
Nick Rudzicz COMP521 – Winter 2008
Full, commercial tool allowing plug-in modules
Nick Rudzicz COMP521 – Winter 2008
Full, commercial tool allowing plug-in modules Games allowing user creation?
Nick Rudzicz COMP521 – Winter 2008
Full, commercial tool allowing plug-in modules Games allowing user creation? Automated NPC/storyline generation?
Nick Rudzicz COMP521 – Winter 2008
Nick Rudzicz COMP521 – Winter 2008
What's a content?