Welcome to the source code of the RealEngine, an engine written in C, with minimal dependencies.
This repository contains everything you need for compiling the engine, and start tinkering with it. We're excited to see what you can create with it!
Currently supported operating systems:
- Windows
To compile the engine, just calling FASTBuild is enough:
$ ./extras/bin/win64/fbuild.exe
FASTBuild has the following targets:
all
: builds everything, game, engine, resources, tests, etctools
: build all toolslolpack
: build lolpackobjbin
: build objbin
game
: builds the game and enginelibc
: builds the libc static libraryengine
: builds the engine static librarygame-dll
: builds the game dllgame-exe
: build the game execrash
: builds the gerr.exe, to catch and send crash reports
server
: builds the game serverserver-dll
: builds the server dllserver-exe
: builds the server exe
clean
: remove all build artifactsdist-clean
: remove all build artifacts and install artifacts
It works perfectly fine to always just build all
, it's faster and preferred
to build only the target you currently require to be updated, since res
might
take a while to build and you don't want them to be rebuild regularly.
The typical workflow consists of building the resources once and than only
rebuilding the game
or server
target if source updates are made.
If enabled, the DLLs will hotreload after game
or server
was build.
The vs
FASTBuild target will build a Visual Studio solution which can be opened
and used for development.
Keep in mind, while the project is opened in Visual Studio, it's still build by FASTBuild.
The release
branch points to the latest stable release, which has extensively
gone through QA. A new released is roughly published every few months.
Provides a great starting point to learn the engine.
The stable
branch is tried to be kept in a stable state at all times, but will
contain fixes and features from master considered stable. This provides a great
balance between getting the latest features and having a stable build.
The master
branch is used for development, and might not even compile. All
pull requests must be filed against it.
Should not be used for production!
Other branches (normally named feature/<something>
) may be present.
They're used for bigger individual feature development, and can safely be ignored.
Please read the CONTRIBUTING.
Read the CHANGELOG on master for latest bleeding edge changes.
Read the CHANGELOG on stable for latest stable changes.
Read the CHANGELOG on release for latest release changes.
Copyright (C) 2016 Arvid Gerstmann
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; Only licensed under version 2, not any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.