When we started out, we adapted the episodic structure of the old Quake. This was one of our first mistakes. We planned to have one person complete each of the 4 episodes (7-8 levels each). Even back then, before the game started to evolve and grow like an infernal rollercoaster ride, that was pretty bold. The main flaw was that we were only two people, but the game had 4 episodes. That initial situation has been unresolved to this day. Basically right then and there, we bit off more than we could chew. This goes to show you how optimistic we were – we just thought “people will come and join us”. As it turns out, things are more complex than that.
Five years on, we have insanely large levels requiring a lot more man-hours to finish than what we started with, and these ginormous levels depend on features, ie programming. They depend on additional assets (models, animation, graphics, even audio). We are trying to move an ever growing mountain.
We have our own engine. Our own network protocol. We even have our own tools and our own formats. We’re now using skeletal animation for models, not the old vertex animation. We have high resolution textures in hardware-friendly DDS format, not the original 8-bit pixelized stamps. We have CD quality audio instead of mushy 8 bit, 11kHz audio. These days we don’t just “make models”, we “bake the AO into the diffuse map”.
We didn’t originally have features like proper rotating entities, pushable boxes that can be grappled, broken, stacked upon each other and traverse up and down lifts, physics, cutscene cameras, custom keys, customizable NPCs, James Bond style jumping through breakable windows, a hub system that saves the state of visited levels while you traverse back and forth, custom HUD elements using client side QuakeC, bots that can play Capture the Flag, moving water, monsters who roam around the level by themselves, act in groups, talk to each other, use shields to deflect projectiles, learn magic from eldritch tomes, taunt the player and drown in water / burn in lava, a sophisticated swinging grappling hook using hand positioned grapple points, special moves like walljump or stairglide, a randomized spawning system for enemies and items, ladders, mapmodels, even support for decals, customizable particle emitters, a bunch of useful extensions for features such as rain, transparency and scale on entities, dedicated visual effects, a library of monster attacks, another library of magical spells, a lot of new monsters including new boss monsters, completely new traps and puzzles (such as triggers that react to pushables), a well developed mechanism for enemies spawning during runtime, a lot of obscure new triggers and mapping entities, vegetation that makes a sound when you walk through it, the same for cloth, and an engine that can run all of that and perform well and do stuff like dump videos and still look good. I’m sure I forgot half of it – I mention this only because someone asked what we actually had.
In 2007, I was using Quest to make levels – an innocent little piece of software. Now I’m using Radiant, custom GIMP plugins and Blender. These things don’t learn themselves. Suddenly there is something that could be called a “production pipeline”.
In 2007, we were using e-mail. Now we are on private forums and a Subversion repo that we largely have to administer ourselves (we used to have a Trac ticket system that is originally made for bugtracking purposes but was used as a makeshift team management and conference software). We also have a development blog that is used to release stuff and an IRC channel that is often quite active.
Originally we were just making a few levels. Now we’re up to several people doing programming – engine, data formats, tools and gamecode. There is stuff like voice acting and video editing to do. There are multiple tasks per person, all with less than ten people. It’s like a game development pressure cooker, and it has to be organized. It starts to reek of “management”.
And while it is awesome and I don’t want to miss it, it does create the aforementioned problem of mass vs. manpower, or complexity vs. size, or quality vs. quantity. More on that in my next post.
And then people who don’t know the project talk bullshit – some community forum has hundreds of posts about how our game supposedly sucks. Go figure. A lot of these people honestly don’t know what they’re talking about, but are feeling entitled to free stuff nonetheless.
Try looking a gift horse in the mouth a little less.
(to be continued)