7.2 KiB
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.batcompletes successfully.Builds/WindowsDevelopment/AgrarianGame.exeexists.Scripts/InstallWindowsDemoLaunchers.batinstalls:Start Agrarian Demo.cmdStart Agrarian Demo - DX12.cmdStart Agrarian Demo - Compatibility DX11.cmd
Scripts/RunWindowsInvestorVisualQACheck.bat --check-toolsreports the packaged demo exists andSunshineServiceis 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.servicereportsactive.ss -lunpshowsAgrarianGamelistening on0.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-toolsconfirms the packaged client exists.- The helper launches two clients against the same endpoint:
play.agrariangame.com:7777by default, or a supplied LAN endpoint such as192.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.
AAgrarianResourceNodeexposesGatherorGather by handprompts.- 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.pyincludes 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_PrimitiveShelterderives 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.pyruns 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_Campfireexists with thecampfirerecipe ID.- The campfire item/buildable path is available to the player blueprint setup.
BP_Campfirederives fromAAgrarianCampfire.AAgrarianCampfiresupportsLight fireandMaintain fireinteraction 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.
Full Day/Night Survival
The full day/night survival gate proves one player can remain alive through one complete compressed Agrarian day while the server advances time, weather, and survival pressure.
MVP timing:
- The gameplay calendar target is
4 real hours = 1 in-game day. AAgrarianGameStateadvances and replicatesWorldHours, day/year state, solar bounds,IsNight, weather, and ambient temperature.- The pass starts at a known hour, preferably dawn or morning, and ends after
WorldHoursreaches the same solar phase on the next in-game day.
Required evidence:
- Hunger, thirst, stamina, body temperature, and health update over time on server authority.
- A player can gather resources, craft or use a fire, craft or use shelter, and recover enough food/water/warmth to avoid death for the full cycle.
- Day/night state changes at least once and returns to the original phase.
- The critical survival HUD can show alive/dead state and core stat pressure.
- World time and player survival state are covered by save/load persistence.
- The result is recorded as either a completed manual run or a captured test log before external MVP demos treat the gate as fully play-proven.
This gate is gameplay/server-relevant and should be covered by the next server package deployment.
Survival Pressure Death
The survival-pressure death gate proves the MVP does not merely display hunger, thirst, exposure, illness, or injury as cosmetic stats. Sustained pressure must be able to reduce health, mark the character dead, replicate the death state, and expose a clear respawn path.
Required evidence:
- Starvation, dehydration, cold exposure, sickness, and bleeding can reduce
Survival.Healthon server authority. ClampSurvivalcallsUpdateDeathState, clamps health to zero, clears stamina, setsbIsDead, and recordsLastDeathReason.- The replicated survival snapshot includes the death state and last death reason.
- The critical survival HUD and death/respawn panel display the dead state and cause.
- The player controller exposes the MVP respawn path and revives the survival component on the server.
- Death/respawn behavior remains persistence-safe through the player stat save/load path.
This gate is gameplay/server-relevant and should be covered by the next server package deployment.