# openrct2/openrct2

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/openrct2-openrct2).**

15,211 stars · 1,737 forks · C++ · gpl-3.0

## Links

- GitHub: https://github.com/OpenRCT2/OpenRCT2
- Homepage: https://openrct2.io
- awesome-repositories: https://awesome-repositories.com/repository/openrct2-openrct2.md

## Topics

`c-plus-plus` `cmake` `cpp` `discord` `game` `hacktoberfest` `linux` `msbuild` `multiplayer` `opengl` `openrct2` `roller-coaster` `roller-coaster-tycoon` `sdl2` `server` `simulation` `visual-studio` `windows`

## Description

OpenRCT2 is an open-source reimplementation of a classic amusement park management simulation engine. It functions as a cross-platform engine that modernizes the original game, enabling it to run on contemporary operating systems while maintaining full compatibility with legacy assets and data files.

The project distinguishes itself by providing a comprehensive multiplayer simulation server that supports cooperative, real-time park management and construction across multiple connected clients. It utilizes a deterministic lockstep networking model and a centralized action-based validation system to ensure that all participants maintain a synchronized game state during collaborative sessions.

Beyond its core simulation capabilities, the engine serves as a robust modding framework. It exposes internal functions through scriptable engine hooks, allowing users to extend gameplay mechanics, customize simulation parameters, and register new game actions. The platform also supports development hot-reloading for scripts, game content localization, and the integration of original scenarios to provide an extensible environment for simulation enthusiasts.

## Tags

### Game Development

- [Amusement Park Management Simulations](https://awesome-repositories.com/f/game-development/amusement-park-management-simulations.md) — Provides comprehensive park management tools, including attraction construction, financial balancing, and guest satisfaction monitoring.
- [Engine Modernizers](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/engine-modernizers.md) — Updates classic simulation games to run on contemporary operating systems while maintaining compatibility with original assets and game data.
- [Deterministic Networking](https://awesome-repositories.com/f/game-development/online-multiplayer/deterministic-networking.md) — Synchronizes simulation state across multiple clients by broadcasting validated user inputs to ensure every player sees identical game outcomes.
- [Open Source Games](https://awesome-repositories.com/f/game-development/open-source-games.md) — Functions as a cross-platform engine that extends the original simulation game with modern features, multiplayer support, and enhanced construction tools.
- [Tycoon Simulations](https://awesome-repositories.com/f/game-development/simulation-engines/interactive-simulations/tycoon-simulations.md) — Provides a comprehensive simulation environment for managing amusement park economies, guest satisfaction, and infrastructure construction. ([source](https://cdn.jsdelivr.net/gh/OpenRCT2/OpenRCT2@develop/README.md))
- [Simulation Engines](https://awesome-repositories.com/f/game-development/simulation-engines.md) — Executes core simulation processes for managing park finances, staff, and infrastructure within a virtual environment. ([source](https://docs.openrct2.io/))
- [Modding Frameworks](https://awesome-repositories.com/f/game-development/tooling-asset-pipeline/modding-frameworks.md) — Provides a suite of tools for injecting custom scripts, modifying game parameters, and extending core mechanics within a classic simulation environment.
- [Modding Toolkits](https://awesome-repositories.com/f/game-development/game-engines-frameworks/game-engines/modding-toolkits.md) — Extends core game mechanics and interface elements by injecting custom logic and scripts directly into the simulation engine.
- [Simulation Behavior Extensions](https://awesome-repositories.com/f/game-development/simulation-engines/simulation-loops/simulation-behavior-extensions.md) — The simulation engine allows users to adjust core game parameters and interface settings to extend gameplay possibilities beyond the original engine constraints. ([source](https://docs.openrct2.io/))

### Networking & Communication

- [Multiplayer Game Servers](https://awesome-repositories.com/f/networking-communication/real-time-communication/multiplayer-game-servers.md) — Provides a network-enabled platform that synchronizes game state across multiple clients to allow cooperative park management and real-time collaborative building.
- [Deterministic Simulation Servers](https://awesome-repositories.com/f/networking-communication/real-time-communication/multiplayer-game-servers/deterministic-simulation-servers.md) — Coordinates real-time network communication using a deterministic lockstep model to ensure synchronized park management across clients. ([source](https://docs.openrct2.io/))

### Web Development

- [Collaborative Simulation Environments](https://awesome-repositories.com/f/web-development/multiplayer-synchronization/collaborative-simulation-environments.md) — Enables cooperative, real-time park management and construction across multiple connected clients in a shared, persistent environment. ([source](https://cdn.jsdelivr.net/gh/OpenRCT2/OpenRCT2@develop/README.md))
- [Scriptable Extensions](https://awesome-repositories.com/f/web-development/extension-support/scriptable-extensions.md) — Exposes internal simulation functions to an external scripting environment to allow for custom gameplay mechanics and interface modifications.

### Software Engineering & Architecture

- [Action-Driven State Mutations](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/application-layer-architectures/state-management-architectures/action-reducer-architectures/action-driven-state-mutations.md) — Routes all game modifications through a centralized validation system to maintain consistency and prevent desynchronization during multiplayer sessions.
- [Custom Action Handlers](https://awesome-repositories.com/f/software-engineering-architecture/custom-action-handlers.md) — Provides a framework for registering custom game logic, ensuring state changes remain synchronized and consistent across all connected multiplayer clients. ([source](https://github.com/OpenRCT2/OpenRCT2/blob/develop/distribution/scripting/scripting.md))
- [Cross-Platform Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/abstraction-domain-modeling/cross-platform-abstraction-layers.md) — Wraps low-level hardware and operating system calls in a unified interface to enable consistent execution across different modern computing environments.
- [Static Asset Decoupling](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/backend-enterprise-systems/data-persistence-architectures/static-asset-decoupling.md) — Separates original game data files from the executable engine to allow for modern platform compatibility and asset reuse.

### Part of an Awesome List

- [Business and Simulation](https://awesome-repositories.com/f/awesome-lists/devtools/business-and-simulation.md) — Re-implementation of a classic theme park management game.
- [Strategy Game Engines](https://awesome-repositories.com/f/awesome-lists/devtools/strategy-game-engines.md) — Recreation of a classic theme park management game.
- [Games & Emulation](https://awesome-repositories.com/f/awesome-lists/media/games-emulation.md) — Re-implementation of a classic theme park simulation game.
- [Strategy and Simulation](https://awesome-repositories.com/f/awesome-lists/more/strategy-and-simulation.md) — Open-source recreation of a classic theme park simulator.

### Data & Databases

- [Legacy Asset Parsers](https://awesome-repositories.com/f/data-databases/file-asset-management/legacy-format-parsers/legacy-asset-parsers.md) — Enables the import of original data files and scenarios from previous titles to ensure full compatibility and restore classic content. ([source](https://docs.openrct2.io/))
