# enes-sen/asteroidsclone architecture

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

- Interactive diagram: https://gitdiagram.com/enes-sen/asteroidsclone
- Repository: https://github.com/enes-sen/asteroidsclone

## Overview

This is a Unity 2D Asteroids-style game project, with menu and gameplay scenes, a controllable player, hazards, spawning, scoring, UI, and audio. The tree identifies these runtime subsystems but includes no README or source excerpts, so their actual call and data-flow relationships cannot be verified; the graph shows the components and assets without inventing connections.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_gameplay["Gameplay"]
  node_player_input["Player input<br/>[PlayerInput.cs]"]
  node_player_controller["Player control"]
  node_move_controller["Movement<br/>[MoveController.cs]"]
  node_swap_controller["Swap control<br/>[SwapController.cs]"]
  node_bullet["Player projectile<br/>[Bullet.cs]"]
  node_interfaces["Gameplay interfaces"]
  node_player_prefab["Player prefab<br/>[Player.prefab]"]
  node_game_scene["Gameplay scene<br/>[Game.unity]"]
end

subgraph group_world["World and spawning"]
  node_asteroid["Asteroid behavior"]
  node_enemy_ship["Enemy ship behavior"]
  node_spawn_manager["Asteroid spawning<br/>[SpawnManager.cs]"]
  node_enemy_spawn["Enemy spawning"]
  node_destroyer["Object cleanup<br/>[Destroyer.cs]"]
  node_asteroid_prefabs["Asteroid variants"]
  node_enemy_prefab["Enemy prefab<br/>[EnemyShip.prefab]"]
end

subgraph group_presentation["Presentation"]
  node_menu_scene["Menu scene<br/>[MainMenu.unity]"]
  node_menu_ui["Menu UI<br/>[MenuUiManager.cs]"]
  node_ui_manager["Game UI<br/>[UiManager.cs]"]
  node_score_manager["Scoring<br/>[ScoreManager.cs]"]
  node_sound_manager["Sound<br/>[SoundManager.cs]"]
  node_animation_controller["Animation"]
  node_visual_assets["Game visuals"]
  node_sound_assets["Sound assets"]
end

