More news from the projects frontPosted on 2006/10/18 - 20:28
Yet another day, yet more frustration when it comes to a certain Microwave that I need to implement in Java and a certain router that doesn't want me to allow port 80. Sigh. This'll take considerably longer than expected, and it's bugging the hell out of me. Time for some relaxation in the form of writing another entry here on my fancy new weblog.
The topic of today is yet another project I'm working on, albeit a little slower than the others. A few friends of mine figured it'd be a Cool Thing (Tm) to set up a game company. They grabbed some more friends together, and since I knew the 'Programming Thing' I was slightly forced to create a game engine. They obviously didn't completely grasp the challenge involved in writing up a full fledged engine, but hey, I like a challenge.
So the Wacco Engine (that's the temporary name, I lacked creativity at that point) was born. I had already played around quite a bit with openGL, so the whole 'set up object, lighting and move stuff around' wasn't a challenge anymore. What was a challenge was to actually design it in a scalable way, and do some fancy stuff. The class sketches quickly emerged, and I started building 'Phase I', which was to support Z-Fail shadows accelerated with GLSL shaders.
That turned out to be quite a challenge, since the combination of Z-Fail (the thing used in Doom 3, that game with so many nice shadows that you didn't actually saw the game anymore) and GLSL (the openGL Shading Language, the competitor of Nvidia's Cg) wasn't done before. And if it was done, it wasn't done in a tutorial anywhere. Still, after lots of fighting I got it to work in the 'hack' version of my engine. I ported it to the 'beta' version of the engine and voila, pretty impressive pictures;
The next Phase was to load some 'real' objects into the engine instead of the hardcoded cubes, but unfortunately that was around the time that I moved back to the Netherlands (about one and a half months ago) so I haven't actually gotten to it. What I did do however was write a Blender script in Python, output a model from Blender into a custom file, and load that file in the 'hack' version. The result looks like this;
Note that this is the 'hack' version, and the purpose of this version is to try things out. So you see that the model loads correctly, but due to the way I've tossed things together, it isn't actually casting any shadows. When I've ported this piece of code to the clean version however that'd be (hopefully) automatically fixed. When I've got the time to actually do this, well, we'll see.
I've got most phases for this project pretty much planned out, and although it's a lot of work, it isn't really hard work since most algorithms involved are a) fairly straightforward and b) heavily documented. So this project is a matter of time before it becomes usable. In the mean time those friends of mine are using other commercial engines for their games until mine is finished, which at the current rate could be months away. Not that it really matters, because so are their games. Again I'll keep you all updated as things go. For now, G'night!
[: wacco :]