How paulsenecal/applauncher works
A Qt desktop launcher that selects among games, checks authenticated per-game manifests, applies incremental updates, and launches installed games. The main workflow runs from catalog selection through update check and changelog review to staged download, installation, and launch. The README documents parallel downloads, integrity checks, offline launch, platform-specific paths, and external game links. Some wiring is based on README and headers because implementation excerpts are partial; uncertain internal calls are omitted.
Main entry points: GameManager.cpp Game lifecycle · MainWindow.cpp Main window · NetworkClient.cpp HTTP client · Catalog.cpp Game catalog
Components 15
Launcher UI
- Main window
src/ui/MainWindow.cpp - Changelog review
src/ui/ChangelogDialog.cpp
Update workflow
- Game lifecycle
src/core/GameManager.cpp - Manifest and diff
src/core/GameManifest.cpp
Core services
- Game catalog
src/core/Catalog.cpp - Game metadata
src/core/GameInfo.h - HMAC verification
src/core/ManifestAuthenticator.cpp - HTTP client
src/core/NetworkClient.cpp - Platform utilities
src/core/PlatformUtils.h
Local runtime
- Installed games
src/core/GameManager.cpp - Update staging
src/core/GameManager.cpp - Game process
Other components
- Player
- Static update host
- Game web pages
Connections 20
- Player → Main window: selects game
- Main window → Game catalog: fetches catalog
- Game catalog → HTTP client: requests catalog
- HTTP client → Static update host: GET requests
- Game catalog → Game metadata: returns entries
- Main window → Game lifecycle: checks update
- Game lifecycle → HTTP client: fetches manifest
- Game lifecycle → HMAC verification: verifies tag
- Game lifecycle → Manifest and diff: parses and diffs
- Game lifecycle → Installed games: reads local state
- Main window → Changelog review: presents changes
- Player → Main window: approves update
- Game lifecycle → HTTP client: downloads files
- Game lifecycle → Static update host: retrieves game files
- Game lifecycle → Update staging: writes verified files
- Game lifecycle → Installed games: swaps and prunes files
- Game lifecycle → Platform utilities: resolves paths
- Game lifecycle → Game process: starts executable
- Game lifecycle → Installed games: locks during launch
- Main window → Game web pages: opens game links