docs(wiki): add technical design specs
+1
@@ -29,6 +29,7 @@ The core fantasy is simple:
|
|||||||
## Wiki Sections
|
## Wiki Sections
|
||||||
|
|
||||||
- [[Gameplay]] — core loop, resources, petitioners, daily seed, world map, consequences, visual style, and design pillars
|
- [[Gameplay]] — core loop, resources, petitioners, daily seed, world map, consequences, visual style, and design pillars
|
||||||
|
- [[Technical-Design-Specs]] — MVP screens, data schemas, resource formulas, save structure, failure states, example day, and build phases
|
||||||
- [[Lore]] — world-building, factions, and characters
|
- [[Lore]] — world-building, factions, and characters
|
||||||
- [[Story]] — narrative structure, acts, cutscenes, and themes
|
- [[Story]] — narrative structure, acts, cutscenes, and themes
|
||||||
- [[Music]] — soundtrack, composers, themes, and audio direction
|
- [[Music]] — soundtrack, composers, themes, and audio direction
|
||||||
|
|||||||
@@ -0,0 +1,780 @@
|
|||||||
|
# Technical Design Specs
|
||||||
|
|
||||||
|
## MVP Overview
|
||||||
|
|
||||||
|
The MVP should prove the core loop:
|
||||||
|
|
||||||
|
1. Player starts a new day.
|
||||||
|
2. Three petitioners appear in the throne room.
|
||||||
|
3. Player makes one ruling per petitioner.
|
||||||
|
4. Rulings change resources, faction trust, settlement stability, or future event tags.
|
||||||
|
5. Player takes one world map action.
|
||||||
|
6. Day ends with a summary.
|
||||||
|
7. Next day seed is generated from current game state.
|
||||||
|
|
||||||
|
The MVP does not need full AI generation at first. It should work with hand-written petitioner data, deterministic seed logic, and simple map state.
|
||||||
|
|
||||||
|
AI-generated content can be added later as a content-expansion layer.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Core MVP Screens
|
||||||
|
|
||||||
|
### 1. Home Screen
|
||||||
|
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
- Start game
|
||||||
|
- Continue game
|
||||||
|
- Open wiki/lore
|
||||||
|
- Open settings
|
||||||
|
|
||||||
|
Elements:
|
||||||
|
|
||||||
|
- Game title
|
||||||
|
- BLB throne image or logo
|
||||||
|
- Start/continue buttons
|
||||||
|
- Cosmic purple-blue background
|
||||||
|
|
||||||
|
### 2. Throne Room Screen
|
||||||
|
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
Main gameplay hub for daily petitioners.
|
||||||
|
|
||||||
|
Elements:
|
||||||
|
|
||||||
|
- BLB on throne
|
||||||
|
- Current petitioner
|
||||||
|
- Petitioner text
|
||||||
|
- Ruling choices
|
||||||
|
- Resource HUD
|
||||||
|
- Day counter
|
||||||
|
- Faction/status icons
|
||||||
|
- Button to continue after ruling
|
||||||
|
|
||||||
|
### 3. Petitioner Modal / Case Panel
|
||||||
|
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
Focused decision interface.
|
||||||
|
|
||||||
|
Elements:
|
||||||
|
|
||||||
|
- Petitioner name
|
||||||
|
- Petitioner faction or settlement
|
||||||
|
- Problem description
|
||||||
|
- 2-4 ruling choices
|
||||||
|
- Preview style, depending on design:
|
||||||
|
- Full preview
|
||||||
|
- Partial preview
|
||||||
|
- Hidden consequence
|
||||||
|
- Advisor hint
|
||||||
|
|
||||||
|
### 4. Resource HUD
|
||||||
|
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
Always show current economic state.
|
||||||
|
|
||||||
|
Elements:
|
||||||
|
|
||||||
|
- Bone total
|
||||||
|
- Minion total
|
||||||
|
- Cases of milk
|
||||||
|
- Optional later:
|
||||||
|
- Stability
|
||||||
|
- Faction trust
|
||||||
|
- Day
|
||||||
|
- Warnings
|
||||||
|
|
||||||
|
### 5. World Map Screen
|
||||||
|
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
Allow player to spend resources and assign minions after throne rulings.
|
||||||
|
|
||||||
|
Elements:
|
||||||
|
|
||||||
|
- BLB territory
|
||||||
|
- NPC cities
|
||||||
|
- Towns
|
||||||
|
- Homesteads
|
||||||
|
- Settlement status
|
||||||
|
- Available map actions
|
||||||
|
- Resource cost preview
|
||||||
|
- Expected effect preview
|
||||||
|
|
||||||
|
### 6. Daily Summary Screen
|
||||||
|
|
||||||
|
Purpose:
|
||||||
|
|
||||||
|
Show what happened today and what consequences were created.
|
||||||
|
|
||||||
|
Elements:
|
||||||
|
|
||||||
|
- Resource changes
|
||||||
|
- Faction changes
|
||||||
|
- Settlement changes
|
||||||
|
- New flags/tags
|
||||||
|
- Warnings for tomorrow
|
||||||
|
- Button to start next day
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Petitioner Data Schema
|
||||||
|
|
||||||
|
Recommended format for MVP: JSON.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "petitioner_marrowgate_bad_bones_001",
|
||||||
|
"name": "Foreman Clatter",
|
||||||
|
"type": "settlement_request",
|
||||||
|
"faction": "bone_guild",
|
||||||
|
"settlementId": "marrowgate",
|
||||||
|
"tags": ["bones", "production", "early_game"],
|
||||||
|
"minDay": 1,
|
||||||
|
"maxDay": 10,
|
||||||
|
"weight": 10,
|
||||||
|
"requiresFlags": [],
|
||||||
|
"blocksFlags": ["marrowgate_resolved_bad_bones"],
|
||||||
|
"title": "Bad Bones at Marrowgate",
|
||||||
|
"body": "Foreman Clatter reports that Marrowgate's latest bone shipments are brittle, chalky, and emotionally disappointing.",
|
||||||
|
"choices": [
|
||||||
|
"send_milk_inspection",
|
||||||
|
"blame_the_guild",
|
||||||
|
"ignore_the_problem"
|
||||||
|
],
|
||||||
|
"onSeenFlags": ["seen_bad_bones_case"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ruling / Choice Schema
|
||||||
|
|
||||||
|
Each ruling should be a separate reusable object or embedded inside the petitioner.
|
||||||
|
|
||||||
|
Recommended choice object:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "send_milk_inspection",
|
||||||
|
"label": "Send three cases of milk and a minion inspector.",
|
||||||
|
"tone": "practical",
|
||||||
|
"costs": {
|
||||||
|
"bones": 0,
|
||||||
|
"minions": 1,
|
||||||
|
"milk": 3
|
||||||
|
},
|
||||||
|
"effects": {
|
||||||
|
"resources": {
|
||||||
|
"bones": 0,
|
||||||
|
"minions": -1,
|
||||||
|
"milk": -3
|
||||||
|
},
|
||||||
|
"settlements": {
|
||||||
|
"marrowgate": {
|
||||||
|
"stability": 5,
|
||||||
|
"boneProduction": 2
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"factions": {
|
||||||
|
"bone_guild": {
|
||||||
|
"trust": 3
|
||||||
|
},
|
||||||
|
"milken_order": {
|
||||||
|
"trust": 1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flagsAdd": ["marrowgate_milk_audit_started"],
|
||||||
|
"flagsRemove": [],
|
||||||
|
"futureEventWeights": {
|
||||||
|
"petitioner_marrowgate_recovery_001": 5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"resultText": "The milk inspection begins immediately. The bones do not become less weird, but they do become more useful."
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Resource Formula Rules
|
||||||
|
|
||||||
|
MVP should start simple and readable.
|
||||||
|
|
||||||
|
### Daily Resource Production
|
||||||
|
|
||||||
|
Each settlement may produce resources at the end of each day.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```text
|
||||||
|
dailyBones = sum(settlement.boneProduction)
|
||||||
|
dailyMilk = sum(settlement.milkProduction)
|
||||||
|
dailyMinionUpkeep = floor(minionTotal / 10)
|
||||||
|
```
|
||||||
|
|
||||||
|
Suggested MVP daily update:
|
||||||
|
|
||||||
|
```text
|
||||||
|
bones += totalBoneProduction
|
||||||
|
milk += totalMilkProduction
|
||||||
|
milk -= floor(minions / 10)
|
||||||
|
```
|
||||||
|
|
||||||
|
Optional:
|
||||||
|
|
||||||
|
Minions require milk upkeep. If milk cannot cover upkeep, minion morale or count drops.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Resource Triangle Rules
|
||||||
|
|
||||||
|
### Bones -> Minions
|
||||||
|
|
||||||
|
Bones create minions.
|
||||||
|
|
||||||
|
MVP formula:
|
||||||
|
|
||||||
|
```text
|
||||||
|
1 minion costs 5 bones
|
||||||
|
```
|
||||||
|
|
||||||
|
Better minions can come later.
|
||||||
|
|
||||||
|
Optional future formula:
|
||||||
|
|
||||||
|
```text
|
||||||
|
minionQuality = averageBoneQuality
|
||||||
|
```
|
||||||
|
|
||||||
|
### Minions -> Milk
|
||||||
|
|
||||||
|
Minions can be assigned to produce milk.
|
||||||
|
|
||||||
|
MVP formula:
|
||||||
|
|
||||||
|
```text
|
||||||
|
1 assigned minion produces 1 milk per day
|
||||||
|
```
|
||||||
|
|
||||||
|
Optional improvement:
|
||||||
|
|
||||||
|
```text
|
||||||
|
milkProduced = assignedMinions * settlement.milkMultiplier
|
||||||
|
```
|
||||||
|
|
||||||
|
### Milk -> Bones
|
||||||
|
|
||||||
|
Milk improves bone production and bone quality.
|
||||||
|
|
||||||
|
MVP formula:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Sending 3 milk to a bone settlement increases boneProduction by +1 for 3 days.
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternative:
|
||||||
|
|
||||||
|
```text
|
||||||
|
boneQuality += milkSent * 0.1
|
||||||
|
boneProduction += floor(milkSent / 3)
|
||||||
|
```
|
||||||
|
|
||||||
|
Keep the MVP simple. Use the first version unless deeper simulation is needed.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Settlement / World Map Schema
|
||||||
|
|
||||||
|
Recommended settlement object:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "marrowgate",
|
||||||
|
"name": "Marrowgate",
|
||||||
|
"type": "city",
|
||||||
|
"owner": "blb",
|
||||||
|
"factionInfluence": ["bone_guild"],
|
||||||
|
"resources": {
|
||||||
|
"boneProduction": 5,
|
||||||
|
"milkProduction": 0,
|
||||||
|
"minionCapacity": 2
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"stability": 60,
|
||||||
|
"loyalty": 50,
|
||||||
|
"need": 30,
|
||||||
|
"danger": 10
|
||||||
|
},
|
||||||
|
"tags": ["bone_city", "industrial", "early_game"],
|
||||||
|
"statusEffects": [
|
||||||
|
{
|
||||||
|
"id": "milk_boost",
|
||||||
|
"durationDays": 3,
|
||||||
|
"effects": {
|
||||||
|
"boneProduction": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Faction Schema
|
||||||
|
|
||||||
|
Recommended faction object:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "bone_guild",
|
||||||
|
"name": "The Bone Guild",
|
||||||
|
"trust": 50,
|
||||||
|
"power": 40,
|
||||||
|
"agenda": "Control bone standards and production rights.",
|
||||||
|
"likes": ["bone_investment", "predictable_law", "industrial_expansion"],
|
||||||
|
"dislikes": ["milk_theology", "resource_waste", "minion_labor_rights"],
|
||||||
|
"tags": ["economic", "bones", "industrial"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Trust and Stability Ranges
|
||||||
|
|
||||||
|
Use 0-100 ranges.
|
||||||
|
|
||||||
|
### Faction Trust
|
||||||
|
|
||||||
|
```text
|
||||||
|
0-20: hostile
|
||||||
|
21-40: suspicious
|
||||||
|
41-60: neutral
|
||||||
|
61-80: supportive
|
||||||
|
81-100: loyal
|
||||||
|
```
|
||||||
|
|
||||||
|
### Settlement Stability
|
||||||
|
|
||||||
|
```text
|
||||||
|
0-20: collapsing
|
||||||
|
21-40: unstable
|
||||||
|
41-60: strained
|
||||||
|
61-80: stable
|
||||||
|
81-100: thriving
|
||||||
|
```
|
||||||
|
|
||||||
|
### Settlement Need
|
||||||
|
|
||||||
|
```text
|
||||||
|
0-20: comfortable
|
||||||
|
21-40: minor need
|
||||||
|
41-60: serious need
|
||||||
|
61-80: crisis
|
||||||
|
81-100: emergency
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Minion Assignment Rules
|
||||||
|
|
||||||
|
MVP minions can be assigned during the world map phase.
|
||||||
|
|
||||||
|
Possible assignments:
|
||||||
|
|
||||||
|
- Produce milk
|
||||||
|
- Harvest bones
|
||||||
|
- Stabilize settlement
|
||||||
|
- Guard settlement
|
||||||
|
- Repair damage
|
||||||
|
- Support faction project
|
||||||
|
|
||||||
|
MVP rule:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Each available minion can be assigned to one task per day.
|
||||||
|
Assigned minions return at the end of the day unless the action says otherwise.
|
||||||
|
```
|
||||||
|
|
||||||
|
Example map action:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "assign_minions_to_lacthollow",
|
||||||
|
"label": "Assign minions to Lacthollow dairies",
|
||||||
|
"costs": {
|
||||||
|
"minions": 3
|
||||||
|
},
|
||||||
|
"durationDays": 1,
|
||||||
|
"effects": {
|
||||||
|
"milk": 3,
|
||||||
|
"settlement": {
|
||||||
|
"lacthollow": {
|
||||||
|
"stability": 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Daily Seed Algorithm
|
||||||
|
|
||||||
|
The daily seed should combine randomness with world state.
|
||||||
|
|
||||||
|
MVP daily flow:
|
||||||
|
|
||||||
|
```text
|
||||||
|
1. Start day.
|
||||||
|
2. Build eligible petitioner pool.
|
||||||
|
3. Filter by minDay, maxDay, required flags, blocked flags.
|
||||||
|
4. Increase weights based on current resource shortages.
|
||||||
|
5. Increase weights based on unstable settlements.
|
||||||
|
6. Increase weights based on low faction trust.
|
||||||
|
7. Select 3 petitioners.
|
||||||
|
8. Prevent duplicate petitioner IDs in same day.
|
||||||
|
9. Save selected petitioner IDs into day history.
|
||||||
|
```
|
||||||
|
|
||||||
|
Example weighting rules:
|
||||||
|
|
||||||
|
```text
|
||||||
|
If bones < 20, add +5 weight to bone-related petitioners.
|
||||||
|
If milk < 10, add +5 weight to milk-related petitioners.
|
||||||
|
If minions < 5, add +5 weight to minion-related petitioners.
|
||||||
|
If settlement stability < 40, add +8 weight to that settlement's crisis events.
|
||||||
|
If faction trust < 30, add +6 weight to that faction's complaint events.
|
||||||
|
```
|
||||||
|
|
||||||
|
AI rotation can later generate or modify eligible cases, but the MVP should first prove deterministic seeded selection.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Save Game Structure
|
||||||
|
|
||||||
|
Recommended save structure:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"saveVersion": "0.1.0",
|
||||||
|
"gameId": "run_001",
|
||||||
|
"day": 4,
|
||||||
|
"resources": {
|
||||||
|
"bones": 32,
|
||||||
|
"minions": 9,
|
||||||
|
"milk": 12
|
||||||
|
},
|
||||||
|
"kingdom": {
|
||||||
|
"stability": 58
|
||||||
|
},
|
||||||
|
"settlements": {},
|
||||||
|
"factions": {},
|
||||||
|
"flags": [
|
||||||
|
"seen_bad_bones_case",
|
||||||
|
"marrowgate_milk_audit_started"
|
||||||
|
],
|
||||||
|
"history": {
|
||||||
|
"seenPetitioners": [],
|
||||||
|
"rulings": [],
|
||||||
|
"dailySummaries": []
|
||||||
|
},
|
||||||
|
"rng": {
|
||||||
|
"seed": "BLB_RUN_001_DAY_004"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Failure States
|
||||||
|
|
||||||
|
MVP failure states:
|
||||||
|
|
||||||
|
```text
|
||||||
|
bones <= 0 = Bone Collapse
|
||||||
|
minions <= 0 = Workforce Collapse
|
||||||
|
milk <= 0 = Milk Famine
|
||||||
|
kingdomStability <= 0 = Dominion Collapse
|
||||||
|
three settlements collapsed = Map Collapse
|
||||||
|
one faction trust <= 0 and faction power >= 70 = Faction Coup
|
||||||
|
```
|
||||||
|
|
||||||
|
Each failure state should have a unique summary screen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Example Day
|
||||||
|
|
||||||
|
### Starting Resources
|
||||||
|
|
||||||
|
```text
|
||||||
|
Bones: 25
|
||||||
|
Minions: 8
|
||||||
|
Milk: 10
|
||||||
|
Kingdom Stability: 55
|
||||||
|
```
|
||||||
|
|
||||||
|
### Petitioner 1
|
||||||
|
|
||||||
|
**Foreman Clatter of Marrowgate**
|
||||||
|
|
||||||
|
Problem:
|
||||||
|
|
||||||
|
Marrowgate's bones are brittle and production is dropping.
|
||||||
|
|
||||||
|
Choices:
|
||||||
|
|
||||||
|
1. Send 3 milk and 1 minion inspector.
|
||||||
|
2. Punish the Bone Guild.
|
||||||
|
3. Ignore the problem.
|
||||||
|
|
||||||
|
Chosen:
|
||||||
|
|
||||||
|
Send milk and inspector.
|
||||||
|
|
||||||
|
Result:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Milk -3
|
||||||
|
Minions -1 for the day
|
||||||
|
Marrowgate Stability +5
|
||||||
|
Marrowgate Bone Production +1 for 3 days
|
||||||
|
Bone Guild Trust +3
|
||||||
|
```
|
||||||
|
|
||||||
|
### Petitioner 2
|
||||||
|
|
||||||
|
**Gerald the Minion Clerk**
|
||||||
|
|
||||||
|
Problem:
|
||||||
|
|
||||||
|
Minions are complaining that milk duty is sticky, humiliating, and "beneath skeleton-adjacent workers of their station."
|
||||||
|
|
||||||
|
Choices:
|
||||||
|
|
||||||
|
1. Promise hats.
|
||||||
|
2. Ignore them.
|
||||||
|
3. Spend bones to improve minion tools.
|
||||||
|
|
||||||
|
Chosen:
|
||||||
|
|
||||||
|
Promise hats.
|
||||||
|
|
||||||
|
Result:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Minion morale flag added: promised_hats
|
||||||
|
No immediate resource cost
|
||||||
|
Future event unlocked: hat_accountability
|
||||||
|
```
|
||||||
|
|
||||||
|
### Petitioner 3
|
||||||
|
|
||||||
|
**Mayor Pella of Ribcage Crossing**
|
||||||
|
|
||||||
|
Problem:
|
||||||
|
|
||||||
|
Merchants want lower tariffs in exchange for emergency milk barrels.
|
||||||
|
|
||||||
|
Choices:
|
||||||
|
|
||||||
|
1. Accept the trade.
|
||||||
|
2. Refuse and protect Dominion markets.
|
||||||
|
3. Demand bones instead.
|
||||||
|
|
||||||
|
Chosen:
|
||||||
|
|
||||||
|
Accept trade.
|
||||||
|
|
||||||
|
Result:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Milk +5
|
||||||
|
Ribcage Crossing Loyalty +4
|
||||||
|
Bone Guild Trust -2
|
||||||
|
Future trade event weight +5
|
||||||
|
```
|
||||||
|
|
||||||
|
### World Map Action
|
||||||
|
|
||||||
|
Action:
|
||||||
|
|
||||||
|
Assign 3 minions to Lacthollow dairies.
|
||||||
|
|
||||||
|
Result:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Milk +3 at end of day
|
||||||
|
Lacthollow Stability +2
|
||||||
|
3 minions unavailable until next day
|
||||||
|
```
|
||||||
|
|
||||||
|
### End of Day Summary
|
||||||
|
|
||||||
|
```text
|
||||||
|
Bones: 25
|
||||||
|
Minions: 8
|
||||||
|
Milk: 15
|
||||||
|
Marrowgate is recovering.
|
||||||
|
The Bone Guild is slightly annoyed by trade concessions.
|
||||||
|
The minions remember the promised hats.
|
||||||
|
Tomorrow's petitioner pool now includes possible hat-related consequences.
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Content Format
|
||||||
|
|
||||||
|
Recommended MVP content format:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Hand-authored JSON for game logic.
|
||||||
|
Markdown for lore/wiki pages.
|
||||||
|
Cached AI-generated petitioners later.
|
||||||
|
Database only after the schema stabilizes.
|
||||||
|
```
|
||||||
|
|
||||||
|
### MVP Recommendation
|
||||||
|
|
||||||
|
Use:
|
||||||
|
|
||||||
|
- `/content/petitioners/*.json`
|
||||||
|
- `/content/choices/*.json`
|
||||||
|
- `/content/settlements/*.json`
|
||||||
|
- `/content/factions/*.json`
|
||||||
|
- `/wiki/*.md`
|
||||||
|
|
||||||
|
Do not start with a database unless the game already needs live editing, user-generated content, or server-side persistence.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## AI-Generated Content Rule
|
||||||
|
|
||||||
|
AI-generated petitioners should not directly mutate the game state without validation.
|
||||||
|
|
||||||
|
Recommended flow:
|
||||||
|
|
||||||
|
```text
|
||||||
|
AI generates petitioner draft.
|
||||||
|
System validates schema.
|
||||||
|
System assigns approved tags/effects only from allowed list.
|
||||||
|
Generated content is cached.
|
||||||
|
Player sees cached petitioner.
|
||||||
|
Ruling applies deterministic effects.
|
||||||
|
```
|
||||||
|
|
||||||
|
The AI may write flavor.
|
||||||
|
|
||||||
|
The game engine must control consequences.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## UI Wireframe Notes
|
||||||
|
|
||||||
|
### Throne Screen
|
||||||
|
|
||||||
|
```text
|
||||||
|
[Resource HUD]
|
||||||
|
|
||||||
|
[BLB on Throne]
|
||||||
|
|
||||||
|
[Petitioner Portrait]
|
||||||
|
[Petitioner Text]
|
||||||
|
|
||||||
|
[Choice 1]
|
||||||
|
[Choice 2]
|
||||||
|
[Choice 3]
|
||||||
|
|
||||||
|
[Day / Map / Summary Buttons]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Resource HUD
|
||||||
|
|
||||||
|
```text
|
||||||
|
Bones: 25 Minions: 8 Milk: 10
|
||||||
|
Stability: 55 Day: 4
|
||||||
|
```
|
||||||
|
|
||||||
|
### Map Screen
|
||||||
|
|
||||||
|
```text
|
||||||
|
[Resource HUD]
|
||||||
|
|
||||||
|
[World Map]
|
||||||
|
|
||||||
|
Marrowgate: Stable, Bone +5
|
||||||
|
Lacthollow: Strained, Milk +3
|
||||||
|
Ribcage Crossing: Neutral, Trade Active
|
||||||
|
Homesteads: Need Rising
|
||||||
|
|
||||||
|
[Available Actions Panel]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Daily Summary
|
||||||
|
|
||||||
|
```text
|
||||||
|
Day 4 Complete
|
||||||
|
|
||||||
|
Resource Changes:
|
||||||
|
Bones +0
|
||||||
|
Minions +0
|
||||||
|
Milk +5
|
||||||
|
|
||||||
|
Settlement Changes:
|
||||||
|
Marrowgate recovering
|
||||||
|
Lacthollow stabilized
|
||||||
|
|
||||||
|
New Flags:
|
||||||
|
promised_hats
|
||||||
|
marrowgate_milk_audit_started
|
||||||
|
|
||||||
|
[Begin Day 5]
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Build Priority
|
||||||
|
|
||||||
|
### Phase 1: Static MVP
|
||||||
|
|
||||||
|
- Home screen
|
||||||
|
- Throne room screen
|
||||||
|
- Resource HUD
|
||||||
|
- Three hard-coded petitioners
|
||||||
|
- Choice effects
|
||||||
|
- Daily summary
|
||||||
|
- Basic save state
|
||||||
|
|
||||||
|
### Phase 2: Seeded Days
|
||||||
|
|
||||||
|
- Petitioner pool
|
||||||
|
- Weighted selection
|
||||||
|
- Flags
|
||||||
|
- Settlement/faction state
|
||||||
|
- Map action screen
|
||||||
|
|
||||||
|
### Phase 3: Reactive World
|
||||||
|
|
||||||
|
- Settlement consequences
|
||||||
|
- Faction trust
|
||||||
|
- Recurring petitioners
|
||||||
|
- Failure states
|
||||||
|
- Endings
|
||||||
|
|
||||||
|
### Phase 4: AI Layer
|
||||||
|
|
||||||
|
- AI-generated petitioner drafts
|
||||||
|
- Schema validation
|
||||||
|
- Cached event rotation
|
||||||
|
- Flavor expansion
|
||||||
|
- Dynamic but controlled content
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*See also: [[Home]] | [[Gameplay]] | [[Lore]] | [[Story]] | [[References]]*
|
||||||
Reference in New Issue
Block a user