face8023a4
- api.js: API bridge to FastAPI backend - Dynamic NPC dialogues via gemma4:12b (cached 30s) - Periodic world event generation (every ~10s) - Event validation (no soft-lock) - Backend health check on startup - Fallback to static dialogue if LLM offline - Tested: events ✅, dialogues ✅
53 lines
2.3 KiB
Markdown
53 lines
2.3 KiB
Markdown
# Changelog
|
|
|
|
## v0.1.0 — M1: Project Setup + Tilemap (2026-07-16)
|
|
|
|
### Added
|
|
- HTML5 Canvas game with isometric tilemap renderer
|
|
- Procedural tilemap for Eichenhafen (starting city)
|
|
- Tile types: grass, path, water, wall, sand, flowers, trees, buildings, bridge
|
|
- Camera system with smooth follow
|
|
- Player character with movement (click-to-move via A* pathfinding)
|
|
- Player stats: HP, SP, EXP, Level, STR, AGI, INT, VIT, DEX, LUK
|
|
- HP/SP/EXP bars UI overlay
|
|
- Skill bar (1-0 keys, visual only)
|
|
- Minimap with player position
|
|
- Event log with color-coded message types
|
|
- 3 NPCs: Händler Bruno (merchant), Meisterin Vera (class master), Wirtin Helga (innkeeper)
|
|
- 6 monster spawns (Junger Wolf) with aggro/chase/attack AI
|
|
- Combat: click enemy → auto-attack → damage numbers → EXP/gold gain
|
|
- Player death → respawn in Eichenhafen
|
|
- FastAPI backend with SQLite game state
|
|
- LLM bridge (Ollama) for dynamic events and NPC dialogue
|
|
- Event validation system (rejects events that block paths, move NPCs, etc.)
|
|
- Gitea repository: https://gitea.die-heimatlosen.eu/arch_agent/aether-chronicles
|
|
|
|
### Known Issues
|
|
- Skill bar has no functionality yet
|
|
- Inventory not implemented
|
|
- NPC dialogue is static (LLM not yet wired to frontend)
|
|
- Only one map (Eichenhafen)
|
|
|
|
## v0.2.0 — M7: LLM Integration Frontend ↔ Backend (2026-07-17)
|
|
|
|
### Added
|
|
- API bridge (`api.js`) connecting frontend to FastAPI backend
|
|
- Backend health check on startup — shows LLM model name in event log
|
|
- Dynamic NPC dialogues via Ollama (gemma4:12b)
|
|
- Each NPC gets unique dialogue based on personality, mood, and player class/level
|
|
- 30-second dialogue cache to reduce LLM calls
|
|
- Fallback to static dialogue if LLM unavailable
|
|
- Periodic world event generation (every ~10 seconds)
|
|
- LLM generates optional events (weather, discoveries, encounters)
|
|
- Events validated by backend (no soft-lock possible)
|
|
- Events displayed in event log with ✨ prefix and purple color
|
|
- NPC interaction now shows "LLM generating..." placeholder while waiting
|
|
|
|
### Changed
|
|
- NPC interaction is now async (waits for LLM response)
|
|
- Event log color coding: purple (llm), red (combat), green (quest), yellow (system)
|
|
|
|
### Tested
|
|
- Backend health endpoint: ✅
|
|
- Event generation: ✅ (gemma4:12b generates atmospheric events)
|
|
- NPC dialogue: ✅ (personalized, in-character responses) |