Caution
This project is an unofficial implementation of a board game distributed by Cranio Creations.
Due to copyright restrictions, all original graphic assets have been removed from this repository, and the executable .jar file cannot be published.
As a result, the project is not functional in its current state.
Final Mark: 30/30 cum Laude
| Functionality | State |
|---|---|
| Game tiles logic | 🟢 |
| Game model rules | 🟢 |
| Socket | 🟢 |
| RMI | 🟢 |
| GUI | 🟢 |
| TUI | 🟢 |
| Multiple games | 🟢 |
| Persistence | 🟢 |
| Resilience to disconnections | 🟢 |
🔴 Not implemented
🟠 Work in progress
🟢 Implemented
The development of this project is necessary to complete the software engineering course in the acedemic year 2024/2025 held by Alessandro Margara and to acquire a bachelor's degree in CS.
- Maven - Project management
- Intellij IDEA Ultimate - Development environment
- Git - Version control
- Junit - Testing
- Jackson - Deserialisation
The software can be run on Windows, Linux and MacOS:
-
Be sure to have Java
-
Run the server
java -jar server.jar
Note for distributed systems: When using RMI on distributed systems, the program automatically attempts to detect your local IP address.
If the detected value is incorrect, you can manually specify your machine's IP address:java -jar server.jar --ip <your-local-ip>
To start the server with auto-save on file:
java -jar server.jar --d
To start the server from saved files:
java -jar server.jar --r
It is also possible to combine those flags
-
Run the client
GUI:
java -jar client.jar -g
TUI:
java -jar client.jar -t
Warning
Development Mode: We have been using a development mode to test specific game scenarios. To start a flight with a shipboard loaded with tiles, you can launch the server from Sandbox