07.01.2013 Views

3D graphics eBook - Course Materials Repository

3D graphics eBook - Course Materials Repository

3D graphics eBook - Course Materials Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Procedural generation 116<br />

increases. First, high-end gaming PCs and current-generation game consoles like the Xbox 360 and PlayStation 3 are<br />

capable of rendering scenes containing many very detailed objects with high-resolution textures in high-definition.<br />

This means that artists must invest a great deal more time in creating a single character, vehicle, building, or texture,<br />

since gamers will tend to expect ever-increasingly detailed environments.<br />

Furthermore, the number of unique objects displayed in a video game is increasing. In addition to highly detailed<br />

models, players expect a variety of models that appear substantially different from one another. In older games, a<br />

single character or object model might have been used over and over again throughout a game. With the increased<br />

visual fidelity of modern games, however, it is very jarring (and threatens the suspension of disbelief) to see many<br />

copies of a single object, while the real world contains far more variety. Again, artists would be required to complete<br />

exponentially more work in order to create many different varieties of a particular object. The need to hire larger art<br />

staffs is one of the reasons for the rapid increase in game development costs.<br />

Some initial approaches to procedural synthesis attempted to solve these problems by shifting the burden of content<br />

generation from the artists to programmers who can create code which automatically generates different meshes<br />

according to input parameters. Although sometimes this still happens, what has been recognized is that applying a<br />

purely procedural model is often hard at best, requiring huge amounts of time to evolve into a functional, usable and<br />

realistic-looking method. Instead of writing a procedure that completely builds content procedurally, it has been<br />

proven to be much cheaper and more effective to rely on artist created content for some details. For example,<br />

SpeedTree is middleware used to generate a large variety of trees procedurally, yet its leaf textures can be fetched<br />

from regular files, often representing digitally acquired real foliage. Other effective methods to generate hybrid<br />

content are to procedurally merge different pre-made assets or to procedurally apply some distortions to them.<br />

Supposing, however, a single algorithm can be envisioned to generate a realistic-looking tree, the algorithm could be<br />

called to generate random trees, thus filling a whole forest at runtime, instead of storing all the vertices required by<br />

the various models. This would save storage media space and reduce the burden on artists, while providing a richer<br />

experience. The same method would require far more processing power. Since CPUs are constantly increasing in<br />

speed, however, the latter is becoming less of a hurdle.<br />

A different problem is that it is not easy to develop a good algorithm for a single tree, let alone for a variety of<br />

species (compare Sumac, Birch, Maple). An additional caveat is that assembling a realistic-looking forest could not<br />

be done by simply assembling trees because in the real world there are interactions between the various trees which<br />

can dramatically change their appearance and distribution.<br />

In 2004, a PC first-person shooter called .kkrieger was released that made heavy use of procedural synthesis: while<br />

quite short and very simple, the advanced video effects were packed into just 96 Kilobytes. In contrast, many modern<br />

games have to be released on DVDs, often exceeding 2 gigabytes in size, more than 20,000,000 times larger. Naked<br />

Sky's RoboBlitz used procedural generation to maximize content in a less than 50MB downloadable file for Xbox<br />

Live Arcade. Will Wright's Spore also makes use of procedural synthesis.<br />

In 2008, Valve Software released Left 4 Dead, a first-person shooter based on the Source engine that utilized<br />

procedural generation as a major game mechanic. The game featured a built-in artificial intelligence structure,<br />

dubbed the "Director," which analyzed player statistics and game states on the fly to provide dynamic experiences on<br />

each and every playthrough. Based on different player variables, such as remaining health, ammo, and number of<br />

players, the A.I. Director could potentially create or remove enemies and items so that any given match maintained<br />

an exciting and breakneck pace. Left 4 Dead 2, released in November 2009, expanded on this concept, introducing<br />

even more advanced mechanics to the A.I. Director, such as the ability to generate new paths for players to follow<br />

according to their individual statuses.<br />

An indie game that makes extensive use of procedural generation is Minecraft. In the game the initial state of the<br />

world is mostly random (with guidelines in order to generate Earth-like terrain), and new areas are generated<br />

whenever the player moves towards the edges of the world. This has the benefit that every time a new game is made,<br />

the world is completely different and will need a different method to be successful, adding replay value.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!