Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
3d Game Shaders For Beginners | 15,226 | 21 days ago | 18 | bsd-3-clause | C++ | |||||
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game. | ||||||||||
Awesome Python Applications | 14,397 | 2 months ago | 38 | Jupyter Notebook | ||||||
💿 Free software that works great, and also happens to be open-source Python. | ||||||||||
Bgfx | 13,046 | 5 days ago | 1 | July 11, 2022 | 287 | bsd-2-clause | C++ | |||
Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library. | ||||||||||
Magictools | 11,437 | a month ago | 2 | mit | ||||||
:video_game: :pencil: A list of Game Development resources to make magic happen. | ||||||||||
Monogame | 9,516 | 4 days ago | 814 | other | C# | |||||
One framework for creating powerful cross-platform games. | ||||||||||
Sfml | 8,721 | 14 hours ago | 1 | March 24, 2020 | 180 | zlib | C++ | |||
Simple and Fast Multimedia Library | ||||||||||
Opensc2k | 4,709 | 3 years ago | 3 | gpl-3.0 | JavaScript | |||||
OpenSC2K - An Open Source remake of Sim City 2000 by Maxis | ||||||||||
Magnum | 4,407 | 7 days ago | 91 | other | C++ | |||||
Lightweight and modular C++11 graphics middleware for games and data visualization | ||||||||||
Deck Of Cards | 3,053 | 13 | 1 | 2 months ago | 6 | April 24, 2017 | 8 | other | JavaScript | |
Deck of Cards (old version) | ||||||||||
Klayge | 1,881 | a month ago | 39 | gpl-2.0 | C++ | |||||
KlayGE is a cross-platform open source game engine with plugin-based architecture. |
FreeRCT aims to be a free and open source game which captures the look, feel and gameplay of the popular games RollerCoaster Tycoon 1 and 2.
Currently only Linux is officially supported, although Windows and MacOS should work. Let us know if it's broken.
Almost everything is written in C++, which means you need g++ or clang++ to compile it. FreeRCT uses C++17 features, so g++ 7+ or clang 6+ is recommended. In addition, you need:
The existence of these programs/libraries is checked by cmake
.
Building is as simple as
$ git clone https://github.com/FreeRCT/FreeRCT.git
$ cd FreeRCT # Go into the downloaded source directory.
$ mkdir build && cd build # Create and enter a build directory.
$ cmake .. # Checks libraries are where they're supposed to be and replaces some strings.
$ make # Let make do the heavy work.
$ make install # Optional step to install the program on the system. May require root privileges.
CMake accepts the following options:
Name | Default value | Explanation |
---|---|---|
VERSION_STRING |
|
Use this string as the build version. If not specified, the version is detected automatically from git. If this also fails, the version defaults to '0.0.0-revdetect-broken'. |
ASAN | OFF | Use AddressSanitizer (see below). |
CMAKE_INSTALL_PREFIX | '/usr' or '/usr/local' | Directory where 'make install' installs. |
DEBIAN_PACKAGING | OFF | If enabled, 'make install' uses a filesystem structure suited for packaging and system-wide installations on Debian/Ubuntu-like systems. Otherwise, a structure optimised for user-local installations and Flatpak builds is used. |
RELEASE | OFF | Compile as a release build (works faster but is not suited for debugging). |
USERDATA_PREFIX | XDG basedir spec or '~/.freerct' or '~/.local/share/freerct' | Default directory where user data such as savegames is stored.
If not set, the XDG basedir specification will be applied.
If XDG_DATA_HOME is not set, a platform-specific default path will be used. |
WEBASSEMBLY | OFF | Compile as a WebAssembly program that can be run in the browser using JavaScript (experimental feature). May override all other settings. |
Note that CMake options are prefixed with '-D', so the full call is e.g.
$ cmake -DASAN=ON -DCMAKE_INSTALL_PREFIX='~/.local' .. $ cmake -DASAN=OFF -DVERSION_STRING="0.1~abc123" -DCMAKE_INSTALL_PREFIX='/usr' -DUSERDATA_PREFIX='~/.config/freerct' ..
You can use the switch -DASAN=ON
to link AddressSanitizer (ASan) into the executable. ASan is
a library that detects invalid memory accesses at runtime and terminates the program with a full
backtrace upon detecting one. This makes it a useful and recommended tool for developers and
everyone who wants to assist with discovering bugs. End-users should leave this option disabled.
You might need to create a link to the symbolizer before using ASan for the first time, e.g.
$ sudo ln -s /usr/bin/llvm-symbolizer-3.8 /usr/bin/llvm-symbolizer
(the actual path may differ on your system.) See https://clang.llvm.org/docs/AddressSanitizer.html for more information on ASan.
The cmake/make commands above will generate the rcdgen program, the rcd files and build the 'freerct' program in the src directory.
Finally, you can optionally create a 'freerct.cfg' INI format file next to the 'freerct' program in the bin directory, containing the settings to use. All entries are optional. It looks like
[font]
medium-size = 12
medium-path = /usr/share/fonts/gnu-free/FreeSans.ttf
[language]
language = nds_DE
[saveloading]
auto-resave = false
This means the medium sized font is 12 points high, and its source font definition file is at the indicated path. Make sure you use a path that actually exists. The language is set to Low German by this example, and automatic resaving of savegame files is disabled.
The actual font file is not that critical, as long as it contains the ASCII characters, in the font-size you mention in the file.
All supported options are:
Section | Name | Default value | Explanation |
---|---|---|---|
font | medium-path | <installdir>/data/font/Ubuntu-L.tff | Default font file. |
font | medium-size | 15 | Default font size. |
language | language | system language | The language to use. Use --help for a list of supported languages. |
saveloading | auto-resave | false | If true , automatically resave all savegames directly after loading. |
saveloading | max_autosaves | 3 | The maximum number of automatic monthly savegames to retain. Setting this to 0 disables automatic saving. |
Now run the program
$ ./bin/freerct
or
$ make run
which should open a window containing the main menu (see also the pictures in the blog).
Pressing 'q' quits the program.
Use --help
or -h
to view available command-line options.
A detailed manual for the game is available online.
All the CMake dependencies can be installed under Debian based systems (e.g. Ubuntu) using the following command:
$ sudo apt install zlib1g-dev libpng-dev libglfw3-dev libglew-dev libfreetype-dev doxygen flex bison
To install the dependencies on MacOS you can use Homebrew: .. code-block:: bash
$ brew install flex bison libpng glfw glew freetype cmake make