Explore floating-point errors and metro tunnels in one trip. https://nc.itch.io/metro
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jens Pitkänen 4b1cd445bd Update readme, add screenshots 1 year ago
itch Update readme, add screenshots 1 year ago
src Add window icon 1 year ago
vendor Update raylib 1 year ago
.gitignore Add sdf renderer, movement 1 year ago
LICENSE.md Update the rest of the buildscripts and licenses 1 year ago
README.md Update readme, add screenshots 1 year ago
linux-build.sh Add window icon 1 year ago
linux-rpi-build.sh Add window icon 1 year ago
osx-build.sh Add window icon 1 year ago
windows-mingw-build.sh Add window icon 1 year ago
windows-msvc-build.bat Add window icon 1 year ago


A Walk In A Metro Tunnel

A Walk In A Metro Tunnel is a walking simulator. The environment is the Ruoholahti-Lauttasaari part of the Helsinki metro, with the interiors being completely improvised, but the route based on some plans found on the internet (page 41).

After writing most of this game, I ran into a problem: the default floating-point numbers used in GLSL (that is, 32-bit ones) aren't accurate enough after running them through as many transformations as the ray marching code does, which results in varying amounts of visual noise. To preserve compatibility and avoid complexity, I decided to incorporate the noise into this project. So while one theme of this game is metros, and the Helsinki Metro specifically, the other part is about floating-point inaccuracy, and how you can get some understanding about how floating-point numbers work when their errors are such a visible part of the world.

The game takes about 25 minutes to walk through completely.


  • WASD or IJKL to move
  • Arrow keys or mouse to look around
  • Shift to run
  • Q to auto-walk (like pressing W/I continuously, but just one key press)

Configuration keys

  • B to toggle head bobbing animation
  • T to toggle the font (between VT323, which fits the game better aesthetically, and Open Sans, which is easier to read)


Just run the script relevant to your operating system. If it doesn't work, refer to the documentation of raylib-template.


This walking simulator is distributed under the GNU GPLv3 license. The dependencies (under vendor/) are distributed under their respective licenses.