Contents
Procedural Spooling In Games
 
 
Printer-Friendly VersionPrinter-Friendly Version
 


Part of:



[More information...]
 

Latest News
spacer View All spacer
 
November 22, 2009
 
Video Game Watchdog National Institute On Media And The Family Shutting Down [11]
 
Modern Warfare 2 Infinity Ward's 'Most Successful PC Version' Yet [12]
 
New Tech, Design Details Of Project Natal To Emerge At Gamefest In February
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
November 22, 2009
 
Trion Redwood City
Sr. Evnironment Modeler
 
Trion Redwood City
Sr. Environment Artist
 
Sucker Punch Productions
3D Environment Artist
 
Sucker Punch Productions
Network Programmer
 
Sucker Punch Productions
Character Artist
 
Sucker Punch Productions
Texture Artist
 
Monolith Productions
Sr. Software Engineer, Engine - Monolith Productions - #113767
 
Sony Online Entertainment
Brand Manager
spacer
Latest Features
spacer View All spacer
 
November 22, 2009
 
arrow Upping The Craft: Susan O'Connor On Games Writing [6]
 
arrow Small Developers: Minimizing Risks in Large Productions - Part II [7]
 
arrow iPhone Piracy: The Inside Story [48]
 
arrow And Yet It Grows: Analyzing the Size and Growth of the European Game Market [5]
 
arrow NPD: Behind the Numbers, October 2009 [13]
 
arrow Reflecting On Uncharted 2: How They Did It [5]
 
arrow Sponsored Feature: Rasterization on Larrabee -- Adaptive Rasterization Helps Boost Efficiency
 
arrow Postmortem: Wadjet Eye's The Blackwell Convergence [2]
spacer
Latest Blogs
spacer View All     Post     RSS spacer
 
November 22, 2009
 
Time Fcuk
 
Accepting the Inherent Value of Games
 
Planckogenesis, Part II: Song Structure & Gravy Train [1]
spacer
About
spacer News Director:
Leigh Alexander
Features Director:
Christian Nutt
Editor At Large:
Chris Remo
Advertising:
John 'Malik' Watson
Recruitment/Education:
Gina Gross
 
Features
  Procedural Spooling In Games
by Mick West
6 comments
Share RSS
 
 
October 2, 2008 Article Start Previous Page 4 of 4
 

Instant Spooling

Using procedural level generation as a way of accelerating spooling is great, but it can swiftly lead to another limited system resource: memory. If we're building the geometry in memory, then we're limited by how much memory we can reserve for geometry. In many cases, the available memory can hold far fewer polygons than the GPU can process.

The solution to this resource issue is not to use memory at all; instead, we generate the geometry in real time and feed it directly to the GPU. Theoretically, this method lets programmers fully utilize the polygon-pushing power of the GPU, while freeing up system memory for other things, such as materials or additional artist-generated geometry.

One way of generating polygons in real time is to perform dynamic tessellation, in which surface polygons are subdivided into smaller polygons, interpolating across surface normals to maintain the curve of the surface.

A better looking result can be achieved if the model is stored as higher order surfaces, such as NURBs, which can be tessellated in real time. Real-time tessellation can be dynamically varied depending on view distance, and so can be used as a very effective real-time level of detail (LOD) generator.

Dynamic tessellation can be used to enhance procedural geometry. In my tree-generating sample code, I can dynamically alter the number of polygons that make up the trunk and branches based on camera distance.

Real-time LOD is another great advantage of real-time procedural model generation. Instead of storing discrete models for several levels of detail, the procedural model generator simply generates a model to a sufficient level of complexity based on camera distance and current viewable scene complexity.

You can also code for a fractional LOD transition, where the LOD is given a floating point value, and smoothly transitions from one stage to another.


Figure 2: A forest of real-time procedural trees with continuous LOD generation.

In the tree sample, the LOD is defined by the branching depth. If this were done at the integer level, the user would notice distinct pops as the LOD moved from one stage to the next. However, by scaling the terminal branches by the fractional part of the LOD, the geometry of the tree can smoothly and simply morph from one stage to the next, providing a continuous increase in LOD that is almost imperceptible.

