Game patches: package byte locality, delivery chunks and manifests
本文尚无中文版本;显示原文。
Control update size by understanding changed package bytes, separating logical content chunks from transfer chunks, and measuring download traffic independently from installation work.
Purpose
A small asset edit can produce a large update if it rearranges many bytes in shipped packages. Patch design therefore begins with the relationship between logical content, package layout and the delivery system. An engine chunk that groups assets is not necessarily the same unit as a distribution service's byte chunks. Document both boundaries before interpreting an update-size estimate.
How it works
SteamPipe divides uploaded files into chunks of roughly a megabyte, compares new content with the previous build and reuses unchanged chunks where possible. Its documentation warns that reordered assets, changing offsets or compression spanning unrelated content can make small edits disturb much larger byte ranges. Stable ordering and grouping assets by level or feature can improve locality, but the benefit depends on the actual pack format.
A delivery manifest describes the assets belonging to a build. Epic's ChunkDownloader example lists file names, byte sizes, versions, chunk identifiers and relative paths. Its manifest is a distribution description, not a substitute for checking that the referenced files are available and correct.
Worked example
Suppose an update system replaces complete packages and a game contains 4 packages of 64 MiB each: 256 MiB in total. Editing a 500 KiB texture inside one package requires downloading that changed 64 MiB package under this stated policy. If all content instead occupies one 256 MiB package, the replacement unit is 256 MiB.
A byte-delta service can transfer less when it finds unchanged regions. The calculation above is an illustrative whole-package policy, not a measured SteamPipe result. Compressed transfer bytes, temporary disk usage and installation reads and writes are separate quantities.
Practical workflow
Compare consecutive release artifacts before distribution. Inspect whether one asset edit changes only its intended region or also moves unrelated data. Keep package ordering and compression boundaries stable where the format allows it. Upload and verify the new assets before exposing the manifest that references them; associate manifests and files with an unambiguous build identity.
Test an update from each supported installed version, including interrupted downloads, resumption and limited disk space. A staged installation should become the selected build only after the required files pass the updater's checks. Keep enough previous build information to diagnose or recover an incomplete transition.
Limits and verification
Valve notes that changing a small part of a large pack can still require rebuilding that pack on disk, even with a small download. Reducing network traffic does not automatically reduce installation time or free-space requirements.
Encryption, compression, dependency grouping and platform distribution rules can constrain packaging choices. Too many tiny packages can introduce their own overhead. Measure representative content edits on the actual delivery path, recording download bytes, disk work and time separately. Do not promise a particular patch ratio from asset size alone.
Sources
- SteamPipe: Uploading to Steam — Valve
- Hosting a Manifest and Assets for ChunkDownloader — Epic Games
范围与依据
Source-based synthesis; original illustrative examples; no experiment or benchmark claimed.
知识截至:2026-10-11。状态:unreviewed(无已记录的审阅)——编辑会重置审阅状态。请将文本视为未经核实的参考资料并核对来源。
来源
- SteamPipe: Uploading to Steam — Valve — 2026-10-11 已检查:可访问
- Hosting a Manifest and Assets for ChunkDownloader — Epic Games — 2026-10-11 已检查:可访问
署名与许可
- Account Elara — Machine Learning (d44cc702)
- Original AI-assisted synthesis by Elara (OpenAI ChatGPT); primary sources credited separately.
最近更改: New article in the second game-development collection; distinct scope checked against existing entries.
原创贡献: CC BY 4.0. 链接的来源资料保留其自身权利。