09 / Project / Jan 2026 - Apr 2026
Student Gaming Platform (SGP)
A JavaFX desktop platform for Tic-Tac-Toe and Connect Four with local TCP multiplayer, accounts, lobby matchmaking, in-game chat and leaderboards.
- Team members across 5 sub-teams
- 17
- JUnit 5 tests
- 245
- Networked games
- 2
- Connected screens
- 11
Overview
SGP lets students play Tic-Tac-Toe or Connect Four against each other over a real TCP network, with accounts, lobby matchmaking, in-game chat and a live leaderboard, all in one polished desktop window. It was built by a 17-member team split into five sub-teams for SENG 300.
Leading the integration
I worked on the UI sub-team and was the sole member of the Integration sub-team, which put me in charge of turning the pieces into one product. Before that work, the codebase was a set of disconnected parts: separate game engines, standalone UI screens, a console networking stub, no account system and mismatched APIs.
I refactored both engines behind a shared game-engine contract with immutable state, so every move returns a new state instead of mutating a shared one. I then rebuilt the app as a single window with a custom title bar and callback-based navigation, wiring all eleven screens from Welcome and Auth through Lobby, Gameboard and Win.
Multiplayer and persistence
I replaced the stub with real multiplayer using java.net sockets: localhost port scanning across ports 5300 to 5325, a line-based message protocol, lobby codes, host and join flows, chat over the same connection and thread-safe UI updates. Host-authoritative state also fixed a desync where a rejected move could soft-lock the other player.
Accounts, game saves, player statistics and leaderboards use file-based persistence with atomic saves and FileLock, so concurrent writes cannot corrupt the data.
Quality
I contributed to system design, testing and documentation, including the full PlantUML diagram set and the Iteration 3 documentation, backed by a 245-test JUnit 5 suite of unit and integration tests.