Tic-tac-toe in Unity
A browser game the agent fleet built end to end in Unity, with a minimax opponent that never loses.

Stack
Pipeline
- 1
A task is filed for the fleet
The founder describes the game in one issue; an executor claims it inside a task container that has a real Unity Editor and a GPU mounted.
Unityagent-corp - 2
Rules and the AI are written as engine-free C#
Board, game state and both opponents live in an assembly that cannot reference the engine, so the minimax search and the random player are plain code that runs in any test runner.
C# - 3
The interface is assembled in code
The scene holds a camera and one controller; the grid, status line, new-game button and difficulty toggle are built at startup with uGUI, and the computer answers on the next frame.
uGUI - 4
Both test suites run headless in the Editor
EditMode tests cover the rules and the AI, PlayMode tests load the scene and click the real buttons; a self-hosted GPU runner executes both on every pull request.
Unity Test FrameworkGitHub Actions - 5
Review rounds happen with the Editor, the merge comes from Telegram
A reviewer on a different model runs the same suites and sends findings back; a revise round on a third model answers them, and the founder approves the pull request from a Telegram card.
agent-corpTelegram - 6
The art is generated through Grok on the fleet host
An art task generates the board, the two mascots and the interface skins through the fleet's Grok endpoint, keys and curates them against a written style document, and cuts each win celebration from one image-to-video clip into a sprite sheet; an adversarial visual pass checks the result before merge.
Grokagent-corpsprite-animation - 7
A WebGL build is dispatched and published
The build workflow produces the WebGL bundle on the GPU runner; the bundle is uncompressed, its loader repointed, and copied to the media host, where it is served as a static site.
GitHub ActionsWebGLCaddy
Links
See it live
What it does
A tic-tac-toe game you play in the browser, set in a quiet sci-fi control room. You play the robot and always move first; the computer answers as the alien. Each mark jumps into its cell, the winning line lights up, and the winner runs a short celebration animation. The difficulty toggle switches the opponent between a perfect player, which searches the whole game tree and never loses, and a random player, which makes the game winnable. A status line says whose turn it is and how the round ended, and a button starts a new game.
It is the first project the agent fleet built end to end in Unity: an executor on Claude Opus wrote the rules, the opponents, the interface and both test suites inside a task container with a real Unity Editor; a reviewer on GLM ran the same suites and sent its findings back; a revise round on Claude Fable answered them; and the founder approved the result from a Telegram card.
How it works
The rules and the AI live in an assembly that is forbidden from referencing the engine, so the minimax search over the full game tree is plain C# that any test runner can execute. The perfect opponent scores a quick win higher than a slow one and postpones an unavoidable loss as long as it can; the random opponent picks a uniformly random legal move.
The scene contains a camera and a single controller. Everything a player sees, the grid, the status label, the button and the toggle, is created at startup with uGUI, which keeps the scene file trivial and lets PlayMode tests click the real buttons. The computer replies on the frame after a click.
Every piece of art, the background, the cells, the win line, both mascots and the interface skins, was generated through Grok by a fleet task on the host that holds the subscription, then keyed, curated and measured against a written style document that fixes the palette, the silhouettes and what counts as a reject. Each mascot's win celebration is a sprite sheet cut from a single image-to-video clip seeded by the approved still, so the frames belong to one motion instead of eight unrelated pictures; the jump, the glow and the growing win line are code tweens. An adversarial visual pass judged the result before it merged.
Tests run headless in the Editor, EditMode first and PlayMode second, on a self-hosted GPU runner that executes them on every pull request. A WebGL build is produced on request by a second workflow and published to the media host as a static site.
Where to see it
Play it at media.tytarenkoagency.com/games/tictactoe. Switch the toggle off if you want a chance to win.

