Keyboard shortcuts

Press โ† or โ†’ to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Building GoudEngine

Alpha โ€” GoudEngine is under active development. APIs change frequently. Report issues ยท Contact

Core Build Commands

cargo build                 # Debug build
cargo build --release       # Release build
cargo test                  # Run all tests
cargo test -- --nocapture   # Tests with output

Release Build

build.sh compiles the engine in release mode and copies the native library into the SDK output directories:

./build.sh
./build.sh --release        # Explicit release flag

After running, the compiled .dylib / .so / .dll is placed in the appropriate SDK directory. The C# build also triggers csbindgen to regenerate NativeMethods.g.cs.

Packaging

package.sh creates a NuGet package from the built artifacts:

./package.sh                # Package to nuget_package_output/
./package.sh --local        # Package and push to local NuGet feed

The local NuGet feed is at $HOME/nuget-local. To consume it in an example project:

./dev.sh --game <game> --local
# or manually:
dotnet add package GoudEngine --version <version> --source $HOME/nuget-local

SDK Tests

# C# SDK tests
dotnet test sdks/csharp.tests/

# Python SDK tests
python3 sdks/python/test_bindings.py

# TypeScript SDK tests
cd sdks/typescript && npm test

Module Dependency Graph

Generate a visual graph of module dependencies:

./graph.sh

This creates docs/diagrams/module_graph.png and .pdf using cargo modules and GraphViz.