About TUNL
TUNL is a one-button cave flyer for iOS, Android and the web, made by one person. Everyone who plays on a given day flies exactly the same cave.
What TUNL is
You tap to hop, hold to climb and let go to fall. The tunnel scrolls past, narrows and speeds up, and you try to get further than you did yesterday. That is the whole control scheme, and the game is built around making that one input as deep as it can be: coins that change the corridor, hazards that ask different questions, and a cave that is different every day but identical for every player on that day.
That shared cave is the heart of it. The level is not stored anywhere and no server sends it. It is calculated from the calendar date, so a player in Lisbon and a player in Tokyo meet the same stalactites in the same places, and a score means the same thing on every phone. The daily cave devlog explains how that works and the two bugs that quietly broke it along the way.
Who makes it
TUNL is made by Theodoracatos, a solo indie developer. There is no studio and no publisher: the design, the code, the sound work and this website come from one person, with the store listings, the leaderboard backend and the support inbox all run from the same desk. That is why the devlog is written in the first person and why a bug report to [email protected] is read by the person who can fix it.
How it is built
The game is plain JavaScript on an HTML5 canvas. There are no libraries, no modules and no build step for the game itself: a page loads a set of scripts in order and they share one global scope. The same files ship in three places. The iOS app runs them in a WKWebView, the Android app in a WebView, and this website serves them at flytunl.ch/play, so the web version is not a port or a demo. It is the same game with a few browser-only touches.
Because a shared daily cave is a promise, a lot of the engineering is about keeping it. Automated tests replay the cave generator at six different screen sizes and compare the results byte for byte, guard the physics against different refresh rates, and check that a stretch of world is equally hard to fly on every device. The devlog is where those decisions are written up.
What guides the design
- One control, learned by feeling. There is no tutorial text, because a hint that says "tap to hop, hold to climb" is redundant next to the thing you are already doing. New pilots get a circle that shows when to tap instead of a sentence, and the opening of every run is built so that you feel both halves of the control before anything can hurt you.
- Every object shows what it does. A coin is drawn as the thing it does: an hourglass slows time, a shield blocks a hit, a magnet pulls, a bomb has a burning fuse. You can tell them apart at a glance, including if you are colour-blind.
- Easy to start, hard to master. A new player gets a safe opening and two hull scratches. A strong player faces a cave that never stops getting faster. The difficulty is measured, not guessed: I simulate thousands of runs by bots at four skill levels and look at where each one dies before I ship a change.
- Fair means the same for everyone. Anything that decides where an object goes has to depend only on the date and the position in the cave. Never on your screen, your score or your power-ups.
- Listen to players. The thrust of the ship was retuned twice after players on Reddit said the game felt too fast, and the whole first minute was rebuilt after beginners said it was too hard. The story of the first is in the thrust devlog.
How TUNL is paid for
TUNL is free to play. In the apps it shows a full-screen ad after some deaths, no more than once every couple of minutes and only after a run that got somewhere. There are two optional videos you can choose to watch for a benefit: one to continue a run and one for a daily shard bonus. A one-time Remove Ads purchase turns the forced ads off, and a one-time Unlock All Ships purchase unlocks the whole roster for players who would rather not wait. Ships can also be earned entirely by playing, and cosmetic paint finishes are bought with in-game shards, never with money. Details about the data involved are in the privacy policy.
Credits and disclosures
- The in-game music is by the_mountain, used under the Pixabay licence.
- The trailer is one real run of the shipping game with its own music and sound, and has no narration. Screenshots and footage are real captures.
- TUNL is available in 16 languages. If a line reads oddly in yours, tell me.
Contact
Questions, bug reports and ideas: [email protected]. For help with purchases and progress see Support, and for logos and screenshots see the press kit.