This repository has been archived on 2026-05-24. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
AgrarianGameArchive/Docs/QA/MvpQaGates.md
T
2026-05-19 13:55:15 -07:00

128 lines
4.9 KiB
Markdown

# MVP QA Gates
Version `0.1.Q` turns the current survival MVP into a repeatable test target.
Each gate must have either automation, a documented manual test, or build
evidence before it is marked complete.
## Packaged Client Launch
The packaged client launch gate proves the Windows investor/demo package can be
created, opened through a known launcher, and checked through the real-GPU
visual QA path.
Required evidence:
- `Scripts/PackageWindowsDevelopment.bat` completes successfully.
- `Builds/WindowsDevelopment/AgrarianGame.exe` exists.
- `Scripts/InstallWindowsDemoLaunchers.bat` installs:
- `Start Agrarian Demo.cmd`
- `Start Agrarian Demo - DX12.cmd`
- `Start Agrarian Demo - Compatibility DX11.cmd`
- `Scripts/RunWindowsInvestorVisualQACheck.bat --check-tools` reports the
packaged demo exists and `SunshineService` is running.
- Any full visual pass stores notes under `Saved\VisualQA\InvestorDemo`.
This gate is client-only. It does not require multiplayer server deployment.
## Server Launch
The server launch gate proves the MVP gameplay host can start the current
server-compatible package and expose the Unreal gameplay port.
Current MVP launch path:
- Prefer the true Linux dedicated-server target when a server-capable Unreal
engine is available:
`Scripts/BuildLinuxDedicatedServer-Windows.bat`
- Until then, use the binary-engine fallback:
`Scripts/PackageLinuxGameServerFallback-Windows.bat`
- Deploy the produced package to `/opt/agrarian/server`.
- Launch through `/opt/agrarian/server/AgrarianGameServer.sh`.
- Manage the host with `agrarian-game-server.service`.
Required evidence:
- `systemctl is-active agrarian-game-server.service` reports `active`.
- `ss -lunp` shows `AgrarianGame` listening on `0.0.0.0:7777/udp`.
- The journal shows the Ground Zero map browse started.
- The runbook explains the true dedicated target and fallback path.
This gate is server-relevant and requires multiplayer server verification when
server launch tooling or deployed package contents change.
## Two-Client Connection
The two-client connection gate proves the MVP can be tested as a multiplayer
session with two packaged Windows clients connected to the same Ground Zero
server.
Required evidence:
- The server launch gate is passing.
- `Scripts/RunTwoClientConnectionSmoke-Windows.bat --check-tools` confirms the
packaged client exists.
- The helper launches two clients against the same endpoint:
`play.agrariangame.com:7777` by default, or a supplied LAN endpoint such as
`192.168.5.15:7777`.
- Both clients reach the same Ground Zero session.
- Testers confirm both clients see the same time/weather and can remain
connected long enough to begin the smoke test.
The manual observation steps continue in
`Docs/Ops/MultiplayerLatencyTestPlan.md` until gameplay automation can drive
two clients directly.
## Resource Gathering
The resource gathering gate proves a player can interact with placed Ground
Zero resource nodes and receive authoritative resource inventory changes.
Required evidence:
- Ground Zero includes placed wood and fiber resource nodes.
- `AAgrarianResourceNode` exposes `Gather` or `Gather by hand` prompts.
- Gathering runs only with server authority.
- Successful gathering decrements replicated `RemainingHarvests`.
- The gathered item stack is granted through the character inventory path.
- Resource depletion persistence is covered by the save/load gate.
- `Scripts/verify_playable_loop_smoke.py` includes wood and fiber gathering in
the natural shelter loop smoke test.
This gate is gameplay/server-relevant and should be covered by the next server
package deployment.
## Craft Shelter
The craft-shelter gate proves the MVP can build a primitive shelter path from
resources through recipes and world placement.
Required evidence:
- Primitive frame, wall panel, roof panel, and shelter recipes exist.
- `BP_PrimitiveShelter` derives from the native shelter actor.
- Building placement consumes active buildable cost on the server.
- Shelter actors persist through the world-actor persistence path.
- `Scripts/verify_playable_loop_smoke.py` runs the natural shelter loop using
wood, fiber, wildlife, shelter-piece recipes, and the primitive shelter class.
This gate is gameplay/server-relevant and should be covered by the next server
package deployment.
## Craft Fire
The craft-fire gate proves the MVP can produce or use a campfire through the
crafting/building loop, then interact with that fire in the world.
Required evidence:
- `DA_Recipe_Campfire` exists with the `campfire` recipe ID.
- The campfire item/buildable path is available to the player blueprint setup.
- `BP_Campfire` derives from `AAgrarianCampfire`.
- `AAgrarianCampfire` supports `Light fire` and `Maintain fire` interaction
prompts.
- Campfire lit/fuel state is replicated.
- Campfire persistence and fire-risk QA verifiers pass.
This gate is gameplay/server-relevant and should be covered by the next server
package deployment.