# chaszl/paradise_game_launcher_new architecture

> Architecture diagram of the GitHub repository chaszl/paradise_game_launcher_new, 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/chaszl/paradise_game_launcher_new
- Repository: https://github.com/chaszl/paradise_game_launcher_new

## Overview

Paradise Game Launcher is a Windows desktop game-library and launch application. Its apparent workflow is to discover games from installed launcher libraries, represent them as game records, and launch a selected game; the tree also shows custom-shortcut installation checks, persisted settings, and hardware monitoring. The sampled window code only constructs the window, so it does not establish wiring from the UI to scanning, persistence, monitoring, or launching. The README provides no further capability details; provider branches are retained based on their source names and directory structure.

Main entry points: [`ParadiseGameLauncher/Models/GameData.cs`](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Models/GameData.cs) (Game records), [`ParadiseGameLauncher/App.xaml.cs`](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/App.xaml.cs) (App startup), [`ParadiseGameLauncher/Services/Launchers/SteamLauncherProvider.cs`](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/SteamLauncherProvider.cs) (Steam scan), [`ParadiseGameLauncher/Services/Launchers/InstallDetectionService.cs`](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/InstallDetectionService.cs) (Install detection)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_app["App startup<br/>[App.xaml.cs]"]
  node_window["Main window<br/>[MainWindow.xaml.cs]"]
end

subgraph group_discovery["Game discovery"]
  node_steam["Steam scan"]
  node_epic["Epic scan"]
  node_gog["GOG scan"]
  node_microsoft["Microsoft Store scan"]
  node_ubisoft["Ubisoft scan"]
  node_provider["Provider contract"]
  node_install["Install detection"]
end

subgraph group_library["Library and settings"]
  node_games["Game records<br/>[GameData.cs]"]
  node_record["Game record<br/>[GameRecord.cs]"]
  node_settings["App settings<br/>[AppSettings.cs]"]
  node_json["JSON repository<br/>[JsonRepository.cs]"]
  node_ids["Stable IDs<br/>[IdGenerator.cs]"]
end

subgraph group_runtime["Launch and system"]
  node_launcher["Game launcher<br/>[Launcher.cs]"]
  node_hardware["Hardware monitoring<br/>[HardwareInfo.cs]"]
end

node_user(("User"))
node_process["Windows process shell"]

node_user -->|"starts"| node_app
node_app -->|"creates"| node_window
node_steam -->|"creates records"| node_games
node_install -->|"checks shortcuts"| node_games
node_games -->|"creates stable IDs"| node_ids
node_launcher -->|"starts game"| node_process

click node_app "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/App.xaml.cs"
click node_window "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/MainWindow.xaml.cs"
click node_steam "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/SteamLauncherProvider.cs"
click node_epic "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/EpicLauncherProvider.cs"
click node_gog "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/GOGLauncherProvider.cs"
click node_microsoft "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/MsStoreLauncherProvider.cs"
click node_ubisoft "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/UbisoftLauncherProvider.cs"
click node_provider "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/ILauncherProvider.cs"
click node_install "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/InstallDetectionService.cs"
click node_games "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Models/GameData.cs"
click node_record "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Models/GameRecord.cs"
click node_settings "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Data/AppSettings.cs"
click node_json "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Data/JsonRepository.cs"
click node_launcher "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Launching/Launcher.cs"
click node_hardware "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/HardwareInfo.cs"
click node_ids "https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Uitilities/IdGenerator.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_app,node_window,node_user toneBlue
class node_steam,node_epic,node_gog,node_microsoft,node_ubisoft,node_provider,node_install toneAmber
class node_games,node_record,node_settings,node_json,node_ids toneMint
class node_launcher,node_hardware toneRose
class node_process toneIndigo
```

## Components

### Application

- [App startup](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/App.xaml.cs): `ParadiseGameLauncher/App.xaml.cs`
- [Main window](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/MainWindow.xaml.cs): `ParadiseGameLauncher/MainWindow.xaml.cs`

### Game discovery

- [Steam scan](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/SteamLauncherProvider.cs): `ParadiseGameLauncher/Services/Launchers/SteamLauncherProvider.cs`
- [Epic scan](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/EpicLauncherProvider.cs): `ParadiseGameLauncher/Services/Launchers/EpicLauncherProvider.cs`
- [GOG scan](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/GOGLauncherProvider.cs): `ParadiseGameLauncher/Services/Launchers/GOGLauncherProvider.cs`
- [Microsoft Store scan](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/MsStoreLauncherProvider.cs): `ParadiseGameLauncher/Services/Launchers/MsStoreLauncherProvider.cs`
- [Ubisoft scan](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/UbisoftLauncherProvider.cs): `ParadiseGameLauncher/Services/Launchers/UbisoftLauncherProvider.cs`
- [Provider contract](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/ILauncherProvider.cs): `ParadiseGameLauncher/Services/Launchers/ILauncherProvider.cs`
- [Install detection](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/Launchers/InstallDetectionService.cs): `ParadiseGameLauncher/Services/Launchers/InstallDetectionService.cs`

### Library and settings

- [Game records](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Models/GameData.cs): `ParadiseGameLauncher/Models/GameData.cs`
- [Game record](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Models/GameRecord.cs): `ParadiseGameLauncher/Models/GameRecord.cs`
- [App settings](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Data/AppSettings.cs): `ParadiseGameLauncher/Data/AppSettings.cs`
- [JSON repository](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Data/JsonRepository.cs): `ParadiseGameLauncher/Data/JsonRepository.cs`
- [Stable IDs](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Uitilities/IdGenerator.cs): `ParadiseGameLauncher/Uitilities/IdGenerator.cs`

### Launch and system

- [Game launcher](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Launching/Launcher.cs): `ParadiseGameLauncher/Launching/Launcher.cs`
- [Hardware monitoring](https://github.com/chaszl/paradise_game_launcher_new/blob/main/ParadiseGameLauncher/Services/HardwareInfo.cs): `ParadiseGameLauncher/Services/HardwareInfo.cs`

### Other components

- **User**
- **Windows process shell**

## Connections

- User → App startup: starts
- App startup → Main window: creates
- Steam scan → Game records: creates records
- Install detection → Game records: checks shortcuts
- Game records → Stable IDs: creates stable IDs
- Game launcher → Windows process shell: starts game
