Make invisible systems visible. If the player can't see it, it doesn't feel real.
Until now, game state has been invisible (console only). Today we add a HUD — a heads-up display that shows the player what's happening. No new mechanics. Just visibility.
Display these values on screen at all times:
- Unbanked XP — what you'll lose if you die
- Banked XP — your safe progress
- Risk Level — how dangerous the current area is
- Current Tier — your progression stage
Color feedback: As risk increases, tint the screen slightly red. When in Camp, apply a slight green tint. The player should feel the difference without reading numbers.
Display these values on screen at all times:
- Karma — your total reputation
- Debt — what you owe
- Current Tier — your development stage
- Active Job — what you're currently building
Color feedback: Negative karma applies a red tint. When a tier increase happens, show a brief gold flash. The player should feel progress and danger visually.
Add a simple HTML overlay for the HUD:
Update the HUD every frame inside your animation loop:
Basic CSS positioning — pin the HUD to the top-left corner:
State changes are immediately visible. The HUD makes the game feel real.
No fancy UI framework. Plain HTML + CSS only. No health bars or complex UI widgets.
HUD blocking the game view — keep it small and positioned in a corner. The game is the focus, not the HUD.
Updating HUD too frequently (performance) — update once per frame in the animation loop, not on every state change.
Not matching HUD values to actual state — if the HUD says one thing and the game does another, trust is broken.
Overdesigning the HUD — plain text is fine. Clarity beats beauty at this stage.
Ask: "Which number feels most important?" Their answer reveals what they think the core of their game is. If they say "XP" instead of "risk level," that's a design conversation worth having.