◍ Open-source city simulator

The city simulator
you grew up with,
rebuilt in the open.

Libreopolis is an open-source city simulator, reconstructed from the original SimCity 2000 and rebuilt in modern C++.
It reads and writes real .SC2 save files, so cities you built years ago load straight in and keep playing.

You supply the assets from your own copy of the game. Everything in the repository is original code.

▚ The interface

Familiar on the surface, reworked underneath.

The game isn't frozen in 1993, and it keeps changing. A minimap has been added, and there's smooth pinch-to-zoom and panning. The aim is the feel of the original, but a more modern look.

Libreopolis rendering the built-in city of Sydney: a dense isometric downtown with parks, rail and a harbour, the toolbar, menus and a minimap around it.
Sydney (population 114,840, October 1993). A real .SC2 save, running in Libreopolis.

▤ Feature coverage

Most of the game, rebuilt to match.

Each system was reconstructed from how the original behaves, with various things checked against the original to help pin them down.

❯ Getting started

Bring your own assets. Build the game.

The repository is all original code, with none of the game's art, sound or data. You install SDL3 and Python 3, extract the assets from your own copy of the game, then build. A C++17 compiler handles the rest.

Music is optional: drop a General MIDI soundfont into assets/soundfonts/ and the soundtrack plays. make test runs the whole suite with nothing but a compiler.

◍ Why it exists

As a kid I played so much SimCity 2000. Years later I got curious about how it actually worked underneath, and the curiosity got out of hand. This is where it ended up: a whole engine, worked out from the binary one function at a time, and rebuilt so it feels like the game you remember.
Read the code