A chess roguelike game built with Unity 6. Combine strategic chess gameplay with roguelike progression - capture pieces to score points, advance through levels, and build your army in the shop.
- Score-Race Chess - Capture pieces to earn points. First to reach the target score wins, or checkmate your opponent.
- Roguelike Progression - Win matches to advance levels with increasing difficulty. Lose and start over.
- Army Building - Earn coins from captures, spend them in the shop to upgrade your 16-piece army.
- Auto-Deployment - Non-standard armies are automatically placed using smart positioning.
- Multiplayer - Online matchmaking with level-based brackets via Unity Relay.
- Mobile-First - Touch controls, safe area support, optimized for phones.
- Unity 6 (6000.3.2f1 or later)
- Unity packages (auto-installed):
- Netcode for GameObjects
- Unity Relay, Lobby, Authentication
- Input System
- TextMeshPro
- Clone the repository
- Open in Unity Hub
- Go to Shakki > Setup Scene in the menu bar
- Press Play to test
- Shakki > Build > Configure Player Settings (one-time)
- Choose your platform:
- Shakki > Build > Windows - Creates EXE
- Shakki > Build > Android (APK) - Creates APK
- Shakki > Build > Android (AAB) - For Play Store
- Shakki > Build > iOS - Creates Xcode project
Builds output to Builds/[Platform]/[Version]/
- Start Run - Begin at Level 1 with a standard chess army
- Play Match - Capture pieces to score points. Reach the target score or checkmate to win.
- Visit Shop - Spend earned coins on new pieces or sell unwanted ones
- Advance - Each level increases the target score and round limit
- Game Over - Lose a match and your run ends. Start fresh from Level 1.
- Click/Tap a piece to select it
- Click/Tap a highlighted square to move
- Drag a piece directly to its destination
Assets/
├── Scripts/
│ ├── Core/ # Chess engine, game state, run management
│ ├── UI/ # All UI components (programmatic)
│ ├── Network/ # Multiplayer networking
│ ├── Audio/ # Audio management
│ └── Editor/ # Editor tools and build scripts
├── Resources/
│ └── Audio/ # Sound effect files
├── Scenes/
│ └── SampleScene.unity
└── Tests/
└── Editor/ # Unit tests
Place audio files in Assets/Resources/Audio/ with these names:
PieceMove.wav,PieceCapture.wav,Check.wav,Checkmate.wavButtonClick.wav,CoinEarn.wav,LevelUp.wavMatchWin.wav,MatchLose.wav,ShopOpen.wav,ShopPurchase.wav
- Engine: Unity 6 with Universal Render Pipeline (URP)
- Networking: Unity Netcode for GameObjects + Relay + Lobby
- Input: Unity Input System
- UI: Programmatic UI (no prefabs) with TextMeshPro
All rights reserved.