Files
makelore/.opencode/skills/nianxxgame-skill/assets/GDD.template.md
2026-07-29 17:22:35 +08:00

198 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# [Game Title] — Living GDD
Project Version: v0.1.0
Document Revision: 1
Last Updated By: game-design
> Keep this document current and testable. The agent drafts it from the user's brief; do not ask the user to fill blanks. For a first concept pass, complete Status, the core prompts in Sections 14, the `Must`/`Not in this release` boundary in Section 6, and the top risk/current experiment in Section 7. Delete unused placeholder rows. Add active system specifications in Section 5 and evidence records in Section 8 only as the next prototype needs them, then replace hypotheses with evidence.
## Status
- **Stage:** Concept / Prototype / Build / Ship
- **Current build:** [path, URL, tag, or commit]
- **Last updated:** YYYY-MM-DD
- **Largest current risk:** [one testable question]
- **Decision labels:** Hypothesis / Tested / Committed
## 1. Game promise
- **One-sentence game:** [Player + core action + pressure/goal + distinctive result]
- **Player fantasy:** [Who the player feels like and what feeling to protect]
- **Target player:** [Relevant experience, interests, and accessibility needs]
- **Platform and input:** [Browser/device plus keyboard, pointer, touch, or gamepad]
- **Rendering mode:** [2D by default / 3D only when the user explicitly chooses it]
- **Engine:** [Phaser 3.90.0 for 2D / Three.js + TypeScript for 3D, with exact dependency version in TECH_STACK.md]
- **Typical session:** [Duration and natural stopping point]
- **Desired feeling arc:** [Start → tension/growth → result]
- **Hard constraints:** [Schedule, team, technology, content, or release limits]
## 2. Pillars and boundaries
| Pillar | Observable player promise | Trade-off it wins |
|---|---|---|
| [Pillar 1] | [What the player perceives or does] | [What to prefer when ideas conflict] |
| [Pillar 2] | [What the player perceives or does] | [What to prefer when ideas conflict] |
| [Optional pillar 3] | [Promise] | [Trade-off] |
### Non-goals for this release
- [Explicitly excluded feature, audience, mode, or production burden]
- [Second exclusion]
- [Optional third exclusion]
## 3. Experience chain and core loop
| Fantasy | Player verbs | Mechanics | Rules/pressure | Feedback | Reason to repeat |
|---|---|---|---|---|---|
| [Experience] | [36 verbs] | [Systems] | [Limits and consequences] | [How results are perceived] | [Mastery, variation, reward, or new goal] |
### Core loop
1. [Receive or choose a goal.]
2. [Read the situation and decide.]
3. [Perform the core verb.]
4. [Receive a clear consequence.]
5. [Retry, advance, or choose the next goal.]
### State flow
`Launch → Start → Play → Pause/Resume → Outcome → Retry/Continue`
- **Start condition:** [How play begins]
- **Success/outcome condition:** [Observable rule]
- **Failure/end condition:** [Observable rule]
- **Retry/continue:** [What resets, what persists, and retry friction]
## 4. Player model
### Controls and feedback
| Input/context | Verb | Availability | Immediate response | Accessible alternative |
|---|---|---|---|---|
| [Input] | [Action] | [When legal] | [Control/visual/audio response] | [Remap, toggle, assist, or N/A with reason] |
### Rules the player must understand
1. [Rule or invariant in player language]
2. [Rule or invariant in player language]
3. [Rule or invariant in player language]
### Essential information
| Player question | How the game answers | Fallback cue |
|---|---|---|
| What is my goal? | [World/UI/audio cue] | [Persistent or repeatable cue] |
| What can I act on? | [Affordance and state cue] | [Redundant cue] |
| What changed and why? | [Cause/effect feedback] | [Result/failure explanation] |
| What can I do next? | [Prompt, layout, or state] | [Recovery route] |
### Presentation baseline
- **Camera:** [Fixed/following; framing, bounds, movement, shake, and comfort limits]
- **3D presentation when applicable:** [Scene, world-up, units, model format, lighting, camera controls, loading fallback, and performance target]
- **UI:** [Persistent information, overlays, safe areas, and hierarchy]
- **Feel and feedback:** [Timing, motion, audio, effects, and restraint]
- **Accessibility:** [Remapping, alternatives, reduced motion, contrast, text, and audio controls]
## 5. Active system specifications
> Copy this block only when a system enters active work. Keep its stable `SYS-###` ID. Tracked tasks must reference the ID or exact heading.
### SYS-001 — [System name]
- **Status:** Hypothesis / Tested / Committed
- **Player purpose and pillar:** [Why it exists]
- **Decision or expression:** [Meaningful choice or skill]
- **Inputs and preconditions:** [Trigger and legal context]
- **Owned/read state:** [State and source of truth]
- **Outputs/events:** [State changes and external signals]
- **Dependencies:** [Systems, assets, content, or platform assumptions]
#### Rules and transitions
1. [Availability/start rule]
2. [Active behavior, priority, or formula]
3. [Resolve, interrupt, and recovery rule]
`available → started → active → resolved/interrupted → recovered`
#### Feedback and fairness
| Event/state | Immediate confirmation | Consequence | Recovery/next action | Redundant cue |
|---|---|---|---|---|
| [Event] | [Response] | [Visible result] | [What follows] | [Non-audio/non-color cue] |
#### Tunables
| Name | Unit | Default hypothesis | Safe test range | Intended player effect |
|---|---|---:|---:|---|
| [Meaningful name] | [s, px/s, count, %] | [value] | [lowhigh] | [Effect] |
#### Edge cases
- [Repeated/simultaneous input]
- [Interrupt, scene/state change, or limit]
- [Cleanup and player recovery]
#### Delivery contract
- **Acceptance criteria — maximum 3:**
- [ ] [Observable player-facing condition]
- [ ] [Critical rule or edge condition]
- [ ] [Feedback/recovery condition]
- **Non-goals — maximum 3:** [Excluded behavior for this version]
- **Primary playtest question:** [One uncertainty this implementation must answer]
## 6. MVP and release boundary
### Must
- [Complete start → play → result → retry/continue loop]
- [Core system/content requirement]
- [Required feedback, UX, accessibility, or delivery condition]
### Later, after evidence
- [Extension and the evidence that would justify it]
- [Extension and trigger]
### Not in this release
- [Explicit exclusion]
- [Explicit exclusion]
### Quality boundary
- **Target environment:** [Device/browser/display/input]
- **Performance target:** [Frame rate, load time, or supported floor]
- **Save/data expectation:** [Persistence and compatibility]
## 7. Risks and playtests
| Priority | Risk as a question | Cheapest valid test | Pass/change signal | Status/evidence |
|---:|---|---|---|---|
| 1 | [Largest uncertainty] | [Prototype/playtest] | [Observed behavior] | [Planned/Keep/Change/Inconclusive + link] |
| 2 | [Next uncertainty] | [Test] | [Signal] | [Status] |
### Current experiment
- **Question:** [One question]
- **Build:** [Included and deliberately omitted]
- **Observe:** [Behavior/result, not only opinion]
- **Decision:** Keep / Change / Inconclusive
- **Next action:** [One concrete follow-up]
## 8. Evidence and decisions
### Tuning
| Variable | System | Current value | Target effect | Last evidence | Next test |
|---|---|---:|---|---|---|
| [Name] | [SYS-###] | [Value + unit] | [Player outcome] | [Build/test/date] | [Change/control] |
### Playtests and design changes
| Date/build | Question or trigger | Observed evidence | Decision | Affected sections/tasks |
|---|---|---|---|---|
| [Date/build] | [Question, constraint, defect] | [What happened] | [Keep/change and why] | [Headings, SYS IDs, TASK IDs] |