Files
2026-04-30 19:44:16 +02:00

155 lines
6.5 KiB
Markdown

# Zork-Like TUI Adventure Game — SPEC.md
## Project Overview
**Name**: Echoes of the Void
**Type**: Text adventure / interactive fiction with modern TUI
**Core**: A atmospheric exploration game where you navigate ancient ruins, solve puzzles, and uncover a mystery
**Target**: Terminal enthusiasts who appreciate beautiful CLI tools
---
## Visual & Rendering Specification
### Terminal Setup
- **Dimensions**: 120x40 cells (responsive)
- **Double-buffered rendering** for flicker-free updates
- **256-color palette** (not truecolor, for maximum compatibility + speed)
- **Box-drawing characters** for UI frames
- **Custom Unicode blocks** for visual accents
### Color Palette
```
Background: #0D0D12 (deep void)
Panel BG: #16161E (slightly lighter)
Primary Text: #E4E4E7 (soft white)
Accent: #7C3AED (vivid violet)
Secondary: #22D3EE (cyan glow)
Success: #34D399 (emerald)
Warning: #FBBF24 (amber)
Danger: #F87171 (soft red)
Muted: #525263 (dim gray)
Border: #2E2E3A (subtle borders)
```
### Typography
- **Primary**: JetBrains Mono (monospace, ligatures disabled for TUI)
- **Headers**: Bold, uppercase, letter-spacing: 2px
- **Body**: Regular weight, line-height: 1.4
### Layout Structure
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ ECHOES OF THE VOID ♥ 100 ⚡ 3 ◇ 12 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ [LOCATION NAME] [COMPASS] │
│ ───────────────── N │
│ Description text here... W + E │
│ More description... S │
│ │
│ > You can see: │
│ • Ancient door (to the north) │
│ • Glowing crystal (in the corner) │
│ │
├─────────────────────────────────────────────────────────────────────────────┤
│ INVENTORY: [rusty key] [torch] [torn page] │
├─────────────────────────────────────────────────────────────────────────────┤
│ > _ │
└─────────────────────────────────────────────────────────────────────────────┘
```
### Visual Effects
- **Subtle pulse animation** on interactive elements
- **Smooth text reveal** (50ms per line, max 10 lines)
- **Border glow** effect using ANSI dim/bright alternation
- **Scanline overlay** (optional, subtle CRT feel)
- **Vignette** via gradient on outer edges
---
## Performance Specification
### SIMD Optimizations
- **Text rendering**: SIMD string processing with AVX2/NEON
- **Viewport culling**: Only render visible cells
- **Dirty rectangle tracking**: Only redraw changed regions
- **String interning**: Cache repeated strings
- **Batch rendering**: Group similar operations
### Architecture
```
┌─────────────────┐
│ Game State │ (Position, Inventory, Flags, Quests)
├─────────────────┤
│ Renderer │ (Double-buffer, SIMD text processing)
├─────────────────┤
│ Input Handler │ (Async key events, command parser)
├─────────────────┤
│ World Data │ (Rooms, items, connections - static)
└─────────────────┘
```
### Benchmarks
- **Target**: 60 FPS rendering (16.67ms frame budget)
- **Input latency**: <5ms
- **Memory**: <5MB total
---
## Game Specification
### World Structure
- **8 interconnected rooms** forming a small dungeon
- **4 items** to collect and use
- **2 puzzles** requiring item combination/placement
- **1 win condition**: Reach the heart of the ruins
### Rooms
1. **Entrance Hall** — Starting point, torch available
2. **Collapsed Corridor** — Requires rusty key to proceed
3. **Crystal Chamber** — Contains the crystal
4. **Ancient Library** — Contains torn page with hint
5. **Flooded Passage** — Requires crystal to light the way
6. **Guardian's Rest** — Boss/enemy room (skippable with items)
7. **Shrine of Echoes** — Requires combining items
8. **Heart of the Void** — Final room, win condition
### Commands
```
Movement: north/n, south/s, east/e, west/w, up/u, down/d
Actions: look/l, examine/ex [object], take/get [item], drop [item]
Inventory: inventory/i, use [item], combine [item] with [item]
System: help/h, quit/q, save, load
```
---
## Interaction Specification
### Input
- **Keyboard only** (arrow keys for movement, typing for commands)
- **Tab completion** for commands and objects
- **Command history** (up/down arrows)
- **Auto-focus** on input field
### Feedback
- **Sound**: None (pure visual TUI)
- **Haptic**: None
- **Visual**: All feedback through text styling and animations
---
## Acceptance Criteria
1. ✅ Game launches and displays beautiful TUI
2. ✅ Player can navigate all 8 rooms
3. ✅ Items can be picked up, dropped, and used
4. ✅ Puzzles are solvable
5. ✅ Win condition triggers ending sequence
6. ✅ Renders at 60 FPS on modern hardware
7. ✅ Uses SIMD for text processing
8. ✅ Responsive to terminal resize
9. ✅ < 10MB memory footprint
10. ✅ Clean shutdown on Ctrl+C