Sunday, February 13, 2011

Limits, pt. 1

“A man’s gotta know his limitations.” – Harry Callahan
It’s a bit of a trite observation, but the average personal computer of today has more processing power than the supercomputers of decades past.

The PC I played the Ultima games on originally had a 386-class CPU that ran at 40Mhz, with a game display of 320x200 pixels, each of which might be one of a palette of 256 colors, drawn from a pool of 262,144 possible colors. It had a total of four megabytes of system RAM, but because of the limitations of the legacy memory models supported by MS-DOS, the average program had a maximum of 640Kb of memory actually available to it. It also had a huge 80Mb hard drive, quite a luxury for the time.

The games of the era had to be ruthlessly optimized to keep memory footprints down, and that optimization led directly to quite a few design limitations in the U6 game engine, which I’ll discuss in the future.

The PC I’m developing with, on the other hand, has a four-core CPU, each of which can run at over 3Ghz. It has 4Gb of system memory, with programs typically able to access 2GB of it each. It has multiple terabytes of disk storage space available. The video subsystem is capable of displaying 24-bit color at my full monitor resolution of 1920x200, at frame rates so high that the human eye can’t even detect individual frame drawing.

In short, it’s capable of displaying an amazing illusion of life, as demonstrated in games like Just Cause 2, Crysis, Far Cry 2, Fallout 3 and Dragon Age: Origins, to name a few I have installed. Each of those games is a real-time 3D simulation of a world that looks and feels remarkably like the real one. And each of those games was built by a team of hundreds of people, and consists of a few (well, under a hundred, anyway) megabytes of program code, but multiple gigabytes of data files. The budgets for creating those games are in the tens of millions of dollars range.  Like the saying goes, ‘Content is king.’

No indie lone-wolf or small team of developers can compete in the same arena. So, the most successful indie games of today – those that actually make enough money to support their creators – are very abstracted versions of reality. The obvious examples of this are Dwarf Fortress and Minecraft.

Dwarf Fortress is developed by Tarn and Zach Adams, with Tarn doing all the programming, and both brothers sharing the design. By default, the Dwarf Fortress interface and game view, in the Roguelike tradition, is 100% text, with terrain and actors represented symbolically by the letters and simple glyphs of the IBM Codepage 437 character set. Instead of spending time on art for the visual verisimilitude of their worlds, the brothers have focused on the actual underlying simulation of their worlds, and the end result, while not exactly appealing to the mass-market, has drawn in enough players and financial donations to let Tarn continue working on it full-time. (And I personally think it is the most amazing game ever created.)

Minecraft is developed almost single-handedly by Markus Persson. It focuses on a procedurally-generated dynamic world composed of cubes, giving its players the ability to build and destroy with a simple, accessible interface. Its art assets are low-resolution texture maps and simple, blocky models. It makes no attempt to match the visual realism of the AAA games noted earlier. It hasn’t cost much more than Markus’ time to develop to its current beta stage. But the wide appeal and pure fun it offers has led to (currently) more than 1.2 million purchases of the alpha and beta versions.

To sum up, a game using an abstracted world representation can still gather a significant player base in today’s gamer ecosystem, and even potentially gain enough financial support for its creator to make a living from it. In my own area of interest, CRPGs, Jeff Vogel of Spiderweb Software has been doing it for years, by limiting his art investment and development time for each of his titles and then focusing on what can be done given his chosen limits – which is to say, he writes an interesting storyline and wraps it in a large world full of unique characters and combat situations. I don’t know that I’ll ever release my project commercially (definitely not while it’s using Savage Empire assets) but it’s nice to know that it is at least possible that I could get more back than my personal satisfaction with doing something interesting.

Next up: Limits pt. 2, focused on the specific design of the U6 games engine.

No comments:

Post a Comment