Pular para o conteúdo principal

Local runtime distribution (Windows x64)

The engine and gameplay JSONs are unchanged. heroscript.json is a launcher manifest, not an engine setting. Version 1 currently supports Windows x64 and Windows PowerShell 5.1+. No .NET SDK/runtime is required on the player's machine.

Build with python tools/distribution/package.py --version 0.1.0. This needs the SDK specified in global.json and Python on the build machine only. Output is under artifacts/distribution; existing output directories are never overwritten. The package contains the complete self-contained API in heroscript/, JSON packages in content/, the launcher, manifest, and runtime-manifest.json. All current settings are included as examples; consumers may select their packages and dependencies.

Consumer usage​

Extract the ZIP into the consumer project root. Put the interface in app/ and edit heroscript.json: projectId, projectVersion, runtimeVersion, contentDirectory, startupSettings, allowedOrigins, port, clientEntry. Paths are relative to the manifest. For UNO, clientEntry can be app/index.html. Existing REST requests stay unchanged; the launcher adds ?api= to the file URL. A null clientEntry starts only the server. Use a plain local HTML path, without existing query parameters.

Run Start-HeroScript.bat. Keep the launcher open; Ctrl+C ends its owned API. Closing a browser tab does NOT automatically stop the server. A native consumer should integrate process ownership into its own lifecycle; this package does not yet provide a native window or SDK. Force-killing the launcher is not a graceful shutdown guarantee. Occupied ports and concurrent writers are refused, never killed.

Saves, pinned content and logs live in LocalApplicationData/projectId, outside the installation. Use distinct projectIds for separate games. No automatic save migration or rollback is promised; back up runs and published content together before updating. runtimeVersion must exactly match the installed runtime manifest. projectVersion is consumer metadata; it does not replace deterministic engineVersion.

allowedOrigins=["null"] supports a file:// browser example; production web hosts should configure their actual origin instead. Admin, reload and development tools are disabled by the launcher. JSON editing is done by developer tools externally; this manifest does not introduce an editing API or rewrite pinned active runs.

Automation​

Runtime distribution runs manually (version input) or on v-prefixed tags. It pins the SDK from global.json, tests Core, builds win-x64 without trimming, extracts the archive to a path with spaces, and starts the executable from another working directory to test readiness, external content and persisted run creation. Manual runs upload Actions artifacts. Tags also create a draft GitHub Release. The distribution workflow first calls the existing full CI; packaging is blocked if any of its required tests fail. Promote a draft only after release review. No release has been published by implementing this workflow.

Consumers should pin a release version, download its ZIP during their build, verify the adjacent SHA256, and include it in their installer. Do not fetch a moving latest release on every player startup. SDK updates require rebuilding the self-contained runtime. Linux/macOS, signing, installation-clean hardware certification and automatic client-lifecycle integration remain future work.

Commit the consumer's manifest and source JSONs; ignore its downloaded heroscript/ binaries in Git and restore the pinned runtime during builds. Extract into staging when updating an existing installation, so the example manifest/content never overwrites the consumer's configuration or authored rules.

CI investigation​

Run 40605434511 failed in AscendantWorldOneJourneyTests: four assertions expected 65 final health but the published journey produced 67. The current local content produced 63 with the same seed. This suite consumes current content, not a fixed balance fixture. Its obsolete exact-health assertion is replaced by surviving health in the setting's 1..100 range; completion, nine encounters, service checks, verification and exact canonical restored-state comparison remain required. This is a test correction, not an engine or gameplay JSON change. A balance golden should instead use an explicitly pinned fixture/revision.

CI now follows global.json instead of a floating 10.x SDK, supports manual and reusable invocation, and preserves TRX diagnostics even on failure. Journey time budgets allow verification/restoration to run after the formerly failing assertion.


Fonte desta publicação (2c382315) · Veja também