Unity · BoatAttack
This example uses official Unity BoatAttack at commit 91886a3ef1ac963aa10578fcaf1d59e9b6961ab3. The original baseline used 6000.2.0b8; this adaptation uses Unity 6.3 LTS 6000.3.25f1, Apple Silicon ARM64. It retains the boats, drivers, Island scene, water, physics, AI, and C# gameplay.
Obtain and adapt the example
Install Git LFS, clone into a fresh directory, fetch the large assets, and extract the adaptation archive into the project root before the two git apply commands. Apply the patch only once.
git clone https://github.com/Unity-Technologies/BoatAttack.git BoatAttack
cd BoatAttack
git checkout 91886a3ef1ac963aa10578fcaf1d59e9b6961ab3
git lfs pull
git lfs fsck
git apply --check tracked-project-changes.patch
git apply tracked-project-changes.patchDo not reapply it to an already adapted project. The archive contains compatibility/version changes, documentation, and licenses; it omits large original assets, Library, and dist, and installs no Combos plugin. For your own game, follow the general Unity guide.
Export and enter a race
Open main_menu.unity, test the menu and single-player settings in Play, then stop. Set scenes to main_menu.unity (0) and level_Island.unity (1), select Default, Gzip + fallback, and Addressables on Player Build. Build to dist.

BoatAttack’s original main menu in the Unity editor.

Single-player race setup: choose Island, then configure the boat.
The recorded native Build ran 18:21:57–18:26:03 (246 seconds): 27 files, 5 Addressables bundles, 127.36 MiB total, largest file 94.58 MiB, ZIP 124.88 MiB. The total and single-file limits were met; the ZIP root contained index.html.
python3 -m http.server 8001 --bind 127.0.0.1 --directory distOpen http://127.0.0.1:8001/. Choose RACE → SINGLEPLAYER → ISLAND (1 lap) → NEXT, configure the boat, then RACE. Wait for the intro/countdown and click the canvas for keyboard focus. W/↑/space accelerates, A/D steers, R resets, and F pauses/resumes.
Publish and verify
Capture a real race screenshot for cover.png. Create your own game with --platform pc --screen-orientation landscape; update only if the project already has your binding. Large uploads can use --timeout 10m.
The recorded native build updated the same Post to revision 2, published with submission_is_current=true. Play BoatAttack , Canvas code 08759. After stopping local servers, two independent browser sessions entered the race through the public page/share link, testing acceleration, steering, pause/resume, and R reset in one session; audio stayed muted. Core files and all 5 bundles loaded publicly without observed game runtime errors.

The native Default build racing on Combos.
Coverage: PC landscape single-player loading and driving. A full race win, mobile touch, and real-phone play were not verified. Loader/engine warnings remained; an outer-page unauthenticated profile 401 was recorded separately from game loading.
What changed
Original code/assets and the existing WebGL water branch remain. Unity generated the Default page without loader rewrites. Scene, compression, and Addressables settings were saved in native UI. The patch also adapts editor/Input System/URP versions and serialization. UIPanelFade.shader adds the _MainTex property required by newer uGUI:
[PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}Earlier custom Editor build scripts, Combos templates, and com.unity.pipeline were removed. The patch covers 31 tracked files relative to the fixed commit, including README-migration.md, WEBGL-MIGRATION.md, LOCAL_SETUP.md, and licenses. It is reproduction material for this project, not a universal Unity migration.
Download the BoatAttack adaptation.
Source: Combos developer integration guide , checked on 2026-10-08 with CLI v1.14.2. Example results refer to the original recorded runs.