Skip to Content

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.patch

Do 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.

BoatAttack’s original main menu in the Unity editor.

Single-player race setup: choose Island, then configure the boat.

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 dist

Open 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.

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.

Last updated on