Last night I was clearing the hard-dive to free up much needed space and I happen to run across an old zip file and in it was my older experimental engine — something I was working on long before I began work on the O2 Game engine. Well you can’t really call it an engine — it’s what you call; a bunch of experimental code hacked, stretched, hammered and stitched together to produce something that can be displayed on the screen 😀 . A more appropriate name would be a prototype or a demo. I was looking at the code and couldn’t help but wonder how I could comprehend anything inside those bunch of lines back then. To my surprise, the code still complied pretty easily on the new VC 8.0 Express. The app runs at 500+ FPS on the HD 4850 at 1280×1024, back then (, if I remember correctly) it ran at 40-50 FPS on a Riva TnT at 640×480.
Cool ain’t it. Well sorta, but lets take that with a pinch of salt. First, those levels that you see are some really cool Quake 3 Levels that I had downloaded off the internet. They are not created by me. I had written up a Quake 3 Level loader for the demo and albeit incomplete, was pretty good at loading most Quake levels. The lighting was obviously Quake 3’s internal Lightmaps. The collision system was rudimentary and navigation (running around in the level) was a huge problem. There were times when the collision system would completely fail and one would fall through the floor into the dark abyss below. MD3 animation was crap, so there were no players in the level, though I remember I was working on a skeletal animation library later on, but I guess I never integrated it with this piece of code. Oh well!
Baby steps I would say. Obviously I learnt a lot from hacking around that piece of code. But could I have created a game with that? The answer is — No I would not have. With all that was achieved, you wouldn’t be able to pull together anthing more than a short cool looking demo — period! The code is too haphazardly written and has no structure and I would only term it as research and learning material. Even then it’s a bit nostalgic to see some of your old code run 🙂 , and man it still does look cool at higher resolutions!