I am working on a problem, I never think about beauty … but when
I have finished, if the solution is not beautiful, I know it is wrong.
--R. Buckminster Fuller
Your hardware is primed and ready to hurl out 16,000 gigatexels per second. Your engine is a thing of almost poetic loveliness and will throw millions of light-mapped, volumetrically fogged polygons around the screen without even breaking a sweat. Your design document makes the unabridged edition of the Encyclopaedia Britannica look like a pamphlet, and you have enough concept art to fill a medium-sized aircraft hangar.
You're looking good. Your project is set to excite and amaze with its technical wizardry. Its groundbreaking gameplay will doubtless spawn a thousand imitations, and you have already begun writing your acceptance speech for next year's Gaming Legends of the Twenty-First Century awards ceremony. But there is one small problem: your graphics are as uninspiring as a bag of wet socks. Unfortunately, the game-buying public demands more and more from their visuals with each passing week, and all but the most devoted of gamers will probably ignore your game if they turn the box over and see the kind of screenshots that would make their Grandma yawn.
It is true that many a dreadful game has scammed its way into the charts by dressing up its tedious and aggravating gameplay with a flurry of screen-bending special effects and delicious visuals. But this kind of fakery is usually short-lived, and once the word gets out, many of these games end up being exposed as the fur-coat-and-no-knickers acts that they actually are.
However, in today's world of octilinear, bump-mapping, ray tracing, real-time refractive-index-calculating hardware, a great game that doesn't deliver a sizable chunk of graphical excellence, is in danger of becoming a great game that nobody's ever heard of. It might not be fair, but just stand behind a bunch of 14-year-olds looking for their next purchase, and see how quickly they lose interest if a game doesn't quite cut it in the looks department.
What can you do? Well, the answer to that question will of course depend to some extent on the hardware and software limitations that you have to work within, as well as the design considerations of your particular type of game. However, there are a few general areas in the visuals department where many games can benefit from a metaphorical strategic splash of mascara, and a well-considered application of eye shadow.
I Can Sing a Rainbow
Unless you have been living in a monastery for the last couple of years, you will no doubt be aware of the rate at which the War of the Polys is escalating. Whether it be consoles or graphics cards, the polygon-crunching muscle of today's hardware seems to increase weekly.
This, of course, is marvelous. We can never have enough triangles surging through our GPU, but what we mustn't overlook in our stampede to build a perfectly accurate model of the Sydney Opera House, are the textures.
Not so long ago, those of us who had the happy task of making textures for scenery and characters in a videogame found that our two biggest enemies were resolution and the palette. Creating a convincing set of stone, wood, plant, and metal textures with only 256 colors to choose from was like asking an orchestra to play Handel's Messiah using just an oboe and a set of maracas.
Today however, resolution is much less of a problem, and color depth is one of our best and most attractive friends. We no longer have an excuse for churning out bland textures. Now that our palette is large, we need to use it.
Of course I am not suggesting that cramming a scene with every color available is automatically a good thing. Rather, tonal variation within a texture, as well as the range covered by the whole of your texture set, should, where appropriate, make full use of the colors available.
Consider the following examples:
Examples of the variety of color information that can be contained within a rock texture, while still retaining a decent level of realism.
Rock textures are some of the hardest to deal with. They are often a good example of the scale dilemma (more on this later), and perhaps also the area where we all have to struggle the hardest not to end up with a brown and gray overload.
The above examples hopefully give some indication of the variety of color information that can be contained within a rock texture, while still retaining a decent level of realism. Obviously in cases like this, the source image from which the texture is derived needs to be reasonably interesting, but it will usually be the hand-coloration that makes the difference.
Color variation within a texture is certainly important, especially when the texture in question is generally going to be viewed from close range, but for textures that will most often be seen at a distance, we can turn to lighting (which I'll discuss later in a separate section) and vertex coloring. When applied with skill and moderation, vertex coloring can liven up the dullest areas, reducing the chances of producing a bland environment.
Vertex coloring basics:
1. The effect achieved through adding color values at vertices will naturally depend on the placement of the vertices, so obviously large-scale diffuse color changes will be all you can manage across large polygons. You may need to add extra vertices if you are looking to achieve a more controlled color-change effect:
The effect achieved through adding color values at vertices will naturally depend on the placement of the vertices
2. Normal rules of color combination apply, so remember that the texture on top of which the vertex coloring is applied needs to be taken into account, and a decision made as to which colors will work well together—and equally importantly—those that won't.
3. If you intend to rely heavily on vertex coloring, you'll get the best if your textures are designed specifically for this purpose. Too much color variation within a texture can be a problem, while low color saturation coupled with high contrast generally gives the best results:
Low color saturation coupled with high contrast generally gives the best results.
4. Some textures will begin to look flat when vertex-colored, and planning to have several variations of a particular object by changing the vertex coloring may not always work. Some things will always require color-specific textures.
Some textures will begin to look flat when vertex-colored.
Back in the days when our gaming worlds were as flat as the screens on which they were displayed, the problems of creating beautiful and interesting 3D spaces seemed about as remote as the likelihood of Michael Jackson marrying Elvis' daughter. But as we now know, things change, and today's videogame artist has to be ready to build mesmerizing backdrops to suit a whole variety of 3D gameplay.
The limits imposed on the artist most often relate to the hardware on which they are intending to run, as well as the software that is being employed to power the visuals. Ranked highly among these limitations are those of polygon count and texture memory.
It's true that the number of triangles per second that can now make it to our screen seems to be inexpressible without the prefix "giga-". But as the reality of next-generation hardware confronts the hype, artists, despite the fact that the graphical power we now enjoy has increased exponentially, will continue to demand more.
A similar (if slightly less spectacular) increase in texture handling has also taken place. No gamer's PC would dare show its face today without at least 16MB of dedicated RAM on its graphics card, and AGP technology has blessed the desktop machine with plenty of texture storage and retrieval power. Consoles too are getting the texture message. The Dreamcast is showing the way with its excellent compression capabilities, but once again, more is never enough, and compromises still have to be made.
In the quest for beauty, when is it better to use polygons? And when textures? First, you need to speak to your programmers. I know that the conflict between code and graphics can take on biblical proportions, but unfortunately there is no substitute for good communication between the two departments. The restrictions of the engine coupled with the demands of your game will tell you, for instance, that in areas where 16,000 undead Samurai are set to attack in unison, you need to keep the background polygon count as low as possible. Your programmers should also give you some idea of any texture constraints you need to be aware of.
There are, however, some general points that you may wish to consider, and that is where the "Death Star Principle" comes into play. Yes, I'm sure that you think I'm just forcing a Star Wars analogy in here because I'm a sad child of the 1970s and find it hard to be metaphorical without resorting to Mr. Lucas' monumental work. Well you're right, but bear with me for a moment while I explain.
For the purpose of the illustration I'll assume that you're familiar with the Death Star. Throughout Star Wars, we see the exterior of the Death Star from three basic distances: long-range, approaching the surface, and "in the trenches." Looking carefully at the long-range shots of the Death Star, we get the impression that the surface of this immense sphere is some kind of ordered man-made structure. These shots, needless to say, generally use a matte painting and are not simply a highly detailed model seen at a great distance.
As we approach surface of the Death Star, we swap to a detailed model of the terrain, which is designed with specific reference to the kind of shots anticipated, including camera distances, camera angles, and the speed at which the ground passes. Inside the trenches, we have yet another level of detail, contingent once again on the requirements of the shots to be filmed.
Of course, it would have been a huge waste of time and effort to take the largest of the Death Star models and build in the kind of detail that was ultimately required for the trench run. Primary resources of time and money (as well as common sense) dictated that the detail be placed where it would do the most good, and that as long as the illusion of a credible whole was maintained, the viewer needn't ever be aware of the relatively bare patches in the distance.
If we take this idea, and add to it the limited resources of both textures and polygons, the same rationale holds true for computer graphics -- put the detail where it has the most impact.
Some general points on textures and triangles:
One of the most important things to remember when building a game environment
is that it is going to be viewed from a player's position most, if not
all, of the time. Details the player is unlikely to see, or get close
to, can be kept to a minimum. If you find yourself building a cathedral-sized
interior with a ceiling that's 200 feet above the player's head, you
will most likely be wasting polygons by modeling stone carvings into
the tops of the supporting pillars. You will also be wasting texture
space if you put a 256x256 texture in a place where the maximum size
it will ever appear on the screen is 32x32.
2. Features that stand out considerably from the surface they originate from almost always look wrong if they are created in texture only and not actually modeled:
3. Textures that aim to fake surface features should not as a rule contain too much information about the direction of light. Normally, the eye is inclined to accept that the main light source comes from above, so unless you are working on an area that contains very specific light information, make general textures gently lit from above. The concave/convex example, that you may be familiar with, demonstrates this:
Unless you are working on an area that contains very specific light information, make general textures gently lit from above.e.
4. Making something look realistic is usually easier with textures than polygons. A cube can be a convincing crate with the right texture, whereas adding an extra 200 polygons will have a strictly limited impact.
The Hills Are Alive
Perhaps the biggest challenge to those whose job it is to make games pretty is the creating convincing and attractive landscapes. Interiors are in many ways a walk in the park when compared to the task of producing great visuals for, say, a walk in the park.
Why don't Unreal and Quake encourage you to roam freely through hills and valleys instead of jamming all 16 of you into a set of cramped corridors punctuated by the occasional medium-sized room? Is it because the proximity of Nature's beauty would incline the player towards gentle discourse as opposed to guided thermonuclear annihilation? I think not. O.K., gameplay has something to do with it, but I would suggest that keeping a meaty frame rate amidst a reasonable amount of action is a whole lot easier if you're in a confined space that has walls, a floor, and a ceiling, and at most, the odd walkway.
You see, the problem with the outside world is that it just doesn't know when to stop. Size matters in computer graphics, and a lot of space means that there's a lot of stuff needed to fill it. It is also fair to say that the great outdoors tends to be full of things that were specifically designed to make their transition into your game world as painful as pair of barbed-wire underpants. You will however, be glad to know that this article is not going to give you step-by-step instructions on how to make a lifelike Canadian elm in as little as 12 polygons, I'm just going to talk about the ground itself.
If you can, think back to the heady days of Acclaim's Terminal Velocity, when all it took to impress was a rudimentary 3D landscape with three texture divisions (snow, rock, and vegetation). In the 21st century, we find that our expectations are somewhat higher, so what do we do with all of that ground?
First, let's return to the scale dilemma. This is when large areas are either textured to look good at close range, risking a very noticeable repeat in the tiling at a distance, or just the opposite, where the texture looks good from a long range, but is a blurred mess close-up.
This problem is most often encountered with exteriors, where nature tends to make its terrain from large areas of rock and grass that stretch off into the distance in all directions. What can we do to maximize the attractiveness of our landscape, without having to create hundreds of cleverly interchangeable textures that may provide variety, but obliterate storage space?
One obvious solution is to design your world so that it has no vantage points from which you are able to view miles of terrain, thus cutting down the player's opportunities to see how barren and monotonous your ground really is. This is certainly not feasible for some types of game, but can be perfectly acceptable when used appropriately. However, once this kind of ploy becomes intrusive, it starts to belong in the same category as those fight scenes where the baddies only attack in ones and twos, despite the fact that there are 27 of them ready for combat -- it's just cheating. Nevertheless, clever design is always important, but the more you restrict the player, the less impressive your world will seem, especially if they feel cheated by your artifice.
So, if we really must deal with a lot of ground, our first and probably most familiar option is multi-texturing. God bless those that gave us this power. In multi-texturing, we have both a solution to the scale dilemma and a method for providing variety (or apparent variety) to the surface of our terrain without resorting to mass texture bombardment. Overlaying a texture whose scale is set to look good at close range, with another that has a much larger scale, will, if the two are blended properly, give the appearance of a continuously changing texture that is detailed enough to withstand close-range scrutiny and also holds up when viewed from a distance. Add this to a careful transitioning between a few well-chosen textures, the variety of ground cover that can be faked is quite impressive.
It would be remiss of me at this point not to mention procedural textures. While the whole procedural texture thing has begun to make an impression in the game world, unfortunately for those of us who laughingly refer to ourselves as artists, the power of all things procedural lies with the boys and girls at the programmers' end of the evolutionary ladder. It has its supporters and its detractors, but within the constraints of this article, I suppose it is fair to say that if you like the look, talk to those with the power, and see if it's an option.
On a smaller but still useful scale, the way in which a texture is applied to a surface can also reduce the obvious tiling effect. Examples A and B both use the same texture, applied to the same strip of geometry.
A diagonally mapped texture can lengthen the texture by aligning it so that any features that can be seen as repeating are spaced out in what appears to be a less regular way.
In example A, the texture is applied so that it maps in line with the edges of the surface. In example B, the mapping is applied diagonally across the surface.
In A, the repeat is much more obvious. The eye follows the edges of the geometry, and can easily pick out repeat features in the texture, as they are evenly spaced in the direction of these edges. Using a diagonally mapped texture, we are, in effect, lengthening the texture by aligning it so that any features that can be seen as repeating are spaced out in what appears to be a less regular way. This technique is not particularly complex or clever, but in certain spaces (and, it must be said, only with certain types of texture), it gives us a bit extra with no cost to resources.
Back when I was a slender youth, the absolute cutting edge of computer-generated graphical wizardry had only one name, and that name was Tron. Yes, it's time I came out of the closet and declared publicly that I loved Tron. It had its faults, but whatever you thought, it was a landmark film, and Syd Mead is the god of design at whose altar I sharpen my pencils. Anyway, the reason I mention Tron, is that the CGI sequences from that movie illustrate one of the oldest problems with realism in computer graphics (not that Tron was trying to be realistic of course), and it all comes down to a question of filth.
If you'll indulge yet another foray into the world of film, contrast if you will the hardware in 2001: A Space Odyssey with that of Alien, Dune or The Matrix. Look at the ships from the original Star Trek series and compare them with those from Star Trek: The Next Generation. There are many differences, not least of which is the move away from plastic and glue to computer graphics, but one clearly identifiable change is the level of accumulated grime and dirt that now forms an integral part of ship design.
This doesn't just apply to vehicles, any element of a film that is not meant to look unnaturally pristine is dirtied down. Simulating the effect of wear and tear on objects and environments helps to avoid the appearance of the painfully cheap straight-out-of-the-box look that the original Star Trek (sorry, Mr. Roddenberry) so beautifully exemplified with its exotic other-world locations.
Anything created on a computer will naturally be influenced by the mathematical precision involved in its creation, and this close association to order and perfection is one of our greatest enemies in the battle for realism. So, the first thing to do is to try and avoid using exact geometric shapes unless your design specifically requires them. Our eye is more sensitive than we often realize, and as the real world almost never presents us with perfect spheres, cubes, and so on, their appearance on our screen will make things less believable, even if the player can't quite identify what the problem is.
Repeated geometry has the same effect. Like the looped background that scrolls by behind the main character's car in a cheap cartoon, exact repetition closely linked in time or space widens the reality gap. Fundamentally, it is the same problem as noticeably repeating textures. Game players are primed to accept a certain level of repetition -- limited resources demand that geometry and textures be reused as much as possible -- but the trick is of course disguising this repetition whenever possible. That, however, is a different problem. We were about to talk dirt.
Your ability to create geometry that looks organic -- or at least imperfect -- will no doubt be hampered by the number of triangles available to you, and thus clever and economic modeling is the best way forward. However, it is in texturing that we can really make a difference.
Chances are that you've come across the various plug-ins for our favorite 3D packages that take fresh, wholesome textures and make them dirty. With names along the lines of Filthmatic 2000 and Auto Slime, these programs add simulated dirt, often taking a long time and with varying degrees of success, but their principles of operation are sound. Edges, joins, and recesses all are areas that naturally accumulate filth. Wood gets worn easily, paint chips, and metal scratches and rusts.
Of course I'm not suggesting that all our worlds take on the look of a long-abandoned munitions factory. It is just as bad to overindulge in squalor and enforced deterioration as it is to leave everything perfect. The right balance is our goal, and this will depend on the specific needs of your game.
If you are working on a first-person shooter that is set in the abandoned munitions factories of post-communist Russia, by all means attack your locations with corrosion, coat them with filth, and leave a trail of decay wherever you tread. If, on the other hand, you are making a third-person action-adventure set in the world's largest hair salon, sheets of rusted iron will probably not feature prominently. You would, however, still need the environment to look as if it had been used, and textures that encourage a lived-in feel make all the difference.
Trip the Light Fandango
It is only in the last few years that lighting has become available to the artist as a genuine tool of beautification in a real-time 3D game environment. We can now call upon the wonders of vertex lighting, dynamic lighting, shadow and light mapping, as well as tricks such as lens flare, specular lighting, and projected shadows. As always, your choice will be determined by who you work for and what you're working on, but there are some things that are applicable in most circumstances.
First and most importantly, let's establish that game lighting is distinct and different from lighting in the real world; lighting for film, TV, theater, and photography; and lighting for single rendered images or prerendered animations. You can argue against any of these if you wish, and I concede that there are some rules that overlap slightly, but lighting a game environment is, on the whole, a discipline in itself. Following are some of the basic considerations
Color. Have you noticed how nighttime lighting on TV and most films is just blue lighting? It bothers me more than it probably should, but the convention for night lighting has been firmly established, and is so prevalent that most people probably don't even see it any more. Realism would mean that the lights were just switched off and the viewers' eyes adjust as best they can to lower levels of illumination. Not surprisingly however, Tom Cruise insists that you see his orthodontically enhanced smile with equal clarity, both day and night, and so lighting finds a way.
What have Tom Cruise's teeth got to do with the lights in my game, you ask? Hopefully nothing (unless you're working on a Hollywood dentistry simulation), other than helping me point out that the color of your light is important. Daylight -- perhaps the hardest to simulate -- has a cold, faintly blue quality that turns warmer at sunrise or sunset. Artificial light is generally more yellow and torch light somewhat orange, but rather than go through a large list of colors, all I am saying is observe what's around you, and be aware of the effect color has on the feel of your environment.
You have a certain amount of freedom towards experimentation. Late evening light can be purple, alien lights can be green and pink, whatever works best -- but make sure that it does work. Highly saturated color needs to be handled with care as many a soul has been lost on the clashing rocks of color overkill, lured towards them by the siren song of 32-bit color, only to find that they've created the feel of a 1970s disco that theBee Gees would be proud of. As a rule of thumb, if you find yourself looking for the best place to hang a mirror ball, take a step back and think seriously about toning things down.
Contrast. One aspect of lighting in a game that sets it apart from lighting single rendered images and prerendered animation is the obvious need for players, who have control of their viewpoint, to be able to navigate your world successfully, that is, to see where they are going. We have all played games that are so dark that the only way to see what's going on is to spend two weeks in preparatory darkness under ground, allowing your eyes to become sensitive enough to pick out a struck match at 20,000 paces. While this has a natural appeal for those making a creepy vampire-hunting-in-the-dark-type game, the undead go from being scary to just irritating if the only indication that you have of their appearance is a sudden drop in your health accompanied by sporadic shuffling and grunting from your speakers.
When used as a legitimate gameplay device, darkness can create atmosphere and tension quite successfully, but it is at its most effective when used in contrast to relatively well-illuminated areas. Half-Life gave us many fine examples of the "I don't want to go in there, it's dark" syndrome -- a technique that would not have been so successful if the whole game were in near darkness.
In terms of a single location, a contrast in illumination can draw attention to important elements, as well as diverting the player away from, shall we say, those areas that are less polished. Strong, uncomplicated lighting will add drama to a scene, especially if you can get away with low levels of ambient light, forcing the eye to the brightly lit areas.
Strong, uncomplicated lighting will add drama to a scene.
Shadows. If your technology allows you to have shadows, make sure you set up your lights to show them off. If you look at shadows as nothing more than an extra layer of visual realism, you're most likely not using them to their full potential. Shadows can certainly add to a scene's authenticity, but they can also be used to break up areas that are otherwise fairly empty, as well as increasing dramatic impact.
Visible Sourcing. This just refers to the placement of objects within a scene that the player can identify as the sources of any lighting. Once again, the eye is quick to tell the brain when something is not quite right, and obvious light, especially with accompanying shadows, needs a definite source to work properly. Patches of nonsourced light are fine when used subtly, as long as they don't stand out sharply in an area of low ambient light.
The Final Word
Making things look fantastic in a game is a tall order. Gameplay is king, and his demands must be adhered to. Technical limitations mixed with the constant shifting of the goalposts that typifies most projects' fluidity mean that artists have to think on their feet, and be ready to compromise the purity of their creative vision for those extra frames per second when needed. As technology rolls on, however, the future promises to deliver the kind of power we need to completely unshackle the creative beast that lurks in shadowy depths of every game artist. Until then, the worlds we create can still be beautiful -- we just need to make sure that it's the right kind of beauty.