Benvenuti nel gioco da tavolo "Maestri del Rinascimento", in versione digitale!
La versione da noi proposta sfrutta il pattern Model-View-Controller per permettere che un solo server, hostato su macchina, sia in grado di gestire differenti partite in simultanea, ciascuna composta da un massimo di 4 giocatori. Tutto ciò che riguarda la comunicazione tra i giocatori e il server centrale, connessioni, disconnessioni e riconnessioni è interamente gestito utilizzando Socket TCP come canale comunicativo.
Inoltre, è possibile giocare a "Maestri del Rinascimento" in due differenti modalità: da linea di comando (CLI) oppure attraverso interfaccia grafica (GUI).
Prima di iniziare a giocare, consultare il regolamento di Masters Of Renaissance per scoprire tutte le caratteristiche del gioco.
I diagrammi che seguono rappresentano l'evoluzione schematica del prodotto, da una prima progettazione al diagramma del prodotto finale. Ai seguenti link sono consultabili entrambe le versioni:
L'intera documentazione del progetto, tra classi e funzioni, è presente al seguente link : Javadoc
Libreria/Plugin | Descrizione |
---|---|
Maven | Strumento di automazione della compilazione utilizzato principalmente per progetti Java. |
JavaFx | Libreria Java usata per la realizzazione dell'interfaccia grafica lato utente. |
JUnit 5 Jupiter | Framework per il test d'unità. |
Gson / Gson-extras | Librerie esterne per il parsing di testo in formato Json. |
- Regolamento Completo
- Versione CLI
- Versione GUI
- Utilizzo di Socket TCP
- 3 Features aggiuntive:
- Resilienza alle Disconnessioni: un giocatore è libero di disconnettersi e riconnettersi in seguito in partita, riaccedendo con lo stesso nickname. Lo stato del giocatore viene mantenuto anche nel mezzo di un turno semi-completato, dandogli la possibilità, una volta che il turno tornerà suo, di riprendere dal punto esatto in cui era rimasto.
- Partite Multiple: il server è in grado di gestire più partite in simultanea, e la creazione dei match avviene in serie. La procedura di attesa e creazione di una partita viene reiterata per i giocatori che si connetteranno dopo, appena la partita di cui il server si sta occupando di costruire è iniziata.
- Partita Locale: avviando il jar con comando aggiuntivo
--local
è possibile avviare il gioco senza ausilio di un server in ascolto. Il dispositivo diventerà stand-alone e si occuperà di tenere traccia dello status di gioco e gestirlo in maniera totalmente interna e indipendente. Questa modalità, però, non sostituisce la canonica partita singola: è comunque possibile giocare contro Lorenzo avviando il gioco secondo il suo normale setup e usufruire delle potenzialità di ripresa del match a seguito di una disconnessione.
- Extra Feature:
- Rivincita: al termine di una partita ne viene presentata la classifica finale e i giocatori possono chiedere la rivincita agli altri presenti. Il giocatore più veloce a chiedere la rivincita verrà visualizzato sugli schermi degli altri, i quali potranno accettare o rifiutare la proposta. Se tutti i giocatori accettano, la partita riparte dalla fase iniziale con la stessa configurazione della partita precedente. Questa feature è ottima e comoda, soprattutto, se combinata alla funzionalità aggiuntiva di customizzazione dei parametri: la rivincita permetterebbe di saltare la trafila di creazione di una configurazione e passare diretti all'azione.
I Jar del progetto sono stati creati grazie ad uno specifico plugin offerto da Maven (Shade Plugin). I Jar precompilati del progetto (due file indipendenti per le figure Client e Server) sono ottenibili scaricandoli dal seguente link:
Questo progetto richiede Java 11 (o una delle versioni successive) per funzionare in maniera corretta.
Il gioco è disponibile in due versioni: CLI e GUI.
Per godere della massima esperienza di gioco, è necessaria una minima risoluzione schermo di 1024x768 per giocare con grafica avanzata e avviare la versione CLI su un qualsiasi terminale Unix (preferibilmente con Line Wrapping disabilitato).
Di seguito le istruzioni su come lanciare il gioco in entrambe le versioni.
Per poter giocare a Masters of Renaissance in versione CLI, digitare da terminale il comando:
java -jar mastersOfRenaissance-client.jar --cli
dopo essersi posizionati nella directory in cui risiedono i jar.
La modalità GUI è stata scelta come versione default del gioco. Di conseguenza, è possibile giocare in modalità GUI in due diversi modi:
- effettuare doppio click sull'eseguibile
clientApp.jar
- digitare da terminale il comando:
java -jar mastersOfRenaissance-client.jar
oppure
java -jar mastersOfRenaissance-client.jar --gui
dopo essersi posizionati nella directory in cui risiedono i jar.
Il Client, una volta eseguito, cercherà di connettersi ad un server in esecuzione su macchina locale (127.0.0.1) alla porta 2500. Per cambiare i parametri di connessione, aggiungere in fondo al comando da terminale i seguenti settaggi opzionali:
--ip
<ip>
,--address
<ip>
: per modificare l'indirizzo IP del server;--port
<port number>
: per specificare una porta preferenziale;--local
: per avviare il gioco in modalità "offline single-match";
Per lanciare Masters of Renaissance Server è necessario aprire il terminale, posizionarsi nella root del file Jar e digitare il comando:
java -jar mastersOfRenaissance-server.jar
Il server verrà lanciato sulla macchina locale, accettando connessioni sulla porta 2500. Per cambiare tale valore, aggiungere in coda al comando un numero, questo verrà utilizzato come nuova porta.