Contribute

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

Development happens on our Codeberg repo. You need to have an account on Codeberg and some basic experience with Git to get started.

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 Codeberg. 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

Translation status

Translations are managed via Weblate. All you need is an account on Codeberg and simply start translating.

The source language of FreeRCT is British English (en_GB). When you want to add a new language to the project, please ask in the forum or bug tracker so the maintainers can create it for you.

Developers Info: All strings are defined in graphics/rcd/lang/<LANGUAGE_CODE>.yml in the YAML file format. Each language has a block of meta information about its name and plural rules which must be kept consistent with Weblate's definitions. When a new language is added, it additionally needs to be added to the list of all languages in src/language_definitions.h. The lists of languages must be kept in alphabetical order. If the language uses an unusual plural rule, additionally add a function for that rule.

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 Codeberg 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. To test a PR, you can either compile it yourself or download prebuilt binaries. To get those, select the PR's Checks tab, then select the CI group, then scroll down to Artifacts and download the desired build. You need a Codeberg account to download these artifacts.

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 GLFW3 with OpenGL ES 3. 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.