I’ve mentioned it before, but I’m a technical artist in the game industry. I presented a class to my fellow artists a while back regarding what I’m calling Object Oriented Texturing. The official work blog writeup is here:
That’s actually the short version, derived from my class notes. The long version is this .doc file:
Long story short, computer programming has benefitted greatly from object oriented programming. Art assets are somewhat more specialized in that many things need unique assets, but inasmuch as the object oriented conceptual framework has allowed engineers to reuse code and streamline the production pipeline, if we can reuse art assets we should see similar benefits.
Reused art means lower total costs, smaller data footprint, quicker runtime access to assets, and simpler art direction. (A reused texture can be tweaked once, naturally propagating through all instances where it’s used, rather than reworking the art assets one by one by hand if they are just part of a series of unique texture assets.) Of course, smart art direction means finding ways to reuse assets while still making it look like you’re not reusing them. Similarly, reducing poly count and texture size mean finding ways to cheat so that it’s not obvious that you’re skimping.
This is part of what makes art direction and art generation so important in games. We can’t get away with prerendered frames like Pixar can (I was trained to do their level of graphics, so I know both ends of the spectrum), since we need visuals to update at least 24 times per second. “Reduce, reuse and recycle” are highly relevant terms in the game industry.
Of course, this is probably pretty obvious for many gamers, as they have seen where this fails. Say, Final Fight, wherein every fifth enemy is either the same art assets, or “palette swapped” versions of the same. Some of these tricks were very necessary in the 8-bit and 16-bit era, but we still use them today, even on 3D games with stupidly huge budgets by comparison. In fact, it’s often even more important in 3D, since a 3D animated mesh is much more expensive than a sprite. (Yes, the hardware is better too, but we still have to beware of bloat.) At the same time, we can cheat a bit more in 3D, since we have access to not only textures, but also normals, vertex color, lighting and surface light properties (specular and diffuse settings or maps, for example), as well as “shaders” that allow for specialized visual effects, like the much-ballyhooed “cel shading”.
That’s part of the toolset that a game artist needs to learn; when and how to cheat visuals so that things look good while not being overly expensive. OOT is one way to handle that. I’ve also found that describing this sort of art asset pipeline optimization in those terms means that the CS guys immediately understand what I’m getting at, and it’s easier to sell them on things that we may need them to do to make our art pipeline work better.