Controller+BETADownload

Build from source

The mobile apps, desktop companions and SDK are separate repositories. Each must build from its own source and public dependencies. The private website and hosted implementation are not required for personal/developer-hosted play.

Run python3 scripts/setup_git.py after opening a source repository. It enables the repository's secret checks. Keep signing identities, store credentials, receipts and local configuration outside tracked files.

iOS

Use the installed Xcode toolchain and run python3 scripts/build.py in the iOS repository. The script builds a simulator .app by default. --device compiles for a physical device; installation/distribution still needs valid signing and provisioning.

Local builds can expose Pro previews. Use --release to remove that preview flag. A release flag does not establish store-product availability or App Store approval.

Android

Use an installed JDK and Android SDK, then run:

./gradlew --no-daemon --max-workers=2 :app:assembleDebug

Set the local SDK location outside Git. Debug and release builds have different package/preview settings. Do not ship a debug key or commit a signing keystore. The local build caps Gradle workers and heap usage to keep resource consumption predictable.

Desktop companions

Each repository contains the Node runtime, browser controller snapshot and its platform helper source. npm install followed by npm start runs the development companion once the helper is built.

The native helpers use Swift/CoreHID on macOS, uinput on Linux, and Windows input/driver APIs on Windows. Standalone packaging embeds the runtime and assets; it must use the matching Node version and preserve platform-specific signing requirements. The packaging scripts and artifact matrix are being completed in the local preview.

The network process must remain unprivileged. Grant the helper only the access that the platform needs; do not run the entire server as root to avoid configuring device permissions.

SDK and engines

Run npm test in the SDK repository. For the native core, use CMake and CTest. The Godot integration includes a headless check that can run with an installed Godot executable.

Unity and Unreal packages can be prepared without fetching their large editors. If an editor is unavailable, record source/package validation separately from an engine compile or play test.

Resources and outputs

Build output belongs in ignored build or dist folders. Keep a disk/RAM/CPU checkpoint before native builds, emulator runs, packaging and video rendering. Do not reset other projects' simulators or terminate unrelated processes to make a test pass.