https://drive.google.com/drive/folders/1ljONBu0t3NAS0TL_Te2H46Kd87K0QJlv?usp=sharing
A modern reimagining of classic Bulletin Board Systems (BBS) built with contemporary web technologies. RetroHub combines the nostalgic social experience of old-school BBSes with modern features like real-time chat, multiplayer games, AI-powered adventures, and voice communication.
- Real-time Chat System: Socket.IO-powered messaging with support for global, private, and room-based conversations
- Topic-Aware Messaging: AI-powered topic analysis that automatically suggests relevant chat rooms
- File Sharing: Upload and share files with other users in any chat context
- Voice Chat: Integrated Jitsi Meet voice rooms for real-time audio communication
- User Authentication: Secure user registration and login system with session management
- Retro Arcade Games:
- Gee-Bee: Classic breakout-style game with retro aesthetics
- Pac-Man: Full recreation of the classic arcade game
- Multiplayer Games:
- Pong: Real-time multiplayer Pong with spectator mode
- Tank Wars: Advanced multiplayer tank battle game featuring:
- Multiple tank classes (Light, Medium, Heavy, Artillery)
- Various game modes (Deathmatch, Team Battle, Capture the Flag)
- Real-time physics and combat systems
- Team-based gameplay with respawn mechanics
- Interactive Text Adventures: AI Dungeon Master powered by Mistral LLM
- Character Creation: Create custom characters with stats and abilities
- Turn-based Combat: Structured combat system with dice rolling mechanics
- Collaborative Storytelling: Multiple players can join adventures together
- Dynamic Narrative: AI generates contextual story content and responses
- Async WebSocket Server: Built on aiohttp and Socket.IO for real-time communication
- SQLite Database: Persistent storage for users, messages, and game data
- Modular Design: Clean separation between chat, games, and adventure systems
- Cross-Platform Client: Web-based interface accessible from any modern browser
RetroHub offers multiple visual themes to enhance the retro BBS experience:
NOTE: For the AI functionality, you need to add a MistralAI API Key which you need to use either as environment variable or save it in a file named secrets.txt
- Python 3.8+
- Modern web browser with WebSocket support
Install the required Python packages:
pip install aiohttp
pip install python-socketio
pip install aiohttp-session
pip install bidict
pip install mistralai
pip install openai
pip install websockets- Set up your AI API keys in
secrets.txtfor the adventure system - Configure authentication settings in
auth.py - Initialize the databases by running the server (they'll be created automatically)
Run the main server:
python server.pyThe server will start on the default port and initialize all necessary databases.
- Open your web browser and navigate to the server address
- Register a new account or log in with existing credentials
- Choose from various activities:
- Join chat rooms and conversations
- Play single-player retro games
- Start or join multiplayer games
- Begin AI-powered text adventures
- Join voice chat rooms
For testing or automation, use the command-line client:
python client.pyosdhack/
βββ server.py # Main WebSocket server
βββ client.py # Command-line client
βββ auth.py # Authentication system
βββ topic_analyzer.py # AI-powered chat topic analysis
βββ static/ # Web frontend files
β βββ index.html # Main chat interface
β βββ audio.html # Voice chat interface
β βββ *.css, *.js # Styling and client-side logic
βββ adventure/ # Text adventure system
β βββ handler.py # Adventure game coordinator
β βββ ai_dm.py # AI Dungeon Master
β βββ player.py # Player character management
β βββ characters.py # Character creation and stats
β βββ dice.py # Dice rolling mechanics
βββ games/ # Single-player retro games
β βββ gee-bee/ # Breakout-style game
β βββ pacman/ # Pac-Man recreation
βββ multiplayer/ # Multiplayer game servers
β βββ pong/ # Real-time Pong game
β βββ Tank/ # Tank Wars battle game
βββ persistence/ # Database management
βββ chatdb.py # Chat message storage
βββ authdb.py # User authentication
βββ *.sql # Database schemas
- Gee-Bee: Brick-breaking game with power-ups and multiple levels
- Pac-Man: Navigate mazes, collect dots, avoid ghosts
- Pong: Classic paddle game for 2 players with real-time physics
- Tank Wars: Strategic tank combat with various game modes and team play
- AI Adventures: Collaborative storytelling with multiple players and AI narration
- Global chat for server-wide conversations
- Private messaging between users
- Topic-based room suggestions using AI analysis
- File upload and sharing capabilities
- Message history and persistence
- Character creation with customizable stats
- Turn-based combat with dice mechanics
- AI-generated storylines and responses
- Multi-player adventure support
- Persistent character progression
- Jitsi Meet integration for voice rooms
- Room-based voice chat coordination
- Easy-to-use web interface for audio communication
This project welcomes contributions in several areas:
- Additional retro games and game modes
- Enhanced AI adventure features
- UI/UX improvements for the web interface
- Performance optimizations
- New multiplayer game types
See the LICENSE file for licensing information.
- Event-driven Design: Asynchronous event handling for all real-time features
- Modular Components: Each major feature (chat, games, adventures) is self-contained
- Database Abstraction: Clean database interfaces for easy maintenance and testing
- WebSocket Communication: Efficient real-time data exchange
- AI Integration: Seamless LLM integration for intelligent features
- Connection pooling for database operations
- Rate limiting for AI API calls
- Efficient message broadcasting for chat rooms
- Optimized game state synchronization for multiplayer games
RetroHub represents a bridge between the community-focused spirit of classic BBSes and the capabilities of modern web technology, creating a unique social gaming platform that celebrates both nostalgia and innovation. Submission for OSDHACK'25








