An open-source remake of SimCity 2000, built with Godot.
Join our Discord community.
Click a thumbnail to view the full screenshot.
Download a package from GitHub Releases. See the installation instructions for Windows, Linux, and macOS. The packages include the engine. You do not need to install Godot.
To run from source:
Use Godot 4.7 and provide your own copy of SimCity 2000 Special Edition for Windows 95 (1996).
The simulation is a native library written in Rust. Install Rust with rustup.
rust-toolchain.toml selects the Rust version.
Before the first run of a fresh checkout, build the native simulation from the repository root:
python3 tools/build_native.pyThen run this command:
godot --headless --audio-driver Dummy --path game --editor --importWait for the command to finish. It builds the local game/.godot cache, including the script class index
and imported resources. Git excludes this generated folder. Without this step, a fresh checkout can show
a black screen with script errors. Opening game/project.godot in the Godot editor also builds the cache.
Then start the game:
godot --path gameAt the import prompt, navigate to the location where your copy of SimCity 2000 is stored, then select SIMCITY.EXE.
The app checks the supported version and imports the game files. These files supply the original graphics, text,
sound, and music.
- Larger cities: 256, 384, and 512 tiles per side, alongside the original 128
- Smaller cities: 16, 32 and 64 tiles per side
- Updated coverage, land value, pollution, crime, and other data maps to be 1:1 resolution with the map, instead of lower resolution
- Massively increased the amount of MicroSims (XMIC) and movable objects (XTHG) that are available to be used in each city
- Improved terrain generator with configurable terrain features supported
- New isometric data views, height map, service coverage, and transport-trip overlays
- More zoom levels, layer controls, and optional dark underground views
- Detailed simulation data available including simulation timings, inspection tools
- Support for external graphics, sound, and music packs
- A JavaScript runtime for mods and developer scripts, with game events, a game API, example mods in
examples/mods, and a Chrome DevTools console. Mods load from themodsfolder, each in its own sandbox, and the Mods tab of Settings turns them on and off. See Scripting and Mods
Larger cities and per-tile data maps use .sc2x saves: ZIP archives with one raw entry per
city structure, city names of up to 64 characters, and signs that can share a tile with any
building. See the SC2X format. The original game cannot open these
files. Original .sc2 cities keep their separate compatibility mode until you choose
Upgrade City to SC2X. Older .sc2x files load as version 4 cities and save as a new copy.
Many fixes identified by sc2kfix have also been applied or ported to this codebase. The sc2kfix MIT notice is retained for adapted work.
Open game/project.godot in Godot. Run python3 tools/build_native.py after each change
to a crate in native. It also builds the FluidSynth library, which needs CMake. The validation command also builds the native libraries and runs
their unit tests. See the native simulation,
the native region builder,
the native formats, the native audio,
FluidSynth music and the native scripting for their layouts. Run the checks with:
tools/validate_project.shThe tests use silent audio. Generated city fixtures are committed. Original-data audits need references/SIMCITY2000; renderer and media tests can also need imported packs in ext/. See fixture generation.
OpenSC2K is developed with the assistance of AI tools, including large language models (LLMs). AI is used for tasks such as code generation, refactoring, research, documentation, testing, and debugging. All architectural decisions, implementations, and contributions are reviewed and directed by the project maintainer.
See AI-POLICY.md for the project's AI usage and contribution policy.
Project code is under the MIT license.
Bundled Rajdhani fonts retain their own licenses.
The MIT license does not grant rights to the original game or its assets.
This project is not affiliated with or endorsed by Maxis or Electronic Arts.
OpenSC2K is an independently written re-implementation. Compatibility and simulation behavior have been determined through observation, testing, analysis of game data, publicly available research, and reverse engineering of the original executable.
No original SimCity 2000 source code or assets is included in OpenSC2K.
