Chuyển tới nội dung chính

Local development

Toolchain​

  • PowerShell 7, .NET SDK 10.0.302 (global.json disables roll-forward).
  • Unity 6000.3.20f1 revision c9ba695d4f07.
  • Rider: open ProjectV-SDK.slnx. There is no Unity project in this repository; check Unity behaviour in ProjectV-Client.

Shared inputs​

The shared CrossSDK assemblies and the generator engine are consumed as binaries. Build them once into the git-ignored .local/:

DOTNET_BIN=<dotnet 10.0.302> tools/bootstrap-local.sh <ProjectZ-CrossSDK checkout>

The script checks the pinned commits out into a temporary clone and hash-verifies the shared assemblies against the lock. Re-run it after a lock bump. Explicit CROSSSDK_SHARED_ASSEMBLIES_ROOT, CROSSSDK_GENERATOR_ENGINE_ARTIFACT_ROOT or MR05_CANDIDATE_HANDOFF_ROOT override .local/.

To move to a new Shared candidate, run ci/update-shared-runtime.py with the candidate identity on a branch from v3; it updates the shared lock and inputs together.

Tests​

ci/run-projectv-tests.sh # verification suites
ci/run-generator-gates.sh # typed-binding drift + contract gate

Pass the .local/ roots as documented in each script. Live backend suites (ci/run-fresh-backend-live.sh) need a running ProjectV Nakama V3.

Try changes in the game​

pwsh tools/dev-pack-local.ps1 -ClientProject <ProjectV-Client checkout>

It compiles the packages in a cached Unity host, copies the DLLs over unpacked copies of the game's own tarballs (keeping every .meta GUID), and points the game's ProjectV entries at them. Add -Platforms Android,iOS before a device build; -Unlink restores the manifest. The output is not a release candidate. tools/ios-device-run.sh <game> --dev-pack builds, signs and launches on a connected iPhone.

Full local flow​

Before you push a runtime change, run the whole chain locally:

local ProjectV Nakama V3 (projectz-nakama compose, port 17350)
-> SDK change (dev-pack or candidate)
-> ProjectV-Client: EditMode + PlayMode suites, then Login → Lobby → Campaign in Play Mode

The Client's live PlayMode tests use http://127.0.0.1:17350 with projectv-v3-local-server-key.