Skip to content

Software Engineering Project (2020) - an online multiplayer board game developed with Java using the MVC pattern.

Notifications You must be signed in to change notification settings

gabrielemarra/Santorini-OnlineBoardGame

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Santorini Online Board Game - Software Engineering 1 Project

This game was developed as a computer game for the final examination of the Software engineering course at Politecnico di Milano (A.Y. 2019/2020) - Bachelor of Science thesis project.

Final score was 30 cum laude / 30 (A )

Group members

Project Requirements

Develop an online multiplayer board game with Java using the MVC pattern.
We developed the server and the client, with both CLI and GUI (JavaFX) interfaces.
To transmit data we used TCP protocol between server and clients along with JSON format and Java serialization.
The server supports multiple matches at the same time and waiting players are handled in a lobby.

For the full specification visit this link: Specification (Italian only)

Screenshots

Homepage

Homepage

Match creation

Match creation

Character Selection

Character Selection

Character Selection - 2

Character Selection - 2

Move Phase

Move Command

Build Phase

Build Command

Win!

Win!

Functionalities Implemented

Functionality State
Simple rules GREEN
Complete rules GREEN
Socket GREEN
CLI GREEN
GUI GREEN
Multiple games GREEN
Persistence RED
Advanced Gods GREEN
Undo RED

Execution of Jar Files

Requirements

Requires Java 11 or a more recent version.

Server

To execute the Server download the server.jar and execute the following command into the terminal:

java -jar server.jar

Client

(Recommended) To execute the Client with GUI download the client.jar and execute the following command into the terminal:

java -jar client.jar -gui

To execute the Client with CLI download the client.jar and execute the following command into the terminal:

java -jar client.jar -cli

If you want, you can also select the desired UI at the start of the program. To select the UI during runtime please execute this command:

java -jar client.jar

Online Server

An Online Server is running h24 on an Amazon AWS EC2 Instance and is ready to accept your client but, obviusly, you can't access to the output of the server. To use this Online Server please open the client with the GUI and select the "Online Server" option in the first screen.

Advanced line arguments

The program accept different line arguments (flags) to set main settings of the program itself.
Server:

Flag Result
-pingOff Disable the Ping System and the Socket Timeout
-ping-stamp Print deatils about each Ping Event received

Client:

Flag Result
-pingOff Disable the Ping System and the Socket Timeout
-cli Select the CLI as Program UI
-gui Select the GUI as Program UI


If both (-cli and -gui) commands are used at the same time, the program will ask you to choose the desired UI at the beginning of the execution.

Compile with Maven

To compile the program use Intellij Idea, select the desired profile (Server, Client-Win or Client-Mac), execute the following Maven command:

mvn clean package


In the folder Target you'll find the .jar file for the desired profile.
Please note that Client-Win and Client-Mac profiles are almost identical: the only difference between them is the order wich the javafx dependencies are added.

About

Software Engineering Project (2020) - an online multiplayer board game developed with Java using the MVC pattern.

Topics

Resources

Stars

Watchers

Forks

Languages

  • Java 99.8%
  • CSS 0.2%