> For the complete documentation index, see [llms.txt](https://gamelauncher.cloud/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gamelauncher.cloud/help/reference/architecture.md).

# Architecture

Learn how **Game Launcher Cloud** delivers your games to players seamlessly.\
This guide explains the complete journey from uploading a build to players launching your game.

{% hint style="info" %}
**Simple Overview**: We handle all the technical complexity - you just upload your game, and we make sure it reaches your players instantly, anywhere in the world.
{% endhint %}

***

## How It Works: The Complete Flow

### The Developer Journey

```mermaid
graph TB
    Start[You Have a Game] --> Upload[Upload Your Game]
    
    Upload --> Process[⚙Cloud Processing]
    Process --> Compress[🗜Automatic Compression]
    Process --> Scan[Virus Scanning]
    Process --> CDN[Global CDN Distribution]
    
    CDN --> Configure[Configure Launcher]
    Configure --> Brand[Add Logo & Branding]
    Configure --> News[Create News]
    Configure --> Settings[⚙Set Auto-Update]
    
    Settings --> Distribute[Distribute to Players]
    Distribute --> Download[Players Download Launcher]
    Download --> Check[Check Latest Version]
    Check --> Play[Download & Play]
    Play --> AutoUpdate[Auto-Updates]
    
    style Start fill:#4f46e5,stroke:#4338ca,stroke-width:3px,color:#fff
    style Upload fill:#10b981,stroke:#059669,stroke-width:2px,color:#fff
    style Configure fill:#f59e0b,stroke:#d97706,stroke-width:2px,color:#fff
    style Distribute fill:#ec4899,stroke:#db2777,stroke-width:2px,color:#fff
    style Play fill:#8b5cf6,stroke:#7c3aed,stroke-width:3px,color:#fff
```

**Simple Process**

Upload once → We distribute globally → Players download from nearest server → Auto-update forever

***

## The Player Experience

### What Happens When a Player Opens Your Launcher?

```mermaid
stateDiagram-v2
    [*] --> LauncherStarts: Player Opens Launcher
    LauncherStarts --> ConnectAPI: Connect to Cloud API
    ConnectAPI --> CheckAuth: Verify Authentication
    CheckAuth --> FetchConfig: Fetch Configuration
    FetchConfig --> VersionCheck: Compare Versions
    
    VersionCheck --> UpToDate: Local = Cloud Version
    VersionCheck --> UpdateAvailable: New Version Found
    
    UpToDate --> ShowNews: Display News Feed
    UpdateAvailable --> DownloadUpdate: Download From CDN
    
    DownloadUpdate --> VerifyFiles: Hash Verification
    VerifyFiles --> Install: Extract & Install
    Install --> ShowNews
    
    ShowNews --> ReadyToPlay: Player Clicks Play
    ReadyToPlay --> LaunchGame: Start Game Process
    LaunchGame --> [*]: Player Enjoys Game
```

**What the launcher does:**

* Connects to our secure API
* Downloads your custom branding and appearance
* Checks what version of the game is installed
* Shows your latest news and announcements

**Smart Update Detection:**

* Compares local game version with latest cloud version
* Only downloads files that changed (delta patching)
* Shows download progress with speed and ETA
* Verifies file integrity after download

**Optimized Downloads:**

* Player automatically connects to closest server
* Maximum download speed with CDN
* Resume capability if connection drops
* Background downloads while browsing news

**Launch Process:**

* Quick file integrity check
* Launch with custom parameters (if configured)
* Monitor game process
* Report session analytics (playtime, crashes)

```mermaid
sequenceDiagram
    participant P as Player
    participant L as Launcher
    participant API as Cloud API
    
    P->>L: Clicks "Play" Button
    L->>API: Verify Game Files
    API-->>L: Downloads/Patches Files
    L-->>L: Game Process Started
    L->>API: Track Session Start
    
 
    P->>L: Closes Game
    L->>API: Report Session (45 min)
    API->>API: Update Analytics
```

***

## Platform Architecture

### Simple System Overview

```mermaid
graph TB
    subgraph Players["YOUR PLAYERS"]
        Desktop[Desktop Launchers<br/>Windows / Mac / Linux]
    end
    
    subgraph API["GAME LAUNCHER CLOUD API"]
        Auth[Authentication &<br/>User Management]
        Builds[Build Management &<br/>Version Control]
        News[News & Content<br/>Delivery]
        Analytics[Analytics &<br/>Tracking]
    end
    
    subgraph Storage["DATA STORAGE"]
        direction LR
        DB[(PostgreSQL<br/>Database<br/>Railway)]
        CDN[Cloudflare R2<br/>File Storage<br/>Global CDN]
    end
    
    Desktop -->|HTTPS/TLS| API
    API -->|Query/Store| DB
    API -->|Upload/Retrieve| CDN
    Desktop -->|Fast Download| CDN
    
    style Desktop fill:#8b5cf6,stroke:#7c3aed,stroke-width:2px,color:#fff
    style API fill:#3b82f6,stroke:#2563eb,stroke-width:2px,color:#fff
    style DB fill:#10b981,stroke:#059669,stroke-width:2px,color:#fff
    style CDN fill:#f59e0b,stroke:#d97706,stroke-width:2px,color:#fff
```

**Frontend Layer**

Angular 19 web dashboard with TypeScript, Tailwind CSS, and reactive signals

**Backend Layer**

ASP.NET 10 REST API with C#, hosted on Linode with auto-scaling

**Database Layer**

PostgreSQL on Railway with automatic backups and JSON support

**Storage Layer**

Cloudflare R2 with global CDN for lightning-fast downloads worldwide

***

## Technology Stack

### What Powers Game Launcher Cloud

| Component             | Technology              | Why We Use It                                  |
| --------------------- | ----------------------- | ---------------------------------------------- |
| **Backend API**       | ASP.NET 10 (C#)         | Fast, reliable, cross-platform server          |
| **Database**          | Railway - PostgreSQL    | Powerful relational database with JSON support |
| **File Storage**      | Cloudflare R2           | Global CDN for lightning-fast downloads        |
| **Web Dashboard**     | Angular 19 + TypeScript | Modern, reactive admin interface               |
| **Desktop Launchers** | Avalonia C# .NET        | Excellent performance on Windows/Mac/Linux     |
| **VPS**               | Linode Akamai           | Creating patches and store the Backend         |

{% hint style="success" %}
**All managed for you**: We handle servers, scaling, backups, and security so you can focus on your game.
{% endhint %}

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://gamelauncher.cloud/help/reference/architecture.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
