Skip to content

simg/bevy-board-games

Repository files navigation

Board Games Platform

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.

Vision

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

Current Status

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.

Current Games

  • Draughts (Checkers) - Classic 8x8 board game with standard rules
    • Coming soon: International, Russian, Brazilian variants

Features

  • 🎮 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

Quick Start

For Players

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-games

First time here? See docs/GETTING_STARTED.md for a detailed walkthrough.

For Developers

See docs/SETUP.md for complete development setup instructions.

Documentation

Project Structure

├── 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

Game Architecture

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

Adding New Games

  1. Create a new crate in crates/games/your-game
  2. Implement the BoardGame trait
  3. Create Bevy systems for rendering and input
  4. Add the plugin to both native and WASM binaries

See crates/games/draughts/ as an example implementation.

License

This project is licensed under the MIT License - see LICENSE file for details.

About

Classic Board Games

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages