Tinwalk
Every walk is a supply run.
Tinwalk is an app that gamifies your walks, with a survival and scavenging twist. Set up a shelter at home, head out into the wasteland, search the areas you pass for supplies, find landmarks, and bring wounded survivors home before their time runs out.
It runs in the browser, needs no account and no server, and your location never leaves your device.
▶ Open Tinwalk (best on a phone, outdoors)
How it works
- Set up a shelter. At home, tap Create a Shelter and give it a name. Your shelter is a circle with a 100 m radius around that spot.
- Go for a walk. Everything outside your shelter is the wasteland.
- Search areas. Tap Search area to scavenge the spot you're standing on. Each search marks a 400 m wide area, and nearby searches merge into one blob. You can search anywhere outside these blobs, at least 200 m from your shelter. Searched areas recover after 6 hours, so you can walk your favorite route twice a day, and loops beat out-and-back routes.
- Fill your backpack. Each search turns up Junk, Food or Cells. The further you are from your shelter, the more you find. Your backpack holds 50 units: tap it to see what you carry and drop what you don't need. Anything that doesn't fit is lost.
- Bring it home. Back in your shelter, tap Unload to move everything into storage.
- Find manuals and craft. Searches sometimes turn up a manual. Once it's in your shelter, you can craft from Junk (and Cells): a radio, knives, first aid kits, a flashlight and a Geiger counter.
- Rescue survivors. With a radio and Cells to power it, listen for calls for help. A wounded survivor waits at one of your landmarks, and you have 24 hours to search the area around it and escort them home. This is the only way to get survivors.
- Keep them fed. Each survivor in your shelter eats 1 Food a day, 2 while wounded or sick. Without food they get hungry, then starving, and after three days they leave. Tap Shelter to see how long each of them can wait.
| Distance from your shelter | Loot per search |
|---|
| under 1 km | 1 |
| 1–2 km | 1–2 |
| 2–4 km | 2–4 |
| 4–8 km | 3–6 |
| over 8 km | 4–8 |
What you find depends on the terrain: ruins are full of Junk and Cells, forests of Food, and the barrens give a bit of everything.
The wasteland
- Landmarks. Every fourth search may discover a landmark, such as a windmill, a bunker or a police station, which stays on your map for good. Each kind has its own illustration: tap a landmark to see it, when you last visited it, and to remove it if you like.
- Enemies. A search can end in a fight of dice against dice. The enemy shows its strength, say 2d3, and you run or reach for a weapon. Then it rolls its attack, and you run or strike back, rolling your own 2d6 plus your weapon's dice. Win and you also get the enemy's stash. Lose or run and you drop some of your supplies, the longer you stay the more, and the enemy stays on your map.
- Night. Day and night follow the real sun where you are. In the dark, searches find less, unless you carry a flashlight.
- Radiation. Invisible fallout zones cover part of the map. Food found there is contaminated and makes survivors sick. A Geiger counter reveals the zones by crackling, and lets you collect Isotopes there instead.
Features
- Real GPS. Readings less accurate than 50 m are ignored, so actions only unlock with a good signal. The shelter position is averaged over several seconds, since GPS is weakest indoors.
- A procedurally generated map. Instead of a real map, you walk across a fictional wasteland of barrens, forests and ruins, drawn like the shaded-relief world map of an old post-apocalyptic game: mountain ranges, dusty basins, dark forests and the grey grids of ruined towns. The terrain is generated from your coordinates, so the same place on Earth always looks the same, and a typical walk crosses several kinds of terrain. Drag the map to look around, pinch or scroll to zoom, and tap the crosshair to center it on yourself again.
- Private by design. There is no server: your progress is saved only in your browser, and your location is never sent anywhere. You can export your save to a file, import it back, or reset it in the settings.
- Sound and vibration. Sound effects are synthesized in the browser, with no audio files. Vibration works on Android; iPhone browsers don't support it. Both can be turned off in the settings.
- Light on the battery. The map is rendered into cached tiles, in background workers, so it isn't redrawn constantly and panning stays smooth.
Running locally
Tinwalk is plain HTML, CSS and JavaScript, with no build step and no dependencies. Serve the project folder over HTTP:
python -m http.server 8000
Then open http://localhost:8000. Browsers only share your location with secure pages, and localhost counts as one. Opening index.html straight from disk won't work, because the app uses ES modules.
Debug mode
Add ?debug to the address (http://localhost:8000/?debug) to test the app at your desk:
- Tap the map to set your position instead of using GPS. A tap on a landmark opens its card instead, so tap beside it.
- Speed up time (60× or 3600×) to watch searched areas expire, survivors get hungry and night fall.
- See GPS diagnostics: accuracy, how old the last reading is, how many readings were accepted or rejected, and the radiation where you stand.
Deploying
Tinwalk is a static site, so any HTTPS host works. To publish it on GitHub Pages, go to Settings → Pages, choose Deploy from a branch, and pick main and / (root).
On your own server, make sure .js files are served with a JavaScript MIME type. Ideally also send Cache-Control: no-cache for HTML, JS and CSS files, so users don't get a mix of old and new files after an update.
Project structure
index.html Page markup and the SVG icon sprite
css/style.css All styles
js/ App code (ES modules), starting from main.js
img/landmark-icons/ Landmark badges drawn on the map
img/landmarks/ Landmark illustrations shown on their cards
fonts/ Self-hosted fonts and their licenses
docs/ Game rules and design notes (in Polish)
Roadmap
Tinwalk is a prototype. Ideas for later:
- Building up the shelter, and survivors working in it
- More enemies, such as bandits, and armor
- Making Cells in the shelter, e.g. a mini-reactor fueled by Isotopes
- More devices and gear powered by Cells
- Other missions to landmarks, and loot that depends on the landmark
- More than one shelter
- Installing to the home screen (PWA), working offline, and keeping the screen on during a walk
Credits
- Big Shoulders Stencil by The Big Shoulders Project Authors, under the SIL Open Font License 1.1
- Courier Prime by The Courier Prime Project Authors, under the SIL Open Font License 1.1
License
The code is released under the MIT License. The fonts in fonts/ keep their own license, the SIL Open Font License 1.1, included next to them.