EngineForge Docs

Build & publish a Unity game

What you need to prepare before EngineForge can build your Unity project and publish it to itch.io — and what happens when you click Build.

EngineForge builds your Unity project straight from your GitHub repo and publishes the result to itch.io — no build machine, no Unity license, and no build script of your own to maintain. This page is the checklist to get your first Unity build green.

v1 scope. Unity builds currently target Windows and macOS desktop, and publish to itch.io. WebGL, Linux, Steam, and other stores are not available for Unity yet.

Before your first build

You need four things in place. The first three are one-time account setup; the fourth is per project.

  1. Your Unity project on GitHub. The repo root must be the Unity project rootAssets/, ProjectSettings/, and Packages/ sit at the top of the repository (not inside a subfolder). EngineForge detects a Unity project by the presence of ProjectSettings/ProjectVersion.txt.
  2. GitHub connected. In the console, go to Settings → Services and connect GitHub. Every build clones your repo with your authorization.
  3. itch.io connected, and the game page created. In Settings → Services, paste your itch.io API key (itch.io → Settings → API keys). Then create the game's project page on itch.io first — EngineForge uploads to an existing page and can't create one. Note its URL https://<owner>.itch.io/<slug>; you will enter the target as <owner>/<slug>.
  4. A workflow set to Unity. Open your project, and in the workflow editor set:
    • Game engine → Unity
    • Build target → itch.io
    • Platforms → Windows and/or macOS
    • itch.io game → owner/game (matching the page URL above)

That's it — there is no Unity license to provide (EngineForge builds with its own) and no build script to add (EngineForge injects one at build time).

Unity-specific requirements

A few things must be true of the project itself, or the build will stop with a clear message:

  • Supported Unity version. Your project must be on the verified Unity LTS line — currently 2022.3.x (see Supported engines). Unity won't open a project authored in a different editor, so a mismatched version is rejected up front. The version is read from ProjectSettings/ProjectVersion.txt; if you're on a different version, open and save the project in a supported one.
  • At least one enabled scene. EngineForge builds the scenes ticked in File → Build Settings → Scenes In Build, in order. If none are enabled, the build fails asking you to add one. (This is the single most common first-build issue.)
  • Mono-compatible. Windows and macOS are built from a Linux machine, which only the Mono scripting backend supports, so EngineForge builds with Mono regardless of your project's setting. Don't depend on IL2CPP-only behavior or ENABLE_IL2CPP code paths for these builds.
  • Commit what the build needs. Anything required to build must be in the repo — Assets/, Packages/manifest.json, and ProjectSettings/. Don't .gitignore Packages/ or ProjectSettings/. The Library/ folder should stay ignored; Unity regenerates it.

What happens when you click Build

  1. Validate — checks GitHub + itch.io are connected, the platforms are valid for Unity, and that the itch.io game page exists.

  2. Fetch sources — clones your repo.

  3. Build — EngineForge injects its build method into the clone, licenses the editor, and runs a headless Unity build for each platform you chose. macOS .app bundles are automatically ad-hoc signed so they launch on Apple Silicon.

  4. Publish — each platform's build is zipped and pushed to itch.io with butler, to the matching channel:

    Platformitch.io channel
    Windowswindows
    macOSosx
  5. Email — you get a build-result email (success with a link, or failure with the failing step and reason).

You can download each platform's build zip from the build page in the console, and they appear on your itch.io project under the channels above.

Troubleshooting

  • "WE CANNOT BUILD THIS — Unity <x> isn't supported." Your project's Unity version isn't on the supported line. Open and save it in a supported version (see Supported engines).
  • "no enabled scenes in Build Settings." Add at least one scene under File → Build Settings → Scenes In Build and commit the change.
  • "itch.io game … does not exist." Create the project page on itch.io first, then make sure the owner/slug you entered matches the page URL exactly (itch.io slugs use dashes, not underscores).
  • macOS build won't open on a tester's Mac. The build is ad-hoc signed (enough for Apple Silicon to run it), but not notarized — testers may need to right-click → Open the first time, or you can later add your own notarization step.
  • Selecting Web or Linux does nothing useful. Those aren't available for Unity in v1; the workflow editor only offers Windows and macOS for the Unity engine.

On this page