Game development guide (read first)
Accepted battle preparation — mana-consuming instant movement priority, researched per-skill locomotion, combo/refund rules, two cameras, mannequin and animation/VFX/world gates, entry-level hardware references, boss music and the first battle slice. Runtime and balance validation remain future work.
Direction recorded 2026-10-05. Documentation preparation only; the engine systems and tests below are future work. Movement-first is accepted in ADR-027. New numeric defaults live in
packages/game-data/data/development-standards.jsonwith"proposed": true. Existing skill, rig and quality contracts retain their authority. Project tuning values are not universal AAA standards.
◆1. Experience direction and authority
Target satisfying console action on PC: Metal Gear-style movement and camera polish, and Dynasty Warriors-style crowd combat and power, within Zoen's Unity client, authoritative Rust server and mobile/browser budgets. These are experience references; console publishing and new game modes are separate decisions.
Every task must serve:
- Agency: a ready movement skill answers immediately during an attack; an animation never traps the player.
- Physical credibility: feet carry weight, joints bend coherently, hands retain their grip, and head/body follow the action.
- Readability: players recognize threats, footprints and escape routes amid a crowd.
- Impact: pose, target reaction, effect and sound agree on contact and direction.
- Fairness: quality tier, camera and feel settings never change server outcomes.
- World quality: terrain, landmarks, lighting, vegetation, sound and encounters form a coherent place for battle.
Authority: owner direction → ADRs → canonical data → production docs. Read this guide before character, controls, skill or world work. The one-skill gate defines done. A wiki mannequin is previz, not proof of production rig quality or server correctness.
◆2. Controls: movement skill first
Required: a valid movement gem cancels an own attack in windup, active or recovery, including signatures and finishers. Superarmour, local hitstop and cinematic poses cannot delay it. Validate cooldown, resources, death, applicable hard control and gem destination rules first. Invalid movement leaves the attack running and gives feedback. Priority does not grant invulnerability: collision, travel and immunity windows remain specific to the gem's data.
◆What AAA research supports
There is no single AAA cancel rule. A PlatinumGames-hosted interview describes Bayonetta's Dodge Offset, and explains that Blade Wolf's light attacks in Metal Gear Rising can evade-cancel while certain heavy attacks cannot. This supports explicit tested policies rather than a blanket claim about all AAA attacks. PlatinumGames: Saurian Dash interview.
Dynasty Warriors: Origins pairs offense with evasion, parries and openings from reducing Fortitude; its official page does not publish frame-by-frame cancel rules. Koei Tecmo: combat systems.
Konami documents independent movement, aiming and a direction-controlled quick dive in Metal Gear Solid V. Its sneaking guide also keeps locomotion available across stances and cover. These sources support responsive directional control; they do not publish universal attack-cancel timings. Konami: Ground Zeroes controls, Konami: MGSV sneaking.
Dynasty Warriors 9 explicitly allows movement with the bow readied, distinguishes charged attacks from flow combos, and includes attacks that move toward a target. Koei Tecmo: DW9 attacks.
Applied Zoen direction (owner accepted): continuously sampled movement, mobile aiming/buffs where compatible, brief authored commitment for planted strikes, and directed skill travel. This is our design synthesis from the references, not a claim to reproduce their unpublished frames. Valid movement gems override every own attack phase. Combo continuity after movement is accepted; its starting memory window remains subject to playtesting.
◆Priority and arbitration
| Priority | Command | Required behavior |
|---|---|---|
| First | Movement gem (Mouse2 / equivalent) | Cancel any own attack phase when valid. Discard offensive inputs buffered before movement so they cannot fire unexpectedly afterward. |
| Second | Explicit action slot (Q E Z X C) | At a legal combo window, beat held Mouse1. Cannot cancel another action's windup/active; may buffer briefly. |
| Third | Mouse1 Smart Chain / basic | Existing slot order, cooldown skipping, finisher check and basic fallback. At most one new action per legal step. |
| Concurrent | WASD / stick / touch direction | Sample continuously and apply the current skill's locomotion policy. Direction is not an attack waiting behind Mouse1. |
On the same sampled update, valid movement wins over offense. Among explicit action presses, the latest deliberate press replaces the older queued action; held Mouse1 cannot overwrite it. Release, menus, focus loss, death and device switches must not leave held inputs latched. Manual input takes over Auto-Hunt through the existing command path.
Response target (proposed): visible local movement by the next presentation update after input is sampled, without waiting for the attack clip or server round trip. Measure sampling → state transition → first visible motion; record hardware/event-to-display latency separately. Cross-fades cannot conceal the response.
◆Movement resources and reuse
Every movement gem costs mana (owner, 2026-10-05). The server validates and consumes its positive cost once at accepted activation. Insufficient mana leaves the attack running, explains the failure and never stores a delayed dodge. Exact costs must be authored in canonical balance data before coding each gem; missing values are not treated as free.
| Gem | Owner-suggested starting cooldown | Scope |
|---|---|---|
| Cairn Vault (jump) | 1.0 s, proposed | Existing jump/traversal identity; tune distance, travel, landing and mana together. |
| Reed Rush (dash) | 0.3 s, proposed | Fast repeatable dash; measure sustained traversal, collision, input, mana drain and streaming. |
| Silk Roll (blue), Anchor Pull, Mirror Exchange, Veilstride | Per-gem tuning required | Do not copy the dash cooldown to immunity, pull, return or blink mechanics. |
Cooldown is a reuse delay, not a startup delay. Begin valid movement immediately; start cooldown at accepted
activation. Require a fresh press, completed previous travel and all eligibility checks; no overlapping movement,
recursive movement-cancel, held-button auto-repeat or duplicate cost. Silk Roll retains only its listed evasion window;
its blue classification/socket color agrees with the existing blue-gem immunity rule. The accepted legacy icon
illustration is green; revise that artwork to blue during the asset-production pass without overwriting accepted originals.
Test immunity uptime separately from dash responsiveness.
Data: development-standards.json → input.movementReuseTargets and items.json.
Stun, sleep and knockdown block movement. Roots block displacement unless the specific gem explicitly declares a root escape. Blue color alone grants no root escape. Superarmour does not prevent the player cancelling their own attack.
◆Cancel, cost and network contract
- Windup: no damage or attack mana charge before commit. Owner accepted a 50% attack cooldown refund as the starting policy; avoid free unlimited feints. The movement gem pays its normal cost/cooldown.
- Active: resolved hits stand. Stop future cast-owned melee contacts, channel ticks and attached damage windows; no attack refund after commit. An already released independent projectile/field continues its defined lifetime. Cancellation must neither erase that entity nor spawn it twice.
- Recovery: outcomes stand; no refund. Remove cancelled trails and owned future events, then blend from the actual pose into movement without snapping limbs.
- Queues: invalid movement never fires later when cooldown expires. Action buffers use the existing proposed 150 ms starting window. A post-dodge action requires fresh input or deliberate held-chain input after movement ends. Owner accepted combo memory: start with 1.0 s after movement ends, resume at the next eligible chain step; after expiry restart the chain. Never replay interrupted hits. The duration remains a playtest target.
- Authority: predict locally, validate on the server. Sequence IDs handle ordering/duplicates, but never allow client backdating or erasing resolved hits. Process an accepted cancel before creating new contacts for that cast in that tick. Define tie ordering in replay tests and reconcile rejected movement with logged reasons.
◆WASD during animation
Allow moving attacks where the pose supports them. A planted greatsword swing and a running buff need different rules. Unity supports masked upper-body actions over lower-body locomotion. Unity 6: Animation Layers.
Before authoring each skill, record its locomotion policy, steering window, speed curve, cancel windows and rationale
in canonical data. This policy family is accepted; assigning and validating policies across the catalog is a future M2/M4 task.
Canonical policy names are free, slowed, committed and skill_travel; the table uses short display labels.
| Policy | Use | WASD behavior |
|---|---|---|
| Free | Self-buffs, toggles, compatible instant casts | Full locomotion; upper-body mask; legs keep their gait. |
| Slow | Compatible charges, channels, aimed skills | Tuned fraction of speed; proposed start: charge 50%, channel/aim 40%. Test strafe and diagonal blends. |
| Plant | Weighty planted melee | Sample intent, allow contract-defined steering in windup, hold translation only through the authored contact/commit interval, resume at cancelableAfterS; never lock the entire clip by default. |
| Travel | Lunges, vaults and movement gems | Validated capsule travel; steering only where permitted; no duplicate displacement from root motion. |
Shift+attack-in-place suppresses ordinary locomotion and magnet steps; an explicit movement gem still wins. WASD cancels click-to-walk. Facing/aim limits are per-skill, not an arbitrary universal fraction of windup.
◆Required control self-tests
These are future engine acceptance tests, run against authority and presentation on keyboard/mouse, gamepad and touch. Sweep cancel inputs across boundaries, not just one convenient timestamp.
| ID | Scenario | Pass when |
|---|---|---|
| C1 | Movement in early/late windup | Next-update response; no contact/mana commit; defined refund once. |
| C2 | Movement at first/middle/final active contact | Resolved hits stand; future cast-owned hits stop; no double damage. |
| C3 | Movement in early/late recovery or hitstop | Immediate escape without animation-exit dependency. |
| C4 | Cooldown boundary, insufficient mana, fresh/repeated input and movement already in flight | Attack continues when invalid; feedback; no stored dodge, overlapping travel or duplicate mana charge. |
| C5 | Stun/sleep/knockdown/root/death or invalid destination | Hard control blocks; only declared root escape works; correct path rules; no exploit or stuck state. |
| C6 | Mouse1 chain → movement → Mouse1; repeat after memory expires | Next legal slot inside memory, restart after expiry; no replay of cancelled contacts. |
| C7 | Explicit action and held chain on same update | Valid movement wins; otherwise explicit legal action wins; one new action. |
| C8 | Action near buffer expiry/recovery boundary | Fires once inside window; expired input never fires later. |
| C9 | WASD through each policy | Contract speed/facing/translation and correct stop on release. |
| C10 | Run/strafe diagonally while buffing | Coherent gait; no skating, torso twist or speed boost. |
| C11 | Attack-in-place, click travel, WASD and gem | Modifier/takeover rules hold; movement gem retains priority. |
| C12 | Wall, corner, ledge, slope, water, moving obstacle | Swept path valid; no tunnelling, penetration or unintended fall. |
| C13 | Projectile/field released immediately before cancel | Independent entity persists once; cast-owned effects stop. |
| C14 | Cancel → stun → death; disconnect/reconnect | Queues, windows, trails and pools clean up; no ghost attack. |
| C15 | Latency, jitter, loss, duplicates, reordered packets | No retroactive erasure/duplicate cost/hit; prediction errors logged. |
| C16 | Target dies, leaves range or is occluded mid-chain | Correct fallback; no stale-entity attack or through-wall hit. |
| C17 | Remap/focus/device/Auto-Hunt; V/R3/touch view toggle and optional lock-on | No latched input; R3 only switches views; stable target/aim, release/switch works, no hidden threats in either camera. |
| C18 | Seeded random-input soak | No illegal state, stuck action or exception; proposed 60 minutes at milestone gates. |
Capture phase bars, command sequence, cast/hit IDs, resource changes and response timestamps. Use existing performance/network budgets; a browser preview is not an authority test.
◆Two camera views and optional lock-on
Owner accepted: close third person like Dynasty Warriors / Metal Gear, and a zoomed-out tactical view like Silkroad /
Path of Exile. Keep the existing camera presets in controls.json; tactical remains the default. R3 switches these
two views only (desktop V, touch camera control); recenter and lock-on must not share that press. Wheel/pinch can
zoom between presets. Both views preserve controls, targets, telegraphs, HUD and authoritative outcomes.
Optional close-view boss/elite lock-on is accepted for the first slice: opt in, acquire/release deliberately and switch targets without losing movement freedom. Release invalid/dead/out-of-range or persistently occluded targets; never pull the capsule through an obstacle or alter damage. Choose its separate remappable binding during input UX validation. Test boss framing, off-screen threat cues, camera collision/fade, narrow spaces and rapid dodges in both views.
◆3. Standard mannequin and animation review
Establish a versioned Zoen mannequin before skill clips or production bodies. Follow the exact rig contract: named deform bones/sockets, export metres, +Y up / +Z forward, recorded rest pose and in-place clips. The gameplay capsule is independent of cosmetic height. Match hierarchy, joint pivots, bone rolls, bind matrices and socket orientation, not just names.
Use an untextured body, distinguishable left/right limbs, ground grid, joint axes, capsule, grip markers and weapon sweep overlay. Validate Humanoid mapping and deformation; no zero-weight vertices or missing body chains. AI meshes and library clips pass the same checks. Unity retargeting requires configured Humanoid Avatars; import success alone does not prove compatibility. Unity 6: Retarget Humanoid animations.
After mannequin review, repeat on every supported lineage/body profile, height extreme, grip and representative armour. Quadrupeds/nonhumanoids use family rigs; never force them onto the mannequin.
◆Physical plausibility checklist
| Part | Self-check |
|---|---|
| Feet/legs | Clear plant, toe/heel roll and lift; no floating, sinking, sliding, knee inversion or IK snap. Check slopes, stairs, stops and pivots. |
| Hips/body | Weight transfer supports the action; no unexplained pelvis jump or corkscrew. Airborne/lunge balance may leave the support area when momentum explains it. |
| Arms/hands | Correct elbow axis, shoulder/clavicle deformation and grip; no body/weapon penetration. |
| Head/neck | Gaze follows threat or intentional preparation; no neck flip, detached head or sudden twist on aim/cancel. |
| Secondary parts | Cape, hair, tail and antenna settle without clipping/exploding or pulling the body. |
| Whole motion | Preparation → contact → follow-through → settle; no extra swing, hidden step, mirrored grip or unintended before/after action. |
Use rig-specific swing/twist limits and reference motion, not the earlier unsourced clinical joint-angle table. Local axes, combined joints, stylization and proportions matter. Mark intentional smears and review them. Automated checks catch timing, drift and discontinuities; the agent must still inspect the full motion for natural movement.
Existing limits: contact ±1 authoring frame, planted-foot slide <2 cm, hand/weapon drift <1 cm. Measure sliding only inside marked planted intervals. New proposed ground-penetration tolerance: 1 cm. Calibrate joint-pop/intersection thresholds per rig using recorded reference poses before enforcement; never invent a passing threshold after a failure.
◆Multi-angle self-test before owner review
For every skill and transition, review full speed, slow scrub and loops. Who checks what (ADR-029): an agent reads frames and numbers, not motion. Its self-review is (1) metrics over every frame (contact frame, planted-foot slide, ground penetration, hand and weapon drift, joint limits, joint-speed spikes), (2) one contact sheet of the eight views at the four poses plus one strobe strip of the swing, and (3) crops of only the frames a metric flagged. The owner reviews the motion clips. Capture standard:
- Eight views: front, back, left, right and four diagonals. Capture preparation, contact, follow-through and recovery end in each; add a side strip every third authoring frame. Stills do not replace continuous motion review.
- Tactical and close cameras; left/right strafe; starts from idle/walk/run and exits to locomotion, chain skills and all movement gems. Include windup/active/recovery interruption snapshots.
- Floor, slope and stairs with ground/capsule/weapon overlays; representative armour and body extremes.
Save pass / fail / not applicable with reason for feet, knees, hips, shoulders, elbows, hands, head, clipping and unwanted action, citing frame/time. Fix and re-render before owner signature review. Missing views/tests remain unverified.
◆4. Rich skill VFX with measured budgets
Riot's clarity guidance emphasizes matching effects to hitboxes and giving important abilities appropriate prominence. This supports Zoen's threat-first hierarchy. Riot Games: Clarity in League. Epic identifies overdraw, material cost, ticking, draw calls and bounds as major costs; particle count alone is insufficient. Apply those principles while profiling Unity. Epic: VFX Optimization Guide.
Zoen requires a complete visual sentence, not a minimum emitter count. Use cue, release, motion/footprint, impact,
aftermath and status where relevant. A shader or mesh can serve multiple roles. The VFX pipeline
sets technique/palette; each skill's presentation.vfx sets identity.
| Skill type | Required roles | Optional richness within budget |
|---|---|---|
| Basic melee | Weapon motion, material contact, clean end | Glint, sparks, dust. |
| Chain attack | Anticipation, release/motion, hit feedback, dissipation | Slash/core/glow, debris, short decal. |
| Projectile | Cast cue, clear directional body, impact, despawn/end | Ribbon, sparks, material splash. |
| AoE/control | Readable footprint, cue/release, impact, expiry; status if applied | Shockwave, ground fracture, ring detail, mist. |
| Movement | Immediate startup cue, travel/direction, landing/end | Afterimages, dust, streaks; never hide landing or delay escape. |
| Buff/aura/heal | Cast acknowledgment, recognizable status, expiry | Gentle glyph, localized glow/pulse; no false hostile warning. |
| Signature/finisher | Applicable roles above with distinct anticipation/contact/aftermath | Light/debris/screen treatments scaled to importance and accessibility. |
Timing: cue announces commitment, release follows motion, impact aligns with authoritative contact, aftermath fades without popping. Cancelled casts stop owned cues/trails/future bursts; released independent entities keep their effects. Misses never produce confirmed hit flashes, sounds or damage numbers. Online, the strict and the predicted-contact impact modes are both built and judged at G2 (ADR-031).
Look: dominant silhouette/arc, focal point, controlled palette, bright/dark contrast and material response. Differentiate friendly/hostile with shape/pattern as well as color. Bloom, fog, smoke and distortion cannot erase danger boundaries.
◆Project starting caps, not industry standards
Existing Zoen planning caps from the VFX pipeline, subject to reference-device feasibility profiling. These are maxima, not a target to fill. Performance and crowd totals also apply.
| Per effect | Low | Mid | High |
|---|---|---|---|
| Chain live particles | 30 | 80 | 200 |
| Signature live particles | 120 | 350 | 900 |
| Emitters | 2 | 4 | 6 |
| Draw calls | 3 | 6 | 10 |
| Full-screen-equivalent overdraw | 0.5 | 1.0 | 1.5 |
Web uses compatible Low/Mid effects; native High/Ultra may add GPU/screen treatments. Ultra's presentation multiplier never overrides frame-wide caps. Keep identity, footprints, threat timing and party utility on Low. Reduce distant/other player decoration first; never cull boss/monster telegraphs.
Self-review Low/High side by side, normal speed, grayscale, reduced flashes and supported color-blind palettes. Test close camera, bright/dark terrain, and the 100-dummy field plus a boss telegraph. Log CPU/GPU cost, overdraw, draw calls, particles, allocations and pool return after the existing 1,000-cast leak test. All required beats/readability/cleanup must pass; extra layers cannot compensate for a failed footprint.
◆5. Map generation and environment direction
Guerrilla's Horizon Zero Dawn presentation covers artist-directed procedural placement of vegetation, sound, effects, wildlife and gameplay. That supports a comprehensive pipeline; Zoen need not copy its GPU algorithms. Guerrilla: GPU-Based Procedural Placement.
Follow the 11-stage environment pipeline. Generate from world.json, versioned seed and
generator version; layer authored landmarks/encounters. Identical complete inputs produce identical hashes. Preserve
authored overrides on regeneration; share collision/walkability with the server.
◆Area brief before generation
Record biome/story purpose, ground palette, skyline/landmark, roads/waypoints, sightlines, encounter spaces, safe approaches, escape routes, verticality, lighting/fog, material sounds, vegetation/wind, wildlife, ambient accents, streaming boundaries, asset/texture/instance budgets and captures. Deepen existing Amber Basin identities rather than generating unrelated biomes.
| Layer | Required direction and acceptance |
|---|---|
| Terrain/navigation | Connected roads, slopes, bridges, banks, water and ledges; no seams, holes, floating props or unreachable spawns. Test movement gems as well as walking. |
| Battle spaces | Room for the largest planned attack footprint, dodge landing and reactions; approaches/escape routes. Proposed camp slope cap 15° is a heuristic, validated per encounter. |
| Cover/occlusion | Grass, fog, props and transparency cannot mask warnings; camera collision/fades work in corners/narrow passages. |
| Composition | Recognizable hero landmark and supporting interests; existing 30–60 s quiet travel rhythm; sightlines orient players in both cameras. |
| Materials/light | Consistent scale, texel density, roughness and contact; sun/IBL, fog/grade and silhouettes. Test salt glare, ash, dusk and reflections with telegraphs. |
| Vegetation/life | Biome-specific clustered scatter, wind, birds/insects, caravans and accents; road/spawn clearance, collision, pooling/LOD and platform caps. |
| Audio | Material footsteps, distant landmarks, local emitters and quiet accents. ADR-026: town/GM music and engaged boss themes; ordinary outdoors uses environment sound. |
| Streaming | Prefetch by movement/camera; collision ready before entry; stable seams; no missing ground after dash/mount/teleport. Test maximum permitted travel speed. |
"All out" means each layer has authored intent and a tested budget. Require bot road/spawn walks, deterministic hashes, movement/camera obstruction checks, the existing 12 story views, fly-through and streaming metrics. Review a representative camp per biome on Low/High before mass dressing. Gameplay hazards, destruction and weather remain proposals until designed.
◆6. Accepted battle foundations
The owner accepted the foundations below and a small optional KO/combo display for the first battle slice. Acceptance sets direction; implementation, per-encounter values and gameplay verification remain future work.
| Priority | Accepted work | Required proof |
|---|---|---|
| Foundation | Combat timeline debugger/replay capture | Inputs, phases, cancels, hits, reactions, effects and reconciliation on one reproducible timeline. |
| Foundation | Starts/stops/pivots/strafe, foot IK, pose-aware blends | Convincing movement through every attack/cancel transition. |
| Foundation | Camera collision, optional close-view lock-on/switching, off-screen cues | Player/escape routes visible in both views; no forced rotation or unavoidable unseen hit. |
| Foundation | Server-owned enemy engagement coordinator | Attack tokens by role, difficulty, encounter and visibility; crowds reposition/flank/telegraph/support instead of standing inert. No universal attacker cap; release tokens on completion/interruption/death/leave. |
| Foundation | Enemy roles and boss punish windows | Grunts/flankers/ranged/elites create decisions; signalled openings and validated escapes. |
| Foundation | Accessibility and training arena | Remapping, hold/toggle, shake/flash/haptics controls, clear cues and safe chain/cancel practice. |
| First slice | Combo memory after movement | Next-slot continuity inside the proposed window, reset after expiry; no duplicate damage or hidden queue. |
| First slice | Crowd reactions and reaction LOD | Powerful nearby hits; cheaper distant animation preserves deaths, cues and gameplay. |
| First slice | Telemetry and structured playtests | Measure response, accidental casts, dodge failures, time-to-kill and target loss; record why failures felt fair. |
| First slice | Optional cosmetic encounter KO/combo display | Lightweight legible feedback; toggleable; no new reward/damage/leaderboard mechanic or screen clutter. |
| Deferred | Perfect-dodge rewards, hit-confirm cancels, gameplay hazards and destruction | Separate design and validation after the movement/battle foundation succeeds. |
Special boss music is allowed (ADR-026 amendment). Named engaged boss encounters may have their own theme; outside an encounter the area returns to its quiet bed/emitters/accents. The audio pipeline defines state transitions and warning ducking. Boss themes are production briefs, not generated or listening-approved assets.
◆7. Work order and evidence gates
This guide prepares development; it does not start M0 or complete engine milestones. Keep toolchain/feasibility work first; the roadmap adds M2 preparation gates:
- G0 — Contract readiness: rig version, phases/cost/cancel rules, locomotion/steering, VFX roles and area brief recorded.
- G1 — Movement foundation: mannequin deformation and movement cancels pass; C1–C18, collision/prediction verified before expanding skills.
- G2 — One polished skill: Horizon Cleave passes animation views/transitions, VFX/audio/reactions, budgets and replay invariants on mannequin/representative bodies. Owner reviews the whole experience.
- G3 — Battle slice: small chain, all movement gems, grunt/elite/representative placeholder boss and one camp; all input devices, both cameras, Low/High and reference-device performance reviewed.
- G4 — Scale content: only then expand skills/bodies/areas, each with its own production gate.
Accepted companions (owner, 2026-10-06, ADR-028 to ADR-030): the AAA detail catalog lists the
small hit-feel, camera, effect, sound, world and optimisation details with the stage each is due, and
Speed and token efficiency holds the token rules and tools/ctx.mjs context packs.
Before implementation, task cards identify contracts, assumptions, acceptance tests, platforms and evidence paths.
Save captures, measurements and the checklist in logs/evidence/<task>/. Automated checks and agent self-review precede
owner review. Failed requirements block that item; missing platform tests stay unverified. Pipeline example commands
are planned tools unless the executables exist.
◆Test platforms
Owner direction (2026-10-11, ADR-032): every client milestone is tested on Web (Chrome on the Mac and on the phone), the Android APK (the owner's nubia phone) and Windows (a Mono x86_64 player built on this Mac; the owner runs it on his Windows PC with the WIN-01 smoke kit and returns the results). macOS and iOS are paused: not built or tested in milestone work; their code stays, unmaintained. Feel and keyboard/mouse review: Chrome on the Mac (Low–Mid) and the Windows PC (High); touch on the phone; gamepad stays unverified until one is connected. The release targets are unchanged (ADR-024).
◆8. Low-end baseline and validation
Owner direction: use contemporary entry-level hardware as the development floor, checked 2026-10-05. Selected
references are Galaxy A07 4G / Helio G99 / 4 GB, iPhone SE (2020) / A13, and Intel N150 / integrated graphics /
8 GB / Windows 11. This is a practical cross-platform baseline choice, not the slowest device on the market or a
published minimum requirement. Manufacturer sources, exact configurations and pending probe evidence are in
reference-devices.json and Performance: reference hardware.
Prove the existing Low 30 fps frame/memory targets in both views on physical units, native and supported browsers. Use the sustained camp/crowd/boss session, rapid mana-limited dash/jump paths and thermal/streaming checks. Record exact SKU/OS/driver/API and p50/p95/p99 timings; average FPS alone does not prove smooth response. The owner's Windows PC (High; unprobed until WIN-01) and the M3 Mac (Chrome, the editor) are secondary development references. Physical measurements are pending; wiki/browser tests do not verify game support.
◆9. Player settings and world state
Owner direction (2026-10-06, ADR-028): a feel default is a choice, so it is a setting. Camera shake defaults to 70%.
- A setting changes presentation only: never a server outcome, a hit shape, a timing or a telegraph.
- Defaults live in data.
controls.json → settingsis the options list andfeel-quality.json → settingsholds the feel sliders. Where both name a setting the defaults must match (a data test checks camera shake). - Decided defaults: camera shake 70% (the close view uses 60% of the value), other players' damage numbers off, and no blood (no setting). New: Reduce camera motion, off by default. Every other default is in the data.
- Every setting applies live and is reachable in the GM arena, next to the time and weather buttons.
◆Time of day and weather
Owner direction (2026-10-06, ADR-030): in from day one, with a toggle in the GM
arena. Contract and starting values: time-weather.json.
- Look and sound only. The server owns the clock and each area's weather, so a channel shares one sky.
- Build it into the first client scene (M0-12). Author and capture every area, character and effect across the review matrix (day, night, a hazy dusk, the area's heaviest weather), not in one lighting state.
- Telegraphs, ground previews and nameplates must pass the contrast check in every state on Low. Weather may shorten the view of decoration, never of a threat.
- Weather particles and layers live inside the existing tier totals. Low keeps every state through grade, fog and sky.
◆10. Decisions and next steps
-
Owner decisions 2026-10-06: the AAA detail catalog is the polish standard (ADR-028); token rules, agent self-review and the order of work (ADR-029); day/night and weather from day one (ADR-030).
-
Owner decisions 2026-10-07 (ADR-031): both impact modes are built and judged at a simulated 80 ms round trip; voices are non-verbal; catalog round 2 is accepted. The agents make the action AAA; the owner gives feedback later.
-
Owner decision 2026-10-11 (ADR-032): test on Web, Android and Windows; macOS and iOS are paused (Test platforms).
-
Owner direction: wiki preparation; mannequin first; multi-angle self-review; movement priority through every attack phase; mana-consuming movement, low jump/dash reuse targets, CC eligibility, combo/refund rules, per-skill WASD, both cameras/optional lock-on, enemy coordination and the first-slice foundations; blue Silk Roll; Low baseline and boss music.
-
Proposed tuning: combo memory, moving-cast speeds, response target, capture sampling, ground penetration, soak duration and camp slope. Record tuning evidence in the standards data; these are not industry norms.
-
Before each skill is coded: choose locomotion/steering and damage-entity ownership; extend its contract/tests. Do not bulk-edit 144 skills by guessing movement behavior from names.
-
Deferred: perfect-dodge rewards, hit-confirm cancels, hazards and destruction. Console releases and new modes need separate scope decisions. Per-gem mana/cooldown/travel and per-skill locomotion are authoring/balance tasks, not permission to guess final values; mark starting values proposed and validate them.
-
Next after toolchain readiness: follow M2 preparation tasks in
roadmap.jsonand the skill gate. This documentation task does not execute game runtime, production animation or VFX acceptance tests.
Research checked 2026-10-05. Sources support the specific practices beside their links; Zoen's policies/tuning are explicit design choices. Riot's legacy VFX Style Guide URL redirects, so the accessible Clarity in League article is used.
Source: zoen/docs/process/GAME_DEV_GUIDE.md · 4,892 words · edit the Markdown, not this page.
