Why I Love is a series of guest editorials on GamesIndustry.biz intended to showcase the ways in which game developers appreciate each other's work. This entry was contributed by Ramon Huiskamp, founder of indie studio Roofkat, who has just launched arcade platformer WarpThrough on Steam.
During my studies I started a little side-project: programming a 2D platforming game by myself. Only two dimensions to worry about, there are plenty of tutorials about it, how hard can it be?
After spending numerous weeks making a character move around and figuring out all the other tasks ahead, I realized I had fallen into a pretty common trap. Most platformers need a lot of content to become interesting. Although I created the project to practice, I wanted to make something that I would consider a "full game."
Then I thought about Super Crate Box.
Super Crate Box is a small game. That doesn't mean it's easy to make (or easy to play) but in terms of content, it's unapologetically small. You can move, jump and shoot, there's only three basic enemy types and a handful of levels. There are a bunch of different guns and other weapons, but as the main meat of the content, their number is quite modest. And still, in spite of being so small, I would definitely call it a full game. You can keep playing it for hours, until you can't stand the sight of boxes... or crates, even if they are "super."
"Super Crate Box is the definition of the whole being more than the sum of its parts, and it's all due to its incredibly elegant design"
When I first installed the game, I didn't realise how much there was to appreciate. I thought it was a cute little platformer, pretty addictive to play, but I soon got frustrated with it because honestly, I wasn't very good at it. After working on my own little platformer project, I looked at it again with a lot more admiration. Super Crate Box is the definition of the whole being more than the sum of its parts, and it's all due to its incredibly elegant design.
For those unfamiliar with the game, the main goal of Super Crate Box, made by indie studio Vlambeer, is not to shoot as many enemies as you can, but rather to pick up crates. Whenever you do so, it increases your score and also changes the weapon you use. It sounds like such a simple concept, but the fact that your score isn't tied to monster kills means you can't hide in a corner and spam the attack button to succeed; you have to move around the level to collect more crates. And because those crates actually change the weapon you have to work with, you're constantly forced to adapt to new situations. This game doesn't stop being tense when you get a great weapon, because in order to progress you have to pick up the next box, exposing yourself and risking a much less efficient way of taking out monsters.
On top of that, a single hit from a monster means game over, and the monsters don't die when they reach the bottom of the level, instead returning to the game as angrier, faster versions. All together, this means your ability to balance between killing monsters and grabbing crates is crucial. It forces you to stay on your toes, and it stays fun much longer than it has any right to be. So, in describing it like this, I thought - ok that's it! Turn my platformer into a more roguelike experience, figure out some rules that work well to make interesting gameplay, and there we go: a lot of fun without spending years and years on development.
Armed with this newfound knowledge, I changed my platformer into a twist on Super Crate Box, where instead of guns changing as you reach your next goal, the enemies would change. That sounded like a fun, different take on the game, and much more reasonable to make than the 2D platformer I started with. Perhaps new enemies would be harder to make than new weapons. But still, that should be doable. Right?
"Creating simple enemies, weapons, or just variations on what you've already made can give you easy wins that go a long way in creating new content"
After I made the first enemy, which could simply walk and fall, I decided to make the second one more interesting: tracking the player, being aware of where the walls are, and performing an attack when the player got close. I never finished the second enemy for that prototype.
Once again, I could take a lesson from Vlambeer's game. Enemies don't have to use complicated AI to create interesting gameplay. Enemy one in Super Crate Box just walks and falls, enemy two is the same but bigger and with more health, and enemy three floats around fairly randomly. And yet, in spite of their simplicity, these enemies are a constant danger as you play, because the level ensures they will cross your path. Not to mention their rage mode, which makes them a lot more dangerous if you don't actively take them out. This causes you to be wary of anything moving on the screen, apart from yourself.
A lot of the guns are also just versions of each other with different parameters or tweaks. This is the gun you had before, but with stronger bullets. Now you have two guns, but they're both weak, and so on. In spite of how similar they might seem, every one of these requires you to take out enemies with a different strategy. And that's all it needs to do in order to keep the player stimulated.
That was my second take away from Super Crate Box. Creating simple enemies, weapons, or just variations on what you've already made can give you easy wins that go a long way in creating new content. There are other things I took away from Vlambeer's games -- screenshake being the obvious one -- but the way that Super Crate Box leverages such little content to create gameplay that's enjoyable for a long time is something I admire a lot.
After graduation, I had a lot of new ideas for that little programming project. I finally managed to turn it into a full game, diverging a lot from its start as a sort of "Super Crate Box with a twist". But the inspiration is still there - and I'm sure there's a lot left to learn from that little gem.
Developers interested in contributing their own Why I Love column are encouraged to reach out to us at email@example.com.