3D graphics eBook - Course Materials Repository
3D graphics eBook - Course Materials Repository
3D graphics eBook - Course Materials Repository
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.