◍ Open-source city simulator
The city simulator
you grew up with,
rebuilt in the open.
Libreopolis is an open-source city simulator, built in modern C++ and
based on a from-scratch recreation of SimCity 2000.
Import a real
.SC2 city or .SCN scenario, then continue it in
Libreopolis's versioned .lcity format. Your original file stays untouched.
You supply the required assets from your own legal copy of the game. Libreopolis itself is an original implementation.
▚ The interface
Familiar on the surface, reworked underneath.
The simulation may be familiar, but the interface is no longer frozen in 1993. A contextual toolbox, detached city HUD, minimap, stacked dialogs, smooth panning and continuous zoom keep the map central without hiding the detail.
.SC2 save and 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.
-
RCI
Zoning & growth
Residential, commercial and industrial demand rise and fall on the original model, down to how a plot upgrades one class at a time.
-
$
The whole economy
Tax, budget, bonds and ordinances. Pollution and land value creep across the map the way they always did.
-
⚡
Power & water
Grids fill one tile per tick. Cut a line and the lights go out downstream, on the next edit.
-
◈
Police, fire & disasters
Coverage, dispatch, and the full cast of trouble: fire, floods, riots, tornadoes, the air crash, and the monster.
-
☂
Weather & the newspaper
A seasonal weather model, and a newspaper that writes its own headlines from what just happened in town.
-
◇
Inventions & rewards
The year-gated tech tree, the reward buildings that unlock with it, and the military bases.
-
▶
Scenarios
The built-in scenarios play through, scripted disasters and win conditions and all.
-
⛰
The map editor
Terrain generation ported faithfully, plus the full Edit New Map toolset of brushes and sea level.
-
◐
A modern interface
A map-first HUD, contextual building toolbox, minimap, stacked dialogs, smooth panning and continuous zoom.
-
.lcity
Bring old cities forward
Import SimCity 2000
.SC2cities and.SCNscenarios without touching the originals, then save safely in a versioned native format. -
♪
Sound & music
The sound effects play, and the MIDI soundtrack runs through your own General MIDI soundfont.
-
…
And the gaps are closing
Whatever's still rough is being tracked. Issues and patches are welcome.
❯ Getting started
Bring your own assets. Build the game.
The repository contains Libreopolis's original implementation, but does not ship the original game assets required to play. You install SDL3 and Python 3, extract the assets from your own legal Windows 95 Special Edition copy of SimCity 2000, then build. A C++20 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.
# get the code
$ git clone https://tangled.org/conasg.com/libreopolis
$ cd libreopolis
# install SDL3 (brew on macOS, apt/pacman on Linux)
$ brew install sdl3 sdl3_image sdl3_mixer
# pull the art and sound from your own copy of the game
$ python3 extract_assets.py /path/to/SC2K
# build and play
$ make app
$ ./build/libreopolis
◍ Why it exists
As a kid I played so much of the original. 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 original's behaviour one system at a time, and rebuilt so it feels like the game you remember.Read the code