Ever wondered what the games of old looked like? One of the oldest still known to us is The Royal Game of Ur.
In this project my team rebuilt that fascinating, roughly 4,500-year-old game as an online multiplayer. The main frameworks were Angular 12, Spring Boot and Three.js. My focus was two-fold: building the 3D game environment, and writing an AI opponent for the single-player mode.
A board from Mesopotamia, rendered in the browser
The 3D environment runs on Three.js, right inside the browser, with no plugins or downloads. Recreating a physical board as a 3D scene means every rule has to exist twice: once as something the player sees and clicks, and once as data the server can reason about.
That's the part I enjoyed most: mapping the tactile game (a board, its squares, the rosette tiles, the pawns) onto a clean model that the Angular front end, the Three.js scene and the Spring Boot back end could all agree on.
An opponent for when there's no one to play
Multiplayer is the heart of the game, but you shouldn't need a second person to enjoy it. So I built an AI opponent for single-player mode, a computer player that takes its own turns against you.
It's exactly the intersection I want to keep working in: 3D on the web and applied AI, together in one product.
One of the oldest games known to man, rebuilt with some of the newest tools on the web.