A multi-board game platform built with Rust, Bevy, and WebAssembly. Play classic board games both natively and in your web browser with stunning 3D graphics.
An extensible platform for playing multiple classic board games with:
- 3D Graphics: Beautiful, classic visual style using Bevy engine
- Cross-Platform: Native desktop (Linux, macOS, Windows) and web browser
- Multiplayer: Local and online play via WebRTC
- AI Opponents: Multiple difficulty levels
- Competitive: Global leaderboards and scoring system
- Community: Scenario editor, custom content, and shared replays
Phase 1: Core Draughts Implementation ✓
The foundation is complete with:
- Full Cargo workspace setup
- Core game framework (ECS, state management, events)
- Draughts game logic with proper rules
- 3D board and piece rendering
- Menu system and game selection
Next: Completing mouse interaction and local human vs human gameplay
See ROADMAP.md for detailed development plan.
- Draughts (Checkers) - Classic 8x8 board game with standard rules
- Coming soon: International, Russian, Brazilian variants
- 🎮 Multiple Platforms: Native desktop and web browser support
- 🎲 Extensible Architecture: Easy to add new board games
- 🎨 3D Graphics: Built with Bevy's modern ECS architecture
- 🎥 Advanced Camera Controls: Zoom, pan, rotate, and preset views
- 🚀 High Performance: Optimized for both native and WASM targets
- 🎯 Pure Rust: Type-safe game logic with minimal runtime errors
- 🔌 Plugin System: Games integrate as Bevy plugins
Option 1: Play in Browser (Coming soon when WASM build is complete) Visit the hosted version at [URL TBD]
Option 2: Native Desktop
# Install Rust if you haven't already
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Clone and run
git clone [repository-url]
cd bevy-board
cargo run --bin board-gamesFirst time here? See docs/GETTING_STARTED.md for a detailed walkthrough.
See docs/SETUP.md for complete development setup instructions.
- 🚀 Getting Started - New to the project? Start here!
- Setup Guide - Development environment setup
- 🎥 Camera Controls - How to navigate the 3D board
- 🗺️ Roadmap - Project roadmap and future plans
- 🏗️ Architecture - System design and patterns
- 🤝 Contributing - How to contribute (coming soon)
- 🎮 Game Rules - Rules for each game (coming soon)
├── crates/
│ ├── board-games-core/ # Common game framework
│ ├── board-games-native/ # Native desktop binary
│ ├── board-games-wasm/ # WASM web binary
│ └── games/
│ └── draughts/ # Draughts game implementation
├── assets/ # Game assets (sprites, sounds, fonts)
├── www/ # Web deployment files
└── build/ # Build scripts and configs
Each game is implemented as a Bevy plugin following these patterns:
- Pure Logic: Game rules as pure functions
- ECS Components: Game state as Bevy components
- Event System: Player actions as Bevy events
- Pluggable: Games register as plugins to the main app
- Create a new crate in
crates/games/your-game - Implement the
BoardGametrait - Create Bevy systems for rendering and input
- Add the plugin to both native and WASM binaries
See crates/games/draughts/ as an example implementation.
This project is licensed under the MIT License - see LICENSE file for details.