# Build tools — BLOCKLINE — Relay District Produces standalone, distributable builds from the Godot 4.5 project: - **Windows** — `dist/windows/BLOCKLINE.exe` (x86_64) - **macOS** — `dist/macos/BLOCKLINE.zip` (universal: Intel *and* Apple Silicon in one binary) Both are exported on your Windows PC using the Godot editor already bundled in `tools/godot/`. You do **not** need a Mac to produce the macOS build — Godot cross-exports a universal `.app`. ## Quick start Double-click `Build-Game.cmd` in the project root, or from a terminal: ```powershell powershell -ExecutionPolicy Bypass -File build-tools\Build-Game.ps1 ``` First run downloads the 4.5-stable export templates (~700 MB) into `%APPDATA%\Godot\export_templates\4.5.stable\` automatically. After that it's cached and builds take seconds. ### Options ```powershell build-tools\Build-Game.ps1 -Target win # Windows only build-tools\Build-Game.ps1 -Target mac # macOS only build-tools\Build-Game.ps1 -DebugBuild # debug build (console + verbose) ``` ## What ships to players - **Windows:** the whole `dist\windows\` folder (the `.exe` needs the `.pck` and any DLLs sitting next to it). Zip that folder. - **macOS:** `dist\macos\BLOCKLINE.zip`. It contains `BLOCKLINE.app`. ## macOS code signing The build is **unsigned** (no Apple Developer account assumed). On a Mac, the first launch is blocked by Gatekeeper. Players work around it once with either: - Right-click the app → **Open** → **Open**, or - `xattr -dr com.apple.quarantine BLOCKLINE.app` To remove that friction you'd need an Apple Developer ID and signing + notarization (requires a Mac or a macOS CI runner). If you want that set up later, the hooks are in `export_presets.cfg` under the `[preset.1.options]` `codesign/` and `notarization/` keys. ## Files | File | Purpose | |------|---------| | `../export_presets.cfg` | Godot export presets (Windows + macOS). Lives in the project root — Godot requires it there. | | `Build-Game.ps1` | The build script: template fetch + headless export of both targets. | | `../Build-Game.cmd` | Double-click wrapper in the project root. | Generated output (`dist/`) and the downloaded templates are already covered by `.gitignore`.