Sunday, June 1, 2008

Galileo

(Reposted from old blog)

Alright I’ve had a project semi-under wraps for a while now and I’m going to start talking. I’m working on a big project lately, it’s been the only project I’ve consistently worked on, though most of the time I’m just tinkering, I’ve been making a lot of progress lately.

My original goal was to make a space fighter game, you know, fly around and shoot things with lasers. Well from there I went ahead and decided to make my own game engine. Then I decided that the physics were going to be complicated and I make a physics engine first, then figure it out from there. So I Google’d around a bit and found this:

Enginuity @ GameDev.net

It’s a bit old but still suited for my purposes, I followed throught the examples and used it to construct my own engine, dubbed Enginuity Mk II. The biggest change was the isolation of the game components in to a separate architecture, making EngMk2 more of an engine framework. Then I decided to call the Physics stuff that attached to it Galileo (sounds way cooler than it really is…). So I wrote a program that compiled against my engines static library and did things like realtime freefall and things like that, and recently decided the code was ready to be formed in to something useful. Then in the middle of the night I had an idea for a module architecture for Enginuity that could load up various modules in to the framework and use them to create a specific engine.

Today I finished that module system and wrote a bunch of simple plug-ins using to test various things, its all working perfectly including version checking. (Now I need to come up with a better versioning scheme for this project!) and I’ve started collecting my scattered bits of code and cleaning it out while building up the structure of the Galileo module. Once that’s all put together I’m going to obviously write an application to link against the framework and load the module and test it. Next up is to either write a graphics engine (a simple 2D tile one for me) or learn to use one of the freely available 3D engines and writing an interface module. Not sure, but this project is fun :)