As I noted in previous posts, Sustainable Virtual Design looks at energy and resource minimization as one of the key features to attaining sustainability for everything on your screen – from Photoshop to Call of Duty. On the web, we are replacing the old method of designing websites. In the past, we downloaded dozens to hundreds of image files. Today, developers are increasingly using more efficient formats – CSS Sprites, SVG, WebFonts, and the like.
But, if we are interested in Sustainable Game Design…what we do on the web is currently absent from the console and online game world. In other words, the design and programming of game engines, and the development of game assets has been done without respect to anything related to sustainability. Perhaps it is the immersive aspect of a 3D game that lets designers and players alike ignore their connection to physical reality. Or, it may be the huge energy demands of 3D rendering, which requires energy-hog “game cards” which sometimes use more power than the rest of the system combined. Or, it could even be at the artistic, storytelling level – so many stories are about wars, violent confrontations, and “creative destruction” – things which use more energy and produce more waste than regular human activities. Think of the chaos and waste caused by a major war or battle – not a “sustainable” kind of activity. In fact, wars often end due to resource exhaustion (think WWII Battle of the Bulge).
My big concern is that online “web app” casual games, increasingly created with WebGL will come to resemble the console game world. The poor sustainability of console games is currently hidden in the electric bills of gamers; in the future it will impact the bandwidth, speed, and long-term sustainability of the web.
Disclosure: I’m not a professional game designer or developer, but I have built some fairly complex programs in C++/OpenGL (e.g. JPL-like planetary simulations). So, if someone out there has better knowledge on these points, feel free to post a reply.
Game Textures and sprites
Like print design, the game industry hasn’t had to worry much about bandwidth, or the number of bytes in an asset. Most games, even those that are online, store huge numbers of textures and other files on the user’s local hard disk. There are basically two kinds of files: 3D coordinate files, and 2D textures which contain visual or other (e.g. normals, heightmaps) data which wrap around a 3D model. Despite the presence of fast vector rendering in 3D, bitmaps rule.
For example, the game industry has long used the equivalent of a CSS sprite in their “textures” (image files) to construct fonts. That is, they store bitmaps of letters in a big image file, and ratchet back and forth in it to write text onto the screen. Like a CSS sprite, it makes things more efficient, to a point.
But…The method being used explains the nearly universal *horrible* quality of fonts in console games and MMOGs. The immediate jump to textures means that game textures, fonts, backgrounds, building walls, HUDs, and other “informational” are all essentially bitmapped.
It’s clear that this has frustrated some game developers. In some cases, those frustrated have created a custom solution that loads vector graphics and dynamically draws them into a memory-resident texture. However, this practice of using “Vector Sprites” is not widespread, and there are no standards for it in existing game development frameworks.
In addition to chunking everything into big texture files, games don’t worry much about file compression. Today, console games typically use formats that were not designed to be energy-efficient. Targa, or .TGA, is like a PNG without compression. So, you have something like a CSS sprite, but uncompressed. The big, clunky design explains is one of the reasons that traditional games don’t do much on mobile, and upstarts like Unity are making lots of headway.
Current online MMOG-style games are not much different. Typically, you have to download massive “clients” int the gigabyte range to play the MMOG. When assets are transferred via the network, they aren’t optimized for delivery – no GZIP compression, for example. It is pretty ad hoc and up to the particular game developers. There is a focus on making response quick, but surrounding the fast socket you’ve got a slow, heavy interface.
Despite the emphasis on 2D and 3D imagery, games incorporate text at many levels – titling, heads-up displays, (HUDS), score screens. A Sustainable Game Design strategy would seek to use type in the effective manner now possible for the web. Unfortunately, you can’t. You’re stuck with bitmap “font sprites” like the one below:
WebGL, which is really (if we are honest) an OpenGL clone. OpenGL, and by extension WebGL, has no support for fonts or other vector files other than 3D. whatsoever. Everything is treated as a bitmap, and hardware vendors apparently have never even thought of this issues in the x-treme gamer card design. Traditionally OpenGL programming uses the same CSS-sprite like texture files for bitmap fonts. If you don’t do that, your only solution is to transform fonts to bitmaps, and use them for rendering to a memory-resident texture, as is done in this OpenGL tutorial.
In DirectX, we have somewhat better support. The ID3DXFont class used in DirectX programming uses data frin font files. But it adds the step of “render to texture”, and then give the in-memory texture for final rendering to Windows GDI, missing out on hardware acceleration. See the discussion here. Many game developers just bypass ID3DXFont and make their own font sprite textures, just like OpenGL. For big fonts this means great big files. Microsoft has never defined a standard for non-bitmap font use, which we now have on the web.
So this explains the poor quality of text in games, and, increasingly in WebGL applications. How come the game programming community has never developed a standard to solve this problem?
At this point it might be useful to extend this critique to use. The use of fonts in games is clearly different than it is in print, and on 2D web pages. The medium to my untrained eye looks like “Web 1.0” – a sort of “grafitti wall” approach to design. Type is clearly something to get past, instead of part of the design. The more “3d” a game is, the less text is a worry. In 2D games, a bumpy “retro” look may actually be cool.
The “classic” game fonts (e.g. Capcom) aren’t very readable:
This set is somewhat better
In console games, the screens opening the game are typically designed as an integrated “page comp”. Since games often operated at fixed-width, the Photo-shop-edness of the image is not a serious as it is for the Responsive Web, but it remains a fixed-width strategy.
- an “old game” effect, which means poorly read
They’re pretty bad, even in big-name console games, and often truly horrible in Web-based casual games.
The popularity of arcade-style games these days isn’t helping:
If you answer that games don’t need to worry about fonts, I say you’re not thinking outside the box. I thought designers were supposed to do that.
The result of this style of development is that games generally only look good at specific screen sizes, and file compression, energy and power nonexistent considerations of game design. In addition, game culture generally ignores what other professions might call lousy design, particularly with respect to type. It automatically assumes the audience will not need usability or accessibliity – in fact, a “mystery meat” navigation scheme may be part of the gameplay.
In its features it is nearly the opposite of the “Responsive Design” strategy common on the web, so we might dub it “anti-responsive design.”
From design to power consumption
Historically, cutting-edge games requires a dedicated console, or a fast desktop to run. The game had to “take over” the computer screen to get enough computing cycles, and the gameplay focused the user so that they became uninterested in checking their email. This led in turn to “fixed-width” design, often optimized for a very specific width and height of the screen. Compared to other computer users, gamers were willing to buy new hardware to play a game, rather than the designers adapting to them – the reverse of the modern web.
This meant that the goals of games often included framerate as an absolute, rather than relative good. Designers created ever-more elaborate (I don’t want to say realistic) game environments. The feedback from the audience, which on the web helps dictate design, was absent. Instead, the designers and programmers created stuff that only the top gamer computers could run (e.g. Crytek) and motivated another round of hardware purchases. The energy consumption of games soared over the years – much more than the “bloatware” of the web I usually complain about.
Here’s a chart, showing the various consoles in action:
Here’s a PDF from NRDC.org illustrating the rising power consumption of gamer consoles, both running and “turned off” trickling in Vampire Power:
Sony Playstations use the most power, after which we see XBox and the relatively efficient Nintendo series.
The power consumption of these consoles is comparable to a standard (not lightweight) desktop. The power consumption is about double a modern Blu-ray player, which is not surprising since the word is being simulated, rather than plaid back from media files.
But gamer PCs use even more power than this to run, especially if said gamer doesn’t turn their machine off, or use “hibernation” mode. This article shows that an x-treme gamer might waste $50-100 per year on Vampire Power.
Here’s an sample chart from a great article on Xbit, which tests power consumption using a sophisticated sensor system. The take-home is that a gamer rig, playing a modern game, can easily use 20 times the power of a low-powered office workstation:
To give some perspective, you would probably need at least a 750-watt power supply, which is just about 1 “horsepower”. You would need two world-class cyclists to power one gamer rig. From a great 2009 article on Mapawatt we get the following:
As you can see, the best human efforts at producing power over the course of an hour on a bicycle are around 300-400 Watts. To put this in perspective, when my AC is running full blast my house can consume about 4,000 Watts or 4 kW. I would need over 10 of the best cyclists in the world attached to bicycle generators to power my house when it is consuming this much power!
In terms of “gamer” rigs, we would need two world-class cyclists to comfortably power one session of a modern 3D game. And you would need to finish quickly, since the cyclists wouldn’t be able to keep your rig running for very long:
What would Sustainable Game Design look like?
In the above, I’ve considered a few of the issues related to making games more sustainable. One is power consumption, which is affected by the things designers create for their audience. The other is technical, related to the lack of vector-based solutions for type and other features of the game. The third might be a shift in what kinds of games get made, with their virtual environmental impact taken into account.
- Power Consumption – Games are optimized for framerate, and that sort of liquid-y motion that gamers strangely call “realistic”. There may be the least bang for the buck here, since game developers have been struggling with efficiency for many years.
- File standards – Online games in particular would benefit from standard which concatenate their assets into files delivered with one HTTP request. This would make virtual worlds like Second Life more appealing to the general public – one of the problems in SL is waiting several minutes while textures for a 3D room download and “rez”. Developing a vector-based solution to fonts would also benefit the games, both in downloads and quality of type, and would benefit both consoles and MMOGs
- Gameplay– Game storylines glorify energy-intensive situations and actions. There’s no equivalent of a story requiring a Prius instead of a Hummer in game design. Starting that way is a long road, but would be rewarding for the designer who figures it out.