Caution
ARCHIVE REPO FOR PRESERVATION PURPOSES
NOT IN DEVELOPMENT
DecayEngine is a proprietary engine developed using .NET Core 3.1 that works on Windows (Win32 and UWP), Linux, Android, XBox, PS4, and Switch.
The engine was internally developed by @bilenkonito between 2019 and 2020 for usage in Rust Racers. The project is no longer maintained as development on Rust Racers switched to Unreal Engine 5.
While the engine works on its current state, it is not fully feature-complete. A graphical editor was planned but never completed, so setting up projects requires manually writting .meta files for assets, baking them, and packing everything into .decpak/.decmeta bundles.
Think of this repository as museum piece, rather than a live product.
Note
For licensing reasons, files for XBox, PS4, and Switch are not contained in this repository.
Note
Due to the difficulty in stripping proprietary licensed code from the network sub-engine, those files are not contained in this repository.
Note
Make sure you have properly cloned all Git Submodules!
Warning
Some libraries cannot be included in this repository for licensing reasons.
Carefuly read the following instructions before building for the first time:
DecayEngine is built using NUKE.
You can build the project using the provided script for your host platform (your development machine or CI/CD container).
The build scripts provide shell completions for PowerShell and Bash, as well as a help text.
Windows
& .\build.ps1 --helpLinux
./build.sh --helpFrom this point onwards, all command examples in this document will assume the host machine is running Windows 10 and using PowerShell, and that commands are being run from the base directory of the build artifact (the target folder by default).
A new Game Project skelleton can be generated by running the following command:
& .\Tools\ResourceBuilder\DecayEngine.ResourceBuilder.exe new -h .\GameProjectTypings for the Game Project can be generated by running the following command:
& .\Tools\TypingsGenerator\DecayEngine.TypingsGenerator.exe -o .\GameProjectYou can see an example of these typings at global.d.ts.
Baking all assets from the GameProject folder, outputting the results to the Data folder can be achieved by running the following command:
& .\Tools\ResourceBuilder\DecayEngine.ResourceBuilder.exe build -i .\GameProject -o .\Data -p DesktopRunning the test_drivable_car_scene scene on the Desktop platform can be achieved by running the following command:
& .\DecayEngine.Standalone.exe -b .\Data\Desktop\Resources.decmeta -s 'test_drivable_car_scene'Examples for most features can be found in the provided TestGameProject.
