Two Birds One Stone is a simple game available for iOS. The “Making Two Birds” articles talk about the parts of the technology I consider to be interesting for others. Even for such a simple game, I think there are a number of interesting things.
This is what the game looks like:
Mostly, that should be self explanatory, the things which may not be obvious:
- Each level of the game gives the player 5 stones to launch. These stones are completely replaced when the level is beat and the player is given the next level.
- The player can choose to skip a level, but it costs a stone (they can’t skip if they are on the last stone for this level).
- After beating 5 levels, the player is rewarded with a robot, the robot can be used once, and replaces the “skip” button. When used, the robot comes out and beats the level – so the player starts the next level with 5 stones, and also gets the points they would have got had they beat it themselves.
- Points are awarded when a level is beat – more points for beating the level with fewer stones.
- If the player fails to beat the level with 5 stones, then it is game over. The player gets to keep on trying to beat this level with an unlimited number of stones – with the option to skip the level if they want.
This is a simple game, but even in a simple game, there are a few things which are interesting from a technology perspective. These articles are written to explain some of these little aspects.
Making Two Birds: Fixed Point gives some specifics on how the low level maths behind the physics in Two Birds One Stone were implemented.
Making two Birds: Fudge Factors explains how the game works to be on your side and help you win, without being noticed.
Making Two Birds: Making Levels gives details about how levels are generated, and how the game chooses the next level to play.
Making Two Birds: Audio describes how the audio was generated – in particular, some of the game audio is synthesized on the fly, and this describes how.
I don’t consider this to be particularly interesting, but for those that do, the game was written in C (mostly C90, but with
long long used for the fixed point maths). The external libraries used were SDL2 and stb_image. The “build system” for most of the time was a shell script that just threw all the .c files at gcc – and then xcode for the iOS bit at the end.