Friday, June 13, 2008

Plug and play….ish

(Reposted from old blog)

So I’ve expanded on the Enginuity module framework and it’s more or less complete for the moment…

The features list:

  • Searches multiple directories for plugins
  • Dependency checking for modules
  • Clean API for accessing core Enginuity functionality without exposing oneself to the underlying code base.
  • Cross module interactivity (hence the need for dependencies)

So overall I’m pretty happy with it, I’ll be documenting this monstrosity soon and cleaning out all the ‘dead’ code lying around. It’s fun. This project is becoming a real…project :)

Now to figure out why one in twenty module loads causes a segfault, I suspect something is occurring sooner than I anticipate, probably need more checks in the routines.

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 :)