Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -0,0 +1,190 @@
|
||||
# Combined-addon development playtest build
|
||||
|
||||
The current project is **Co10 Escape Reintroduced**, `ERR_Core`, GUID
|
||||
`2528466DE220D91C`, in `addons/core/addon.gproj`. Mission, AI, Intel, Map and Chat
|
||||
are included in this one addon. There are no separate companion projects to
|
||||
build or enable. See [the combined layout](single-mod.md).
|
||||
|
||||
The latest retained, hash-verified handoff is
|
||||
[2 October — controller ownership fixes](../.build/playtest-2026-10-02-owner-fixes/README.md),
|
||||
at `.build/playtest-2026-10-02-owner-fixes`. It contains matching editable source
|
||||
and one packaged addon: **403 authored files and 346 exact PAK payloads**.
|
||||
It includes the previous ground-depot/guide features plus observer ownership,
|
||||
replacement-controller rebinding and chat menu teardown ownership fixes.
|
||||
|
||||
This is an **unqualified development candidate**. Its exact source passes all 280
|
||||
registered regression programs and 63 scripted normal-route assertions. Fresh
|
||||
ordinary startup of the exact package verifies the mission and local prisoner.
|
||||
The 13/17 installed-resource errors and strict failed packaging/startup verdicts
|
||||
remain. Human play, real multiplayer, native controller replacement, physical
|
||||
logistics, comparative FPS and clean release still require qualification.
|
||||
Optional terrain integration remains experimental.
|
||||
|
||||
See [current status](current-status.md). Later edits are not automatically present;
|
||||
the ground-depot/guide and all earlier candidates remain unchanged.
|
||||
|
||||
## Identities and required dependencies
|
||||
|
||||
| Role | Project or dependency | GUID |
|
||||
| --- | --- | --- |
|
||||
| Single successor addon | ERR_Core / Co10 Escape Reintroduced | `2528466DE220D91C` |
|
||||
| Direct base dependency | Arma Reforger | `58D0FB3206B6F859` |
|
||||
| Direct external dependency | RHS: Status Quo | `595F2BF2F44836FB` |
|
||||
| Direct external dependency | WCS Armaments | `629B2BA37EFFD577` |
|
||||
| Direct external dependency | WCS BMP-1 | `5E524E4FEECCA92B` |
|
||||
| Direct external dependency | Parachute Framework | `65930CB4CD0237B2` |
|
||||
| Transitive external dependency | RHS Content Pack 01 | `1337C0DE5DABBEEF` |
|
||||
| Transitive external dependency | RHS Content Pack 02 | `BADC0DEDABBEDA5E` |
|
||||
| Transitive external dependency | WCS SpaceCore | `5E389BB9F58B79A6` |
|
||||
|
||||
Install the seven external addons separately. The audited versions, descriptor
|
||||
hashes and dependency graph are in [external-addons.json](external-addons.json);
|
||||
a source bundle includes this as `EXTERNAL-ADDONS.json`. The private runners
|
||||
expose only that audited closure. Original Escapists and its extensions are not
|
||||
part of the successor's dependency graph. Third-party assets are not bundled.
|
||||
|
||||
The normal scenario is `{C1E20667DCE324ED}Missions/ERR_Everon.conf`
|
||||
(“Co10 Escape Reintroduced — Everon”). The Base header
|
||||
`{AD62322D5213C440}Missions/ERR_Everon_Base.conf` is a hidden diagnostic entry;
|
||||
it also loads the combined addon and its dependencies.
|
||||
|
||||
## Build from frozen source
|
||||
|
||||
Run from `/home/jakub/devel/escapistsrereintroduced`. Replace the example prefix
|
||||
and installed-addon paths below, and use fresh names for every private session,
|
||||
profile and output ZIP. The compatibility directory must be an existing idle,
|
||||
disposable Tools prefix under `/tmp`, not the installed Steam prefix.
|
||||
|
||||
```sh
|
||||
ERRI_COMPAT=/tmp/YOUR-IDLE-DISPOSABLE-TOOLS-PREFIX
|
||||
ERRI_EXTERNAL=/path/to/installed/workshop/addons
|
||||
|
||||
python3 tools/headless_game.py --compat "$ERRI_COMPAT" --inspect-processes
|
||||
python3 tools/check.py
|
||||
```
|
||||
|
||||
The inspection is read-only. If a game, Tools session or another native runner is
|
||||
active, leave it untouched and wait before building. The existing runners manage
|
||||
their own hidden display, muted audio, isolated source/profile, prefix lock and
|
||||
cleanup. Do not bypass their refusal or cleanup checks or launch another native
|
||||
job concurrently. They do not require opening windows on either physical monitor.
|
||||
|
||||
With source frozen, package the one project:
|
||||
|
||||
```sh
|
||||
python3 tools/native_package.py --project core \
|
||||
--session /tmp/erri-playtest-package-NEW \
|
||||
--compat "$ERRI_COMPAT" --external-addons "$ERRI_EXTERNAL" \
|
||||
--timeout 300
|
||||
|
||||
python3 tools/source_bundle.py --mode development \
|
||||
--output /tmp/erri-playtest-source-NEW.zip
|
||||
```
|
||||
|
||||
The packager accepts `--project core`; the removed `--project chat` packaging
|
||||
recipe does not apply. Output is exactly
|
||||
`packages/core/{addon.gproj,data.pak,resourceDatabase.rdb}`. The ZIP is editable
|
||||
source only and must be written outside the checkout. Compare its
|
||||
`BUNDLE-MANIFEST.json` authored hashes against the packager's frozen source
|
||||
snapshot before describing it as matching source.
|
||||
|
||||
`--silent-workbench` and `--exit-after-init` are optional, mutually exclusive
|
||||
packager lifecycle experiments. `--continue-on-failure` is diagnostic only; it
|
||||
does not turn a failed build into a pass. Keep resource/localization, shutdown
|
||||
and cleanup failures in the retained reports. Native exit code 0 alone is not
|
||||
build qualification. See [packaging control evidence](native-packaging-control.md).
|
||||
|
||||
## Check the normal route and exact packaged bytes
|
||||
|
||||
These commands launch **hidden, muted, bounded diagnostics**, then close their
|
||||
own processes. They are not human play launchers. Run them sequentially while
|
||||
the frozen source and private runtime remain idle between jobs.
|
||||
|
||||
```sh
|
||||
python3 tools/headless_workbench.py \
|
||||
--compat "$ERRI_COMPAT" \
|
||||
--profile /tmp/erri-playtest-route-NEW \
|
||||
--external-addons "$ERRI_EXTERNAL" \
|
||||
--project chat --smoke normal-escape-route --rounds 1 --timeout 360
|
||||
|
||||
python3 tools/headless_game.py --project chat \
|
||||
--packed-addons /tmp/erri-playtest-package-NEW/packages \
|
||||
--packed-session /tmp/erri-packed-chat-playtest-NEW \
|
||||
--compat "$ERRI_COMPAT" --external-addons "$ERRI_EXTERNAL" \
|
||||
--timeout 180 --failure-grace 120
|
||||
```
|
||||
|
||||
Workbench `core` and `chat` select diagnostic fixture families, not different
|
||||
addon projects. Both need the external dependencies. `normal-escape-route`
|
||||
checks the normal generated Everon catalog; the older `escape-route` uses its
|
||||
fixture catalog. Scripted movement/actions do not establish human walking,
|
||||
interaction, combat or piloting.
|
||||
|
||||
The ordinary packed command uses schema 4: one successor addon plus seven
|
||||
external addons, ten engine/vanilla/mod/dependency mounts altogether. Keep its
|
||||
default fifteen-second readiness interval. `--failure-grace 120` only retains a
|
||||
failed run for additional logs within the original timeout; it does not waive a
|
||||
failure. Historical `--packed-core`, vanilla Chat v2 and five-addon external v3
|
||||
results do not validate this combined dependency graph.
|
||||
|
||||
After reviewing both results, retain a new handoff with only the three runtime
|
||||
files inside `packages/core/`. Keep matching `source.zip`, extracted `source/`,
|
||||
raw reports/logs, provenance, cleanup results and SHA-256 hashes in separate
|
||||
sibling paths. Verify all three runtime hashes after copying. Never overwrite a
|
||||
previous candidate or mix newer loose source with an older PAK. Packed startup
|
||||
proves loading, normal mission readiness and local admission; it does not prove
|
||||
remote multiplayer or a full human escape.
|
||||
|
||||
## Human playtest
|
||||
|
||||
Use the matching handoff's `source/addons/core/addon.gproj` for editable Tools
|
||||
work, with its installed external dependencies registered. Select
|
||||
`Missions/ERR_Everon.conf`. For packaged play, enable the single successor addon
|
||||
and its required dependencies in a separate playtest profile, then select that
|
||||
normal scenario. Use the mission header/scenario workflow, not a bare world
|
||||
load. The old five-addon launch scripts and Chat GUID `FA804F411BDDF2C6` are
|
||||
historical and must not be used for the current combined package.
|
||||
|
||||
A visible human session is separate from the hidden commands above. Keep it on
|
||||
the user's chosen right monitor and muted, and quit normally before another
|
||||
native build or test. Do not enable smoke plugins, `errSmoke`/`errBaseSmoke`,
|
||||
input exercises or aircraft-fixture flags for ordinary play. This guide does not
|
||||
supply a new visible launcher or multiplayer server configuration.
|
||||
|
||||
Follow [the current player route](player-route.md): prison → scavenging/clues →
|
||||
radio defence → helicopter → result/restart. `/esc menu`, Intel commands and the
|
||||
HQ journal are included in the combined addon. Restore settings changed during
|
||||
admin checks. Record the exact candidate, scenario, point of failure and profile
|
||||
log session. Remote joins/reconnects, partial escape, twelve connected players,
|
||||
full human completion and comparative FPS still need their own evidence.
|
||||
|
||||
## Retained candidate evidence
|
||||
|
||||
The 30 September installed-slot candidate contains 376 matching authored addon
|
||||
files, 321 matching PAK payloads and three verified runtime files. Its normal
|
||||
route completes 55 scripted assertions through extraction/results, with zero
|
||||
script/runtime failures and thirteen installed-resource errors. Its
|
||||
[ordinary packed startup](evidence/packed-2026-09-30-installed-slot/packed-startup-report.json)
|
||||
verifies normal mission readiness and a local prisoner, with zero script/runtime
|
||||
failures and seventeen installed-resource errors. Both strict verdicts remain
|
||||
failed. [Packaging](evidence/package-2026-09-30-installed-slot/package-report.json)
|
||||
emitted matching files and exited 0 but retained localization and shutdown
|
||||
resource-leak errors. Consult the handoff README and hashes for its exact scope;
|
||||
later alarm/memory and mounted-ammunition source evidence does not update these
|
||||
packaged bytes.
|
||||
|
||||
## Historical five-addon handoffs
|
||||
|
||||
The vanilla-only `.build/playtest-2026-09-20` candidate was frozen at `5e74269`:
|
||||
216 authored files, five matching PAKs and fifteen verified runtime files. Its
|
||||
[build record](evidence/playtest-2026-09-20/build.json),
|
||||
[packed Core startup](evidence/packed-core-2026-09-20-playtest/report.json) and
|
||||
[packed full startup](evidence/packed-chat-2026-09-20-playtest/report.json) retain
|
||||
that snapshot's zero-error startup evidence. Native packaging/shutdown failures
|
||||
remained separate; human play, multiplayer and FPS were not qualified.
|
||||
|
||||
The later [road-interception handoff](../.build/playtest-2026-09-20-road-interception/README.md)
|
||||
and [five-addon external workflow](packed-external-development.md) also describe
|
||||
an older layout. Their companion GUIDs, five-project build order, vanilla-only
|
||||
profile links and launch commands are not current instructions. Existing
|
||||
historical handoffs, source and failure records remain unchanged.
|
||||
Reference in New Issue
Block a user