Drop in one prefab. Press Play. You are playing chess.
Advanced Chess Kit is a finished chess game, not a chess board component. All 32 pieces place themselves, clicking a piece highlights its legal destinations, a real engine replies on its own, and the game ends properly on checkmate, stalemate, threefold repetition or insufficient material.
Everything past that first prefab is optional and swappable — so the kit works both as the game you are shipping and as a minigame inside a much larger one.
A real engine, not a random-move opponent
Three difficulty levels — Easy, Normal, Hard — each a search time budget rather than a handicap. Every level always plays the strongest move its search found, so a lower difficulty is genuinely cheaper to run, never artificially worse on purpose. Measured search depth: 5–10 ply on Easy, 6–11 on Normal, 7–14 on Hard. Iterative deepening, transposition table, killer moves, history heuristic, quiescence search, opening book.
And it never stalls your frame. The reply is computed a slice at a time across frames, so the board stays responsive and animated while it thinks. Replies are paced to land 1.5–2.5s after your move finishes on screen — steady turn rhythm, no "thinking…" spinner needed.
Everything a player expects, already built
Built to drop into your game
Your save system, not ours. Save() hands you the whole game as a single opaque string and TryLoad() restores it — wire those two calls into a save slot, a profile, or cloud sync. The default PlayerPrefs backend needs zero setup and works everywhere, WebGL included.
Your art, in a few clicks. Board sprite, all 12 piece sprites and the label colour live in a ChessBoardSkin ScriptableObject; sounds live in a ChessBoardSfx. Duplicate, point the board's field at your copy, done — and a built-in editor window previews the whole board live as you edit.
Your flow, or ours. ChessKitSession wires the opinionated loop — difficulty → play → pause → outcome → restart — with six optional UI screens. Unplug it and drive ChessBoardHost yourself. Every screen has a defined fallback when it is absent, so deleting any of them is a supported configuration, not a broken one.
Any starting position you want. Load any FEN string to start a game from a custom position — puzzles, tutorials, a scripted story moment.
Tools that save you a week
Seven AI Skills included
The package ships Agent Skills under AI/Skills/, so an AI coding assistant in your project can set the kit up, wire persistence, reskin the board, add hints and undo, and diagnose a misbehaving board using the kit's real API instead of guessing at it.
No dependencies, and it means it
Nothing outside the package is required. DOTween and UniTask are optional and neither is bundled — an editor script detects DOTween and flips a scripting define automatically; with it absent the board animates through a small tween that ships inside the package. The input module is chosen at runtime, so the scene starts and accepts input under the old Input System, the new one, or Both, with no setup. You never configure any of this.
The package installs under Ostryzhnyi/Advanced Chess Kit/ and Ostryzhnyi/EasyViewService/ and writes nothing anywhere else — enforced by an automated self-containment test, not just a promise.
Being straight about what this is not