Skip to content

Latest commit

 

History

History
121 lines (83 loc) · 7.1 KB

File metadata and controls

121 lines (83 loc) · 7.1 KB

Getting started

Donify runs as a native Unreal Engine project. The current supported development path is Linux, Unreal Engine 5.8.1, and Vulkan. The current source prerelease is 0.8.0-alpha.1. The repository contains source, configuration and tooling; large runtime resources are downloaded separately.

Requirements

Requirement Notes
Unreal Engine 5.8.1 Install the engine and its Linux compilation toolchain separately under Epic's terms
Linux graphical session with Vulkan Required to launch and inspect the game; the checks also launch Unreal
Vulkan-capable GPU and working drivers The reviewed demo used an NVIDIA RTX A5000; no minimum GPU or VRAM specification has been established
Git, Bash, Python 3 and ripgrep (rg) Used by repository and asset/check scripts
Disk space Allow room for Unreal Engine, fetched assets, intermediates and shader caches; no minimum has been validated
Internet for initial setup Needed for the engine and asset downloads; prepared gameplay reads local files

Windows, macOS, packaged standalone builds and additional hardware remain unverified. Blender and generative-service API keys are only relevant to optional asset preparation, not an ordinary build and flight.

Fetch and build

Clone the public repository. Set DONIFY_ENGINE_DIR to the directory containing your Unreal installation's Engine/ folder:

git clone --branch v0.8.0-alpha.1 https://github.com/w4coder/donify.git
cd donify
export DONIFY_ENGINE_DIR="/path/to/UnrealEngine5.8"
python3 Scripts/assets.py fetch
python3 Scripts/check_architecture.py
./Scripts/build.sh

Replace the example engine path with your installation. Keep the variable set in terminals used to build or launch Donify. Fetching restores runtime files from the versioned asset manifest. Public downloads do not require storage credentials. If you need editable source assets for content work, fetch the optional pack separately:

python3 Scripts/assets.py fetch --pack sources

This extra pack is not required to compile and fly with the runtime resources.

The runtime pack for 0.8.0-alpha.1 contains the rebuilt detailed reference houses with open doors, windows and connected floors. The other twelve main residential buildings are built by C++. No Blender regeneration or import is required to use indoor flight or run its checks. See the indoor flight guide for approach controls and optional asset authoring.

The target is DonifyEditor, Linux, Development. Compilation generates local outputs under ignored directories. Never copy the engine into this repository.

Upgrade an existing installation

Close any running Donify game or editor before updating. From the existing repository, fetch the release tag and select it:

git fetch --tags origin
git switch --detach v0.8.0-alpha.1
python3 Scripts/assets.py fetch --force
./Scripts/build.sh
./Scripts/launch.sh

If you follow the default development branch instead of a release tag, use git pull --ff-only to update it, then fetch its assets and rebuild. Git will report any local source changes that prevent switching or updating; keep those changes rather than resetting the repository.

fetch --force replaces differing runtime files listed in the selected manifest, including the older solid house meshes. Save any intentionally edited runtime assets elsewhere before using it. Files outside the manifest are not removed. The optional authoring pack can be refreshed separately with python3 Scripts/assets.py fetch --pack sources --force if needed.

A running session keeps the geometry it already loaded. Rebuilding or fetching assets alone does not change that session: close it and launch the new build.

Launch and fly

./Scripts/launch.sh

The default game window is 1600 × 1000. Override it when needed:

./Scripts/launch.sh -ResX=1280 -ResY=800

Allow initial shader compilation to finish. Interactive play starts on the pad with motors off. Press T to take off, Space / Left Ctrl to change height, movement keys to select a velocity, K to brake and hover, and L to land. Read Controls before using motor cutoff or automatic missions.

To edit the scene or resources:

./Scripts/editor.sh

Use Play in the editor to enter the simulation. Launching the game or editor does not rebuild changed C++ sources automatically.

Check the installation

After building:

./Scripts/check.sh

This checks module boundaries, runs the in-game scenarios and verifies results in Saved/Logs/Validation.log. It expects 23 markers: one aggregate of 13 deterministic dynamics checks and 22 integration scenarios, including six indoor checks. The release runtime pack supplies the reference-house assets required by the suite. Test sessions are silent. The public release validation record describes the tested scope and remaining limits.

Troubleshooting

Symptom Check
Engine not found DONIFY_ENGINE_DIR must point to the folder containing Engine/; verify that the Linux engine executables exist
rg not found Install ripgrep through your distribution's package manager
Missing materials, meshes or prepared sounds Run python3 Scripts/assets.py fetch and review any download or integrity error
Old C++ behavior still visible Close the game, run ./Scripts/build.sh, then launch again
A reference-house doorway blocks the drone, or reference_interiors fails Follow the upgrade steps, including assets.py fetch --force, then build and relaunch; see Indoor flight
First launch takes longer Check the Unreal log for ongoing shader compilation and wait for it to finish
No sound during check.sh or capture fixtures These modes are intentionally silent; use normal gameplay or -DonifyAudioProbe
No sound during normal gameplay Check game volume and system output device; try ./Scripts/launch.sh -DonifyAudioProbe -DonifyShot=9 for an audible diagnostic
Movement continues after releasing keys Stabilized mode preserves its velocity target; press K to brake and hover
Controller differs from the displayed layout Check Linux gamepad detection and mappings; physical controller calibration remains unverified
A check fails Inspect Saved/Logs/Validation.log and include the failed or missing marker in an issue

For a report, include OS, engine version, GPU, reproduction steps and expected behavior. Logs may contain local paths; remove private information before sharing.

Record a gameplay demo

On Linux/X11 with FFmpeg and PulseAudio-compatible tools installed:

python3 Scripts/record_gameplay.py

The recorder starts a dedicated game instance, sequences normal flight controls in real time and captures its audio into a local video. This is separate from the cockpit's PNG screenshot button. Read GAMEPLAY_RECORDING.md for dependencies and outputs.

Back to README · Contributing · Guide de vol en français