RetroHub BBS
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.
Features
Core 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
Gaming Platform
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
AI-Powered Adventures
- 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
Technical Architecture
- 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
Visual Themes
RetroHub offers multiple visual themes to enhance the retro BBS experience.
Installation
Prerequisites
- Python 3.8+
- Modern web browser with WebSocket support
Dependencies
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
Configuration
- 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)
Usage
Starting the Server
Run the main server:
python server.py
The server will start on the default port and initialize all necessary databases.
Accessing the Platform
- 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
Command Line Client
For testing or automation, use the command-line client:
python client.py
Project Structure
osdhack/
├── 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
Game Modes
Single Player
- Gee-Bee: Brick-breaking game with power-ups and multiple levels
- Pac-Man: Navigate mazes, collect dots, avoid ghosts
Multiplayer
- Pong: Classic paddle game for 2 players with real-time physics
- Tank Wars: Strategic tank combat with various game modes and team play
Cooperative
- AI Adventures: Collaborative storytelling with multiple players and AI narration
Features in Detail
Chat System
- 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
Adventure System
- Character creation with customizable stats
- Turn-based combat with dice mechanics
- AI-generated storylines and responses
- Multi-player adventure support
- Persistent character progression
Voice Integration
- Jitsi Meet integration for voice rooms
- Room-based voice chat coordination
- Easy-to-use web interface for audio communication
Contributing
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
License
See the LICENSE file for licensing information.
Technical Notes
Architecture Highlights
- 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
Performance Considerations
- 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
Built With
- api
- css3
- html5
- javascript
- jitsi
- llm
- python
- sqlite
- websockets
Log in or sign up for Devpost to join the conversation.