Giter VIP home page Giter VIP logo

marcobendinelli / masters-of-renaissance-java-project Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 107.17 MB

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: MIT License

Java 100.00%
cli game-board gui java javafx uml mvc-architecture

masters-of-renaissance-java-project's Introduction

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.

masters-of-renaissance-java-project's People

Contributors

beltrante avatar andreabosisio avatar marcobendinelli avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.