Rebel Tech is currently under development. Most of my effort is being put into re-factoring/abstracting a lot of the code which was part of my NGE project (which you can check out here).

NGE :: Screen Shot 1 NGE :: Screen Shot 2 NGE :: Screen Shot 3
NGE :: Screen Shot 4 NGE :: Screen Shot 5

I had spent a lot of time working on that project, mainly doing a lot of experimental coding. It was a great experience because it's a fully working demo on which to build and I could visualize results immediately after implementing them. Since this was mostly a test bed for lots of code there wasn't much in the way of cohesion or higher level abstraction, definitely not what you would expect to find in an framework.

One of the more interesting components I found was some utility functions which I had written a while back that will compute collision geometry for a 2d sprite, this comes with obvious limitations but I think I will work on making it more robust (specifically working with sprite sheets). I was also able to salvage all of the collision and physics code for 2d objects. There was even a 2d camera that supported different effects for shaking, zooming based on the attach objects speed, etc..

Re-using a lot of this code and concentrating mainly on high level abstraction and cohesion between components is a great boon to development. Most of the implementation details are already complete so as of right now I am fixing odds and ends and making sure everything plays nice. I hope to have some samples of the interface up soon.

As for the 3d side of things I am treating this as my secondary focus, I am porting everything I find into Rebel Tech because I have decided to not make this engine simply a "sprite renderer". Having support for scene graphs, shaders, and other things normally only found in 3d frameworks will make using rebel tech unique in that you will be able to create 2d games using 3d concepts easily. Of course, it will be just as easy to make a casual 3d game using this technology as well.

I have said before that my current goal is to get Rebel Stronghold ready, and that's still at the top of the priority list. It is important however to invest time in building this technology that can be used to build future games.

I hope to make Rebel Tech something that is easy to use to build fun, unique, indie games. The core focus will be on enabling the quick creation of game play prototypes, and then being able to take that all the way to the finish line which is actually selling the game.

One of the biggest deterrents I have faced with using a lot of the solutions out there is that there seems to be no middle ground. You either get frameworks which are so bare bones that you can hardly even call them frameworks. They will provide things like rendering (sprites, loading images, etc..) and thats it. While this is great and has its uses, if you want to go full circle and actually publish the game you are going to need a lot of other subsystems which you will need to write yourself. In which case you don't really end up saving much time anyway. On the other end of the spectrum we have massive frameworks which do almost everything imaginable but their interface is usually very rigid and some really only support their use through their own custom scripting languages. These massive frameworks make it a huge endeavor to modify any of their code and there is always the worry of breaking something during the alteration process.

I am designing Rebel Tech in a completely different way. First off, I love coding in C/C++ and that's who I am writing this for. People like myself who love getting down and dirty with the code, but would also like to have a lot of utilities available to them while working on their game. You might have to write one or two custom components for your specific genre of game but hopefully you'll never find yourself wishing that basic things had already been done. One sentence description "Inter-operable and extendable game components".

In the end, I hope that Rebel Tech will be something that I can use to help bring my own vision to life. I also hope that it becomes something that will help others as well.