8ceea45877
- Feature: [#6326] Ability to load .SV6 files from RCT Classic that have more than 9601 guests. - Feature: [#6570, #10860, #17929] Fully support RollerCoaster Tycoon Classic as a RCT2 base install path. - Feature: [#13634] Add ability to sell merchandise in random colours. - Feature: [#16164] Add new track elements for Flying Coaster and Lay-Down Coaster and add paint code for more elements. - Feature: [#16283] Added parkinfo command line tool to list objects in a save file. - Feature: [#16662] Show a warning message when g2.dat is mismatched. - Feature: [#17107] Ride operating settings can be set via text input. - Feature: [#17638] Added Zero G rolls, medium loops and large corkscrews to the Hybrid and Single-Rail coasters. - Feature: [#17821] [Plugin] Add API for track subpositions and vehicle subposition. - Feature: [#17877] Add three real-life flying roller coaster colour schemes. - Feature: [#17900] Add “Classic Wooden Coaster” with shallow banked turns. - Feature: [#18057] Staff members now wait for passing or stalled vehicles before crossing railway tracks. - Feature: [#18168] Add additional track pieces to the LIM Launched Coaster and the Looping Coaster. - Feature: [objects#198] Add additional pirate roofs. - Feature: [objects#205] Add additional glass roofs. - Feature: [objects#209] Add the Steel Roller Coaster train and 2-across Inverted Train from RollerCoaster Tycoon 1. - Feature: [#18050] Add asset pack manager and asset packs. - Improved: [#15358] Park and scenario names can now contain up to 128 characters. - Improved: [#15589] Numpad Enter can now be used to close text input. - Improved: [#16819] Don’t prompt to “Save game as” when saving a loaded saved game (excepting autosaves). - Improved: [#16840] Add support for rectangular heightmaps. - Improved: [#17575] You can now search for Authors in Object Selection. - Improved: [#17806] Added warning when using RCT1 objects without RCT1 linked. - Improved: [#17868] [Plugin] You can now change active tab of a custom window programmatically. - Improved: [#17909] Track elements that are not supported by any train are now hidden by default. - Improved: [#17924] Improved performance when loading JSON object images from a .DAT file. - Improved: [#17955] Modifying ratings via in-game console is now multiplayer-safe and also freezes the ratings. - Improved: [#18177] [Plugin] Widget tooltips can now be read and changed. - Change: [#9104] Calculate maze support costs. - Change: [#17319] Giant screenshots are now cropped to the horizontal view-clipping selection. - Change: [#17499] Update error text when using vehicle incompatible with TD6 and add error when using incompatible track elements. - Change: [#17655] Lower default price for the Crooked House. - Change: [#17745] Make maintenance cost of Mini-Golf more balanced. - Change: [#17762] Use vertical tabs in the New Game dialog. - Change: [#18113] Increased limit of Loan Interest in Scenario Editor to 255%. - Fix: [#5141] Headless server is counted as a player. - Fix: [#7466] Coaster track not drawn at tunnel exit. - Fix: [#10535] Guests getting stuck at specific level crossings. - Fix: [#14337] Guest blocking ride entrance after ride price changed to be unaffordable. - Fix: [#15328] Wooden Roller Coaster incorrectly draws a railing on the first station piece (original bug). - Fix: [#16392] Scenery on sloped surface is placed at wrong height. - Fix: [#16476] The game sometimes crashes when demolishing a maze. - Fix: [#17053] Crash when trying to open files under 4 bytes in length. - Fix: [#17312] (Flying) Inline Twist appearing under the surface when placed on ground level. - Fix: [#17339] Distorted visuals when changing scaling factor between integer numbers in OpenGL rendering mode. - Fix: [#17394] Six-seater Hyper-Twister Trains focuses ride window camera on Car 2 rather than Car 1 (original bug). - Fix: [#17430] Possible crash when toggling tile element visibility in multiplayer. - Fix: [#17444] “Manta Ray” boats slowed down too much in “Ayers Rock” scenario (original bug). - Fix: [#17503] Parks with staff with an ID of 0 have all staff windows focus on that staff. - Fix: [#17508] Grid doesn’t disable after setting patrol area. - Fix: [#17532] Object Selection window allows unselecting all station types. - Fix: [#17533] Missing audio when specifying ‘--rct2-data-path’. - Fix: [#17535] Multiplayer desync when placing rides with scenery. - Fix: [#17541] Station style not correctly saved to TD6. - Fix: [#17542] Stalls will autorotate towards paths outside the park. - Fix: [#17544, #17754] Visual glitches in Invention List window. - Fix: [#17553] Crash when moving invention list items to empty list. - Fix: [#17571] All researched tracked rides show up as new vehicles in .park scenarios. - Fix: [#17600] Notifications are not properly cleared when loading a park. - Fix: [#17605] Crash when opening parks which have had objects removed externally. - Fix: [#17639, 17735] When building upside down, the special elements list contains many items twice (original bug). - Fix: [#17664] Unable to save after an extended period of time due to inactive ride music data leaking. - Fix: [#17703] (undefined string) when building on invalid height. - Fix: [#17776] “Other Parks” tab uses separate lists for SC4/SC6 and .park scenarios. - Fix: [#17784] Colour preset RNG is biased (original bug). - Fix: [#17788] Guests could leave queue if another guest rejoins it from the entrance building. - Fix: [#17834] Finance window becomes blank after 4096 years. - Fix: [#17816] Option to pause game when Steam Overlay is active is not greyed out when using the OpenGL renderer. - Fix: [#17897] Guest can get stuck on tiles with construction rights outside the park. - Fix: [#17904] Trees are removed at no cost to make way for ride entrance/exits. - Fix: [#17905] The chain button in the map window is enabled for rectangular maps when (re)opened. - Fix: [#17931] The in-game command ‘count_objects’ crashes the game. - Fix: [#17865] With difficult guest generation, tested but unopened rides still contribute to the guest cap. - Fix: [#17866] [Plugin] Wrong Soft Guest Cap at start of new game. - Fix: [#17889] Peeps don’t stop at level railway crossings if approached from downhill. - Fix: [#17980] Queue lines of track designs mess up existing queue lines if dragged through them. - Fix: [#17959] Areas marked for dirty drawing are too large. - Fix: [#17963] Some marketing campaigns can’t be started after Finances window tab has been on Research. - Fix: [#17964] Sprites don’t show up on two sides of the view-clip selection. - Fix: [#17966] Reversed steel trains do not properly import from S4. - Fix: [#17973] Bins and lamps overlay parts of the land (original bug). - Fix: [#18008] Steeplechase S-bends has multiple gaps visible in the tracks (original bug). - Fix: [#18009] Visual glitch with litter at edge of sloped path. - Fix: [#18025] Fix land ownership in Six Holland, Six Flags Magic Mountain, North America - Grand Canyon and Asia - Great Wall of China Tourism Enhancement scenarios. - Fix: [#18026] Park rating drops to 0 with more than 32k guests, total ride excitement or intensity. - Fix: [#18032] All non-interactive widgets (labels, groupboxes) produce sound when clicked. - Fix: [#18035] Favourited servers don’t get their online status updated. - Fix: [#18051] Visual glitch with Mine Ride’s large unbanked turn (original bug). - Fix: [#18059] [Plugin] Width and height of custom window not changeable via script. - Fix: [#18063] Guests can stop for all kinds of actions at railway crossing. - Fix: [#18087] Bank balance is clamped to a 32-bit integer every transaction. |
||
---|---|---|
.github | ||
.vscode | ||
cmake | ||
data | ||
debian | ||
distribution | ||
docs | ||
resources | ||
scripts | ||
src | ||
test/tests | ||
.clang-format | ||
.codecov.yml | ||
.commitlint.json | ||
.dockerignore | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
CMakeLists.txt | ||
CMakeLists_mingw.txt | ||
CMakeSettings.json | ||
CONTRIBUTING.md | ||
OpenRCT2.entitlements | ||
contributors.md | ||
licence.txt | ||
openrct2.common.props | ||
openrct2.proj | ||
openrct2.sln | ||
openrct2.targets | ||
readme.md | ||
shell.nix |
readme.md
OpenRCT2
An open-source re-implementation of RollerCoaster Tycoon 2, a construction and management simulation video game that simulates amusement park management.
Download
Latest release | Latest development build |
---|---|
Chat
Chat takes place on Discord. You will need to create a Discord account if you don't yet have one.
If you want to help make the game, join the developer channel.
If you need help, want to talk to the developers, or just want to stay up to date then join the non-developer channel for your language.
If you want to help translate the game to your language, please stop by the Localisation channel.
Language | Non Developer | Developer | Localisation | Asset Replacement |
---|---|---|---|---|
English | |
|
||
Nederlands |
Contents
- 1 - Introduction
- 2 - Downloading the game (pre-built)
- 3 - Building the game
- 3.1 - Building prerequisites
- 3.2 - Compiling and running
- 4 - Contributing
- 4.1 - Bug fixes
- 4.2 - New features
- 4.3 - Translation
- 4.4 - Graphics
- 4.5 - Audio
- 4.6 - Scenarios
- 5 - Licence
- 6 - More information
- 7 - Sponsors
1. Introduction
OpenRCT2 is an open-source re-implementation of RollerCoaster Tycoon 2 (RCT2). The gameplay revolves around building and maintaining an amusement park containing attractions, shops and facilities. The player must try to make a profit and maintain a good park reputation whilst keeping the guests happy. OpenRCT2 allows for both scenario and sandbox play. Scenarios require the player to complete a certain objective in a set time limit whilst sandbox allows the player to build a more flexible park with optionally no restrictions or finance.
RollerCoaster Tycoon 2 was originally written by Chris Sawyer in x86 assembly and is the sequel to RollerCoaster Tycoon. The engine was based on Transport Tycoon, an older game which also has an equivalent open-source project, OpenTTD. OpenRCT2 attempts to provide everything from RCT2 as well as many improvements and additional features, some of these include support for modern platforms, an improved interface, improved guest and staff AI, more editing tools, increased limits, and cooperative multiplayer. It also re-introduces mechanics from RollerCoaster Tycoon that were not present in RollerCoaster Tycoon 2. Some of those include; mountain tool in-game, the "have fun" objective, launched coasters (not passing-through the station) and several buttons on the toolbar.
2. Downloading the game (pre-built)
OpenRCT2 requires original files of RollerCoaster Tycoon 2 to play. It can be bought at either Steam or GOG.com. If you have the original RollerCoaster Tycoon and its expansion packs, you can point OpenRCT2 to these in order to play the original scenarios.
OpenRCT2.org offers precompiled builds and installers of the latest master and the develop branch. There is also a cross platform Launcher available that will automatically update your build of the game so that you always have the latest version.
Flathub offers flatpaks for Linux distributions that support this application distribution system:
Some Linux distributions offer native packages already. These packages are usually third-party, but we're trying to resolve issues they are facing.
- ArchLinux: openrct2-git (AUR) and openrct2 (Community)
- Ubuntu PPA:
develop
branch (nightly builds) - openSUSE OBS: games/openrct2
- Gentoo (main portage tree): games-simulation/openrct2
- NixOS (
nixos-unstable
channel): openrct2 - Fedora 28 i386/amd64: openrct2
Some *BSD operating systems offer native packages. These packages are usually third-party, but we're trying to resolve issues they are facing.
- FreeBSD: games/openrct2
- OpenBSD: games/openrct2
3. Building the game
3.1 Building prerequisites
OpenRCT2 requires original files of RollerCoaster Tycoon 2 to play. It can be bought at either Steam or GOG.com.
Windows:
- Visual Studio 2022 (Enterprise / Professional / Community (Free))
- Desktop development with C++
macOS:
- Xcode Command Line Tools
- Homebrew
- CMake (available through Homebrew)
Linux:
- sdl2 (only for UI client)
- freetype (can be disabled)
- fontconfig (can be disabled)
- libzip (>= 1.0)
- libpng (>= 1.2)
- speexdsp (only for UI client)
- curl (only if building with http support)
- nlohmann-json (>= 3.6.0)
- openssl (>= 1.0; only if building with multiplayer support)
- icu (>= 59.0)
- zlib
- gl (commonly provided by Mesa or GPU vendors; only for UI client, can be disabled)
- cmake
- innoextract (optional runtime dependency; used for GOG installer extraction during setup)
Refer to https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-Linux#required-packages-general for more information about installing the packages.
3.2 Compiling and running
Windows:
-
Check out the repository. This can be done using GitHub Desktop or other tools.
-
Open a new Developer Command Prompt for VS 2022, then navigate to the repository (e.g.
cd C:\GitHub\OpenRCT2
). -
To build the 64-bit version, use
msbuild openrct2.proj /t:build /p:platform=x64
.To build the 32-bit version, use
msbuild openrct2.proj /t:build /p:platform=Win32
. -
Run the game,
bin\openrct2
Once you have ran msbuild once, further development can be done within Visual Studio by opening openrct2.sln
. Make sure to select the correct target platform for which you ran the build in point #3 (Win32
for the 32-bit version, x64
for the 64-bit version), otherwise the build will fail in Visual Studio.
Other examples:
set platform=x64
msbuild openrct2.proj /t:clean
msbuild openrct2.proj /t:rebuild /p:configuration=release
msbuild openrct2.proj /t:g2
msbuild openrct2.proj /t:PublishPortable
macOS:
CMake:
The recommended way of building OpenRCT2 for macOS is with CMake. CMake can build either a self-contained application bundles which include all the necessary game files and dependencies, or it can build a command line version that links against system installed dependencies. CMake will retrieve the dependences from Dependencies automatically. You can build the macOS app using CMake using the following commands:
mkdir build
cd build
cmake ..
make install
Then you can run the game by opening OpenRCT2.app
To build the command line version, you'll need to disable the macOS app bundle:
mkdir build
cd build
cmake .. -DMACOS_BUNDLE=off
make
ln -s ../data data
Then you can run the game by running ./openrct2
.
To link against system dependencies instead of letting CMake download the dependencies from Dependencies, add -DMACOS_USE_DEPENDENCIES=off
to your cmake args.
Detailed instructions can be found on Building OpenRCT2 on macOS using CMake.
Linux:
The standard CMake build procedure is to install the required libraries, then:
mkdir build
cd build
cmake ../ # set your standard cmake options, e.g. build type here - For example, -DCMAKE_BUILD_TYPE=RelWithDebInfo
make # you can parallelise your build job with e.g. -j8 or consider using ninja
DESTDIR=. make install # the install target creates all the necessary files in places we expect them
You can also use Ninja in place of Make, if you prefer, see Wiki for details.
Detailed instructions can be found on Building OpenRCT2 on Linux.
4. Contributing
OpenRCT2 uses the gitflow workflow. If you are implementing a new feature or logic from the original game, please branch off and perform pull requests to develop
. If you are fixing a bug for the next release, please branch off and perform pull requests to the correct release branch. master
only contains tagged releases, you should never branch off this.
Please read our contributing guidelines for information.
4.1 Bug fixes
A list of bugs can be found on the issue tracker. Feel free to work on any bug and submit a pull request to the develop branch with the fix. Mentioning that you intend to fix a bug on the issue will prevent other people from trying as well.
4.2 New features
Please talk to the OpenRCT2 team first before starting to develop a new feature. We may already have plans for or reasons against something that you'd like to work on. Therefore contacting us will allow us to help you or prevent you from wasting any time. You can talk to us via Discord, see links at the top of this page.
4.3 Translation
You can translate the game into other languages by editing the language files in data/language
directory. Please join discussions in the #localisation channel on Discord and submit pull requests to OpenRCT2/Localisation.
4.4 Graphics
You can help create new graphics for the game by visiting the OpenGraphics project. 3D modellers needed!
4.5 Audio
You can help create the music and sound effects for the game. Check out the OpenMusic repository and drop by our #open-sound-and-music channel on Discord to find out more.
4.6 Scenarios
We would also like to distribute additional scenarios with the game, when the time comes. For that, we need talented scenario makers! Check out the OpenScenarios repository.
5. Licence
OpenRCT2 is licensed under the GNU General Public License version 3.
6. More information
Similar Projects
OpenLoco | OpenTTD | openage | OpenRA |
---|---|---|---|
Chris Sawyer's Locomotion | Transport Tycoon Deluxe | Age of Empires 2 | Red Alert |
7. Sponsors
Companies that kindly allow us to use their stuff:
DigitalOcean | JetBrains | Backtrace |
---|---|---|
Hosting of various services | CLion and other products | Minidump uploads and inspection |