# 10shoku/dokijam-game architecture

> Architecture diagram of the GitHub repository 10shoku/dokijam-game, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/10shoku/dokijam-game
- Repository: https://github.com/10shoku/dokijam-game

## Overview

This repository appears to be a Godot narrative game with chapter-based dialogue, interactive art/exploration, menus, and a separate platformer component. The likely player journey begins at the main menu and proceeds through chapter scenes and dialogue; the tree also shows inventory, scene-transition, and signal-bus support. The README is empty and sampled source covers only the Phantom Camera C# wrappers, not the game’s runtime wiring, so links between game subsystems are omitted where they cannot be verified. The Phantom Camera addon is shown as a separate integration surface.

Main entry points: [`addons/phantom_camera/scripts/managers/PhantomCameraManager.cs`](https://github.com/10shoku/dokijam-game/blob/main/addons/phantom_camera/scripts/managers/PhantomCameraManager.cs) (Camera Manager), [`Main Menu/main_menu.gd`](https://github.com/10shoku/dokijam-game/blob/main/Main%20Menu/main_menu.gd) (Main Menu), [`Chapters/Scenes/chapter_1.tscn`](https://github.com/10shoku/dokijam-game/blob/main/Chapters/Scenes/chapter_1.tscn) (Chapter Scenes), [`Platformer/scenes/level_1.tscn`](https://github.com/10shoku/dokijam-game/blob/main/Platformer/scenes/level_1.tscn) (Platformer Levels)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_menus["Menus and Flow"]
  node_mainmenu["Main Menu<br/>[main_menu.gd]"]
  node_pause["Pause Menu<br/>[pause_menu.gd]"]
  node_transitions["Scene Transitions<br/>[SceneTransition.gd]"]
end

subgraph group_story["Story and Dialogue"]
  node_chapters["Chapter Scenes<br/>[chapter_1.tscn]"]
  node_chapter_scripts["Chapter Scripts<br/>[chapter_1.gd]"]
  node_dialogue["Dialogue Player<br/>[dialog_player.gd]"]
  node_dialogdata["Dialogue Data<br/>[dialogues.json]"]
  node_timelines["Story Timelines"]
  node_characters["Character Scenes"]
end

subgraph group_explore["Exploration Systems"]
  node_interactables["World Interaction<br/>[interactable.gd]"]
  node_art["Art Displays<br/>[art_piece.gd]"]
  node_inventory["Global Inventory"]
end

subgraph group_platformer["Platformer"]
  node_platformer["Platformer Levels<br/>[level_1.tscn]"]
  node_platformer_player["Platformer Player<br/>[player.gd]"]
  node_level_manager["Level Manager<br/>[level_manager.gd]"]
end

subgraph group_camera["Camera Integration"]
  node_camera_manager["Camera Manager"]
  node_camera2d["2D Camera Wrapper<br/>[PhantomCamera2D.cs]"]
  node_camera3d["3D Camera Wrapper<br/>[PhantomCamera3D.cs]"]
  node_camera_host["Camera Host"]
end

node_player(("Player"))

node_player -->|"starts at"| node_mainmenu
node_player -->|"plays"| node_chapters
node_player -->|"plays"| node_platformer
node_camera_manager -->|"wraps 2D nodes"| node_camera2d
node_camera_manager -->|"wraps 3D nodes"| node_camera3d

click node_mainmenu "https://github.com/10shoku/dokijam-game/blob/main/Main%20Menu/main_menu.gd"
click node_pause "https://github.com/10shoku/dokijam-game/blob/main/Pause%20Menu/pause_menu.gd"
click node_transitions "https://github.com/10shoku/dokijam-game/blob/main/Singletons/SceneTransition.gd"
click node_chapters "https://github.com/10shoku/dokijam-game/blob/main/Chapters/Scenes/chapter_1.tscn"
click node_chapter_scripts "https://github.com/10shoku/dokijam-game/blob/main/Chapters/Scripts/chapter_1.gd"
click node_dialogue "https://github.com/10shoku/dokijam-game/blob/main/Dialogue/dialog_player.gd"
click node_dialogdata "https://github.com/10shoku/dokijam-game/blob/main/Dialogue/json/dialogues.json"
click node_timelines "https://github.com/10shoku/dokijam-game/tree/main/Timelines/Chapter%201"
click node_characters "https://github.com/10shoku/dokijam-game/tree/main/Characters"
click node_interactables "https://github.com/10shoku/dokijam-game/blob/main/Scripts/interactable.gd"
click node_art "https://github.com/10shoku/dokijam-game/blob/main/Scripts/art_piece.gd"
click node_inventory "https://github.com/10shoku/dokijam-game/blob/main/Singletons/global_inventory.gd"
click node_platformer "https://github.com/10shoku/dokijam-game/blob/main/Platformer/scenes/level_1.tscn"
click node_platformer_player "https://github.com/10shoku/dokijam-game/blob/main/Platformer/scripts/player.gd"
click node_level_manager "https://github.com/10shoku/dokijam-game/blob/main/Platformer/manager/level_manager.gd"
click node_camera_manager "https://github.com/10shoku/dokijam-game/blob/main/addons/phantom_camera/scripts/managers/PhantomCameraManager.cs"
click node_camera2d "https://github.com/10shoku/dokijam-game/blob/main/addons/phantom_camera/scripts/phantom_camera/PhantomCamera2D.cs"
click node_camera3d "https://github.com/10shoku/dokijam-game/blob/main/addons/phantom_camera/scripts/phantom_camera/PhantomCamera3D.cs"
click node_camera_host "https://github.com/10shoku/dokijam-game/blob/main/addons/phantom_camera/scripts/phantom_camera_host/PhantomCameraHost.cs"

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_mainmenu,node_pause,node_transitions toneBlue
class node_chapters,node_chapter_scripts,node_dialogue,node_dialogdata,node_timelines,node_characters toneAmber
class node_interactables,node_art,node_inventory toneMint
class node_platformer,node_platformer_player,node_level_manager toneRose
class node_camera_manager,node_camera2d,node_camera3d,node_camera_host,node_player toneIndigo
```

## Components

### Menus and Flow

- [Main Menu](https://github.com/10shoku/dokijam-game/blob/main/Main%20Menu/main_menu.gd): `Main Menu/main_menu.gd`
- [Pause Menu](https://github.com/10shoku/dokijam-game/blob/main/Pause%20Menu/pause_menu.gd): `Pause Menu/pause_menu.gd`
- [Scene Transitions](https://github.com/10shoku/dokijam-game/blob/main/Singletons/SceneTransition.gd): `Singletons/SceneTransition.gd`

### Story and Dialogue

- [Chapter Scenes](https://github.com/10shoku/dokijam-game/blob/main/Chapters/Scenes/chapter_1.tscn): `Chapters/Scenes/chapter_1.tscn`
- [Chapter Scripts](https://github.com/10shoku/dokijam-game/blob/main/Chapters/Scripts/chapter_1.gd): `Chapters/Scripts/chapter_1.gd`
- [Dialogue Player](https://github.com/10shoku/dokijam-game/blob/main/Dialogue/dialog_player.gd): `Dialogue/dialog_player.gd`
- [Dialogue Data](https://github.com/10shoku/dokijam-game/blob/main/Dialogue/json/dialogues.json): `Dialogue/json/dialogues.json`
- [Story Timelines](https://github.com/10shoku/dokijam-game/tree/main/Timelines/Chapter%201): `Timelines/Chapter 1`
- [Character Scenes](https://github.com/10shoku/dokijam-game/tree/main/Characters): `Characters`

### Exploration Systems

- [World Interaction](https://github.com/10shoku/dokijam-game/blob/main/Scripts/interactable.gd): `Scripts/interactable.gd`
- [Art Displays](https://github.com/10shoku/dokijam-game/blob/main/Scripts/art_piece.gd): `Scripts/art_piece.gd`
- [Global Inventory](https://github.com/10shoku/dokijam-game/blob/main/Singletons/global_inventory.gd): `Singletons/global_inventory.gd`

### Platformer

- [Platformer Levels](https://github.com/10shoku/dokijam-game/blob/main/Platformer/scenes/level_1.tscn): `Platformer/scenes/level_1.tscn`
- [Platformer Player](https://github.com/10shoku/dokijam-game/blob/main/Platformer/scripts/player.gd): `Platformer/scripts/player.gd`
- [Level Manager](https://github.com/10shoku/dokijam-game/blob/main/Platformer/manager/level_manager.gd): `Platformer/manager/level_manager.gd`

### Camera Integration

- [Camera Manager](https://github.com/10shoku/dokijam-game/blob/main/addons/phantom_camera/scripts/managers/PhantomCameraManager.cs): `addons/phantom_camera/scripts/managers/PhantomCameraManager.cs`
- [2D Camera Wrapper](https://github.com/10shoku/dokijam-game/blob/main/addons/phantom_camera/scripts/phantom_camera/PhantomCamera2D.cs): `addons/phantom_camera/scripts/phantom_camera/PhantomCamera2D.cs`
- [3D Camera Wrapper](https://github.com/10shoku/dokijam-game/blob/main/addons/phantom_camera/scripts/phantom_camera/PhantomCamera3D.cs): `addons/phantom_camera/scripts/phantom_camera/PhantomCamera3D.cs`
- [Camera Host](https://github.com/10shoku/dokijam-game/blob/main/addons/phantom_camera/scripts/phantom_camera_host/PhantomCameraHost.cs): `addons/phantom_camera/scripts/phantom_camera_host/PhantomCameraHost.cs`

### Other components

- **Player**

## Connections

- Player → Main Menu: starts at
- Player → Chapter Scenes: plays
- Player → Platformer Levels: plays
- Camera Manager → 2D Camera Wrapper: wraps 2D nodes
- Camera Manager → 3D Camera Wrapper: wraps 3D nodes
