/Documentation/Patch Runtime/Integration & IPC (Game Clients)

Integration & IPC (Game Clients)

LaunchBoost Game Patching is designed to be embedded. It communicates status back to your calling application (e.g., Unity, Unreal, Electron, C++) via a TCP Pipe.

TCP Status Pipe

The patcher opens a local TCP listener on port 32123.

Protocol: Newline-delimited UTF-8 strings.

Direction: Patcher -> Game Client.

You can use this TCP Pipe to create your own client application that handles the visuals of the game patch system or you can embed it directly into your game that you are patching.

Pipe Messages

Once hooked into the live pipe, you can listen out for these messages and decide what to show in your own application or game.

Message FormatDescription
STATUS:Security Check PassedBoot Sequence Active
PROGRESS:55.5Total patch progress percentage
READYPatch Files Downloaded. Waiting for game to exit (Atomic Swap Only)
DONEPatching finished successfully
ERROR:MessageA critical error occurred

If you are creating your own application to show your own visual feedback of the patching, you won’t need to use the ‘READY’ message. Just listen out for all other messages.

If you are embedding the LaunchBoost patching system directly inside your running game or game engine, please follow the Atomic Swap instructions below.

Live Patching (Atomic Swap)

You can update the game while it is running. Simply create your own “update screen” in your game, or run from the titles and disable play buttons until finished.

How to implement:

  1. Launch Patcher: The Game Client launches the patcher with -waitPid <GAME_PID> and -relaunch <GAME_EXE>.

    The “GAME_PID” is your game’s process ID. You can obtain this through the Windows API. You will need to send the process ID of your game running as a command line argument.

  2. Monitor: The Game Client listens for messages on Port 32123.

  3. Background Download: The patcher downloads files to a temporary staging area while the game runs and sends messages via the TCP Pipe.

  4. Swap:

    • Patcher sends the message READY.

    • Patcher waits for the Game Process (PID) to exit.

    • Game Client receives READY, saves state, and closes itself (When you get the READY message, this is your cue to ‘exit’ your game).

    • Patcher detects exit, moves files from Staging to Live, and re-runs the game executable. You need to specify your GAME_EXE filename as a command line parameter. It is best to run the patch system locally to the game. If not, run a batch file you created instead which locates your game and runs your game executable with -patchcomplete command line argument so you can capture this in your game to notify the game/your user of a successful update just been performed.