monotonicity

A city-building and transport simulation game written in Lean

MonotoniCity

A city-building and transport simulation game written in Lean (like a hybrid of SimCity and OpenTTD)

Build roads, multilane roads, controlled-access highways, roundabouts, diverging diamond interchanges, trumpet interchanges, stack interchanges, tunnels, and more!

TODO screenshot

Building

You can download a prebuilt AppImage at https://f.unnamed.website/monotonicity.AppImage

To build this using Nix (least painful trust me), just run nix build.

On NixOS you can also build this by hardcoding the directory of libraylib.so in lakefile.toml (for instance moreLinkArgs = ["-L/nix/store/2ndddyrjb1ahx05kmsjqvzkagz1bdmpk-raylib-6.0/lib", "-lraylib"]) and running lake build, which can be much faster due to caching.

Otherwise, install Raylib and run lake build and hope for the best. It probably won't work, but you can give it a try.

To build an AppImage that can run on any Linux distro, run nix bundle --bundler github:NixOS/bundlers#toAppImage --impure.

Gameplay

MonotoniCity has both a console and a GUI window. Type help in the console to get a list of hotkeys for the GUI (TODO: document all the commands).

I recommend running the game with rlwrap for a slightly nicer console.

There's no soundtrack currently but you can play some nice tracks from the Simutrans soundtrack using mpv --playlist=soundtrack --shuffle --loop-playlist --no-video.

Why the name?

monotonicity is a tactic in Lean.