Launcherino

What it is

The helbreath.co launcher is what Helbreath Empire and Helbreath Millennium players open before they play. It checks every file of the install, downloads what changed, updates itself, installs what the game needs and starts the game.

Launcherino is the technology behind Helbreath Empire's launcher. It is a library that other games can build their own launcher on. The launcher can run in its own window or be embedded inside the game client itself, and the administrator gets tools to upload updates and choose what each update delivers.

How it works

Inside the game client

In client UI mode the launcher updates the game's exe and DLLs first, starts the game and hides. The game connects through a named pipe only that Windows user can open and talks JSON: it subscribes to the state (phase, bars, speed, time left, patch version, the release's news) and asks to play, retry or quit. Its Launcher scene draws with fills and text only, before any sprite loads, so the game never reads a file still being replaced; a file the game holds open is written beside it and swapped in once it closes. Both Helbreath clients share this through one header.

For other games

A game adopts the core by writing its brand: programs and folders, mirrors, signing key and the files always hashed in full. The core reports through a small interface (status lines, bars, phases, messages), so the launcher's window, the pipe API or a game's own scene are interchangeable. The protocol only ever adds fields, so an older game works with a newer launcher and the other way round. A packaged SDK and a brand stamping tool are next.

Admin tools

Started with uploader, the same exe publishes releases. It hashes the release folder on every thread, compares it with the live manifest and opens the list of changed files; I delete the lines I don't want to ship, press View patch to build the manifest from that selection, then Start upload. It reads every zip back against its checksum, signs the manifest, uploads to every mirror at once and stops at the first failure, so a manifest never goes up for missing files. It also archives each released client's exe and debug symbols by commit.

Technologies

Demo