This commit is contained in:
Bastian Wagner
2026-08-19 14:43:25 +02:00
parent deab7a31f1
commit f24a5fea9c
30 changed files with 1718 additions and 0 deletions

View File

@@ -0,0 +1,490 @@
# Ashen Realms Playable Slice 0.12: Aschenfelder Complete
**Status:** Final integration slice for the first region
**Prerequisite:** Playable Slices 0.10.11
**Scope:** Integration, balancing, content completion and polish for the Aschenfelder
**Primary Goal:** Complete the first genuinely playable regional progression loop.
## 1. Goal
Playable Slice 0.12 does not introduce a large new system.
It integrates, verifies, balances, and polishes everything built so far into one coherent first region.
The full intended flow is:
```text
Graufurt
Südtor
Verbrannte Straße
first hunts
first combat
first loot
first upgrades
Verlassener Wachtposten
NPC / Quest
stronger enemies
first Elite
Grenzmarken
targeted upgrades
Aschengrube
regional Boss
guaranteed boss loot
path toward Dämmerwald discovered
```
## 2. Complete locations
The Aschenfelder progression contains:
```text
Südtor von Graufurt
Verbrannte Straße
Verlassener Wachtposten
Aschengrube
```
Each location must have a clear purpose and correct travel connections.
## 3. Complete Tier-1 enemy set
The relevant first-region pool should now include the established enemies:
```text
Aschenratte
Verwilderter Straßenhund
Straßenräuber
Plünderer-Späher
Plünderer-Veteran
Verkohlter Plünderer
Aschenwühler
Verbrannter Jagdhund
Plündererhauptmann / Elite
Hauptmann der Aschenbande / Boss
```
If final naming differs in existing project content, preserve the existing finalized names rather than creating duplicates.
## 4. Complete Tier-1 item set
The relevant Tier-1 pool should now include:
```text
Abgenutztes Kurzschwert
Räuberklinge
Aschenklinge
Räuberhaube
Verstärkte Lederjacke
Plündererhandschuhe
Wachmannsbeinkleid
Aschenstiefel
Zeichen der Grenzwacht
Anhänger des verbrannten Hauptmanns
```
Not every item must be required for progression.
Prestige/special drops remain optional.
## 5. Combat duration targets
During the balancing pass, verify:
### Normal enemies
```text
48 rounds
```
### Elite
```text
610 rounds
```
### Boss
```text
814 rounds
```
These are balancing targets rather than hard rules.
## 6. Power progression targets
Use the established Combat Power progression as a reference:
### Start
```text
approximately 47 CP
```
### After first upgrades
```text
approximately 6070 CP
```
### Wachtposten progression
```text
approximately 8090 CP
```
### Aschengrube / boss-ready range
```text
approximately 100110 CP
```
Combat Power is an internal balancing tool, not a hard access gate.
## 7. Progression pacing
A typical player should need roughly:
```text
1218 normal combats
+
quests
+
boss
```
to progress meaningfully through the first region.
The intended experience must not require 50+ normal combats for basic progression.
## 8. First upgrade pacing
Verify that within approximately the first:
```text
35 combats
```
the player is very likely to see a meaningful equipment upgrade.
If this does not happen reliably enough, tune only the smallest necessary variables:
```text
drop rate
quest reward
starter equipment
```
Do not add unnecessary new reward systems.
## 9. Boss readiness
The regional boss should become reasonably beatable at approximately:
```text
7080% of maximum realistically obtainable regional power
```
Best-in-slot equipment should provide comfort and completionist value, not be mandatory.
## 10. Soft-gate validation
The player should not be blocked primarily by arbitrary level errors.
Where possible:
```text
actual world danger
```
should communicate that the player is too weak.
A player may attempt difficult content early, but the game should make the risk clear.
## 11. Full UI consistency pass
Review all implemented screens together:
```text
World
Hunt
Combat
Loot
Inventory
Quests
Merchant
```
Verify consistency of:
```text
Topbar
SideNavigation
Footer
Context Panel
Panel frames
Buttons
DangerBadges
Item icons
Combat actions
Typography
Spacing
Design tokens
```
No screen should feel like a separate web application.
## 12. Loading and error-state pass
All core player actions need intentional UI states:
```text
loading
success
domain error
network error
retry
```
Review at minimum:
```text
Travel
Hunt
Combat Action
Reward
Equip
Quest
Purchase
```
Do not use browser alerts.
## 13. Refresh and recovery pass
The following states must survive browser refresh through authoritative backend state:
```text
active travel
current hunt
active combat
finished combat/reward
inventory
equipment
active quest
Grenzmarken
boss completion
```
No critical gameplay state may exist only in Angular memory.
## 14. Full integration test
Where practical, automate the first complete progression flow:
```text
character starts at Südtor
travel to Verbrannte Straße
hunt
combat
win
receive loot
equip upgrade
travel to Wachtposten
accept quest
defeat relevant enemies
progress quest
earn Grenzmarken
buy targeted item
equip item
travel to Aschengrube
defeat boss
receive guaranteed boss reward
region completion persists
```
## 15. Manual playtest average RNG
Perform at least one normal playthrough and measure:
```text
combat duration
loot frequency
upgrade frequency
number of hunts
travel flow
quest pacing
Grenzmarken income
boss readiness
total region time
```
## 16. Manual playtest bad RNG
Test a deliberately unlucky run.
Verify:
```text
Grenzmarken still provide progress
progression does not hard-block
boss readiness remains achievable
player does not require extreme grind
```
## 17. Manual playtest good RNG
Test a deliberately lucky run.
Verify:
```text
region does not become instantly trivial
progression cannot be skipped too aggressively
boss remains meaningful
```
## 18. Data/content validation
Verify:
- all locations use persisted content
- all encounter pools use persisted relationships
- all loot is data-driven
- all shop offers are data-driven
- quest definitions are persisted/data-driven
- no core gameplay path depends on hardcoded Angular content
- no server domain service contains unnecessary location-specific special cases
## 19. Server-authority validation
Confirm that the backend remains authoritative for:
```text
travel
hunt availability
encounter generation
danger rating
combat
loot
XP
Silver
Grenzmarken
inventory ownership
equipment
effective stats
quest progress
shop purchases
boss completion
```
## 20. Performance / technical cleanup
Review the accumulated implementation for:
- duplicate API calls
- duplicated frontend state
- duplicated domain validation
- unused temporary placeholder logic
- obsolete Slice 0.10.5 shortcuts
- hardcoded demo combat stats that should now use CharacterStatsService
- temporary combat placeholder routes
- duplicated item definitions
- migration quality
- seed idempotency
Do not perform unrelated architectural rewrites.
## 21. Definition of Done
Playable Slice 0.12 / Aschenfelder Complete is complete when a fresh character can, without developer intervention:
```text
start
travel
hunt
fight
receive loot
improve equipment
meet NPC
complete quest
fight Elite
earn Grenzmarken
buy targeted item
reach Aschengrube
defeat regional Boss
receive guaranteed progression reward
discover path toward Dämmerwald
```
## 22. Final product test
The most important qualitative result is:
> After completing the Aschenfelder, the player should want to see what waits in the Dämmerwald.
If the loop is technically correct but does not create that motivation, the region still needs iteration.
## 23. After Slice 0.12
Do not immediately expand into the full Dämmerwald.
First:
```text
playtest
measure
balance
fix friction
validate reward pacing
validate combat decisions
validate boss readiness
```
Only after the first region loop works well should the same systems be expanded into the Dämmerwald and later the Vergessene Ruinen.