After playing the iOS build a bit, and armed with feedback from friends at PAX, I’ve come up with some additions to Tunnel Racer that really improve the game. This version contains many more updates than previous versions, so this post is a bit long and image-heavy.
Spawn Patterns
This is something I’ve had in the back of my head for a while, but I had been holding off on working on it. One piece of feedback I’ve been getting since the start is that it’s often too difficult to dodge the X panels. The spawning algorithm has always been random, so sometimes that happens, and I always wrote it off and thought, “it’s supposed to be hard, that’s why you have health.”
This version introduces spawn patterns, which will occur randomly while playing. There are currently 6 patterns:
Tunnel
Fills the tunnel with X’s except for 1 to 3 clear lanes. Clear lanes start with a booster. It’s easy to spot from a distance.
Spiral
Creates a path that spirals along the tunnel. Each ring of the spiral has 3 “safe” spots with points, speed, or health. The other 5 lanes have X’s. It’s harder to tell a spiral is incoming, but the slow progression makes it easy to follow.
Wall
A solid wall of X’s 3-5 lanes wide. This one is hard to balance, so it might get scrapped entirely. This pattern causes most of the “that’s impossible” moments in the game.
Split
A wall of X’s that blocks a single lane and splits the tunnel. Easy to spot and very easy to dodge.

Rings
There’s a small chance for a “ring” to spawn, which puts the same panel on all sides of the tunnel. Rings are never bombs. They’re usually points, but there’s a chance they’re boosters, and a very small chance they’re health.
Random
Spawns panels at random, like it used to.
Patterns can also modify the chance that another pattern follows them. Right now, I’m experimenting with having a higher chance for a spiral to start after a tunnel (in one of the “safe” lanes). I’m also tracking which lanes are “safe” after each pattern fires, so most patterns will attempt to give you a safe path to follow. It’s not 100% yet, but it seems like there are fewer times when you feel like you were forced to take a hit.
New Level Mechanic
It was suggested that levels end based on distance instead of speed, so I’ve updated some graphics and modified levels to have a set distance you must travel before ramps appear. Boosters have an exponential effect on speed, so the faster you’re traveling, the harder the game is but the quicker you’ll progress to the next level.
Since the end-level trigger is now determined by distance, I decided to replace the ramps with a “finish line” ring:
Not sure how I’m going to explain the jump, though.
Point Panel Icon
I finally came up with a simple icon for the point panels – a diamond. It might still change by the end, but I think this is a good icon for signaling value (without it being a coin).
Achievements
Achievements aren’t in the game yet, but I’ve been thinking up some achievements and I’ve got a good list of achievements to add. For iOS, these will be handled by GameCenter. If I publish on Steam, they’ll be Steam achievements. Elsewhere, I suppose I’ll just have to add an in-game achievement manager.
Here are a few I’ve thought up and categorized:
- High Score – Achievements for high scores.
- Lifetime Score – Achievements for lifetime scores.
- Levels – Achievements for level milestones.
- Unlocks – An achievement for each ship.
- Total Damage – Achievements for lifetime damage taken.
- Single-Game Damage – Achievements for damage taken in a single game.
- Special – Achievements for performing specific actions.
Most of the categories are fairly basic, but the special achievements are where I’m going to have fun. The special achievements may require a bit of luck – if certain patterns appear, they may force you to pick up certain panels that disqualify you for a special achievement. Just throwing out some ideas:
- Sunday Driver – Remain at the slowest speed for an entire level.
- Thrifty – Complete a level without picking up any points.
- Autopilot – Survive 60 seconds without moving.
- NASCAR – Complete a level using only left turns.
- Immortal – Reach level 10 in Sudden Death mode.
- Don’t Fear The Reaper – Reach level 10 in Doom mode.
- Speed Freak – Reach level 10 in Turbo mode.
- Lead Foot – Reach level 10 in Accelerator mode.
Some of these names are corny, but they’re not locked down, and you can see where I’m going with these.
Other Stuff
I updated the ship selection section on the main menu. I think it looks a lot better now. At the very least, it shows all the ships, so there’s that. I also finished naming all the ships and added the names to the menu.
I tried changing how turning works, but scrapped most of the work I had done because nothing felt right. I want something smoother, but I also like the tap-to-turn controls I have now.
So, now that all that’s said, here’s the link to the new version:
Tunnel Racer v21a
There are still a few issues with some of the movement changes I’ve made (it acts funny sometimes), and there are a few bugs with patterns (and a big one where it’s possible to miss the end-level finish line and never be able to complete the level), but it’s still playable.





