Skip to content

The project involves developing a Java software version of the Masters of Renaissance game, following a Software Engineering approach. Inside the game you aim to increase fame and prestige as a citizen of Florence

License

Notifications You must be signed in to change notification settings

MarcoBendinelli/Masters-of-Renaissance-Java-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Masters of Renaissance 🎴 🎲

Masters of Renaissance

Java implementation of the board game Masters of Renaissance

Authors

The Game

In Masters of Renaissance, you step into the shoes of a prominent citizen of Florence, striving to increase your fame and prestige.

Take resources from the market to purchase new cards, expand your influence in the city and surrounding territories, and demonstrate your devotion to the Pope for added benefits.

Each card grants production power to transform resources, allowing you to strategically manage your strongbox. With interesting decisions and a straightforward ruleset, you'll lead your noble family through the Renaissance, earning prestige and honor. The player with the most prestige at the end wins the game.

The official Game offered by Cranio can be found here here and the full game rules can be consulted here

Functionalities

The project involves developing a software version of the board game Masters of Renaissance in Java, following a Software Engineering approach. This includes creating initial high-level UML diagrams of the application and final UML diagrams showing the software design.

The game rules are described in the rules file, covering games with 1 to 4 players, including solo play without connecting to the server. Each player is identified by a nickname set on the client side, which must be unique in each game. The server ensures the uniqueness of nicknames during player acceptance.

The project implements a distributed system consisting of a single server capable of managing one game at a time and multiple clients (one per player) who can participate in only one game at a time. The entire system is designed using the MVC (Model-View-Controller) pattern.

The software is capable of persistence; the state of a game is saved to disk so that the game can resume even after the server execution is interrupted. Players must reconnect to the server using the same nicknames once it is back online to resume a game. It is assumed that the server does not interrupt its execution during disk saving, and that the disk provides entirely reliable memory.

Another important feature is that disconnected players can reconnect later and continue the game. While a player is not connected, the game continues by skipping that player's turns.

Functionality State
Basic rules
Complete rules
Socket
CLI
GUI
Advanced Functionality State
Resilience to disconnection
Persistence
Local Game
Multiple Games
Parameters Editor

CLI Screens

cli_1

cli_2

cli_3

GUI Screens

gui_1

gui_2

gui_3

Setup

  • The jar file allows 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 Masters_of_Renaissance_MAM.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 Masters_of_Renaissance_MAM.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.

Local Game

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"

Demo Utilites

To facilitate the demo of the game, a cheat functionality has been implemented. It simply adds some Resources into the StrongBox.

Click here to see the command to insert in the Server terminal
> cheat

Tools

License

This project is developed in collaboration with Politecnico di Milano and Cranio Creations.

About

The project involves developing a Java software version of the Masters of Renaissance game, following a Software Engineering approach. Inside the game you aim to increase fame and prestige as a citizen of Florence

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages