Skip to content

Multiplayer video game version of "MyShelfie" board game. Developed by me, Sebastiano Mora, Luca Montiglio and Youssef Oursana as our thesis final project for Software Engineering at Politecnico di Milano a.y. 2022-23. Our project was awarded 30 cum laude / 30.

Notifications You must be signed in to change notification settings

dvsnshk/SoftwareEngineering2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyShelfie

Software Engineering Final Project - Academic Year 2022-2023

The aim of the project was to create a digital version of the board game "MyShelfie" by CranioCreations. The project specifications required implementing the aforementioned game using the Java language and a Model View Controller architectural pattern and enabling games among multiple locally connected hosts through a text-based interface and an optional graphical interface.

DELIVERABLES:

UML


The following UML (Unified Modeling Language) diagrams represent the class diagram as initially designed and the final representation of the class organization, reflecting the various design iterations carried out during these months.

The updated UML pays special attention to:

  • Model
  • Controller
  • View
  • Network/Client
  • Network/Messages
  • Network/Server

JARS


Below are the SERVER and CLIENT JAR files created for the project submission.

JAVADOC


Below is the documentation for the Java source code, available in JAVADOC format.

Libraries and Plugins

Libraries Explanation
JavaFx Java graphical library
JUnit Java framework dedicated to unit testing
Maven Dependency management and build tool for Java projects
Gson Java library enabling conversion of Java objects to JSON format

Design Choices and Features

Among the various options offered by the instructors, we have selected the following:

  • Full rules
  • RMI and Socket
  • GUI developed with JavaFX

Regarding additional features, we've decided to implement three of them, choosing the following:

  • Chat
  • Persistence
  • Resilience

EXECUTION AND INSTRUCTIONS


The JAR files, as mentioned above, are divided into Client and Server. To execute them, you need to have a Java VM installed on your device, preferably version 19.0.2 to minimize compatibility issues related to JavaFX. The Client includes both the graphical and text-based interfaces. The default settings are GUI and Socket, and you can run the file using the following commands

java -jar client.jar

If you wish to modify the display and/or connection settings, you can execute the JAR file with the --cli and --rmi parameters as follows:

java -jar client.jar --cli --rmi

For a better command-line experience, it is recommended to use terminals that support UTF-8 encoding.

If trought the GUI the gaming experience is not smooth, it is recommended to run the Client with the following parameters in order to increase xx:

java -Dprism.maxvram="8G" -jar client.jar

To run the Server, you need to execute the following commands:

java -jar server.jar --PingTimexxxx

Where the placeholder "xxxx" represents the desired ping time in milliseconds (ms).

Authors

About

Multiplayer video game version of "MyShelfie" board game. Developed by me, Sebastiano Mora, Luca Montiglio and Youssef Oursana as our thesis final project for Software Engineering at Politecnico di Milano a.y. 2022-23. Our project was awarded 30 cum laude / 30.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages