Making Two Birds: Tech Intro

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.

Game Play

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.

The Articles

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.

Other Stuff

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.