This is the project for the Prova Finale of the course Ingegneria del Sofware held at Politecnico di Milano under the supervision of Prof. Alessandro Margara. It consists in developing a multiplayer online table game, both client and server side (CLI and GUI interfaces), using the object-oriented programming paradigm and its common design patterns.
-
Andrea Bosisio (@andreabosisio)
andrea2.bosisio@mail.polimi.it -
Matteo Beltrante (@Beltrante)
matteo.beltrante@mail.polimi.it -
Marco Bendinelli (@MarcoBendinelli)
marco.bendinelli@mail.polimi.it
Functionality | State |
---|---|
Basic rules | ✅ |
Complete rules | ✅ |
Socket | ✅ |
CLI | ✅ |
GUI | ✅ |
Advanced Functionality | State |
---|---|
Resilience to disconnection | ✅ |
Persistence | ✅ |
Local Game | ✅ |
Multiple Games | ❌ |
Parameters Editor | ❌ |
Full game rules can be consulted here.
-
In the deliverables there is the jar file to start the application as both Server or Client.
-
To run it as Server type the following command (as default it runs on port 1337):
> java -jar AM65.jar -server
This command can be followed by a desired port that server will be listening on.
-
To run it as Client type the following command:
> java -jar AM65.jar
This command MUST be followed by one of these arguments:
- -cli: to start the Command Line Interface (NOTE: Windows users must run it using WSL);
- -gui: to start the Graphical User Interface;
The Server's IP and port can be specified during the execution.
To play a local game run only the Client application and:
- for the CLI just follow the instructions available during execution
- for the GUI go to Settings and select "Local Game"
To facilitate the demo of the game, a cheat functionality has been implemented. It simply adds some Resources into the StrongBox.
SPOILER ALERT: To use it, click here to see the command to be inserted in the Server terminal
> cheat
- DrawIO - UML Diagrams
- Maven - Dependency Management
- IntelliJ - IDE
- JavaFX - Graphical Framework
- SceneBuilder - Visual Layout Tool for JavaFX
This project is developed in collaboration with Politecnico di Milano and Cranio Creations.