Figure 2 shows a variety of procedural trees being generated in real time, with the trees in the distance having lower LOD. As you move through this scene, the LOD transitions are very smooth, an effect that would be impossible to achieve without real-time procedural geometry generation.

Generated Conclusions

Procedurally generated content has the potential to support huge and unbelievably detailed worlds. It can be used to significantly augment traditionally spooled static level geometry to more fully utilize disc spooling bandwidth. Effective use of procedural content may require a new set of tools and working practices, which may take some developers a while to acquire.

The difficulty in creating swathes of content by hand, and the imbalance in spooling speed and polygon pushing power, has made the utilization of procedural content an almost unavoidable necessity. The good news is it's a lot of fun to code!

References

Sample code available at www.gdmag.com

Bulkley, Brad. "Edge of the World," Game Developer, June/July 2006.

Dapper, Tim. "Practical Procedural Modeling of Plants," University of
Bremen.www.td-grafik.de/artic/talk20030122/overview.html

Wikipedia: Procedural Generation
http://en.wikipedia.org/wiki/Procedural_generation

Stokes, Jon Hannibal. "Inside the Xbox 360, Part I: Procedural synthesis
and dynamic worlds," Ars Technica, May 24, 2005.
http://arstechnica.com/articles/paedia/cpu/xbox360-1.ars/3

[EDITOR'S NOTE: This article was independently published by Gamasutra's editors, since it was deemed of value to the community. Its publishing has been made possible by Intel, as a platform and vendor-agnostic part of Intel's Visual Computing microsite.]

 

 
Article Start Previous Page 4 of 4
 
Comments

Anonymous
profile image
The big blocker for procedural content still is that generated assets just don't look as good as hand-created ones. The promise has been there for years, and in theory it's just a matter of creating better generation algorithms, but in practice generated assets tend to have an abstract and artificial feel. This is true for scenery, models, animations, textures and even sound and music.

Artists often use real-world assets (photos, high detail models, motion captures) as a base for their work, and this is much harder with procedural methods. Until procedural systems make a quantum leap in quality, they restrict artists to create what they can with the algorithm rather than what they want with a general purpose tool.

That said, yeah if your game's art direction fits with the current state of the art in procedural generation, the benefits can be huge.

Jamie Roberts
profile image
"if your game's art direction fits with the current state of the art in procedural generation, the benefits can be huge"

The best example of course being RoboBlitz. If the game had used a natural, organic setting the procedural content would have looked horrible. But the system they used worked great for the artificial/metallic/robotic elements in the game.

Anonymous
profile image
Elite... SpeedTree... Spore... Procedural will never be a solution for everything. It is just a tool to be explored. Example:
http://mrl.nyu.edu/~perlin/facedemo/

Hélder Gomes Filho
profile image
In fact procedural content is underrated, I see already great procedural content around, you just need to look!

Or play krrieger and watch .debris!

Jaco van der Westhuizen
profile image
On the quality of procedural content; I think one could use a hybrid technique. The artist starts off with a procedural model, adding artistic tweaks and photo-based additions. These tweaks and added data is stored separately from the procedural algorithm parameters, so when spooling large areas, only the parameter data is spooled, and as the viewer moves closer the artist-generated data gets loaded using traditional techniques.

I expect this will have quality about equal to modern games, but using about half as much bandwidth.

Anonymous
profile image
In the recent years, the quality of procedural content has indeed made a big leap in quality.
When looking at procedural animations from Natural Motion, procedural buildings generation or procedural textures from the folks at Allegorithmic, you realize that procedural content nowadays can look as good as hand made assets by mixing maths and physics with artistic inputs and control over these algorithms.

Of course, procedural content is not the answer to everything (yet), but with development budgets getting higher and higher, it can help in many ways without sacrificing the global quality or the artistic vision.


none
 
Comment:
 


Submit Comment