As I am now entering my third year at university, I have decided to build a framework that allows me to create all kinds of games fairly easily. I am finding myself repeating code more and more and want to encapsulate all game specific code in one place, so that I can reuse it and create as many games as I like, of any genre and any kind. I also love programming (if you hadn’t already guessed) and want to learn as much as I can about it and so COG is kind of a side-hobby of mine, to help improve my knowledge of C++ and certain programming libraries. I decided to call the framework COG, as it seemed quite fitting! (What is a cog?)
COG will be a framework built for games programmers, allowing them to create 2D and 3D games fairly easily, with little to no effort involved. COG will be similar to a robust games engine, although it will be generic in the sense that many different kinds of games can be created (2D/3D, tile, isometric, side-scroller, third person shooter, etc.). I will create pre-defined functions and classes to make this magic happen. For example, creating a 2D Isometric game map will be as simple as:
COGMap::Instance()->Create2DIsoMap(...pass awesome parameters that do cool shit here...)
At present, I am using the Singleton design pattern for all my managers, which I believe is slightly more flexible than static classes (debatable, I know), however this may change if I find a better way. COG will fully support libraries such as SDL, OpenGL (including the GLSL language), GLFW and all the other major libraries used primarily in 2D/3D games programming.
COG will also include fairly advanced C++, namely design patterns, including finite state machines, object factories and manager classes, which will make use of the singleton design pattern (for now). There will also be serialization support, allowing objects to be saved and loaded. Data-driven design will be readily available, allowing programmers to store/read data from binary, text and XML files and pass the data to functions, variables and so on.
The COG Framework, as you can imagine, is going to take me quite a long time to build! My aim is to have it completed by the time I graduate (less than 2 years away). Once I have built the framework it will be available for download on my official games portfolio website www.kimmyofficial.com, completely free, so keep checking back. I will be posting regular updates on my blog and am open to any feedback people might have (whoever stumbles across this blog and happens to be games programmer!). If there is anything you might wish to see included within the framework that will help you in your journey to becoming a games programmer, please leave a comment below or email me via my website above.