Documentation
Integrate the SDK, publish from CI, and decide how polite the peer layer should be.
SDK
#include <fastlane.h>
fl_ctx *ctx = fl_init("atlas", "live", FL_PLATFORM_WIN64);
fl_set_bandwidth_cap(ctx, 0); /* unlimited while idle */
fl_set_peer_enabled(ctx, true);
fl_update_handle *u = fl_update_begin(ctx, "2026.8.1");
while (fl_update_poll(u, &progress) == FL_RUNNING) {
ui_set_progress(progress.stage, progress.fraction);
}
fl_update_commit(u); /* atomic */Progress and UI
Report four stages separately: manifest, download, verify, apply. Players read a single bar that pauses as a hang; four labelled stages cut our customers' support load noticeably.
Chunking
Run it in CI, on the same artefact you ship. Chunking is deterministic, so two builds from the same inputs produce identical chunk sets.
Branches
fastlane publish --branch live --version 2026.8.1
fastlane publish --branch ptr --version 2026.9.0-rc2
fastlane publish --branch beta-ab --version 2026.8.1 --cohort 5%Pre-seeding
Push the chunk set to the edge and allow launchers to download before unlock. Set the unlock time and the patch becomes applicable at that instant, with no download.
Peer policy
{
"peer": {
"enabled": true,
"upload_cap_kbps": 4096,
"pause_while_playing": true,
"disable_on_metered": true,
"opt_out_respected": true,
"max_peers": 24
}
}Telemetry
Per-stage timings, failure reasons and peer efficiency, delivered to your own sink. No player identifiers leave the client — the install ID is rotated per title and per update.