Last month I decided to invest my spare time on something else and placed Guts & Glory on a temporary hold. There were a couple of reasons to this but the most dominant was I wanted to teach my kids more about game development. The outcome is Cage.
Cage - Ain’t a Game Engine
Cage is an elementary game development library for C. I specifically intended for it to be easy to use, even at the cost of it being a bit basic.
Still, the library has everything I wanted to teach 2D game development:
- Game loop and states
- Images and Sprites
- Animations and Timelines
- Basic Input Support
- Sound playback
- and more..
I also wrote some sphinx docs to go with it, so it will be easy for beginners to understand how to use it effectively without digging in the more technically oriented doxygen docs.
Internally, Cage uses SDL2. I knew SDL2 is my go to solution after watching Ryan Gordon’s talk on youtube. I remembered SDL since the days I used PyGame. Things have changed! SDL2 together with its sibling projects is a lovely piece of technology.
I love coding in C, so if that’s a good enough reason, you may skip this part.
C is simple and small. It requires understanding the relation between user code, the operating system and the machine.
In C, a programmer learns to appreciate resources, learn how data is represented and how to transform a solution into imperative code. Abstraction is unnecessary. Everything is explicit and simple. This is a great way to learn how to program, even though some insights about its benefits grow stronger only after spending years dealing with other technologies.
Teaching using Cage
I’m now using Cage to slowly introduce my kids into game dev. It’s actually a fun experiment in library design. I find myself constantly thinking about readability, ease-of-use and clarity.
Right now we are working on sprites and animations and I hope to show-off our fruits of effort soon.
What about Guts & Glory
Guts & Glory is now back in development. The immediate goal is to release alpha version 0.3 including the full first 12 levels.
I will more news during the next couple of days.