Files
jakub 6a667d8deb Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
2026-10-13 22:52:53 +02:00

192 lines
10 KiB
Plaintext

# 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 — objective map UI](../.build/playtest-2026-10-02-objective-map/README.md),
at `.build/playtest-2026-10-02-objective-map`. It contains matching editable source
and one packaged addon: **407 authored files and 349 exact PAK payloads**.
It includes the previous controller ownership and logistics/HQ changes plus the
new authored discovery/mine-warning map presentation and lifecycle cleanup.
This is an **unqualified development candidate**. Its exact source passes all 283
registered regression programs, 101 map-fixture assertions and 63 scripted
normal-route assertions. Fresh ordinary startup of the exact package verifies
the mission and local prisoner. The map/route/packed checks retain 16/13/17 engine
errors, and strict packaging/startup verdicts remain failed. Physical held-map
capture, manual play, real multiplayer, 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 owner-fixes 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.