Latest ArticlesEngine Architecture #1
Static Shadows #1
Paint on Mesh
A Tale of the Internet
Villager's Tale Oct 29, 2006
I'm not sure if you know this, but 3D Kingdoms was developing a game called The Villager's Tale. I thought I'd write some of my thoughts about game development, and what went wrong.
Starting out, I felt that our goals were ambitious, but reasonable. We had completed a number of smaller projects, and I felt I finally knew enough that I could do everything required to make a reasonably competitive 3D engine.
Our main goal was to develop a game demo that:
Once that was done, we'd shop the demo around to publishers and look for additional artists & level/gameplay designers.
What went wrongI'd be lying if I said the Kingdom Creator engine was a 100% complete, viable, and competitive engine. Feature creep, such as new rendering features, or ambitious animation features, had delayed some important gameplay code and the tweeks needed for large fully-functional levels. Also the fact that it was originally a character animator, and that remained a main focus added to the programming time needed. However even up to the point where I called it quits, I still felt the engine could be completed in a reasonable time if I held off on adding non-essential effects and extras.
Design and story work remained preliminary. We did spend some time thinking of all the cool things we could do in terms of settings, scenes, characters, effects, and general atmosphere. But this type of creative work becomes less fun when you're the ones implementing it and getting a few scenes mostly right is taking a long time, thus you become driven by the assets you have to work with.
Which brings us to what had become completely obvious: the content creation (ie. models, textures, levels, animations, etc.) even for the demo was beyond our ability. Specifically it was far too big a project for what was primarily a two person development team to complete in a reasonable timeframe. I can think of only two possible solutions to this. The first being to expand the 3DKingdoms team.
More People?The question then is how can you get more people? I admit I'm not the person I'd pick to build a team... in fact I never really tried to build a team. My interests lie primarily in the development and programming of games, I'm not interested in recruiting or publicity.
The tried and true method is using money to hire people, but Villager's Tale was unfunded. So I'm left wondering if I could have done more to recruit people to help with Villager's Tale. Since I intended this to be a commercial venture, quality was very important to me. I didn't want to be one of those unfunded entrepeneurs begging people to work on my game for a chance at "future profits", then on top of that adding "only top talent accepted." It's hard enough for companies offering competitive salaries to get a talented team. Also to complete a quality 3D game there is a large amount of work required, so most people simply wouldn't have the free time to do it unpaid even if they wanted to.
Scaling back expectationsThe second way to make it viable would have been to scale back our expectations. This was something I simply didn't want to do. For one, it would probably require not using most of my work on Kingdoms Creator, since anything we could complete and polish ourselves would have been much simpler, and I wanted to do a modern 3d project.
I have previously programmed many smaller games, such as the Celso shooter webgame (mentioned because it's the only one playable online.) 2D games are much, much simpler to program and can be sometimes be programmed in less than a week, although time of course varies considerably depending on how complicated the game is.
I do think casual games, or mobile or cellphone games is an interesting market, and one I may try later, but right now that isn't where my interest lies.
Why I had misjudged the amount of time needed for asset creation
Increasing standards are a killer. When I started preliminary work on the Villager's Tale, I was only familar with content creation for Quake 2 era games. Try going to mobygames and looking at screenshots from the 3d games in the 1997-1999 era. They're pretty awful looking by today's standards. Blocky characters with a single low-res texture map, in blocky levels with highly repeating textures. Even though it was a few years later, we started content creation in this mindset.
If you're very familiar with my webpage, you might think, "weren't you using normal mapping in 2001? Shouldn't you have noticed sooner the extra time asset creation of modern game development?" We weren't making a game then, and there wasn't all the detailed normal maps in other games to look at, so our normal maps were very basic. It was only later that we started spending the time to put significant extra details in the normal maps. The same can be said for all the other texture maps and assets too. Also modern games are much more detailed in many other ways; mainly games are much more dynamic, with extra animations for characters & backgrounds, breakable objects, etc.
Due to increasing expectations we were constantly redoing the art and levels. To test out new editor/engine features we often made tiny throw-away test levels.
FocusBoth programming and art suffered some from lack of focus. I'd actually say we were pretty good on this, but the situation required concentrating on a very few tasks, and no time wasted on anything that wouldn't be used. Switching between demo test projects didn't help, the most significant being shifting main focus from VTale to Celso 3D, then back to VTale. (This is why we have space/alien screenshots as well as medieval ones for the 3DKC page.) I did some hard coding to try to get things done in Celso, but then had to take it out an build a general system for VTale. Another change was that I originally developed the engine as a first-person shooter. Then we didn't want to make an FPS, so we added a third person mode in addition to the first person mode. Also my engine started out as an editor and character animator, not an engine, so I spent time on editing features that could have been accomplished by third-party programs.
This has gotten pretty long, I hope I didn't repeat myself anywhere. I'm still not sure what I would do to be more successful if I went back in time knowing these results. Maybe I could have avoided 3D game programming entirely... just kidding, I wouldn't really do that =)