
Storm the Train
A side-scrolling shooter for iPhone and iPad: a team of agents against hordes of zombies, robots and ninjas on a moving train. Over 50 million downloads.
Storm the Train is a side-scrolling shooter: a team of agents fights hordes of zombies, robots and ninjas across the roofs of a moving train. Games Faction released it in 2012, and it passed 50 million downloads across iOS and Android. I was CTO and lead programmer. It's live on the App Store, and an update for current iOS and Android is under way: Updating Storm the Train.
The game
- Twelve agents to recruit, each with their own skills; two go on a run, and a swipe switches between them
- Three hordes - the undead, robots and ninjas - each with its own environment and train
- Weapons, drones and gadgets to upgrade, and stolen blueprints to recover
- Missions, and daily rewards from the Challenge Chopper



How it's made
The game runs on cabal, our own engine: about 43,000 lines of C++ on OpenGL ES, with Lua embedded and a driver per platform. One codebase built for iOS, Mac and Android, and RallyRun ran on it too. Owning it meant owning the renderer, the memory and the frame budget on every device, from a cheap Android phone to a new iPad.
The game itself is about 200 C++ files on top, with Box2D for physics. Levels, enemies and the item database are Lua.
A free-to-play game is tuned for as long as it's live. Prices, offers, rewards and the gap between ads came from our own server, conspire: a C++ HTTP server running LuaJIT coroutines, which also ran RallyRun's backend. A price change didn't need a new build or a store review.
