# MUD AI Player An autonomous AI player for MUD (Multi-User Dungeon) text-based games. ## Features - πŸ€– **Autonomous Gameplay**: Simulates a human player from character creation to endgame - πŸ—ΊοΈ **Auto-Mapping**: Builds a complete map of the MUD world with hybrid storage (SQLite + Memvid) - βš”οΈ **Combat AI**: Intelligent combat decisions, target selection, and survival tactics - πŸ“œ **Quest System**: Automatically detects, plans, and completes quests - πŸ” **Semantic Search**: Find locations using natural language queries - πŸ“Š **Progression Optimizer**: Finds optimal grinding spots and equipment upgrades ## Architecture The application is built with a modular architecture: - **Core**: Telnet client, ANSI parser, text parser, game state - **Modules**: - Character Creator: Stats rolling, class/race selection - Auto-Mapper: World mapping with hybrid storage (SQLite + Memvid) - Decision Engine: AI decision-making, combat AI, goal management - Quest System: Quest detection, planning, execution - Progression Optimizer: Grinding optimization, equipment analysis ## Installation ### Using Poetry (Recommended) ```bash # Install Poetry if not already installed pip install poetry # Install dependencies poetry install # Activate virtual environment poetry shell ``` ### Using pip ```bash # Create virtual environment python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install dependencies pip install -r requirements.txt ``` ## Configuration 1. Copy the example configuration: ```bash cp examples/config.example.yaml config.yaml ``` 2. Edit `config.yaml` with your MUD server details: ```yaml mud: host: "your-mud-server.com" port: 4000 username: "your_username" password: "your_password" ``` ## Usage ```bash # Run the AI player python -m src.main # Run with custom config python -m src.main --config custom_config.yaml # Run tests pytest tests/ -v # Run with coverage pytest --cov=src --cov-report=html ``` ## Project Structure ``` mud-ai-player/ β”œβ”€β”€ src/ # Source code β”‚ β”œβ”€β”€ core/ # Core components β”‚ β”œβ”€β”€ modules/ # Specialized modules β”‚ β”œβ”€β”€ utils/ # Utilities β”‚ └── config/ # Configuration management β”œβ”€β”€ data/ # Persistent storage β”‚ β”œβ”€β”€ maps/ # World maps (SQLite + Memvid) β”‚ β”œβ”€β”€ characters/ # Character saves β”‚ └── logs/ # Game logs β”œβ”€β”€ tests/ # Test suite β”œβ”€β”€ docs/ # Documentation └── examples/ # Example configurations ``` ## Development ```bash # Format code black src/ tests/ # Lint code ruff check src/ tests/ # Run tests with watch pytest-watch ``` ## Documentation See the `docs/` directory for detailed documentation: - [Architecture](docs/architecture.md) - [Configuration Guide](docs/configuration.md) - [Development Guide](docs/development.md) - [API Reference](docs/api_reference.md) ## License MIT License ## Contributing Contributions are welcome! Please read the development guide before submitting PRs. ## Disclaimer This is an educational project. Please respect the rules and terms of service of any MUD you connect to. Some MUDs prohibit automated players.