honest-hi is an original 3D Action-Adventure-Survival game project, built from scratch to commercial studio standards. The product intent is not an idea document or a throwaway prototype: it is a real, structured, runnable, and extensible game project that proves the ability to turn a game concept into a professional-grade 3D title.
The game combines three genres in one experience: Action (real-time combat with attacks, defense, dodging, and special skills), Adventure (an explorable, diverse, dynamic 3D world with a story and main/side missions), and Survival (a hostile environment governed by a day/night cycle and dynamic weather, where the player must endure enemy pressure and manage their own condition).
The audience is twofold:
The project is delivered as a real game project with a playable prototype, a complete challenge level, an optimization pass, a test suite, and an honest evaluation report that distinguishes implemented, tested, and design-only capabilities.
honest-hi is a third-person 3D Action-Adventure-Survival game. The player controls a single main character with natural animations and an advanced movement system inside a diverse, dynamic 3D world. The world runs a day/night cycle and dynamic weather. Enemies are driven by a behavior-based AI system with differing behaviors. Combat covers attacks, defense, dodging, and special skills. A progression system advances skills, equipment, and abilities. A story with main and side missions frames the core gameplay loop.
The current delivery is a playable prototype plus one complete challenge level, not a finished commercial title. The prototype must include at minimum: a controllable character, a 3D environment, a third-person camera, a movement and jump system, at least one AI enemy, a combat system, a health bar, a UI, and a simple mission with win and lose conditions. The challenge level must let the player enter the environment, receive a mission, explore, encounter enemies, use the combat system, complete the mission objective, receive a reward, and save progress.
Two active human roles exist in the current product:
The game itself is developed with a suitable game engine such as Unreal Engine 5 or Unity. The project's own first-party web surfaces (Landing, Login, and the maintainer-facing Build Test surface) are delivered as a web application; the game runtime is delivered through the chosen engine.
Narrow exclusions and boundaries:
honest-hi is delivered in two layers that must not be confused with each other.
The game layer is the product itself: a 3D Action-Adventure-Survival game built in Unreal Engine 5 or Unity, containing the character, world, camera, movement, enemies, combat, progression, missions, day/night and weather, UI, save/load, settings, and the complete challenge level. This layer is where the player's actual gameplay happens.
The first-party web layer carries the surfaces that surround and support the game: a public Landing surface that presents the game to an anonymous visitor, a Login surface that verifies a returning player before durable progress is loaded or changed and that also admits the maintainer role, and a Build Test surface where the Game Developer / Maintainer verifies implementation, runs repeatable tests, measures performance, and walks the complete challenge-level flow.
Identity and access. The product owns identity. A player establishes their own access before first use (self-service enrollment), and a returning player is verified before any durable player state — saves, progression, settings — is loaded or changed. Maintainer access is established by invitation or provisioning rather than open self-service. The Landing surface is anonymously reachable and carries no protected state. Login is the anonymous entry boundary that establishes access; it does not itself require prior access. All gameplay and maintainer destinations require an established identity, and the game's durable state remains unavailable until that identity is established.
Current versus future. Everything in this document is current unless it appears in Section 11 under future horizons. The current horizon is the playable prototype plus the complete challenge level, with the optimization pass, the test suite, and the evaluation report. Broader content — additional levels, additional enemy archetypes, expanded story arcs, and expanded equipment sets beyond what the prototype and challenge level require — is future work and is not part of current acceptance.
Each requirement below is a distinct story point with its provenance, lifecycle facts, and observable acceptance.
FR-1 — Original genre-combining game. As a Player, I should play an original game that combines Action, Adventure, and Survival, so that the experience delivers all three genres in one title. Provenance: explicit. Lifecycle: initiated by the Player starting play; observable result is a game whose mechanics, world, and pacing express all three genres; failure is a build that omits one of the genres; continuation is play across the world and missions. Acceptance: the game's mechanics, world, and progression demonstrably include real-time action combat, explorable adventure content, and survival pressure from environment and enemies.
FR-2 — Diverse, dynamic 3D world with third-person camera. As a Player, I should explore a 3D world with diverse and dynamic environments through a third-person camera, so that I can see and navigate the world from behind my character. Provenance: explicit. Lifecycle: initiated by the Player moving the character; observable result is the camera following the character in third person through varied environments; failure is a camera that clips, loses the character, or fails to follow; continuation is continued exploration. Acceptance: the camera remains third-person, follows the character, and the environments are visibly diverse and dynamic.
FR-3 — Main character with natural animations and advanced movement. As a Player, I should control a main character with natural animations and an advanced movement system, so that movement feels responsive and believable. Provenance: explicit. Lifecycle: initiated by the Player's movement input; observable result is natural animation and advanced movement (including jump); failure is animation or movement that breaks or becomes unresponsive; continuation is continued traversal. Acceptance: the character animates naturally across movement states and the movement system supports advanced traversal including jumping.
FR-4 — Enemies with AI and differing behaviors. As a Player, I should face enemies that have AI and behave differently from one another, so that encounters require different responses. Provenance: explicit. Lifecycle: initiated by the Player entering an encounter; observable result is enemies acting on their own AI with distinguishable behaviors; failure is enemies that do not act or act identically; continuation is continued encounter play. Acceptance: at least one AI enemy exists in the prototype, and enemy behaviors differ across the encounter set.
FR-5 — Combat system with attacks, defense, dodging, and special skills. As a Player, I should use a combat system that includes attacks, defense, dodging, and special skills, so that combat has depth and counterplay. Provenance: explicit. Lifecycle: initiated by the Player engaging in combat; observable result is each of the four combat capabilities resolving with observable effect; failure is an unavailable or non-resolving combat action; continuation is continued combat or disengagement. Acceptance: attacks, defense, dodging, and special skills are each usable and each produce an observable result.
FR-6 — Progression system for skills, equipment, and abilities. As a Player, I should advance my skills, equipment, and abilities, so that my character grows over the course of play. Provenance: explicit. Lifecycle: initiated by the Player earning advancement; observable result is an applied advancement to skills, equipment, or abilities; failure is an advancement that cannot be applied; continuation is continued play with the advanced state. Acceptance: skills, equipment, and abilities can each be advanced and the advancement is observable and persists.
FR-7 — Day/night cycle and dynamic weather. As a Player, I should experience a day/night cycle and dynamic weather conditions, so that the world changes over time and conditions matter. Provenance: explicit. Lifecycle: initiated by the passage of play time; observable result is a changing time of day and changing weather; failure is a cycle or weather system that stalls or does not render; continuation is continued play under the new conditions. Acceptance: the day/night cycle progresses and weather conditions change dynamically during play.
FR-8 — Engaging story with main and side missions. As a Player, I should experience an engaging story delivered through main and side missions, so that my play has narrative purpose. Provenance: explicit. Lifecycle: initiated by the Player receiving a mission; observable result is mission content that advances the story; failure is a mission that cannot be received or completed; continuation is the next mission. Acceptance: the game contains main missions and side missions, and mission content carries the story.
FR-9 — Detailed specification of mechanics, story, level design, and core loop. As a Game Developer / Maintainer, I should have all game mechanics, the story, the level design, and the core gameplay loop specified in detail, so that the project is buildable and extensible. Provenance: explicit. Lifecycle: initiated by the maintainer designing the project; observable result is a detailed specification of mechanics, story, level design, and core loop; failure is a specification with gaps; continuation is implementation against the specification. Acceptance: mechanics, story, level design, and the core gameplay loop are each specified in detail.
FR-10 — Modern visual standards. As a Player, I should see a 3D environment built to modern visual standards, so that the game looks like a contemporary title. Provenance: explicit. Lifecycle: initiated by the Player viewing the world; observable result is dynamic lighting with realistic shadows, PBR materials, particle and weather effects, smooth animations, explorable environments, a modern responsive UI, and environment-appropriate sound effects and music; failure is a missing or broken visual or audio element; continuation is continued play. Acceptance: dynamic lighting and realistic shadows, PBR materials, particle and weather effects, smooth animations, explorable environments, a modern responsive UI, and environment-appropriate sound effects and music are each present.
FR-11 — 3D modeling, shaders, lighting, and optimization techniques with honest substitutes. As a Game Developer / Maintainer, I should use 3D modeling, shaders, lighting, and appropriate optimization techniques, and where real graphics files cannot be produced I should state that limitation and use workable substitutes, so that the visual pipeline is real and honestly reported. Provenance: explicit. Lifecycle: initiated by the maintainer building the visual pipeline; observable result is applied modeling, shader, lighting, and optimization techniques, or a stated limitation with workable substitutes; failure is an unstated limitation or a non-working substitute; continuation is continued pipeline work. Acceptance: the techniques are applied, and any inability to produce real graphics files is explicitly stated alongside the substitutes used.
FR-12 — Player detection via field of view and sound. As a Player, I should be detected by enemies through their field of view and through sound, so that stealth and noise both matter. Provenance: explicit. Lifecycle: initiated by the Player entering an enemy's field of view or making sound; observable result is the enemy detecting the Player; failure is detection that never triggers or triggers without cause; continuation is the enemy's next behavior. Acceptance: enemies detect the Player both by field of view and by sound.
FR-13 — Intelligent patrolling. As a Player, I should observe enemies patrolling intelligently, so that their movement is purposeful rather than random. Provenance: explicit. Lifecycle: initiated by enemies being idle; observable result is purposeful patrol movement; failure is stalled or purely random patrol; continuation is patrol until detection. Acceptance: enemies patrol along purposeful routes.
FR-14 — Chasing and searching for the player. As a Player, I should be chased and searched for by enemies, so that evasion has consequences. Provenance: explicit. Lifecycle: initiated by detection; observable result is the enemy chasing the Player and searching for them when the Player is lost; failure is a chase that never starts or a search that never resolves; continuation is capture, loss of the Player, or return to patrol. Acceptance: enemies chase the Player after detection and search for the Player when the Player is no longer directly perceived.
FR-15 — Taking cover in combat. As a Player, I should see enemies take cover during combat, so that firefights have tactical structure. Provenance: explicit. Lifecycle: initiated by combat; observable result is enemies moving to and using cover; failure is enemies that never use cover; continuation is continued combat. Acceptance: enemies take cover during combat.
FR-16 — Group cooperation among enemies. As a Player, I should face enemies that cooperate as a group, so that groups are more dangerous than isolated enemies. Provenance: explicit. Lifecycle: initiated by multiple enemies engaging the Player; observable result is coordinated group behavior; failure is enemies acting in complete isolation; continuation is continued group engagement. Acceptance: enemies in a group cooperate with one another.
FR-17 — Reaction to environment events. As a Player, I should see enemies react to events in the environment, so that the world and the AI are connected. Provenance: explicit. Lifecycle: initiated by an environment event; observable result is an enemy reaction; failure is an event that produces no reaction; continuation is the enemy's next behavior. Acceptance: enemies react to environment events.
FR-18 — Behavior-based decision system with explained architecture. As a Game Developer / Maintainer, I should implement a behavior-based decision system using a Behavior Tree or another suitable method, and explain its architecture, so that enemy decisions are structured and understandable. Provenance: explicit. Lifecycle: initiated by the maintainer implementing the AI; observable result is a behavior-based decision system with a documented architecture; failure is an undocumented or unstructured decision system; continuation is extension of the AI. Acceptance: the decision system is behavior-based, uses a Behavior Tree or another suitable method, and its architecture is explained.
FR-19 — Development with a suitable game engine. As a Game Developer / Maintainer, I should develop the project with a suitable game engine such as Unreal Engine 5 or Unity, so that the project is built on a professional foundation. Provenance: explicit. Lifecycle: initiated by the maintainer setting up the project; observable result is a project built in the chosen engine; failure is a project that cannot be built or run in the engine; continuation is continued development. Acceptance: the project is developed in Unreal Engine 5 or Unity.
FR-20 — Modular clean architecture with separated gameplay systems. As a Game Developer / Maintainer, I should build a modular, clean architecture with separated gameplay systems, so that the project is maintainable and extensible. Provenance: explicit. Lifecycle: initiated by the maintainer designing the architecture before implementation; observable result is a modular architecture with separated gameplay systems; failure is tangled or unstructured code; continuation is implementation against the architecture. Acceptance: the architecture is modular, gameplay systems are separated, and the architecture is designed before implementation.
FR-21 — Memory and resource management. As a Game Developer / Maintainer, I should manage memory and resources, so that the game runs within reasonable resource budgets. Provenance: explicit. Lifecycle: initiated by the maintainer implementing resource handling; observable result is managed memory and resource usage; failure is unbounded growth or leaked resources; continuation is continued development. Acceptance: memory and resources are managed as part of the architecture.
FR-22 — Save and load system. As a Player, I should save and load the game, so that I can resume my progress. Provenance: explicit. Lifecycle: initiated by the Player saving or loading; observable result is a written save or a restored state; failure is a corrupt or missing save; continuation is resumed play. Acceptance: the game can save and load, and the loaded state matches the saved state.
FR-23 — Event management. As a Game Developer / Maintainer, I should have an event management system, so that systems communicate without tight coupling. Provenance: explicit. Lifecycle: initiated by a system raising an event; observable result is the event being delivered to its listeners; failure is a lost or duplicated event; continuation is continued system operation. Acceptance: an event management system exists and systems communicate through it.
FR-24 — Settings system. As a Player, I should adjust game settings, so that I can configure the game to my preference. Provenance: explicit. Lifecycle: initiated by the Player changing a setting; observable result is the applied and persisted setting; failure is a setting that does not apply or persist; continuation is continued play. Acceptance: a settings system exists, settings apply, and settings persist.
FR-25 — Error handling. As a Game Developer / Maintainer, I should have error handling, so that failures are surfaced and contained rather than crashing the game. Provenance: explicit. Lifecycle: initiated by a failure condition; observable result is a handled error with a clear surface; failure is an unhandled crash; continuation is recovery. Acceptance: error handling exists and failures are surfaced and contained.
FR-26 — Controller and keyboard support. As a Player, I should play with a controller or a keyboard, so that I can use my preferred input device. Provenance: explicit. Lifecycle: initiated by the Player using an input device; observable result is correct input handling for both controller and keyboard; failure is an unsupported or mis-mapped input; continuation is continued play. Acceptance: both controller and keyboard input are supported.
FR-27 — Future extensibility. As a Game Developer / Maintainer, I should be able to extend the project in the future, so that the project can grow beyond the current scope. Provenance: explicit. Lifecycle: initiated by the maintainer adding new content or systems; observable result is an extension that fits the architecture without restructuring; failure is an extension that requires breaking the architecture; continuation is continued extension. Acceptance: the architecture supports future extension.
FR-28 — Specified folder structure, files, classes, and inter-system relationships with real code. As a Game Developer / Maintainer, I should have the folder structure, main files, classes, and inter-system relationships specified, with code that is real, coherent, and as runnable as possible, so that the project can be built and understood. Provenance: explicit. Lifecycle: initiated by the maintainer documenting and writing the project; observable result is a specified structure and real, coherent, runnable code; failure is demo or non-runnable code presented as the product; continuation is continued development. Acceptance: folder structure, main files, classes, and inter-system relationships are specified, and the code is real, coherent, and as runnable as possible.
FR-29 — Playable prototype with the required minimum. As a Player, I should play a runnable prototype that includes a controllable character, a 3D environment, a third-person camera, a movement and jump system, at least one AI enemy, a combat system, a health bar, a UI, and a simple mission with win and lose conditions, so that the game is actually playable. Provenance: explicit. Lifecycle: initiated by the Player launching the prototype; observable result is all nine required elements present and working; failure is any missing element; continuation is play through the mission. Acceptance: all nine elements are present and functional in the prototype.
FR-30 — Build steps, required files, and run instructions. As a Game Developer / Maintainer, I should have all build steps, required files, and the method for running the project, so that the project can be built and run. Provenance: explicit. Lifecycle: initiated by the maintainer building the project; observable result is a successful build and run following the documented steps; failure is a missing step or file; continuation is running the project. Acceptance: build steps, required files, and run instructions are provided and sufficient to build and run the project.
FR-31 — Reasonable performance on mid-range systems. As a Player, I should get reasonable performance on a mid-range system, so that the game is playable without high-end hardware. Provenance: explicit. Lifecycle: initiated by running the game on a mid-range system; observable result is reasonable performance; failure is performance that makes the game unplayable; continuation is continued play. Acceptance: the game performs reasonably on mid-range systems.
FR-32 — Optimization across frame rate, RAM/VRAM, draw calls, object and resource management, LOD and culling, staged loading, physics and AI. As a Game Developer / Maintainer, I should examine and optimize frame rate, RAM and VRAM usage, draw call count, object and resource management, LOD and culling, staged environment loading, and physics and AI, so that the game meets its performance target. Provenance: explicit. Lifecycle: initiated by the maintainer profiling the game; observable result is each of the seven areas examined and optimized; failure is an unexamined area; continuation is re-measurement. Acceptance: each of the seven areas is examined and optimized.
FR-33 — Specified performance measurement method without fabricated numbers. As a Game Developer / Maintainer, I should have the performance measurement method specified and should not present fabricated numbers, so that performance claims are trustworthy. Provenance: explicit. Lifecycle: initiated by the maintainer measuring performance; observable result is a specified measurement method and real measurements; failure is a fabricated number; continuation is reporting. Acceptance: the measurement method is specified and no fabricated numbers are presented.
FR-34 — Tests for movement and collision, combat, AI, save/load, UI, and performance under high-traffic conditions. As a Game Developer / Maintainer, I should have tests designed for movement and collision, combat, AI, save/load, UI, and performance under high-traffic conditions, so that each system is verified. Provenance: explicit. Lifecycle: initiated by the maintainer running the tests; observable result is test results for each of the six areas; failure is an untested area; continuation is fixing and re-testing. Acceptance: tests exist for all six areas.
FR-35 — Bug identification, fixes, and repeatable tests. As a Game Developer / Maintainer, I should identify likely bugs, propose fixes, and write repeatable tests that confirm the fixes, so that stability is verifiable. Provenance: explicit. Lifecycle: initiated by a suspected or observed bug; observable result is an identified bug, a proposed fix, and a repeatable test that confirms the fix; failure is a bug without a repeatable test; continuation is re-running the test. Acceptance: likely bugs are identified, fixes are proposed, and repeatable tests confirm the fixes.
FR-36 — One complete level with the eight-step player flow. As a Player, I should play one complete level in which I can enter the environment, receive a mission, explore the environment, encounter enemies, use the combat system, complete the mission objective, receive a reward, and save my progress, so that the full gameplay loop is playable end to end. Provenance: explicit. Lifecycle: initiated by the Player entering the level; observable result is all eight steps completed in order; failure is a step that cannot be completed; continuation is the reward and the saved progress. Acceptance: all eight steps are completable in one level.
FR-37 — Produce a real project, not an explanation. As a Game Developer / Maintainer, I should produce a real project as far as the tools allow rather than merely explaining, so that the deliverable is an actual project. Provenance: explicit. Lifecycle: initiated by the maintainer building the project; observable result is a real project; failure is an explanation-only deliverable; continuation is continued building. Acceptance: a real project is produced as far as the tools allow.
FR-38 — No demo or non-runnable code as the final product. As a Game Developer / Maintainer, I should not use demo or non-runnable code as the final product, so that the delivered product actually runs. Provenance: explicit. Lifecycle: initiated by the maintainer delivering the product; observable result is runnable code; failure is demo or non-runnable code presented as the product; continuation is delivery. Acceptance: the final product is not demo or non-runnable code.
FR-39 — Identify parts requiring external files, tools, or assets. As a Game Developer / Maintainer, I should identify any part that requires external files, tools, or assets, so that dependencies are known. Provenance: explicit. Lifecycle: initiated by the maintainer reviewing the project; observable result is an identified list of external requirements; failure is an unidentified dependency; continuation is dependency resolution. Acceptance: every part requiring external files, tools, or assets is identified.
FR-40 — Design the architecture before implementation. As a Game Developer / Maintainer, I should design the architecture before implementation, so that implementation follows a plan. Provenance: explicit. Lifecycle: initiated by the maintainer starting work; observable result is a designed architecture preceding implementation; failure is implementation without a design; continuation is implementation. Acceptance: the architecture is designed before implementation begins.
FR-41 — Implement and test each system independently. As a Game Developer / Maintainer, I should implement and test each system independently, so that each system is verified in isolation. Provenance: explicit. Lifecycle: initiated by the maintainer implementing a system; observable result is an independently implemented and tested system; failure is an untested system; continuation is the next system. Acceptance: each system is implemented and tested independently.
FR-42 — Avoid temporary solutions and unstructured code. As a Game Developer / Maintainer, I should avoid temporary solutions and unstructured code, so that the project remains maintainable. Provenance: explicit. Lifecycle: initiated by the maintainer writing code; observable result is structured, non-temporary code; failure is a temporary solution or unstructured code; continuation is continued development. Acceptance: no temporary solutions or unstructured code are used.
FR-43 — Honestly explain resource or tool limitations. As a Game Developer / Maintainer, I should honestly explain any resource or tool limitations, so that the project's boundaries are clear. Provenance: explicit. Lifecycle: initiated by encountering a limitation; observable result is an honest explanation of the limitation; failure is a hidden or misrepresented limitation; continuation is work within the stated limits. Acceptance: resource and tool limitations are honestly explained.
FR-44 — Report against the eight evaluation criteria. As a Game Developer / Maintainer, I should report the project against architecture quality, code quality and readability, gameplay quality, graphics quality, enemy AI, performance and optimization, stability and bug count, and extensibility and maintainability, so that the project's standing is clear. Provenance: explicit. Lifecycle: initiated by the maintainer completing the project; observable result is a report covering all eight criteria; failure is a missing criterion; continuation is the final evaluation. Acceptance: all eight criteria are reported.
FR-45 — Real evidence per criterion, distinguishing implemented, tested, and design-only. As a Game Developer / Maintainer, I should provide real evidence from the project for each criterion and distinguish implemented, tested, and design-only capabilities, so that the report is truthful. Provenance: explicit. Lifecycle: initiated by the maintainer writing the report; observable result is real evidence per criterion with the three capability states distinguished; failure is an unsupported claim or a conflated capability state; continuation is the final report. Acceptance: each criterion carries real project evidence and each capability is marked implemented, tested, or design-only.
FR-46 — Player self-service enrollment before first use. As a Player, I should establish my own access before first use, so that my progress can be bound to me. Provenance: required_inference. Lifecycle: initiated by the Player on the anonymous Login surface; observable result is an established player identity; failure is a failed enrollment; continuation is entry to Gameplay. Acceptance: a new Player can establish access without prior provisioning.
FR-47 — Returning verification before loading or changing durable player state. As a Player, I should be verified on return before my durable state is loaded or changed, so that my saves, progression, and settings remain bound to me. Provenance: required_inference. Lifecycle: initiated by the returning Player on the anonymous Login surface; observable result is a verified identity and access to durable state; failure is a failed verification; continuation is entry to Gameplay with the correct state. Acceptance: durable player state is not loaded or changed before verification succeeds.
FR-48 — Invitation or provisioning for Game Developer / Maintainer access. As a Game Developer / Maintainer, I should receive access by invitation or provisioning, so that maintainer access is not open self-service. Provenance: required_inference. Lifecycle: initiated by an invitation or provisioning action; observable result is an established maintainer identity; failure is an unprovisioned attempt; continuation is entry to Build Test. Acceptance: maintainer access is established by invitation or provisioning.
FR-49 — Backend persistence for saves, progression, settings, and test evidence. As a Game Developer / Maintainer, I should have backend persistence for saves, progression, settings, and test evidence, so that durable state survives across sessions. Provenance: required_inference. Lifecycle: initiated by a save, progression change, settings change, or test run; observable result is persisted state; failure is a persistence failure; continuation is retrieval of the persisted state. Acceptance: saves, progression, settings, and test evidence persist across sessions.
Product context. The Player is the single active human role inside the game. They launch honest-hi, control the main character in a third-person 3D world, and play through the Action-Adventure-Survival experience: exploring diverse and dynamic environments, fighting enemies with a combat system built on attacks, defense, dodging, and special skills, taking main and side missions, earning rewards, and saving progress.
Primary goal. Complete the final challenge level's mission loop: enter the environment, receive a mission, explore, encounter enemies, fight, complete the objective, receive the reward, and save progress.
Distinct accepted responsibilities. The Player moves and jumps the character, controls the third-person camera, explores the world, engages and disengages combat, uses attacks, defense, dodging, and special skills, faces enemies whose AI detects them by sight and sound and whose behaviors differ, receives and tracks missions, completes objectives, receives rewards, advances skills, equipment, and abilities, adjusts settings, and saves and loads progress. The Player also experiences the day/night cycle and dynamic weather, and reads the health bar and gameplay information on the HUD.
Relevant inputs and decisions. The Player decides when to explore, when to engage, when to defend or dodge, when to use a special skill, when to take a mission, when to advance progression, and when to save. The Player inputs through a controller or a keyboard.
Interactions with other accepted participants. The Player's only in-game counterparties are the AI enemies, which are not human personas. The Player interacts with the Game Developer / Maintainer only indirectly: the maintainer builds, tests, and extends the game the Player plays, and the maintainer's Build Test surface verifies the same challenge-level flow the Player performs.
Observable success. The Player completes all eight steps of the challenge level in one session, sees the reward granted, and sees the progress saved and correctly restored on return.
What makes this role different. The Player is the only role that experiences the game as a game: their work is play, their decisions are tactical and exploratory, and their success is measured by completing the mission loop rather than by verifying the project.
Product context. The Game Developer / Maintainer is the role that builds, runs, tests, measures, and extends honest-hi. The source explicitly requires a modular, clean, extensible architecture with separated gameplay systems, save/load, event management, settings, error handling, controller and keyboard support, and future extensibility, plus repeatable tests and performance measurement.
Primary goal. Deliver a real, runnable, testable, extensible project and report it honestly against the eight evaluation criteria, distinguishing implemented, tested, and design-only capabilities.
Distinct accepted responsibilities. The maintainer designs the architecture before implementation; implements and tests each system independently; specifies folder structure, main files, classes, and inter-system relationships; writes real, coherent, runnable code; avoids temporary solutions and unstructured code; identifies parts requiring external files, tools, or assets; states any inability to produce real graphics files and uses workable substitutes; specifies the performance measurement method and avoids fabricated numbers; designs tests for movement and collision, combat, AI, save/load, UI, and performance under high-traffic conditions; identifies likely bugs, proposes fixes, and writes repeatable tests; and produces the evaluation report with real evidence per criterion.
Relevant inputs and decisions. The maintainer decides the engine (Unreal Engine 5 or Unity), the architecture, the module boundaries, the AI decision method (Behavior Tree or another suitable method), the optimization targets, the test design, and the honest reporting of limitations.
Interactions with other accepted participants. The maintainer's work produces the game the Player plays. The maintainer verifies the same challenge-level flow the Player performs, and reports on the systems the Player uses.
Observable success. The project builds and runs; each system is independently tested; performance is measured by a specified method with no fabricated numbers; the evaluation report covers all eight criteria with real evidence and correctly distinguishes implemented, tested, and design-only capabilities.
What makes this role different. The maintainer's work is engineering and verification, not play: their success is measured by architecture quality, code quality and readability, test coverage, honest measurement, and extensibility, and their access is established by invitation or provisioning rather than open self-service.
The creative direction is authoritative for this section: Cinematic future tech for a survival action world, with Gleb Kuznetsov as the muse. The register is a launch trailer, not a SaaS landing page — dark voids, glowing volumetric forms, HUD-like data, and motion as the hero.
Headline direction. The public entry carries the wordmark HONEST-HI set in Space Grotesk 700 at clamp(48px, 9vw, 132px), stacked over three uppercase micro-labels — GENRE / ENGINE / STATUS — separated by hairline cyan rules.
Palette (dark mode).
| Role | Token | Hex |
|---|---|---|
| Background | --bg | #05070C |
| Surface | --surface | #0B1018 |
| Text | --text | #E6F0FF |
| Primary | --primary | #00E5FF |
| Accent (danger) | --accent | #FF2D6F |
| Muted | --muted | #5A6B82 |
Deep near-black navy ground (#05070C) carries 70% of the surface. Glass panels float at #0B1018 with 1px luminous strokes at 12% white. Electric cyan (#00E5FF) is the primary signal — HUD lines, active states, the player health bar, focus rings. Magenta (#FF2D6F) is reserved for danger: enemy aggro indicators, boss health, damage numbers, the "threat" state. Body text is #E6F0FF at 15:1 on background; muted metadata (#5A6B82) is used only for secondary labels at 4.6:1 minimum.
Typography.
0.18em tracking, mixed-case display at 700 weight with tight -0.02em tracking for hero headlines. Headlines are set large and confident, never decorative.clamp(48px, 9vw, 132px).clamp(28px, 4vw, 56px).Shape language. Full-bleed dark canvas with floating glass panels (16px radius, 1px rgba(230,240,255,0.12) stroke, backdrop-filter: blur(18px)). Thin luminous cyan strokes draw HUD frames, corner brackets, and radial reticles. Hard-edged data chips (4px radius) sit next to soft glass cards to create tension between instrument and interface. Diagonal 1px scan lines at 8% opacity cross section boundaries.
Layout. Asymmetric radial composition: the hero is a full-viewport 3D scene with UI anchored to the four corners like a HUD — top-left: mission state; top-right: threat meter; bottom-left: player vitals; bottom-right: input legend. Content sections break the radial grid with a 12-column base, but every section opens with an uppercase micro-label and a hairline cyan rule that spans the column. Data-dense capability sections use a 3-up glass panel grid, never identical hover-lift cards — each panel has a different internal composition (one is a stat readout, one is a behavior-tree diagram, one is a code sample).
Imagery. One crafted real-time 3D subject in the hero: a low-poly-but-detailed survival character silhouette standing in a volumetric fog field, lit by a single cyan rim light and a magenta enemy glow in the deep background. Supporting imagery is abstract 3D — a rotating behavior-tree node graph, a particle field sampled from the day/night cycle, a wireframe terrain scan. No stock photography, no flat clip art, no device mockups.
Readable text and controls. Headlines, wordmarks, labels, numbers, cards' text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Imagery, decoration, and motion may be cropped, bled off an edge, rotated, overlapped, or cut exactly as the direction asks, as long as they cover no readable text or control. Moving and scrollable content may cross the viewport or container edge by design and is judged by whether it actually moves or scrolls and whether every item becomes fully readable as it passes. With prefers-reduced-motion, it stops and shows whole items: they wrap into rows, or sit in a horizontally scrollable row (overflow-x: auto) whose further items are reached by scrolling.
Forbidden. The generic indigo/blue-on-white SaaS template is forbidden for this project. Centred headline + subtext + blue CTA + gradient blob hero; grids of identical hover-lift cards; Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins, or system-ui for any text; blue-indigo (#0057FF / #2563EB / #4F46E5 / #6366F1 / #7C3AED) as primary or accent on a white ground; white or near-white page background; flat clip-art or stock photography in the hero; bouncy or springy micro-interactions; decorative gradient blobs or floating pastel shapes.
The hero is the game engine, not a screenshot of it.
The public entry is a full-viewport WebGL scene (Three.js / React Three Fiber): a dark volumetric fog field with a single 3D character silhouette at 40% viewport height, off-center right at the 62% column, lit by a cyan rim light from the left and a magenta glow bleeding from the deep background. The left 38% is a solid #05070C colour block carrying the oversized HONEST-HI headline in Space Grotesk 700 at clamp(48px, 9vw, 132px), stacked over the three uppercase micro-labels GENRE / ENGINE / STATUS separated by hairline cyan rules. The CTA sits pinned beneath the headline as a hard-edged cyan chip with a corner bracket, not a pill. A HUD frame of thin cyan corner brackets wraps the viewport edges. No centred headline, no gradient blob, no blue button.
The signature moves that carry the concept through the page:
0.18em tracking sitting above hairline cyan rules that span the full column width, creating a rhythmic instrument-panel cadence down the page.This concept only recomposes accepted content, states, and controls. It introduces no new behaviour, page, or destination.
Interaction Model: Animated Motion Tempo: cinematic Hero Dimensionality: webgl
Landing Hero Motion Brief
#05070C block carrying the HONEST-HI headline over the three micro-labels; the CTA chip sits beneath the headline; thin cyan corner brackets wrap the viewport edges.prefers-reduced-motion stops the orbit, freezes the scan, and swaps the scroll-scrub for a static hero image; all readable text and controls remain whole and fully legible.Landing Hero 3D Scene Brief — DIRECTION-DERIVED
prefers-reduced-motion or when WebGL is unavailable.NFR-1 — Performance on mid-range systems. The game must perform reasonably on mid-range systems. Provenance: explicit. Rationale: the source states the game must perform well on mid-range systems as far as possible.
NFR-2 — Measured, not fabricated, performance. Performance must be measured by a specified method, and fabricated numbers must not be presented. Provenance: explicit. Rationale: the source requires the measurement method to be specified and forbids fabricated numbers.
NFR-3 — Optimization coverage. Frame rate, RAM and VRAM usage, draw call count, object and resource management, LOD and culling, staged environment loading, and physics and AI must each be examined and optimized. Provenance: explicit. Rationale: the source enumerates these seven optimization areas.
NFR-4 — Modular, clean, extensible architecture. The architecture must be modular and clean, with separated gameplay systems, memory and resource management, save/load, event management, settings, error handling, controller and keyboard support, and future extensibility. Provenance: explicit. Rationale: the source enumerates these architectural requirements.
NFR-5 — Real, coherent, runnable code. Code must be real, coherent, and as runnable as possible; demo or non-runnable code must not be used as the final product; temporary solutions and unstructured code must be avoided. Provenance: explicit. Rationale: the source's rules section states these constraints directly.
NFR-6 — Honest limitation reporting. Any resource or tool limitation, and any inability to produce real graphics files, must be stated honestly, with workable substitutes used where real graphics files cannot be produced. Provenance: explicit. Rationale: the source requires honest explanation of limitations and workable substitutes.
NFR-7 — External dependency identification. Any part requiring external files, tools, or assets must be identified. Provenance: explicit. Rationale: the source requires external dependencies to be identified.
NFR-8 — Independent system implementation and testing. Each system must be implemented and tested independently. Provenance: explicit. Rationale: the source requires independent implementation and testing per system.
NFR-9 — Architecture before implementation. The architecture must be designed before implementation. Provenance: explicit. Rationale: the source requires architecture design to precede implementation.
NFR-10 — Test coverage across six areas. Tests must cover movement and collision, combat, AI, save/load, UI, and performance under high-traffic conditions. Provenance: explicit. Rationale: the source enumerates these six test areas.
NFR-11 — Repeatable bug-confirmation tests. Likely bugs must be identified, fixes proposed, and repeatable tests written to confirm the fixes. Provenance: explicit. Rationale: the source requires repeatable tests for bug confirmation.
NFR-12 — Evidence-based evaluation. The evaluation report must cover all eight criteria with real project evidence, distinguishing implemented, tested, and design-only capabilities. Provenance: explicit. Rationale: the source requires real evidence per criterion and the three-way capability distinction.
NFR-13 — Readable text and controls at every viewport. Headlines, wordmarks, labels, numbers, cards' text, and controls must stay entirely inside the viewport and their container at 375px, 768px, and 1280px, and no other element may cover any part of them. Provenance: explicit (creative direction). Rationale: the creative direction states this as a binding readability rule.
NFR-14 — Reduced-motion support. Under prefers-reduced-motion, the hero orbit stops, the scan freezes, and the scroll-scrub is replaced by a static hero image; moving and scrollable content stops and shows whole items. Provenance: explicit (creative direction). Rationale: the creative direction specifies the reduced-motion behavior.
NFR-15 — Durable state persistence. Saves, progression, settings, and test evidence must persist across sessions. Provenance: required_inference. Rationale: required to make the accepted save/resume and evaluation journeys executable.
Game layer (source-specified).
First-party web layer (Landing, Login, Build Test).
Typography and styling. Space Grotesk (headings) and IBM Plex Mono (body), loaded as web fonts; CSS custom properties for the palette tokens in Section 6.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!