38 lines
1.9 KiB
Markdown
38 lines
1.9 KiB
Markdown
# AI Interactive Fiction
|
|
|
|
A modern take on classic text adventures that combines traditional world modeling with Large Language Models (LLMs) to create natural language interactive fiction experiences.
|
|
|
|
## Project Overview
|
|
|
|
This application reimagines the classic text adventure game genre by replacing the traditional parser with an LLM. The system consists of:
|
|
|
|
1. **World Model**: A traditional game engine that manages rooms, objects, actions, and game state - similar to old-school Infocom games.
|
|
|
|
2. **LLM Interface**: An AI layer that processes natural language input from players and translates it into actions the game engine can understand.
|
|
|
|
3. **Narrative Generation**: The LLM converts the world state changes into rich, contextual prose for the player.
|
|
|
|
## Key Features
|
|
|
|
- **Natural Language Understanding**: Players can express their intent in plain language without worrying about specific command syntax.
|
|
- **Rich Narrative**: Dynamic descriptions that adapt to the current game state and player history.
|
|
- **Consistent World Model**: The underlying game engine enforces world rules to prevent hallucinations or inconsistencies.
|
|
- **Modular Design**: Easily swap between different world models, including YAML-based custom worlds or integrations with classic Z-machine games.
|
|
|
|
## How It Works
|
|
|
|
1. Player enters natural language input
|
|
2. LLM analyzes input and translates it into game actions
|
|
3. Game engine processes valid actions and updates the game state
|
|
4. LLM receives the state change information and generates narrative prose
|
|
5. Player receives the beautifully written response
|
|
|
|
## Technical Structure
|
|
|
|
- YAML-based world definition (rooms, objects, actions)
|
|
- OpenRouter API integration for accessing suitable LLMs
|
|
- Modular design allowing for Z-machine integration in the future
|
|
|
|
## Getting Started
|
|
|
|
[Installation and running instructions will be added here] |