Tic-Tac-Gone cover

Tic-Tac-Gone

Released: Oct 2026

Description

Tic-Tac-Gone is tic-tac-toe with a short memory. Each player can only have three pieces on the board, so placing a fourth removes your oldest one and the grid never fills up into a draw. The piece you are about to lose fades and pulses, and that is where most of the thinking happens because a line you are blocking can open up the moment your own piece leaves. It started as a scrapbook idea from undergrad and now runs in the browser on desktop and phones, against a friend on the same device or against the computer.

Key Responsibilities

Wrote the game design document defining the three-piece FIFO rule, the win condition, both game modes and the original rule-based AI


Designed the faded, pulsing "next to go" cue so players can always see which of their pieces leaves on their next move


Set the art direction of warm low-poly wood against a cool navy backdrop and used Claude Fable to model the board, pieces and background shapes procedurally in Three.js


Wrote large parts of the JavaScript and Three.js code across 7 modules covering rules, AI, rendering, audio, UI, game flow and settings


Refined and extended the codebase with Claude Fable, reviewing each change before keeping it


Playtested builds on desktop and mobile, covering the three AI difficulty levels, the turn timer and touch controls


Prepared the itch.io HTML5 release with a Vite build using relative asset paths and a one-command ZIP script

Technology Used

icon_javascript.svg

JavaScript

Three.js

icon_vite.svg

Vite

HTML5

CSS

Web Audio API

icon_claude.svg

Claude Fable

Features

Three-Piece FIFO Rule & No Draws

Each player can have three pieces on the board. Placing a fourth removes that player's oldest piece, so every game ends with a winner. The next piece to go fades and pulses, and the pips on each player card show the same queue.

Three-Tier Computer Opponent

Easy plays mostly at random and spots an immediate win half the time. Normal takes a winning move, otherwise blocks yours, and accounts for its own oldest piece disappearing when it blocks. Hard searches 6 moves ahead early in the game and 9 once the board is full.

Beat-the-Clock Turn Timer

An optional limit of 5, 10, 20 or 30 seconds per move. When it runs out, the game either plays a random move for you or skips your turn, depending on the setting. The timer stops while the game is paused and never applies to the computer.

Tactile 3D Board on Desktop & Mobile

Pieces drop onto a low-poly wooden board, and you can drag to tilt it. On a phone, pressing a tile previews your piece, lifting your finger on the same tile places it, and sliding away cancels. Keyboard players can use 1 to 9 or the arrow keys and Enter.

Fully Synthesized Audio

Every sound effect and the ambient music are generated at runtime with the Web Audio API. There are no audio files in the game. Music and effects have separate volume sliders.

Living Title Screen & Rematch Scoring

A computer-vs-computer game plays behind the main menu. The result screen keeps score across rematches, and settings are saved in localStorage between visits.

Screenshots

Additional Information

This started as a scrapbook idea from undergrad i.e. tic-tac-toe where your pieces do not stay forever. I first pictured it in Unity, but a full engine felt like too much for a 3x3 board, so I built it for the browser instead.


I mainly wanted an HTML5 Three.js project under my belt. It was also my first time using Claude Fable, which I tried through Claude's introductory $100 in credits.


I wrote big chunks of the code myself and used Fable to refine it. Fable made the 3D models, and I was impressed by how well it handled modelling in code.


There are no image, model or audio files in the game. The board and pieces are built from Three.js geometry, and the music and sound effects are synthesized with Web Audio.


The design doc only called for an AI that wins, blocks or plays randomly. That became Normal difficulty, and the finished game also has Easy and a Hard mode that runs a negamax search with alpha-beta pruning.


What I'm proudest of is taking a simple scrapbook game and making it feel fresh. Solo personal project, finished in October 2026.

Get in Touch:

Copyright2025 - 2026 | All rights reserved