IS25-AM17 – Software Engineering Project
Politecnico di Milano (2024–2025)
👥 Team
Davide Cutrupi • Tommaso D'Alessio • Simone De Carlo • Davide Di Tanna
This project is a digital adaptation of the acclaimed board game Galaxy Trucker by Cranio Creations.
- Single-server architecture supporting multiple concurrent matches
- 2-4 players per game session
- Dual interface support: Command-Line Interface (CLI) & Graphical User Interface (GUI)
- Built following software engineering best practices
- Extensive use of design patterns, particularly MVC (Model-View-Controller)
📋 Detailed technical documentation covering networking, communication protocols, and system architecture is available in the project documentation.
The project includes all base gameplay mechanics plus 3 out of 4 advanced modules.
| Feature | Status | Description |
|---|---|---|
| Base game rules | ✅ | Complete core gameplay implementation |
| Full ruleset | ✅ | All official rules integrated |
| Socket networking | ✅ | TCP/IP socket-based communication |
| RMI networking | ✅ | Java RMI remote method invocation |
| CLI Interface | ✅ | Text-based user interface |
| GUI Interface | ✅ | JavaFX graphical interface |
| Multiple games* | ✅ | Concurrent game sessions support |
| Learning flight* | ✅ | Tutorial/practice mode |
| Resilience & recovery* | ✅ | Connection recovery mechanisms |
| Persistence* | ❌ | Save/load game state |
*Advanced Functions
All documentation is organized in the /deliveries folder.
Location: /deliveries/UML
Location: /deliveries/sequenceDiagram
Location: /deliveries/javadoc
Comprehensive documentation covering the most significant classes and methods.
| Technology | Purpose | Role |
|---|---|---|
| ☕ Java 21+ | Core Language | Application development |
| 📦 Maven | Build Tool | Dependency management & compilation |
| 🎨 JavaFX | GUI Framework | Graphical user interface |
| 🧪 JUnit | Testing | Unit testing framework |
| 🎭 Shade Plugin | Packaging | JAR file creation |
java -jar IS25-AM17-Windows.jar serverOption 1: PowerShell
# Set UTF-8 encoding
chcp 65001 | Out-Null
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$env:JAVA_TOOL_OPTIONS = '-Dfile.encoding=UTF-8'
# Launch client
java -jar IS25-AM17-Windows.jar clientOption 2: Command Prompt
# Set UTF-8 encoding
chcp 65001 >nul
set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
# Launch client
java -jar IS25-AM17-Windows.jar clientOption 3: Automated Batch File
.\launch💡 Note: UTF-8 encoding setup ensures proper TUI interface display.
java -jar IS25-AM17-MacSilicon.jar serverjava -jar IS25-AM17-MacSilicon.jar clientTo compile the project move into the root project folder use the command:
mvn clean package
then you should be able to run the package IS25-AM17.
if you want to run the server you should run:
java -jar target/IS25-AM17-1.0-SNAPSHOT-fat.jar server
for the client:
java -jar target/IS25-AM17-1.0-SNAPSHOT-fat.jar server
- Start the server using the appropriate command for your OS
- Launch one or more clients to join the game
- Choose your interface: CLI for terminal enthusiasts or GUI for visual experience
- Create or join a lobby with 2-4 players
- Build your spaceship and embark on your galactic trucking adventure!