Readers, throughout the course of the next little while, you are going to witness the evolution of something quite cool.
Ugly undulating flat-shaded surface wins Award For General Brilliance. "The start of something very cool," says author.
It's called the Dark Promise scene/actor engine, and believe it or not, that ugly undulating flat-shaded surface is the start of something very cool altogether. I've taken all of the useful math out of my old project, the DAVE engine, and brought it into a fresh, superior, more object-oriented environment. The DAVE engine, dazzlingly beautiful as it was, turned into something of a maintenance nightmare, as the bulk of it was written in flat, old-school C. It was flawed enough anyway; DAVE ran like a pansy. The way he ran, though, that was the cool part; I just told his legs to twitch until they looked right.

After months of work, encompassing my first proper foray into OpenGL and 3D graphics, DAVE ran like a girl.
DAVE is a couple of years old now, and looking back at the code, I see that I was more interested in visual impact than building a useful animation library. I did learn quite a bit, though. I have a head-full of useful know-how that I didn't have before; I know, now, how to do it right.
The Dark Promise engine will be me 'doing it right'. My primary focus will be on producing something useable and extensible; and beautiful, hopefully, too. The engine will handle 'scenes' - environment objects and physical laws, objects, collision detection, visual representation, et cetera - and 'actors', the characters who interact with each other and the scenery around them. My motivation: I want a fast development environment where myself and my rag-tag band of cronies (optional) can put a kick-arse RPG together.
It's all about dynamic content generation. For instance, let's say I have a scene where a troop of, say, sixty mercenary knights are marching along a country road. I sure as hell am not about to design and animate every single one of them. No. I will define how a human body moves in general (using knowledge gleaned from DAVE) and add a library of small idiosyncrasies which the engine can draw upon, optionally, when moving my characters. A stumble. A glance to another character. A heavy breath. The same will go for the uniforms, facial features, et al; I'll teach the engine how to come up with them on the fly, and trust it to do the rest. I'll be able to tweak the results and feed that back into the engine.
By limiting repetition at the modelling stage, I can put so much more variety into Dark Promise. The art will still be my own, of course, but multiplied by itself so many times over - I want a game engine that can take what I give it and surprise me. Town/crowd scenes - where every NPC is unique - will be especially cool, but dynamic generation of unique enemies will be a big plus. With Dark Promise, I'll have an RPG world where the members of the enemy classes don't all look like clones of each other, but cousins.
It probably won't look very cutting-edge at first. But remember that the visuals are only a very thin veneer on the engine underneath - they can always be polished up later. In terms of smoothness and polygon count, I'm going for something that will probably feel a lot like what Squaresoft were producing about...oh...five or six years ago on the PS1. Which will be no mean feat.
Anyway, starting out fairly small, I'll have a dynamic NPC generator running in the Dark Promise environment pretty soon, where you will be able to select and vary a set of 'contributing factors' until you come up with something that you like. Believe it or not, the undulating curve thing will be a perky set of boobies pretty soon.
Oh yes.
The next big step after that will be the dynamic generation of scenes. I'll keep those simple at first (mazes of one form or another, probably, rather than crooked little villages). Teaching the NPCs how to walk around them and interact automatically (going about their daily business) will be the next step.
I probably won't have anything worth talking about by the time I get back to work after the Christmas break, but I'll post regular screenshots. When the NPC tester is ready, I'll produce a demo for your tweaking pleasure.