Contribute

So you want to help develop FreeRCT? That's great!

Development happens on our GitHub repo. You need to have an account on GitHub and some basic experience with Git to get started. It's not that hard though; see here for a quickstart guide on how to create a free GitHub account and use Git.

The game is still in an early stage of development and new contributions are always welcome. Just start working on a feature or bugfix and propose it for merging via a pull request (PR) on GitHub. If you like, you can announce what you'll work on, but this is not required. If you are unsure what to work on, look at the list of open issues for inspiration or ask us for pointers.

Graphics Design

Whether you can create 2D graphics for the UI or 3D images for rides and other in-game objects, all contributions are welcome. You can enhance or replace existing images, and submit graphics for new objects which we'll then include in the game.

Sound & Music

Okay, FreeRCT doesn't have a sound engine yet, but that's only because we don't currently have any sound or music at all. If you can design sound effects or compose background music, you're very welcome to create and submit some, and we'll integrate them into the game.

Translating

The source language of FreeRCT is British English (en_GB). All strings are defined in graphics/rcd/lang/<LANGUAGE_CODE>.txt. Enhancing translations for an existing language as well as adding a new language is as easy as opening/creating the respective file for your language and editing the strings therein.

When you add a new language, it additionally needs to be added to the list of all languages in all of the following files:

Search for the string NDS_DE therein to find the section where the language code needs to be added. The lists of languages should be kept in alphabetical order.

Testing

Even if you can't contribute code or art, you're welcome to test FreeRCT and hunt for bugs. Just check out the latest development version with Git, compile, and run. Report any bugs you encounter on the issue tracker (you need a GitHub account for this).

The issue tracker will often contain reports of bugs with no known way to reproduce. Such bugs are usually hard to fix. If you look for a sequence of steps that reliably triggers such a bug, fixing it will become much easier for the developers.

You can also test open PRs. In this case, bugs should be reported in the PR, not on the issue tracker. The PR description will tell you what to watch out for specifically. Currently the only way to test a PR is to compile it yourself. Soon, installable binaries will be provided automatically for all PRs; this site will then be updated with instructions where to get and how to install.

New screenshots for the website's screenshots section are also always appreciated.

Website Scripting

You're welcome to improve this website in every way you can think of.

The site is written in Java 17 using the Spring Boot framework. There's a lot of hand-crafted HTML, CSS, and JavaScript as well. The site is still heavily under development.

Coding For FreeRCT

The FreeRCT engine is coded in C++ using SDL2. Rides and other units are defined in a custom language called the RCD file format.

Please provide Doxygen documentation for your C++ patches. If your feature requires new graphics, it is acceptable to create simple placeholder pics until someone else creates final images.

You can find more technical information in the developer_documentation/ folder of the Git checkout.