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.