Back to projects

Software / Client–server architecture

One game. A shared state.

A JavaFX Othello client backed by a Java server, a shared message protocol and SQLite persistence.

Academic software-design projectAcademic application
Conceptual Othello board and client-server interface illustration.
Conceptual Othello board and client-server interface illustration.

01 / The challenge

The question behind the system.

Keep game rules, user actions, persistent data and client updates consistent across a network boundary.

A networked Othello implementation separates the user interface, game authority and common protocol into Maven modules. The server owns the game state, while clients request actions and render updates.

02 / The approach

From architecture to implementation.

  1. 01

    Define a common message contract between client and server.

  2. 02

    Keep state changes on the server and send updated game information to clients.

  3. 03

    Apply strategy, command and data-access patterns to CPU opponents, undo/redo and persistence.

03 / Outcomes

What the work shows.

  • The project includes a JavaFX client, server-side game engine, undo/redo, CPU strategies and stored game data.

04 / Scope & next steps

Where the work stands.

  • Automatic reconnection, stronger input validation and some end-of-game interface behaviour remain documented limitations.

Start a conversation

A system to build.
A problem to solve.