click node_player_input "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Player/PlayerInput.cs"
click node_player_controller "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Player/PlayerController.cs"
click node_move_controller "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/Controllers/MoveController.cs"
click node_swap_controller "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/Controllers/SwapController.cs"
click node_bullet "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Player/Bullet.cs"
click node_interfaces "https://github.com/enes-sen/asteroidsclone/tree/main/Assets/_GameAssets/Scripts/Interfaces"
click node_asteroid "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Threats/AsteroidController.cs"
click node_enemy_ship "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Threats/EnemyShipController.cs"
click node_spawn_manager "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/SpawnManager.cs"
click node_enemy_spawn "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/EShipSpawnManager.cs"
click node_destroyer "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Others/Destroyer.cs"
click node_asteroid_prefabs "https://github.com/enes-sen/asteroidsclone/tree/main/Assets/_GameAssets/Prefabs/Asteroids"
click node_enemy_prefab "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Prefabs/Enemy/EnemyShip.prefab"
click node_player_prefab "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Prefabs/Player/Player.prefab"
click node_game_scene "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scenes/Game.unity"
click node_menu_scene "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scenes/MainMenu.unity"
click node_menu_ui "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/MenuUiManager.cs"
click node_ui_manager "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/UiManager.cs"
click node_score_manager "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/ScoreManager.cs"
click node_sound_manager "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/SoundManager.cs"
click node_animation_controller "https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/Controllers/AnimationController.cs"
click node_visual_assets "https://github.com/enes-sen/asteroidsclone/tree/main/Assets/_GameAssets"
click node_sound_assets "https://github.com/enes-sen/asteroidsclone/tree/main/Assets/_GameAssets/Sounds"

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_input,node_player_controller,node_move_controller,node_swap_controller,node_bullet,node_interfaces,node_player_prefab,node_game_scene toneBlue
class node_asteroid,node_enemy_ship,node_spawn_manager,node_enemy_spawn,node_destroyer,node_asteroid_prefabs,node_enemy_prefab toneAmber
class node_menu_scene,node_menu_ui,node_ui_manager,node_score_manager,node_sound_manager,node_animation_controller,node_visual_assets,node_sound_assets toneMint
```

## Components

### Gameplay

- [Player input](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Player/PlayerInput.cs): `Assets/_GameAssets/Scripts/Player/PlayerInput.cs`
- [Player control](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Player/PlayerController.cs): `Assets/_GameAssets/Scripts/Player/PlayerController.cs`
- [Movement](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/Controllers/MoveController.cs): `Assets/_GameAssets/Scripts/Managers/Controllers/MoveController.cs`
- [Swap control](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/Controllers/SwapController.cs): `Assets/_GameAssets/Scripts/Managers/Controllers/SwapController.cs`
- [Player projectile](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Player/Bullet.cs): `Assets/_GameAssets/Scripts/Player/Bullet.cs`
- [Gameplay interfaces](https://github.com/enes-sen/asteroidsclone/tree/main/Assets/_GameAssets/Scripts/Interfaces): `Assets/_GameAssets/Scripts/Interfaces`
- [Player prefab](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Prefabs/Player/Player.prefab): `Assets/_GameAssets/Prefabs/Player/Player.prefab`
- [Gameplay scene](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scenes/Game.unity): `Assets/_GameAssets/Scenes/Game.unity`

### World and spawning

- [Asteroid behavior](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Threats/AsteroidController.cs): `Assets/_GameAssets/Scripts/Threats/AsteroidController.cs`
- [Enemy ship behavior](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Threats/EnemyShipController.cs): `Assets/_GameAssets/Scripts/Threats/EnemyShipController.cs`
- [Asteroid spawning](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/SpawnManager.cs): `Assets/_GameAssets/Scripts/Managers/GameManagers/SpawnManager.cs`
- [Enemy spawning](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/EShipSpawnManager.cs): `Assets/_GameAssets/Scripts/Managers/GameManagers/EShipSpawnManager.cs`
- [Object cleanup](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Others/Destroyer.cs): `Assets/_GameAssets/Scripts/Others/Destroyer.cs`
- [Asteroid variants](https://github.com/enes-sen/asteroidsclone/tree/main/Assets/_GameAssets/Prefabs/Asteroids): `Assets/_GameAssets/Prefabs/Asteroids`
- [Enemy prefab](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Prefabs/Enemy/EnemyShip.prefab): `Assets/_GameAssets/Prefabs/Enemy/EnemyShip.prefab`

### Presentation

- [Menu scene](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scenes/MainMenu.unity): `Assets/_GameAssets/Scenes/MainMenu.unity`
- [Menu UI](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/MenuUiManager.cs): `Assets/_GameAssets/Scripts/Managers/GameManagers/MenuUiManager.cs`
- [Game UI](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/UiManager.cs): `Assets/_GameAssets/Scripts/Managers/GameManagers/UiManager.cs`
- [Scoring](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/ScoreManager.cs): `Assets/_GameAssets/Scripts/Managers/GameManagers/ScoreManager.cs`
- [Sound](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/GameManagers/SoundManager.cs): `Assets/_GameAssets/Scripts/Managers/GameManagers/SoundManager.cs`
- [Animation](https://github.com/enes-sen/asteroidsclone/blob/main/Assets/_GameAssets/Scripts/Managers/Controllers/AnimationController.cs): `Assets/_GameAssets/Scripts/Managers/Controllers/AnimationController.cs`
- [Game visuals](https://github.com/enes-sen/asteroidsclone/tree/main/Assets/_GameAssets): `Assets/_GameAssets`
- [Sound assets](https://github.com/enes-sen/asteroidsclone/tree/main/Assets/_GameAssets/Sounds): `Assets/_GameAssets/Sounds`
