# chawischi/portfolio_game architecture

> Architecture diagram of the GitHub repository chawischi/portfolio_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/chawischi/portfolio_game
- Repository: https://github.com/chawischi/portfolio_game

## Overview

One Last Climb is a Godot 2D platformer about Eugene climbing through five stages to reach the summit. The documented play loop centers on platforming abilities, collecting flowers, and checkpoint dreams; the tree identifies the relevant scenes and scripts. No source excerpts were provided, so links between most runtime components are omitted rather than inferred from filenames.

Main entry points: [`Scripts/Managers/checkpoint.gd`](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/checkpoint.gd) (Checkpoint), [`Scripts/Player/player.gd`](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Player/player.gd) (Player), [`Scripts/UI/dream_overlay.gd`](https://github.com/chawischi/portfolio_game/blob/main/Scripts/UI/dream_overlay.gd) (Dream overlay), [`Scripts/Managers/main_menu.gd`](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/main_menu.gd) (Main menu)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_play["Platforming"]
  node_player["Player<br/>[player.gd]"]
  node_player_scene["Player scene<br/>[Player_Eugene.tscn]"]
  node_camera["Camera"]
  node_enemy["Bat enemy<br/>[bat_enemy.gd]"]
  node_enemy_scene["Enemy scene<br/>[BatEnemy.tscn]"]
end

subgraph group_world["World and stages"]
  node_levels["Five levels"]
  node_layouts["Stage layouts"]
  node_sections["Level sections"]
  node_checkpoint["Checkpoint<br/>[checkpoint.gd]"]
  node_level_trigger["Level trigger<br/>[level_trigger.gd]"]
  node_kill_zone["Kill zone<br/>[kill_zone.gd]"]
end

subgraph group_story["Story and UI"]
  node_dream["Dream overlay<br/>[dream_overlay.gd]"]
  node_dialog["Dialog manager<br/>[dialog_manager.gd]"]
  node_flower["Flower collectible<br/>[flower.gd]"]
  node_hud["HUD<br/>[hud.gd]"]
end

subgraph group_control["Game controls"]
  node_game_manager["Game manager<br/>[game_manager.gd]"]
  node_main_menu["Main menu<br/>[main_menu.gd]"]
  node_main_menu_scene["Menu scene<br/>[main_menu.tscn]"]
  node_pause["Pause menu<br/>[pause_menu.gd]"]
  node_options["Options menu<br/>[options_menu.gd]"]
end

node_player_actor(("Player"))

node_player_actor -->|"controls"| node_player
node_player_actor -->|"starts game"| node_main_menu
node_checkpoint -->|"starts dream"| node_dream

click node_player "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Player/player.gd"
click node_player_scene "https://github.com/chawischi/portfolio_game/blob/main/Scenes/Player/Player_Eugene.tscn"
click node_camera "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Player/camera_controller.gd"
click node_enemy "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Enemies/bat_enemy.gd"
click node_enemy_scene "https://github.com/chawischi/portfolio_game/blob/main/Scenes/Enemies/BatEnemy.tscn"
click node_levels "https://github.com/chawischi/portfolio_game/tree/main/Scenes/Levels"
click node_layouts "https://github.com/chawischi/portfolio_game/tree/main/Scenes/Layouts"
click node_sections "https://github.com/chawischi/portfolio_game/tree/main/Scenes/Trechos"
click node_checkpoint "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/checkpoint.gd"
click node_level_trigger "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/level_trigger.gd"
click node_kill_zone "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Trechos/kill_zone.gd"
click node_game_manager "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/game_manager.gd"
click node_main_menu "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/main_menu.gd"
click node_main_menu_scene "https://github.com/chawischi/portfolio_game/blob/main/Scenes/UIs/main_menu.tscn"
click node_pause "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/pause_menu.gd"
click node_options "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/options_menu.gd"
click node_dream "https://github.com/chawischi/portfolio_game/blob/main/Scripts/UI/dream_overlay.gd"
click node_dialog "https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/dialog_manager.gd"
click node_flower "https://github.com/chawischi/portfolio_game/blob/main/Scripts/UI/flower.gd"
click node_hud "https://github.com/chawischi/portfolio_game/blob/main/Scripts/UI/hud.gd"

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_player,node_player_scene,node_camera,node_enemy,node_enemy_scene toneBlue
class node_levels,node_layouts,node_sections,node_checkpoint,node_level_trigger,node_kill_zone toneAmber
class node_dream,node_dialog,node_flower,node_hud toneMint
class node_game_manager,node_main_menu,node_main_menu_scene,node_pause,node_options toneRose
class node_player_actor toneIndigo
```

## Components

### Platforming

- [Player](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Player/player.gd): `Scripts/Player/player.gd`
- [Player scene](https://github.com/chawischi/portfolio_game/blob/main/Scenes/Player/Player_Eugene.tscn): `Scenes/Player/Player_Eugene.tscn`
- [Camera](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Player/camera_controller.gd): `Scripts/Player/camera_controller.gd`
- [Bat enemy](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Enemies/bat_enemy.gd): `Scripts/Enemies/bat_enemy.gd`
- [Enemy scene](https://github.com/chawischi/portfolio_game/blob/main/Scenes/Enemies/BatEnemy.tscn): `Scenes/Enemies/BatEnemy.tscn`

### World and stages

- [Five levels](https://github.com/chawischi/portfolio_game/tree/main/Scenes/Levels): `Scenes/Levels`
- [Stage layouts](https://github.com/chawischi/portfolio_game/tree/main/Scenes/Layouts): `Scenes/Layouts`
- [Level sections](https://github.com/chawischi/portfolio_game/tree/main/Scenes/Trechos): `Scenes/Trechos`
- [Checkpoint](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/checkpoint.gd): `Scripts/Managers/checkpoint.gd`
- [Level trigger](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/level_trigger.gd): `Scripts/Managers/level_trigger.gd`
- [Kill zone](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Trechos/kill_zone.gd): `Scripts/Trechos/kill_zone.gd`

### Story and UI

- [Dream overlay](https://github.com/chawischi/portfolio_game/blob/main/Scripts/UI/dream_overlay.gd): `Scripts/UI/dream_overlay.gd`
- [Dialog manager](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/dialog_manager.gd): `Scripts/Managers/dialog_manager.gd`
- [Flower collectible](https://github.com/chawischi/portfolio_game/blob/main/Scripts/UI/flower.gd): `Scripts/UI/flower.gd`
- [HUD](https://github.com/chawischi/portfolio_game/blob/main/Scripts/UI/hud.gd): `Scripts/UI/hud.gd`

### Game controls

- [Game manager](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/game_manager.gd): `Scripts/Managers/game_manager.gd`
- [Main menu](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/main_menu.gd): `Scripts/Managers/main_menu.gd`
- [Menu scene](https://github.com/chawischi/portfolio_game/blob/main/Scenes/UIs/main_menu.tscn): `Scenes/UIs/main_menu.tscn`
- [Pause menu](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/pause_menu.gd): `Scripts/Managers/pause_menu.gd`
- [Options menu](https://github.com/chawischi/portfolio_game/blob/main/Scripts/Managers/options_menu.gd): `Scripts/Managers/options_menu.gd`

### Other components

- **Player**

## Connections

- Player → Player: controls
- Player → Main menu: starts game
- Checkpoint → Dream overlay: starts dream
