Tuesday, March 27, 2007

Current Project - SOGL

Well, I'm finally kicking myself into actually doing some game development work, and I'm starting with a framework that I can use to ease my way into larger projects. I'm building the library around SDL and OpenGL and I am currently calling it SOGL (soggle) :) My current plans (probably slightly ambitious, but we will see) are to have a more polymorphic and easier syntax for OpenGL and SDL, with some callbacks for events to make an initial project setup easier with almost no boilerplate code.

I also intend to make some classes around OpenGL style objects for certain things that are almost always done in the same way, such as textures and shaders. The intention with these is to ease the code required to set them up and run them, and also some small scale optimisations internally so that requests to change textures are only carried out if the texture isn't currently active and so on :)

There is also some vague idea in my head about some nicer maths objects and classes that I can integrate into the various areas, such as vectors and matrices that can be more easily used to shift between the more efficient opengl vector commands and a nice, object oriented approach to these ideas. This may be replaced with another open source package.

Anyway, my current status is that I have a window class that can create a window, and an event pump that can take SDL events and pass them out to various callback functions as long as they are defined. My next stage is to create a nicer interface to check keys and possibly to generate a system to assign named actions to keys and key combinations.

My ultimate aim is to build an extra layer of abstraction on top of SDL and OpenGL that will allow me to not end up worrying about the mechanics of how they are doing things. I'm doing this myself rather than using an existing framework is because I feel like it :) If I get the code into a decent state then I will probably release it to anyone who is interested as well, but currently this is not really an objective. I will be building some examples and little games as and when I can though, and hopefully they will be easy to understand.

No comments: