# klarkkyyy/etp architecture

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

- Interactive diagram: https://gitdiagram.com/klarkkyyy/etp
- Repository: https://github.com/klarkkyyy/etp

## Overview

Echoes of The Past is a Godot platform game. The player enters through a menu and tutorial, learns movement and echo mechanics, then progresses through levels and puzzle challenges toward a boss. README documents levels 1–4, save mechanics, audio/effects, and Level 4’s pressure-pad puzzles, elevators, and spike crushers. Source excerpts were unavailable, so paths for code components are existing directories from the tree; only README-documented relationships are shown.

Main entry points: [`game-dev-proj/levels`](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels) (Level 4), [`game-dev-proj/player`](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/player) (Player Movement), [`game-dev-proj/echo`](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/echo) (Echo Mechanic), [`game-dev-proj/MENU`](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/MENU) (Menu)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_progression["Game Progression"]
  node_menu["Menu"]
  node_tutorial["Tutorial"]
  node_levels12["Levels 1–2"]
  node_level3["Level 3"]
  node_level4["Level 4"]
  node_boss["Boss Level"]
  node_save["Save Mechanics"]
end

subgraph group_mechanics["Player Mechanics"]
  node_player_control["Player Movement"]
  node_echo["Echo Mechanic"]
  node_echo_zone["Echo Zones"]
end

subgraph group_puzzles["Echo Puzzles"]
  node_pressure_pad["Pressure Pads"]
  node_lever["Levers"]
  node_spikes["Spike Hazards"]
end

subgraph group_presentation["Game Presentation"]
  node_audio["Music and SFX"]
  node_effects["Visual Effects"]
end

node_player_actor(("Player"))

node_player_actor -->|"starts at"| node_menu
node_menu -.->|"enters tutorial"| node_tutorial
node_player_actor -->|"uses movement"| node_player_control
node_tutorial -->|"teaches movement"| node_player_control
node_tutorial -->|"teaches echoes"| node_echo
node_level3 -->|"portal leads"| node_level4
node_level4 -->|"exit portal leads"| node_boss
node_echo -->|"holds pads"| node_pressure_pad
node_level4 -->|"uses puzzle pads"| node_pressure_pad
node_level4 -->|"includes crushers"| node_spikes
node_player_actor -->|"records echo"| node_echo
node_levels12 -->|"provides saves"| node_save
node_levels12 -->|"includes music and SFX"| node_audio
node_player_control -->|"features movement effects"| node_effects

click node_menu "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/MENU"
click node_tutorial "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels"
click node_levels12 "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels"
click node_level3 "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/Level_3"
click node_level4 "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels"
click node_boss "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels"
click node_player_control "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/player"
click node_echo "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/echo"
click node_echo_zone "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/echo_zone"
click node_pressure_pad "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/pressure_pad"
click node_lever "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/lever"
click node_spikes "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels"
click node_save "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/scripts"
click node_audio "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/audio"
click node_effects "https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/effects"

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_menu,node_tutorial,node_levels12,node_level3,node_level4,node_boss,node_save toneBlue
class node_player_control,node_echo,node_echo_zone toneAmber
class node_pressure_pad,node_lever,node_spikes toneMint
class node_audio,node_effects toneRose
class node_player_actor toneIndigo
```

## Components

### Game Progression

- [Menu](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/MENU): `game-dev-proj/MENU`
- [Tutorial](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels): `game-dev-proj/levels`
- [Levels 1–2](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels): `game-dev-proj/levels`
- [Level 3](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/Level_3): `game-dev-proj/Level_3`
- [Level 4](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels): `game-dev-proj/levels`
- [Boss Level](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels): `game-dev-proj/levels`
- [Save Mechanics](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/scripts): `game-dev-proj/scripts`

### Player Mechanics

- [Player Movement](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/player): `game-dev-proj/player`
- [Echo Mechanic](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/echo): `game-dev-proj/echo`
- [Echo Zones](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/echo_zone): `game-dev-proj/echo_zone`

### Echo Puzzles

- [Pressure Pads](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/pressure_pad): `game-dev-proj/pressure_pad`
- [Levers](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/lever): `game-dev-proj/lever`
- [Spike Hazards](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/levels): `game-dev-proj/levels`

### Game Presentation

- [Music and SFX](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/audio): `game-dev-proj/audio`
- [Visual Effects](https://github.com/klarkkyyy/etp/tree/main/game-dev-proj/effects): `game-dev-proj/effects`

### Other components

- **Player**

## Connections

- Player → Menu: starts at (evidence: `README.md`)
- Menu → Tutorial: enters tutorial
- Player → Player Movement: uses movement (evidence: `README.md`)
- Tutorial → Player Movement: teaches movement (evidence: `README.md`)
- Tutorial → Echo Mechanic: teaches echoes (evidence: `README.md`)
- Level 3 → Level 4: portal leads (evidence: `README.md`)
- Level 4 → Boss Level: exit portal leads (evidence: `README.md`)
- Echo Mechanic → Pressure Pads: holds pads (evidence: `README.md`)
- Level 4 → Pressure Pads: uses puzzle pads (evidence: `README.md`)
- Level 4 → Spike Hazards: includes crushers (evidence: `README.md`)
- Player → Echo Mechanic: records echo (evidence: `README.md`)
- Levels 1–2 → Save Mechanics: provides saves (evidence: `README.md`)
- Levels 1–2 → Music and SFX: includes music and SFX (evidence: `README.md`)
- Player Movement → Visual Effects: features movement effects (evidence: `README.md`)
