IWBTG Game Progress and Other Things
Since I last posted here I've been mainly working on this IWBTG game project. It's been going pretty well and I've got a lot of code that I can reuse in more serious projects now. It's also let me really establish a structure that I like for game development in C. As it stands, I'm not actually completely pleased with the structure of the IWBTG project but it's shown me exactly how I can improve it for the next thing I work on and so this has been a good test. The structure I have will certainly support the rest of this project though, it's just not as convinient / performant as it could be.
So most of the core engine is in at this point, all the physics and almost all of the game play elements you would expect to find in a fangame with the exception of water which I'll likely implement next. The project has a built in level editor which is not very flexible and user friendly but passable for my use. I may implement a better editor towards the end of development so I can release it for others to use. It would also be useful for use in future games. As far as programming goes, most of the remaining work is simply adding more types of entities like falling platforms and switches, etc. I'm going to implement some fancy lighting effects in the OpenGL version as well. Possibly both geometry based and shader based for multiple performance options.
At this point the game also needs a fair bit of performance optimization, (although it still runs at full speed on my atom powered netbook). The collision detection routines have no broad pass whatsoever on per pixel collisions. I'm loosing a lot of performance there with an incredibly easy fix. The entity data structure is also massive because of the boss data being held within it. This really does not have to be the case as I can easily move that data into another structure, allowing many more entities to fit in cache at a time and likely improving the iteration performance greatly in many different functions.
I did want to release this game for Raspberry PI but it seems that SDL2's renderer is quite slow on the device. This means that I'll have to entirely re-write the platform layer for the device which is a bit of a pain. I have already started the process of implementing an OpenGL ES renderer though so I may very well just quickly add it to the game.
So for the next little while I will be mainly working on content for the game in order to get it finished as quickly as possible. I would move onto more serious projects now but I feel I should really have a finished game development project that is bigger than a few of days work for my portfolio. I'm going to try to get the projects page up on this site fairly soon as well so I can put updates to the project there. That means I won't need to put so much technical stuff into the news posts and I can save it for those that are actually interested. I'll also be working on that OpenGL renderer for the Raspberry Pi that I previously mentioned over the next few days and will probably develop some kind of small arcade game with it.
If you want to check out more about the IWBTG engine, until I add the projects page the best place to look would be the GitHub page: https://github.com/Jools64/IWBTG-C-Engine
Alright, I've got some more stuff to chat about but I'll save that for the next blog post which hopefully will come sooner than this one did. I should maybe give myself a schedule of a minimum of one post per week or something.