Nick RudziczCOMP521 – Winter 2008
Procedural Content Generation in
Video Games
A Guefte-Leckture in Several Diftinguish'd ActesA Guefte-Leckture in Several Diftinguish'd ActesNick Rudzicz (loves fonts)
Nick RudziczCOMP521 – Winter 2008
The Man: Nick Rudzicz
Background
Nick RudziczCOMP521 – Winter 2008
The Man: Nick Rudzicz The Legend: It's pronounced ''ROOjich''
Background
Nick RudziczCOMP521 – Winter 2008
The Man: Nick Rudzicz The Legend: It's pronounced ''ROOjich'' ...the hell? Seeking a Master's degree in Computer
Science in the field of video game awesomeness
Background
Nick RudziczCOMP521 – Winter 2008
I am both a giant nerd and a giant geek
Motivation
Nick RudziczCOMP521 – Winter 2008
I am both a giant nerd and a giant geek Nerd: I can read this:
Motivation
Nick RudziczCOMP521 – Winter 2008
I am both a giant nerd and a giant geek Nerd: I can read this:
Motivation
Geek: The following is the
Nick RudziczCOMP521 – Winter 2008
I am both a giant nerd and a giant geek Nerd: I can read this:
Motivation
Geek: The following is theBest.
Nick RudziczCOMP521 – Winter 2008
I am both a giant nerd and a giant geek Nerd: I can read this:
Motivation
Geek: The following is theBest. Game.
Nick RudziczCOMP521 – Winter 2008
I am both a giant nerd and a giant geek Nerd: I can read this:
Motivation
Geek: The following is theBest. Game. Ever.
Nick RudziczCOMP521 – Winter 2008
Motivation
I get a kick out of world creation, exploration
Nick RudziczCOMP521 – Winter 2008
Motivation
I get a kick out of world creation, exploration (Recall your 4 basic gamer types...)
Nick RudziczCOMP521 – Winter 2008
Content
Q: What is content?
Nick RudziczCOMP521 – Winter 2008
Content
Q: What is content? A: Everything in the game that provides the gamer
w/ sensory input (graphics, music, NPCs, text, etc.)
Nick RudziczCOMP521 – Winter 2008
Content
Q: What is content? A: Everything in the game that provides the gamer
w/ sensory input (graphics, music, NPCs, text, etc.) Content:
Nick RudziczCOMP521 – Winter 2008
Content
Q: Why is content important?
Nick RudziczCOMP521 – Winter 2008
Content
Q: Why is content important? A: Storage space is expanding, graphical capability
is skyrocketing – and both are getting cheaper.
Nick RudziczCOMP521 – Winter 2008
Content
Q: Why is content important? A: Storage space is expanding, graphical capability
is skyrocketing – and both are getting cheaper. Gamers expect more ''stuff'' in their games!
Nick RudziczCOMP521 – Winter 2008
Content
Q: Why is content important? (cont'd) Compare:
1993
2002
2006
Nick RudziczCOMP521 – Winter 2008
Content
Q: What makes content an important business problem?
Nick RudziczCOMP521 – Winter 2008
Content
Q: What makes content an important business problem? A: It sucks up resources like the Mega Maid in
''Spaceballs''Game development budget
ContentEverything else
Game development time
ContentEverything else
* Entirely made-up graphs, but probably not far off
Nick RudziczCOMP521 – Winter 2008
Content
A problem of scale:
Nick RudziczCOMP521 – Winter 2008
Content
A problem of scale: Dorval: 20.87km2
GTA:SA: 36km2
TES:Oblivion: 41.439km2
WoW: 207.2km2
Nick RudziczCOMP521 – Winter 2008
Content
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): ??? How could we possibly build
''realisticallysized'' environments by hand? (And do we want to?)
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Various levels of environmental content creation:
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Various levels of environmental content creation: Landscape Vegetation Cities Buildings Objects
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Various levels of environmental content creation: Landscape Vegetation Cities Buildings Objects
Forms a nice hierarchy
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Various levels of environmental content creation: Landscape Vegetation Cities Buildings Objects
Forms a nice hierarchy Work has been done on individual levels
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Levels of content creation: Landscape Vegetation Cities Buildings Objects
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Landscapes Perlin Noise (!), Iterated fault lines, GIS, ...
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Landscapes Perlin Noise (!), Iterated fault lines, GIS, ... Terragen (+ user input) is very good at this:
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
[Prusinkiewicz 1993] discusses the formation of rivers using fractals:
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Levels of content creation: Landscape Vegetation Cities Buildings Objects
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
[Wells 2005] uses cellular automata to simulate a floral ecosystem
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
[Wells 2005] uses cellular automata to simulate a floral ecosystem
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Even individual plants can be procedurally generated using Lindenmeyer systems (LSystems)
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Even individual plants can be procedurally generated using Lindenmeyer systems (LSystems) String rewriting mechanism, much like a contextfree
grammar (or even context sensitive)
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Even individual plants can be procedurally generated using Lindenmeyer systems (LSystems) String rewriting mechanism, much like a contextfree
grammar (or even context sensitive)
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Levels of content creation: Landscape Vegetation Cities Buildings Objects
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
[Parish & Mueller 2000] developed CityEngine Reuses LSystems for branching road networks!
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
[Parish & Mueller 2000] developed CityEngine Reuses LSystems for branching road networks! Results are visually phenomenal
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
CityEngine
+
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
CityEngine
+
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
[Glass 2006] uses Voronoi diagrams to generate ''informal settlements''
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
[Glass 2006] uses Voronoi diagrams to generate ''informal settlements''
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Levels of content creation: Landscape Vegetation Cities Buildings Objects
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
[Wonka 2003] uses a ''shape grammar'' (much like an LSystem) to generate building exteriors
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
[Wonka 2003] uses a ''shape grammar'' (much like an LSystem) to generate building exteriors
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Levels of content creation: Landscape Vegetation Cities Buildings Objects
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Very little (if any) work done at this level
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
Very little (if any) work done at this level ...which makes this exciting
Nick RudziczCOMP521 – Winter 2008
World-building: What and How
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 RudziczCOMP521 – Winter 2008
World-building: What and How
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 RudziczCOMP521 – Winter 2008
Where do I come in?
Nick RudziczCOMP521 – Winter 2008
Where do I come in?
Thesising! Word? No. Fun to say? Very yes!
Nick RudziczCOMP521 – Winter 2008
Where do I come in?
Thesising! Word? No. Fun to say? Very yes!
My goal: make a world at the touch of a button
Nick RudziczCOMP521 – Winter 2008
Where do I come in?
Thesising! Word? No. Fun to say? Very yes!
My goal: make a world at the touch of a button
Nick RudziczCOMP521 – Winter 2008
Thesis
Given:
Nick RudziczCOMP521 – Winter 2008
Thesis
Given: Nice hierarchy of creation levels (Landscape, vegetation,
cities, etc.)
Nick RudziczCOMP521 – Winter 2008
Thesis
Given: Nice hierarchy of creation levels (Landscape, vegetation,
cities, etc.) A lot of work already done on individual levels
Nick RudziczCOMP521 – Winter 2008
Thesis
Given: Nice hierarchy of creation levels (Landscape, vegetation,
cities, etc.) A lot of work already done on individual levels
We want:
Nick RudziczCOMP521 – Winter 2008
Thesis
Given: Nice hierarchy of creation levels (Landscape, vegetation,
cities, etc.) A lot of work already done on individual levels
We want: A data framework for the hierarchy
Nick RudziczCOMP521 – Winter 2008
Thesis
Given: Nice hierarchy of creation levels (Landscape, vegetation,
cities, etc.) A lot of work already done on individual levels
We want: A data framework for the hierarchy A tool for rapid content creation
Nick RudziczCOMP521 – Winter 2008
Thesis
The platform: Mammoth
Nick RudziczCOMP521 – Winter 2008
Thesis
The platform: Mammoth Made at McGill Has content editor, welldefined map files
Nick RudziczCOMP521 – Winter 2008
Thesis
The data framework
Nick RudziczCOMP521 – Winter 2008
Thesis
The data framework Definition of data structures (heightmap, city, building...) Interaction between objects
Nick RudziczCOMP521 – Winter 2008
Thesis
The data framework Definition of data structures (heightmap, city, building...) Interaction between objects Software engineering!
Nick RudziczCOMP521 – Winter 2008
Thesis
The data framework
Nick RudziczCOMP521 – Winter 2008
Thesis
The data framework MODULAR!
Nick RudziczCOMP521 – Winter 2008
Thesis
The data framework MODULAR! Anyone can
write theirown engines
Nick RudziczCOMP521 – Winter 2008
Thesis
The tool
Nick RudziczCOMP521 – Winter 2008
Thesis
The tool Provide an interface to choose modules
(Cellular automata vs. LSystems vs. etc...)
Nick RudziczCOMP521 – Winter 2008
Thesis
The tool Provide an interface to choose modules
(Cellular automata vs. LSystems vs. etc...) Data framework defines how modules behave
Nick RudziczCOMP521 – Winter 2008
Summary
Finally!
Nick RudziczCOMP521 – Winter 2008
Summary
Content: scale and detail are growing exponentially!
Nick RudziczCOMP521 – Winter 2008
Summary
Content: scale and detail are growing exponentially! Work has been done on individual levels
Nick RudziczCOMP521 – Winter 2008
Summary
Content: scale and detail are growing exponentially! Work has been done on individual levels Trend toward automated creation tools
Nick RudziczCOMP521 – Winter 2008
Teh futures!
Nick RudziczCOMP521 – Winter 2008
Teh futures!
Full, commercial tool allowing plugin modules
Nick RudziczCOMP521 – Winter 2008
Teh futures!
Full, commercial tool allowing plugin modules Games allowing user creation?
Nick RudziczCOMP521 – Winter 2008
Teh futures!
Full, commercial tool allowing plugin modules Games allowing user creation? Automated NPC/storyline generation?
Nick RudziczCOMP521 – Winter 2008
Questions?
Nick RudziczCOMP521 – Winter 2008
Questions?
What's a content?