Hot-seat and vs-computer chess with an optional AR path on iPhone: place a 3D board on a real table, then play with full rules, move hints, and a local AI opponent.
Unity: 6000.5.0f1 (Unity 6, URP)
Author: Cannelle Mwiza — Group Leader (sole contributor) · African Leadership University
Repository: https://github.com/cinna03/Chess-
| Mode | Description |
|---|---|
| Hot-seat | Two players on one device; the board rotates so the active side faces the camera |
| vs Computer | You play White; Black uses a minimax engine (depth 3, alpha-beta, material + positional eval) |
| AR (iPhone) | Scan a surface, tap to place the board, then play the same modes in the room |
Gameplay: legal moves (including castling and en passant), check / checkmate / stalemate, green move dots, red capture rings, capture tray, last-move line, game-over panel with rematch.
- Unity 6000.5.0f1 (or compatible Unity 6) with URP
- AR on device: AR Foundation + ARKit (iOS)
- Desktop / itch: no phone required — use
ChessPlaytest - iOS build: macOS + Xcode; use bundle ID
com.unity.chess.armobileon a Personal Team (reuse an existing App ID if you hit Apple’s free limit)
- Clone this repo and open the project in Unity Hub.
- Open
Assets/Scenes/ChessPlaytest.unity. - Press Play.
- From the start menu: Play → choose Hot-seat or vs Computer (place the board in AR scenes first).
- Click a piece, then a highlighted square to move.
Editor menus: Chess → Build → Mac Playtest (itch) outputs Builds/Mac/ARTabletopChess.app for itch.io.
- Open
Assets/Scenes/ARChess.unity(or run Chess → Setup AR Chess In Open Scene on your scene, then save). - Edit → Project Settings → Player → iOS — set Bundle Identifier to
com.unity.chess.armobile(or another ID already on your Apple team). - File → Build Settings → iOS → Build and Run.
- Allow camera → scan a table → tap to place → pick a mode → play.
| Path | Purpose |
|---|---|
Assets/Scripts/Chess/Core/ |
Board state, legal moves, AI |
Assets/Scripts/Chess/View/ |
Board rendering, input, HUD, game flow |
Assets/Scripts/Chess/AR/ |
Plane detection and board placement |
Assets/Scripts/Chess/Editor/ |
Playtest setup, menu bake, itch build helpers |
Assets/Scenes/ChessPlaytest.unity |
Desktop demo (public build source) |
Assets/Scenes/ARChess.unity |
AR-enabled scene |
| Component | Role |
|---|---|
ChessGame / MoveGenerator |
Rules and legal move filtering (no illegal king exposure) |
ChessGameController |
Modes, turns, AI scheduling, UI events |
SimpleChessAi |
Minimax + alpha-beta for vs Computer |
ChessBoardView / ChessSquareView |
3D board, highlights, captures, flip |
ChessMenuUi |
Intro, start hub, rules, settings, mode select, HUD, game over |
ARChessBoardPlacer |
AR raycast placement before play |
Patterns: core logic separated from Unity view; UI driven by controller events; AR input gated until the board is placed.
These links are what graders open from the Canvas submission document. itch.io and video are added when you finish build and recording; everything else is live now.
| Deliverable | Location |
|---|---|
| Source code | https://github.com/cinna03/Chess- |
| DevLog (public) | https://docs.google.com/document/d/1U9KlkhUET-NADqs5Gvm1BBqZpz7li47trpCgIeg-Zbc/edit?usp=sharing |
| Task allocation tracker | https://docs.google.com/spreadsheets/d/1d5dOtJ-ZM7TBj5S7Md-f6mz26nI2JLFv0vnqF_Xi4e0/edit?usp=sharing |
| Public desktop build | Mac build from Chess → Build → Mac Playtest (itch) → zip → itch.io (Public). Add the page URL to your Canvas submission doc when live. |
| Video walkthrough | Screen record desktop play + AR on iPhone; cover modes, moves, AI, attribution, and how AR placement works. Upload to YouTube (Unlisted) or Drive (anyone with link); add URL to Canvas when live. |
Attribution: This portfolio was implemented and documented by Cannelle Mwiza as group leader; no other student contributed code or deliverables. The tracker lists the same allocation.
All submission links for Canvas live in one Google Doc you submit on the course portal (not in this repo).
Online multiplayer, Elo-rated engine, Android AR build, and store release.
- UI font: Fredoka (project assets under
Assets/Fonts/) - Unity AR Foundation / ARKit template packages (see
Packages/manifest.json)
Coursework scripts in Assets/Scripts/Chess/ are student project work.