PeakeMUD - Looking For Input

in Hive Gaming3 days ago

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.