# jmsalcedooo/arcania-text-based-rpg-using-java architecture

> Architecture diagram of the GitHub repository jmsalcedooo/arcania-text-based-rpg-using-java, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jmsalcedooo/arcania-text-based-rpg-using-java
- Repository: https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java

## Overview

Arcania is a Java console RPG: the player enters through the title screen, calculates a school-year GWA, is drawn into Eldoria, and progresses through quests, encounters, and an ending. Quest and encounter logic is concentrated in Isekai; combat and mini-games affect shared player lives, while ASCII art and audio support presentation. The README also documents math and word-guessing games, represented here as capabilities without inferred callers. Some source excerpts are partial, so uncertain wiring is omitted.

Main entry points: [`src/misc.java`](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/misc.java) (Audio Control), [`src/Isekai.java`](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Isekai.java) (Quest Story), [`src/RPG.java`](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/RPG.java) (Game Flow), [`src/Main.java`](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Main.java) (Launcher)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Game Entry"]
  node_main["Launcher<br/>[Main.java]"]
  node_rpg["Game Flow<br/>[RPG.java]"]
  node_gwa["GWA Calculator<br/>[GWA.java]"]
end

subgraph group_story["Story Progression"]
  node_isekai["Quest Story<br/>[Isekai.java]"]
end

subgraph group_play["Combat And Games"]
  node_rps["RPS Combat<br/>[RPS.java]"]
  node_quiz["Knowledge Quiz<br/>[Quiz.java]"]
  node_hangman["Hangman Game<br/>[HangmanGame.java]"]
  node_mathquiz["Math Quiz<br/>[MathQuiz.java]"]
  node_wordguess["Word Guess<br/>[WordGuess.java]"]
end

subgraph group_presentation["Presentation"]
  node_ascii["ASCII Art<br/>[Ascii.java]"]
  node_audio["Audio Control<br/>[misc.java]"]
  node_sfx["Sound Effects"]
end

node_player(("Player"))

node_player -->|"starts game"| node_main
node_main -->|"opens game"| node_rpg
node_rpg -->|"computes grades"| node_gwa
node_gwa -->|"continues story"| node_rpg
node_rpg -->|"starts isekai"| node_isekai
node_isekai -->|"starts game"| node_hangman
node_isekai -->|"starts quiz"| node_quiz
node_isekai -->|"renders art"| node_ascii
node_isekai -->|"controls audio"| node_audio
node_rpg -->|"controls audio"| node_audio
node_rps -->|"controls audio"| node_audio
node_quiz -->|"plays effects"| node_audio
node_hangman -->|"plays effects"| node_audio
node_audio -->|"plays files"| node_sfx

click node_main "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Main.java"
click node_rpg "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/RPG.java"
click node_gwa "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/GWA.java"
click node_isekai "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Isekai.java"
click node_rps "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/RPS.java"
click node_quiz "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Quiz.java"
click node_hangman "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/HangmanGame.java"
click node_mathquiz "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/MathQuiz.java"
click node_wordguess "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/WordGuess.java"
click node_ascii "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Ascii.java"
click node_audio "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/misc.java"
click node_sfx "https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/tree/main/res/sfx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_rpg,node_gwa toneBlue
class node_isekai toneAmber
class node_rps,node_quiz,node_hangman,node_mathquiz,node_wordguess toneMint
class node_ascii,node_audio,node_sfx toneRose
class node_player toneIndigo
```

## Components

### Game Entry

- [Launcher](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Main.java): `src/Main.java`
- [Game Flow](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/RPG.java): `src/RPG.java`
- [GWA Calculator](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/GWA.java): `src/GWA.java`

### Story Progression

- [Quest Story](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Isekai.java): `src/Isekai.java`

### Combat And Games

- [RPS Combat](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/RPS.java): `src/RPS.java`
- [Knowledge Quiz](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Quiz.java): `src/Quiz.java`
- [Hangman Game](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/HangmanGame.java): `src/HangmanGame.java`
- [Math Quiz](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/MathQuiz.java): `src/MathQuiz.java`
- [Word Guess](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/WordGuess.java): `src/WordGuess.java`

### Presentation

- [ASCII Art](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/Ascii.java): `src/Ascii.java`
- [Audio Control](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/blob/main/src/misc.java): `src/misc.java`
- [Sound Effects](https://github.com/jmsalcedooo/arcania-text-based-rpg-using-java/tree/main/res/sfx): `res/sfx`

### Other components

- **Player**

## Connections

- Player → Launcher: starts game
- Launcher → Game Flow: opens game
- Game Flow → GWA Calculator: computes grades
- GWA Calculator → Game Flow: continues story
- Game Flow → Quest Story: starts isekai
- Quest Story → Hangman Game: starts game
- Quest Story → Knowledge Quiz: starts quiz
- Quest Story → ASCII Art: renders art
- Quest Story → Audio Control: controls audio
- Game Flow → Audio Control: controls audio
- RPS Combat → Audio Control: controls audio
- Knowledge Quiz → Audio Control: plays effects
- Hangman Game → Audio Control: plays effects
- Audio Control → Sound Effects: plays files
