
CompletedReactNode.jsExpress+2 more
Bhariyo
A modern digital implementation of the ancient Sindhi board game Bhariyo.
Timeline
1 Month
Role
Full Stack
Team
Solo
Status
CompletedTechnology Stack
React
Node.js
Express
Supabase
CSS
Key Challenges
- Real-time Multiplayer Synchronization
- Advanced Hybrid AI Engine
- WebRTC Voice Chat Integration
- Performance Optimization via Web Workers
Key Learnings
- TensorFlow.js and ONNX Inference
- Monte Carlo Tree Search (MCTS)
- Real-time Databases with Supabase
- Game State Management
Bhariyo (بھریو)
Overview
Bhariyo is a modern, AI-powered digital implementation of the ancient Sindhi board game Bhariyo. Built with a focus on high-performance AI, real-time multiplayer connectivity, and a premium user experience, Bhariyo brings a centuries-old tradition into the modern era.
Key Features
- Advanced Artificial Intelligence: Play against bots with varying difficulty. The AI uses a Hybrid Engine combining Minimax with Alpha-Beta Pruning, Iterative Deepening, and Monte Carlo Tree Search (MCTS), evaluated via Graph Convolutional Networks (GCN) running in Web Workers.
- Real-time Multiplayer: Powered by Supabase for seamless matchmaking and game state synchronization. Features a global leaderboard and match history.
- WebRTC Voice Chat: Integrated voice communication allowing players to talk during matches.
- Learning & Mastery: Includes Puzzle Mode, Learn View for tutorials, and a distraction-free Focus Mode.
Technical Stack
- Frontend: React 19 + Vite with a custom Vanilla CSS design system.
- Backend: Node.js + Express, paired with Supabase for realtime databases.
- Machine Learning: TensorFlow.js and ONNX Runtime Web for browser-based neural network inference.
- Voice: Simple-Peer for WebRTC voice communication.
Game Rules
- Phase 1 (Placing): Players take turns placing 9 pieces on the 24 available nodes.
- Phase 2 (Moving): Move pieces to adjacent nodes.
- Phase 3 (Flying): When reduced to 3 pieces, a player can fly to any vacant node.
- Mills: Forming a line of 3 pieces allows you to remove an opponent's piece. Win by reducing the opponent to 2 pieces or blocking all their moves.
