
The PyPeake MUD project brings the nostalgia of classic Multi-User Dungeons into a modern, Python-driven framework — while keeping the door wide open for expansion, theming, and integration with larger projects like PeakeCoin.
CORE FEATURES
- Secure Login System — Password hashing via SHA-256 to keep accounts safe.
- Character Creation — Choose from 6 races and 8 classes, each with stat bonuses and special abilities.
- Real-Time Multiplayer — Threaded socket server supports multiple simultaneous players.
- Persistent Progress — JSON-based database for portability and simplicity.
- Basic Command Set — stats, look, who, say, and quit.
- Extensible Architecture — Easy to add new races, classes, rooms, commands, or even blockchain integration.
PROJECT STRUCTURE OVERVIEW
mud_server.py : Main game server — handles connections, login, gameplay loop.
client.py : Simple Telnet client for connecting to the server.
database.py : JSON-based player database management.
player.py : Player object model with attributes, leveling, and stat logic.
races.py : Definitions and bonuses for all playable races.
classes.py : Definitions and bonuses for all character classes.
launcher.py : Command-line utility to start server/client or view stats.
test_game.py : Component tests for races, classes, players, and database.
NETWORKING: SERVER & CLIENT
mud_server.py
- Welcome Menu -> Login, Create Character, or Quit.
- Login & Creation -> Validates credentials, selects race/class.
- Game Loop -> Processes commands and broadcasts chat.
- Broadcast System -> say command sends chat to all connected players.
client.py
- Connects to server and starts a receive thread.
- Handles incoming and outgoing messages.
- Works as an alternative to native Telnet/MUD clients.
CHARACTER SYSTEM
races.py
Defines six races with descriptions, bonuses, stat modifiers, and special abilities.
Example: Elf
description: Graceful and wise, elves have a natural affinity for magic and archery.
stat_bonuses: dexterity +3, intelligence +2, wisdom +2, constitution -1
special_abilities: Enhanced mana regeneration, Archery expertise
classes.py
Eight classes from Warrior to Bard.
Example: Mage
primary_stat: Intelligence
starting_skills: Fireball, Magic Missile, Mana Shield
mana_multiplier: 2.0
health_multiplier: 0.8
player.py
- Applies race and class bonuses to base stats.
- Handles leveling, experience, health/mana management.
- Can be saved/loaded via to_dict() and from_dict().
PERSISTENT STORAGE
database.py
- Loads and saves player profiles.
- Creates backups before saving.
- Can export statistics, list top players, or clean up inactive accounts.
MANAGEMENT UTILITIES
launcher.py
- Start server or client.
- View game statistics.
- List all players.
- Backup the database.
Example usage:
python launcher.py server
python launcher.py client --host 192.168.1.50 --port 4000
python launcher.py stats
TESTING COMPONENTS
test_game.py
- Tests retrieval of races and classes.
- Tests player creation, leveling, and database persistence.
- Cleans up test database after running.