Skip to content

SimoPolimi/codex-naturalis

Repository files navigation

Codex Naturalis
CodexNaturalis

Project

Codex Naturalis is a digital implementation of the homonymous board game published by Cranio Creations, developed as the final project for the Software Engineering course at Politecnico di Milano (A.Y. 2023-2024). The game was built in Java by a team of 4 students, following a Model-View-Controller (MVC) architecture and supporting both a Graphical User Interface (GUI with JavaFX) and a Terminal User Interface (TUI). Networking is handled via Java RMI and Socket, allowing multiple players to connect and play simultaneously across different machines.

Contributors

SimoPolimi Simone Rodari
SummaCristian Cristian Summa
gabrielepignataro Gabriele Pignataro
Mailp99 Mathias Rodigari

Functionality

Functionality Status
🛠️ Basic rules
🛜 RMI
✉️ Socket
🎨 GUI
🖥️ CLI
💬 Chat ⭐️ ☑️
🕹️ Multiple games ⭐️
🔄 Persistence ⭐️ ☑️

✅: Completely Done
☑️: Partially Done
❌: Not Done

⭐️: Additional Feature

Test coverage

Section Type Coverage
Model Class Model Class Progress
Method Model Method Progress
Controller Class Controller Class Progress
Method Controller Method Progress
Diagram Image

Instructions

Launching the Game

To launch the Game, first navigate your Terminal to the folder where the file is located. From here you have 3 options:

  1. Open the Launcher's GUI using the default command:

    "java -jar GC42.jar"

    From there you can pick between Graphical and Textual Mode.

  2. Open the Launcher's TUI using the following command:

    "java -jar GC42.jar launcher_tui"

    From there you can pick between Graphical and Textual Mode.

  3. Open the GUI Client directly from Terminal, using the following command:

    "java -jar GC42.jar gui"

  4. Open the TUI Client directly from Terminal, using the following command:

    "java -jar GC42.jar tui"

Launching the Server

Server can be launched in 4 different ways:

  1. Open the Launcher Window with the following command , then click on Open Server:

    "java -jar GC42.jar"

  2. Open the Launcher's TUI with the following command, then select server or server_tui

    "java -jar GC42.jar launcher_tui"

  3. Enter the following command to open the same GUI:

    "java -jar GC42.jar server"

  4. Enter the following command to open a TUI version of Server:

    "java -jar GC42.jar server_tui"

Running the Game

GUI

From the Launcher, select Graphical Mode to open the Login Screen. Alternatively, GUI can be directly launched directly from Terminal, or from the Terminal's Launcher (see Instructions). Once there, choose a Nickname, enter the Server's IP Address in the bottom left corner, and choose between RMI and Socket as a network mode. Then, press Play to see a list of all the available matches, and choose to either join one, or create a new one.

TUI

From the Launcher, select Textual Mode to open the Terminal User Interface. Alternatively, TUI can be directly launched directly from Terminal, or from the Terminal's Launcher (see Instructions). Once there, you will be asked to pick one of the 3 Graphics Modes supported by TUI:

Fancy Mode

  • Fancy Mode Uses the full Unicode charset to display the UI using unique characters, colors and emojis. Not all Terminals support this mode: please make sure you can see the full Card in the beginning, otherwise choose another Mode.

Enhanced Mode

  • Enhanced Mode Uses the standard charset, to be more widely compatible, but adds a bit of personality using colors. Most Terminals out there should support the Unicode colors, so it's highly likely that this Mode works correctly, but if you have problems visualizing the test Card, please consider using the Mode that works best.

Standard Mode

  • Standard Mode Uses the standard charset without any colors or additional feature. This ensures it will be compatible with virtually any Terminal and font out there. The Test Card for this Mode looks exactly like the one for Enhanced Mode, but with no colors.

After choosing the Graphics Mode, TUI will guide you through the initial onboarding process, asking to choose between RMI and Socket, to pick a Nickname, and finally to either join an existing Game or create a new one yourself.

Screenshots

GUI

Launcher GUI Login GUI

Token Selector in GUI

Secret Objective Selector in GUI

Starter Card Selector in GUI

Player's Table in GUI

Player playing a Card in GUI

Common Table in GUI

Full Table or GLobal View in GUI

Chat in GUI

End Game in GUI

TUI

Graphics Mode Selector in TUI

Tokens Selector in TUI in Fancy Mode

TOkens Selector in TUI in Enhanced Mode

Secret Objective and Starter Card Selectors in TUI in Fancy Mode

Secret Objective and Starter Card Selectors in TUI in Enhanced Mode

Full Table View in TUI in Fancy Mode

Full Table View in TUI in Enhanced Mode

Player playing a Card in TUI in Fancy Mode

Player playing a Card in TUI in Enhanced Mode

Common Table actions in TUI in Fancy Mode

Common Table actions in TUI in Enhanced Mode

End Game in TUI

Disclaimer

🇮🇹

Codex Naturalis è un gioco da tavolo sviluppato ed edito da Cranio Creations Srl.

I contenuti grafici di questo progetto riconducibili al prodotto editoriale da tavolo sono utilizzati previa approvazione di Cranio Creations Srl a solo scopo didattico.

È vietata la distribuzione, la copia o la riproduzione dei contenuti e immagini in qualsiasi forma al di fuori del progetto, così come la redistribuzione e la pubblicazione dei contenuti e immagini a fini diversi da quello sopracitato.

È inoltre vietato l'utilizzo commerciale di suddetti contenuti.

🇬🇧

Codex Naturalis is a board game developed and published by Cranio Creations Srl.

The graphic content of this project attributable to the tabletop publishing product is used with prior approval of Cranio Creations Srl for educational purposes only.

It is prohibited to distribute, copy or reproduce of the contents and images in any form outside the project, as well as the redistribution and publication of the contents and images for purposes other than the aforementioned.

Commercial use of said content is also prohibited.

About

Codex Naturalis is a board game built as a project for the Software Engineering course at Politecnico di Milano, written as a digital port of the original game in Java

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages