DISCLAIMER: PLEASE READ THE WHOLE LICENSE BEFORE ANY USE.
Masters of Renaissance JAVA edition is the final test of Software Engineering course of "Computer Science Engineering" held at Politecnico di Milano (2020/2021).
Teacher Gianpaolo Cugola.
Christian Romeo (@ChristianRomeo)
christian1.romeo@mail.polimi.it
Enrico Staiano (@enricostaiano)
enrico.staiano@mail.polimi.it
Tommaso Tissot (@tommasotissot)
tommaso.tissot@mail.polimi.it
Functionality | State |
---|---|
Complete Rules | ✔️ |
CLI | ✔️ |
GUI | ✔️ |
Socket | ✔️ |
Multiple Games | ✔️ |
Reconnection | ❌ |
Masters of Renaissance Board Game, by CranioCreations.
Here the full specifications:
IT
ENG
The project consists in the implementation of a distributed system made of a single server capable of managing multiple games and multiple clients (one per player) using the MVC pattern (Model-View-Controller). The network is managed through the use of sockets.
This project includes:
- Initial UML diagram;
- Final UML diagram, generated from the code by automated tools;
- Javadocs;
- Working game implementation, rules compliant;
- Source code of the implementation;
- Source code of unity tests.
Requirements
- Java SE SDK 15 (or newer) [for running]
- Maven framework 3.8 (or newer) [for building]
In the deliverables folder there is a multi-platform jar file, that can be used both for Server and Clients.
- The Server can be runned with the following command, as defaults it runs on port 9876:
> java -jar GC24.jar server [ip.json]
-
The clients can be runned with the following command:
- CLI
> java -jar GC24.jar cli [ip.json]
- GUI
> java -jar GC24.jar [gui] [ip.json]
This commands can be followed by:
- ip.json that is the configuration file, where it can be choosen the server port and server ip for clients
{
"server_ip": "device ip where the server is launched (127.0.0.1 default)",
"server_port": "(9876 default)"
}
- In alternative you can use the .bat files to lauch the game, be sure to have Windows Terminal installed.
Warning
For the best CLI experience, it's recommended to use native linux terminal or WSL (windows-subsystem for linux) in order to provide fonts, colors and emoji as the project was meant to show.
DejaVu Sans Mono for Powerline was the font originally used at size 12.
For the best GUI experience, it's reccomended a minimum resolution of 2560 x 1440 (or 2160 x 1440).
at 1920 x 1080 the window will result almost fullscreen.
In order to play, you'll have to launch at least one server and one client (either CLI or GUI).
In order to play multiplayer from different locations port forwarding is needed.
The project was built with Maven, using shade-plugin.
To run and compile the software:
Clone this repo
In the cloned repo folder, issue:
> mvn clean
> mvn package
After these processes the compiled jar can be found in the shade folder.
The following class diagrams represent respectively the initial model developed during the design phase and the final product diagrams.
The following documentation includes a description for most of the classes and methods used and follows the Java documentation technique.
It can be consulted here.
Coverage criteria: Methods.
Tool used: Junit.
The unit tests run automatically at each commit thanks to the Continuous Integration pipeline.