The full table.
A graphical client with the shared table, your hand, the scoring track and a live chat, laid out the way the physical game looks from above.
FIG. 03 / 2024 · ONLINE MULTIPLAYER
A digital port of the illustrated board game, rebuilt as an online multiplayer game in Java for the Software Engineering course.
The project
Codex Naturalis is a digital port of the illustrated board game by Cranio Creations, rebuilt as an online multiplayer game in Java. It was the final project for the Software Engineering course at Politecnico di Milano.
Four of us reconstructed the game from the ground up on a Model, View, Controller architecture: its cards, its four kingdoms, its scoring, a client and server that talk over two different networks, and two full clients to play it through.
AN ILLUSTRATED INDEX
The pieces the game is built from, drawn from its own world. Text to sit beside the components, not a rulebook.
Every card belongs to one of four natural kingdoms. Their symbols sit in the corners, and gathering them is how a codex grows.
Three treasures of the scriptorium hide among the cards, worth more than any single leaf.
A card is laid over the corners of the ones already down. It covers what lies beneath and leaves its own corners open for the next. From that overlap, the whole codex is built outward.
GUI & TUI
The same match, rendered two ways: a full graphical client, and a terminal client that runs anywhere a shell does.
A graphical client with the shared table, your hand, the scoring track and a live chat, laid out the way the physical game looks from above.
A text client for when there is nothing but a terminal. It draws the same board in three modes, so it stays readable from a rich console down to the plainest one.
GAMEPLAY
A short clip from a live match on the graphical client, not a full game.
HOW IT WAS BUILT
Client and server are both written in Java, split along a Model, View, Controller architecture so the rules live in one place and the two clients only draw them.
Two interchangeable network stacks. A player joins over Java RMI or over raw sockets, and either way reaches the same server and the same match.
The full graphical interface: login, match selection, the table seen from above, card placement and an in-game chat.
A second, self-contained client that renders the board as text and walks the player through connecting, naming, and joining or hosting a game.