Files
OpenRCT2-Unity/readme.md

350 lines
22 KiB
Markdown
Raw Permalink Normal View History

# OpenRCT2 implementation in Unity3D
This fork of the original OpenRCT2 repository is an open-source attempt at running OpenRCT2 in a 3D game engine.
2020-07-09 08:29:14 +02:00
## Progress videos
[#3: Three Monkeys Park onride (30th of May)](https://www.youtube.com/watch?v=9JKYXVSoDlE)
2020-09-21 18:53:32 +02:00
[#2: Diamond Heights (3th of May)](https://www.youtube.com/watch?v=5NeOn0p9ORY)
2020-07-09 08:29:14 +02:00
2020-09-21 18:53:32 +02:00
[#1: Iceberg Islands (22nd of April)](https://www.youtube.com/watch?v=Urvp0uQcGX4)
2020-07-09 08:29:14 +02:00
## How to get it running
As of now there are no release builds yet, because the project is still very much in alpha stage.
### Prerequisites
To get it running inside of Unity, you need the following prerequisites:
- Everything mentioned in OpenRCT2's original [building prerequisites](#31-building-prerequisites).
- [Unity Editor version LTS 2021.3.1f1](https://unity3d.com/unity/whats-new/2021.3.1).
**Note:** only the Windows setup has been tested.
### Running the game
1. Follow the steps in [compiling and running](#32-compiling-and-running) chapter for OpenRCT2.
- Make sure to set the target platform to x64 if you have a 64-bit OS! (As explained in the paragraph after step 4 in the linked chapter.)
- It is not necessary to run OpenRCT2.
2. Open openrct2.sln in Visual Studio 2022.
3. Find the `openrct2-bindings` project in the Solution Explorer and build it. (If it doesn't build, you messed something up in the previous steps.)
4. Start the Unity Editor and navigate to wherever you cloned the repository.
5. Open the project in this directory: [`/src/openrct2-unity/`](https://github.com/Basssiiie/OpenRCT2-Unity/tree/develop/src/openrct2-unity)
6. Once Unity has launched with the project, go to the 'Scenes' folder in the Project window and open ParkScene.
2020-11-11 19:40:29 +01:00
7. Select the OpenRCT2 object in the Hierarchy and copy/paste the full path(s) of your RCT game(s) into the correct fields in the Inspector.
2020-11-11 19:39:35 +01:00
- **OpenRCT2 data path:** data folder for OpenRCT2 data, like new sprites objects. This should be set to use the repository's data path automatically, but can be changed if you know what you are doing.
- **RCT2 path:** points to where RCT2 base game is installed, e.g. `C:/Games/Rollercoaster Tycoon 2`. Required for showing sprites.
- **RCT1 path:** points to where RCT1 game is installed, e.g. `C:/Games/Rollercoaster Tycoon 1`. Required for showing RCT1 sprites, if the park has any.
- **Parks path:** the folder where to load parks from. Defaults to a folder in the repository, but can be changed to another folder.
2020-11-11 19:35:49 +01:00
8. Select a park from the dropdown box.
9. Press the Play button at the top of the editor.
### Ingame camera controls
When the Unity editor is in playmode, the controls for the camera are as follows:
- **Hold right mouse button + move mouse:** rotate the camera.
- **Hold middle mouse button + move mouse:** pan the camera.
- **Arrow keys or WASD keys:** pan the camera faster.
- **Scroll mouse wheel:** zoom in and out.
- **Numpad plus:** make the game run twice as fast.
- **Numpad minus:** make the game run twice as slow.
## How?
OpenRCT2 is an open source C++ project, which allows easy forking and extending the project. Internally this project is seperated into a few different subprojects, all found in the [`/src/`](https://github.com/Basssiiie/OpenRCT2-Unity/tree/develop/src) folder. The interesting one of the bunch is the static library project called `libopenrct2`, because it contains all the code to run logic of the game.
This fork adds two more projects to the mix: `openrct2-bindings` and `openrct2-unity`:
- `openrct2-bindings` imports `libopenrct2` and adds bindings for useful functions within OpenRCT2. These functions together with the static library are then exported as a C++ Dynamicly Linked Library (DLL) for use elsewhere.
2020-07-09 08:29:14 +02:00
- `openrct2-unity` is the Unity C# project. The DLL is imported into this project and its C++ functions are then [marshalled through Platform Invoke](https://docs.microsoft.com/en-us/dotnet/framework/interop/marshaling-data-with-platform-invoke), which is a technology which allows me to call unmanaged C++ libraries from managed C# .NET Framework code.
2020-07-09 08:29:14 +02:00
From there on, the C# code can call the right functions to start the game, load any park and retrieve information about said park, like where it's scenery, rides and peeps are. All this information is then displayed in Unity in real-time, while `libopenrct2` runs doing all the logic of the game in the background.
## Note about contributions:
Since this is my work in progress pet project, the code is subject to random changes. I'm open to contributions but it would be benefitial for both of us to let me know via message (over Discord or Youtube). :D
---
---
---
<p align="center">
<a href="https://openrct2.io">
<img src="https://raw.githubusercontent.com/OpenRCT2/OpenRCT2/develop/resources/logo/icon_x128.png" style="width: 128px;" alt="OpenRCT2 logo"/>
</a>
</p>
<h1 align="center">OpenRCT2</h1>
<h3 align="center">An open-source re-implementation of RollerCoaster Tycoon 2, a construction and management simulation video game that simulates amusement park management.</h3>
2014-04-15 00:50:20 +01:00
---
![OpenRCT2.org Group Park 5](https://i.imgur.com/e7CK5Sc.png)
---
### Download
Release v0.4.1 - Feature: [#16825] Add Alpine Coaster track type. - Feature: [#17011] Option to show ride vehicles as separate entries when selecting a ride to construct. - Feature: [#17217] Add FLAC and OGG/vorbis as supported audio formats for ride music objects. - Feature: [#12328, #17418] Add vehicles for the Hybrid Coaster, Single-Rail Roller Coaster and Classic Mini Roller Coaster. - Improved: [#7983] The red colour in the ride stat screen and the ride graphs now corresponds better to negative effects on a ride’s stats. - Improved: [#13966] Music Style dropdown is now sorted by name. - Improved: [#16978] Tree placement is more natural during map generation. - Improved: [#16992] The checkbox in the visibility column of the Tile Inspector has been replaced with an eye symbol. - Improved: [#16999] The maximum price for the park entry has been raised to £999. - Improved: [#17050] Transparency can be enabled directly without needing see-through enabled first. - Improved: [#17059] Show Tile Inspector usage hint when nothing is selected. - Improved: [#17199] Allow creation of Spiral Slide reskins. - Improved: [#17242] More natural looking shorelines in map generator. - Improved: [#17328] Parks can now be resized into rectangular shapes from the map and map generation windows. - Change: [#16952] Make “Object Selection” order more coherent. - Change: [#17002] Weather no longer resets when converting a save to scenario. - Change: [#17294] New ride window remembers scroll position per tab instead of highlighted ride. - Removed: [#16864] Title sequence editor (replaced by plug-in). - Removed: [#16911, #17411] Residual support for pre-Vista Windows systems. - Fix: [#13997] Placing a track design interferes with other players building a ride. - Fix: [#15787] When deselecting "Show banner text in upper case", the banners remain upper case for 10 seconds. - Fix: [#16539] CustomListView header not clickable when listview is scrolled. - Fix: [#16799] Browsing “Up” in the Load Save window shows no files, only folders. - Fix: [#16934] Park size displayed incorrectly in Park window. - Fix: [#16974] Small scenery ghosts can be deleted. - Fix: [#16989] Re-focusing maximised window triggers a restore and maximise. - Fix: [#17005] Unable to set patrol area for first staff member in park. - Fix: [#17017] [Plugin] Crash when using tile element properties that require a valid ride to be linked. - Fix: [#17073] Corrupt ride window and random crashes when trains have more than 144 cars. - Fix: [#17080] “Remove litter” cheat does not empty litter bins. - Fix: [#17099] Object selection thumbnail box is one pixel too tall. - Fix: [#17104] Changing map size does not invalidate park size. - Fix: [#17157] Crash when browsing “Up” to folder with CJK characters in its name. - Fix: [#17187] Text input window does not resize correctly. - Fix: [#17197] Segfault when extracting files from the GOG installer. - Fix: [#17205] Map generator sometimes crashes when not all standard terrain objects are available. - Fix: [#17221] Object ghosts and tooltips follow invisible cursor when moving the viewport by right-click dragging. - Fix: [#17255] Cursor position is incorrect when adjusting terrain and water height. - Fix: [#17257] [Plugin] Add tertiary colour to large scenery scripting API. - Fix: [#17261] Hand cursor position is incorrect when dragging items in the Inventions List window. - Fix: [#17292] Rows in shortcut key list stay highlighted when cursor leaves list. - Fix: [#17295] Pause status not cleared when loading a scenario made from a converted paused save. - Fix: [#17310] Reversed reversible vehicles not imported properly when loading RCT1 parks. - Fix: [#17335] [Plugin] Documentation has an incorrect type for PixelData ‘data’ attribute. - Fix: [#17337] Air Powered Vertical Coaster trains not imported properly when loading RCT1 parks. - Fix: [#17346] Surface height markers are concealed by sprites of same surface. - Fix: [#17369] [Plugin] ‘Car.travelBy()’ moves other cars as well. - Fix: [#17377] When building the park entrance before opening the Footpaths window, the path will be invisible. - Fix: [#17381] Air Powered Vertical Coaster stat penalty is wrong. - Fix: [#17399] Guests never generate the being watched thought. - Fix: [#17433] Wrong T-shirt colours for guests on a Twist ride. - Fix: [#17450] Ducks can swim on three-corners-up land tile. - Fix: [#17461] Footpath Railing tooltip showing incorrect tooltip. - Fix: [#17464] Green Tarmac footpath is not available in the Track Designer. - Fix: [#17466] New object types not packed in save files. - Fix: [#17481] Roto-drop cars try going up to top pieces that are ghosts or belong to other rides.
2022-07-04 18:53:36 +02:00
| Latest release | Latest development build |
|-----------------------------------------------------------------------------------------------------------------------|--------------------------|
Release v0.4.15 - Feature: [#775] Add 2x and 4x zoom levels to software renderer (previously limited to OpenGL). - Feature: [#15642] Track design placement can now use construction modifier keys (ctrl/shift). - Feature: [#20539] [Plugin] Add API for getting a ride’s statistics. - Feature: [#21521] [Plugin] Add hook 'park.guest.softcap.calculate' called before calculating the soft guest cap. - Feature: [#22383] Add downward-inclined brakes to hybrid coaster and single rail coaster. - Feature: [#22694] Park graphs have tooltips and can be resized like finance graphs. - Feature: [#22758] The table of ‘real’ peep names can now be changed using Peep Names objects. - Feature: [#22842] [Plugin] Expose large scenery object tiles to the plugin API. - Feature: [#22883] [Plugin] Add plugin API for spawning guests. - Improved: [#22470] Android: automatically detect RCT2 installs in /sdcard/rct2. - Improved: [#22735] The map generator has a redesigned interface that is much more user friendly. - Improved: [#22777] Add long flat-to-steep track pieces to the Wooden and Classic Wooden Roller Coasters. - Improved: [#22815] Add long flat-to-steep track pieces to the Mine Train Coaster. - Change: [#22494] Themes window now displays colours and checkboxes vertically. - Change: [#22596] Land ownership fixes described by .parkpatch files are now only considered on scenarios. - Change: [#22724] Staff now have optional ‘real’ names as well. - Change: [#22740] Add virtual floor to shifted track design placement. - Change: [#22795] Replace Giga Coaster and Twister Roller Coaster booster images. - Fix: [#2614] The colour tab of the ride window does not hide invisible cars (original bug). - Fix: [#7672] Wide path status is set to all ‘wide’ paths, instead of only a quarter, impeding pathfinding. - Fix: [#15406] Tunnels on steep Side-Friction track are drawn too low. - Fix: [#21959] “Save this before...?” message does not appear when selecting “New Game”. - Fix: [#22072] Objective date string and staff tenure date string cannot be reused on agglutinative languages. - Fix: [#22133] Ride time is incorrect for extremely slow speeds. - Fix: [#22231] Invalid object version can cause a crash. - Fix: [#22479] Crash when a ride has no valid music object. - Fix: [#22562] Bottom row of pixels is not always drawn by the OpenGL renderer when zoomed in. - Fix: [#22653] Missing water tiles in RCT1 and RCT2 scenarios. - Fix: [#22654] Misplaced scenario elements in RCT1 and RCT2 scenarios. - Fix: [#22655] Incorrectly set surface style around missing water tiles on Botany Breakers. - Fix: [#22729] Invisibility settings persist after reloading OpenRCT2. - Fix: [#22734] Support clearance above steep Side-Friction track is too low. - Fix: [#22774] Fix entities leaving stale pixels on the screen when the framerate is uncapped. - Fix: [#22805] Fix deadzone when panning the view in positive axis directions. - Fix: [#22808] Incorrect support rotation on some Mini Roller Coaster track pieces. - Fix: [#22857] Side-Friction Roller Coaster train clips through slopes. - Fix: [#22880] macOS builds lack asset packs and scenario patches. - Fix: [#22891] [Plugin] getInstalledObject API function not implemented. - Fix: [objects#346] Invalid refund price for Brick Base Block scenery item.
2024-10-06 16:35:07 +02:00
| [![OpenRCT2.org](https://img.shields.io/badge/master-v0.4.15-green.svg)](https://openrct2.org/downloads/master/latest) | [![OpenRCT2.org](https://img.shields.io/github/last-commit/OpenRCT2/OpenRCT2/develop)](https://openrct2.org/downloads/develop/latest) |
2014-08-16 17:05:57 +01:00
---
2016-03-21 12:46:40 +00:00
### Chat
2020-04-05 16:54:21 +02:00
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.
2022-06-06 21:52:47 +02:00
| Language | Non Developer | Developer | Localisation | Asset Replacement |
| -------- | ------------- | --------- | ------------ | ----------------- |
| English | [![Discord](https://img.shields.io/badge/discord-%23openrct2--talk-blue.svg)](https://discord.gg/ZXZd8D8) </br> [![Discord](https://img.shields.io/badge/discord-%23help-blue.svg)](https://discord.gg/vJABqGGTEt) | [![Discord](https://img.shields.io/badge/discord-%23development-yellowgreen.svg)](https://discord.gg/fsEwSWs) | [![Discord](https://img.shields.io/badge/discord-%23localisation-green.svg)](https://discord.gg/sxnrvX9) | [![Discord](https://img.shields.io/badge/discord-%23open--graphics-b00b69.svg)](https://discord.gg/aM2Pchscnp) </br> [![Discord](https://img.shields.io/badge/discord-%23open--sound--and--music-b00b69.svg)](https://discord.gg/tuz3QBBWJf)
| Nederlands | [![Discord](https://img.shields.io/badge/discord-%23nederlands-orange.svg)](https://discord.gg/cQYSXzW) | | |
---
2014-11-03 18:24:43 +00:00
2014-04-15 00:50:20 +01:00
# Contents
- 1 - [Introduction](#1-introduction)
2016-06-19 01:55:36 +01:00
- 2 - [Downloading the game (pre-built)](#2-downloading-the-game-pre-built)
- 3 - [Building the game](#3-building-the-game)
- 3.1 - [Building prerequisites](#31-building-prerequisites)
- 3.2 - [Compiling and running](#32-compiling-and-running)
- 4 - [Contributing](#4-contributing)
- 4.1 - [Bug fixes](#41-bug-fixes)
- 4.2 - [New features](#42-new-features)
- 4.3 - [Translation](#43-translation)
2018-10-19 03:28:22 -04:00
- 4.4 - [Graphics](#44-graphics)
- 4.5 - [Audio](#45-audio)
- 4.6 - [Scenarios](#46-scenarios)
2016-06-19 01:55:36 +01:00
- 5 - [Licence](#5-licence)
- 6 - [More information](#6-more-information)
2018-03-01 23:36:57 +01:00
- 7 - [Sponsors](#7-sponsors)
2014-04-15 00:50:20 +01:00
---
# 1. Introduction
2014-04-15 00:50:20 +01:00
2016-06-19 01:55:36 +01:00
**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.
2014-04-15 00:50:20 +01:00
2021-02-23 02:52:43 +03:00
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](https://openttd.org). 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.
2014-04-15 00:50:20 +01:00
---
# 2. Downloading the game (pre-built)
2014-04-15 00:50:20 +01:00
2024-08-31 11:32:00 -03:00
OpenRCT2 requires original files of RollerCoaster Tycoon 2 to play. It can be bought at either [Steam](https://store.steampowered.com/app/285330/RollerCoaster_Tycoon_2_Triple_Thrill_Pack/) or [GOG.com](https://www.gog.com/game/rollercoaster_tycoon_2). If you have the original RollerCoaster Tycoon and its expansion packs, you can [point OpenRCT2 to these](https://github.com/OpenRCT2/OpenRCT2/wiki/Loading-RCT1-scenarios-and-data) in order to play the original scenarios.
2014-04-15 00:50:20 +01:00
2024-08-31 11:32:00 -03:00
[Our website](https://openrct2.io/download) offers portable builds and installers with the latest versions of the `master` and `develop` branches. There is also a [launcher](https://openrct2.io/download/launcher) available for Windows and Linux that will automatically update your build of the game so that you always have the latest version.
2024-08-31 11:32:00 -03:00
Alternatively to using the launcher, for most Linux distributions, we recommend the [latest Flatpak release](https://flathub.org/apps/details/io.openrct2.OpenRCT2). When downloading from Flathub, you will always receive the latest updates regardless of which Linux distribution you use.
2024-08-31 11:32:00 -03:00
Some Linux distributions offer native packages:
* Arch Linux: [openrct2](https://archlinux.org/packages/extra/x86_64/openrct2/) latest release (`extra` repository) and, alternatively, [openrct2-git](https://aur.archlinux.org/packages/openrct2-git) (AUR)
* Gentoo (main portage tree): [games-simulation/openrct2](https://packages.gentoo.org/packages/games-simulation/openrct2)
* NixOS (`nixos-unstable` channel): [openrct2](https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/openrct2/default.nix)
2024-08-31 11:32:00 -03:00
* openSUSE OBS: [games/openrct2](https://software.opensuse.org/download.html?project=games&package=openrct2)
* Ubuntu PPA (nightly builds): [`develop` branch](https://launchpad.net/~openrct2/+archive/ubuntu/nightly)
2024-08-31 11:32:00 -03:00
Some \*BSD operating systems offer native packages:
* FreeBSD: [games/openrct2](https://www.freshports.org/games/openrct2)
* OpenBSD: [games/openrct2](https://openports.se/games/openrct2)
---
# 3. Building the game
2015-03-21 11:18:45 -07:00
2016-06-19 01:55:36 +01:00
## 3.1 Building prerequisites
2014-04-15 00:50:20 +01:00
2021-02-23 02:52:43 +03:00
OpenRCT2 requires original files of RollerCoaster Tycoon 2 to play. It can be bought at either [Steam](https://store.steampowered.com/app/285330/) or [GOG.com](https://www.gog.com/game/rollercoaster_tycoon_2).
<details>
<summary>Windows prerequisites</summary>
There are two toolchain options for building the game on Windows:
- Visual Studio 2022 (Enterprise / Professional / [Community (Free)](https://www.visualstudio.com/vs/community/))
- Desktop development with C++
- MSYS2 MinGW Toolchain
- The toolchains with supported dependencies are `mingw-x86_64`, `mingw-xi686`, `ucrt-x86_64`, `clang-x86_64`, and `clang-xi686`. Each of these require the `$MINGW_PACKAGE_PREFIX` set.
- Note that `msys` and `clangarm-64` are lacking packages for some dependencies.
The projects depends on several libraries to be installed. These can be installed automatically using `msbuild` for Visual Studio builds. See section 3.2 for details.
For MinGW builds, see the wiki for [the actual package names used in pacman](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-MSYS2-MinGW).
</details>
2016-10-24 03:58:10 -05:00
<details>
<summary>macOS prerequisites</summary>
- Xcode Command Line Tools
- [Homebrew](https://brew.sh)
- CMake (available through Homebrew)
2014-05-23 14:29:09 +02:00
</details>
<details>
<summary>Linux prerequisites</summary>
2024-02-28 21:57:08 +01:00
- gcc (>= 8.0) or clang (>= 10.0) (for C++20 support)
- 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.
2016-10-24 03:58:10 -05:00
</details>
---
2016-06-19 01:55:36 +01:00
## 3.2 Compiling and running
2014-05-23 14:29:09 +02:00
### Windows:
<details>
<summary>Show instructions</summary>
2023-01-12 13:37:20 +01:00
1. Check out the repository, this can be done using [GitHub Desktop](https://desktop.github.com) or [other tools](https://help.github.com/articles/which-remote-url-should-i-use)
2. Open a new Developer Command Prompt for VS 2022
3. Navigate to the repository (e.g. `cd C:\GitHub\OpenRCT2`)
4. To build the x64 version, use `msbuild openrct2.proj /t:build /p:platform=x64`
To build the x86 version, use `msbuild openrct2.proj /t:build /p:platform=Win32`
To build the Arm64 version, use `msbuild openrct2.proj /t:build /p:platform=arm64`
**Note:** The file `g2.dat` may not be generated on cross-compilation (e.g. building for Arm64 on a x64 machine). In this case `g2.dat` must be copied from a x86/x64 build.
2023-01-12 13:37:20 +01:00
5. Run the game, `bin\openrct2`
2016-08-25 23:58:43 +01:00
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 x86 version, `x64` for the x64 version, `arm64` for the Arm64 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
```
</details>
2014-04-15 00:50:20 +01:00
2016-10-24 03:58:10 -05:00
### macOS:
<details>
<summary>Show instructions</summary>
CMake can build either a self-contained application bundle, which includes 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 dependencies from [Dependencies](https://github.com/OpenRCT2/Dependencies/) automatically. You can build the macOS app using CMake using the following commands:
```
cmake -S . -B build
cmake --build build --target install
```
Then you can run the game by opening `OpenRCT2.app`
2014-08-17 21:01:05 +01:00
To build the command line version, you'll need to disable the macOS app bundle:
```
cmake -S . -B build -DMACOS_BUNDLE=off
cmake --build build
cmake --build build --target install
ln -s ../data data
```
Then you can run the game by running `./openrct2`.
2014-08-17 21:01:05 +01:00
To link against system dependencies instead of letting CMake download the dependencies from [Dependencies](https://github.com/OpenRCT2/Dependencies), add `-DMACOS_USE_DEPENDENCIES=off` to your cmake args.
Detailed instructions can be found on [Building OpenRCT2 on macOS using CMake](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-macOS-using-CMake).
</details>
2014-05-23 14:29:09 +02:00
### Linux:
<details>
<summary>Show instructions</summary>
The standard CMake build procedure is to install the [required libraries](https://github.com/OpenRCT2/OpenRCT2#linux), then:
```
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=. # set your standard cmake options, e.g. build type here - For example, -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build # you can parallelise your build job with e.g. -j 8 or consider using ninja
cmake --build build --target install # the install target creates all the necessary files in places we expect them
```
You can also use Ninja in place of Make using `-G Ninja` in the first command, if you prefer, see Wiki for details.
Detailed instructions can be found on [Building OpenRCT2 on Linux](https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-Linux).
Note: the `cmake -S . -B build` syntax is available for CMake >= 3.14. For older versions use:
```
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=. # set your standard cmake options, e.g. build type here - For example, -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build . --target install
```
</details>
2014-05-23 14:29:09 +02:00
---
# 4. Contributing
OpenRCT2 uses the [gitflow workflow](https://www.atlassian.com/git/tutorials/comparing-workflows#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.
2014-04-15 00:50:20 +01:00
2015-09-09 18:25:48 +01:00
Please read our [contributing guidelines](https://github.com/OpenRCT2/OpenRCT2/blob/develop/CONTRIBUTING.md) for information.
2016-06-19 01:55:36 +01:00
## 4.1 Bug fixes
A list of bugs can be found on the [issue tracker](https://github.com/OpenRCT2/OpenRCT2/issues). 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.
2014-04-15 00:50:20 +01:00
2016-06-19 01:55:36 +01:00
## 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.
2016-06-19 01:55:36 +01:00
## 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](https://discordapp.com/invite/sxnrvX9) and submit pull requests to [OpenRCT2/Localisation](https://github.com/OpenRCT2/Localisation).
2014-04-15 00:50:20 +01:00
2018-10-19 03:28:22 -04:00
## 4.4 Graphics
You can help create new graphics for the game by visiting the [OpenGraphics project](https://github.com/OpenRCT2/OpenGraphics). 3D modellers needed!
2018-10-19 03:28:22 -04:00
## 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](https://discord.gg/9y8WbcX) to find out more.
2018-10-19 03:28:22 -04:00
## 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](https://github.com/PFCKrutonium/OpenRCT2-OpenScenarios).
2018-10-19 03:28:22 -04:00
---
# 5. Licence
2024-08-31 11:32:00 -03:00
**OpenRCT2** is licensed under the GNU General Public License version 3 or (at your option) any later version. See the [`licence.txt`](licence.txt) file for more details.
2014-12-09 18:31:46 +00:00
---
# 6. More information
2015-06-24 09:14:07 -07:00
- [GitHub](https://github.com/OpenRCT2/OpenRCT2)
- [OpenRCT2.org](https://openrct2.org)
- [Forums](https://openrct2.org/forums/)
2014-12-09 18:31:46 +00:00
- [Facebook](https://www.facebook.com/OpenRCT2)
2021-02-23 02:52:43 +03:00
- [RCT subreddit](https://www.reddit.com/r/rct/)
- [OpenRCT2 subreddit](https://www.reddit.com/r/openrct2/)
## Similar Projects
| [OpenLoco](https://github.com/OpenLoco/OpenLoco) | [OpenTTD](https://github.com/OpenTTD/OpenTTD) | [openage](https://github.com/SFTtech/openage) | [OpenRA](https://github.com/OpenRA/OpenRA) |
|:------------------------------------------------:|:----------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------:|
2021-04-27 13:43:58 +02:00
| [![icon_x128](https://user-images.githubusercontent.com/604665/53047651-2c533c00-3493-11e9-911a-1a3540fc1156.png)](https://github.com/OpenLoco/OpenLoco) | [![](https://github.com/OpenTTD/OpenTTD/raw/850d05d24d4768c81d97765204ef2a487dd4972c/media/openttd.128.png)](https://github.com/OpenTTD/OpenTTD) | [![](https://user-images.githubusercontent.com/550290/36507534-4693f354-175a-11e8-93a7-faa0481474fb.png)](https://github.com/SFTtech/openage) | [![](https://raw.githubusercontent.com/OpenRA/OpenRA/bleed/packaging/artwork/ra_128x128.png)](https://github.com/OpenRA/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](https://www.digitalocean.com/) | [JetBrains](https://www.jetbrains.com/) | [Backtrace](https://backtrace.io/) |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| [![do_logo_vertical_blue svg](https://user-images.githubusercontent.com/550290/36508276-8b572f0e-175c-11e8-8622-9febbce756b2.png)](https://www.digitalocean.com/) | [![jetbrains](https://user-images.githubusercontent.com/550290/36413299-0e0985ea-161e-11e8-8a01-3ef523b5905b.png)](https://www.jetbrains.com/) | [![backtrace](https://user-images.githubusercontent.com/550290/47113259-d0647680-d258-11e8-97c3-1a2c6bde6d11.png)](https://backtrace.io/) |
| Hosting of various services | CLion and other products | Minidump uploads and inspection |