工程博客

    来自构建流水线的一线洞察

    深入探讨 Unreal Engine CI/CD、构建优化、DevOps 最佳实践,以及游戏开发基础设施一线的实战经验。

    订阅我们的通讯

    把构建优化的最新洞察直接送到你的收件箱。

    最新文章

    Last Week in Unreal: Epic Ported Its Agent Tools With an LLM (September 21 to September 27, 2026)
    Last Week in Unreal

    Last Week in Unreal: Epic Ported Its Agent Tools With an LLM (September 21 to September 27, 2026)

    1,072 commits on ue6-main, the busiest week since June. Epic ported most of its editor agent toolsets from Python to C++ with a test-driven LLM process described in the commit, AVBOIT and Nanite translucency went back to off by default on both branches, and MSVC static analysis turned out to have been analyzing nothing on single-file compiles.

    VS
    Venkat S
    Last Week in Unreal: UE5 Stopped Counting (September 14 to September 20, 2026)
    Last Week in Unreal

    Last Week in Unreal: UE5 Stopped Counting (September 14 to September 20, 2026)

    963 commits on ue6-main, and the one that matters most is a single file. A static_assert now makes any further append to the UE5 object version enum fail to compile, handing the engine’s global package version to UE6 in the same serialized slot. The same week, four months of cook determinism work was gathered into the 5.x stream in one changelist, and Epic’s new order-independent transparency implementation landed on both branches.

    VS
    Venkat S
    Last Week in Unreal: The Cook Never Cached (September 7 to September 13, 2026)
    Last Week in Unreal

    Last Week in Unreal: The Cook Never Cached (September 7 to September 13, 2026)

    727 commits on ue6-main, and the two that matter most are four files between them. A class default object minting a GUID in its constructor, and a component writing to itself during serialization, both made native class hashes differ between identical cooks, so dependent blueprints never cached and recooked every time. Meanwhile Epic shipped an agent-facing tool surface into the editor, including a plugin that reads your Codex and Claude config directories, and the renderer deleted a console variable along with legacy HZB occlusion culling.

    VS
    Venkat S
    Last Week in Unreal: The Defaults Moved (August 31 to September 6, 2026)
    Last Week in Unreal

    Last Week in Unreal: The Defaults Moved (August 31 to September 6, 2026)

    862 commits on ue6-main, and the two most consequential are one-line commits nobody announced: Live Coding 2 is on by default, and the input thread is enabled on game input platforms. Zen 5.8.21 changes what /health/ready means, so CI probes pointed at it will start reporting healthy servers as down. The renderer’s packed primitive index is gone along with FScene’s sorted-order invariant, which is the week renderer forks feel. And three unrelated systems hit the same worker-starvation deadlock.

    VS
    Venkat S
    Last Week in Unreal: Same Fix, Different Branch (August 24 to 30, 2026)
    Last Week in Unreal

    Last Week in Unreal: Same Fix, Different Branch (August 24 to 30, 2026)

    918 commits on ue6-main, and the FScene-to-Scene-Extensions decomposition reached ray tracing specifically for a seventh straight week, with UE_INTERNAL dropped from a key header, a signal the API is stabilizing. One engineer carried Unreal Build Accelerator’s correctness work for a fourth straight week, and a second engineer shipped 23+ commits of Unreal Toolbox investment nobody was tracking. The AI editor assistant’s background tool-call mechanism relanded after repeated backouts. And a Sequencer camera-shake fix shipped successfully on ue5-main after one backout, but stayed reverted on ue6-main with no reland in this week’s window: same patch, opposite outcome by branch.

    VS
    Venkat S
    Last Week in Unreal: Infrastructure Catches Up With Itself (August 17 to 23, 2026)
    Last Week in Unreal

    Last Week in Unreal: Infrastructure Catches Up With Itself (August 17 to 23, 2026)

    960 commits on ue6-main, and Unreal Build Accelerator carried the week again: RAD Linker bring-up, two Wine remote-build correctness fixes, and a storage overhaul all landed in the same seven days, with about a fifth of the week’s high-interest commits from one engineer. AVBOIT shipped as the new default transparency method behind an off-by-default flag, LumenRef’s early-termination pass roughly doubled its performance on NVIDIA hardware, and a batched Mass entity-creation path cut churn-test frame time 18% with real benchmark numbers attached. Two changes, an EnablePlugins build warning and an MVVM crash fix, were submitted and backed out in the same week, so neither is live despite showing up in the commit history. Plus a Zen server bump with a breaking namespace change, a UGS cache that saved 70 minutes of network transfer in one sync, and a silent out-of-bounds write in Mass entity storage that only bites in Test and Shipping builds.

    VS
    Venkat S
    Last Week in Unreal: The Build Farm Stops Blaming the Network (August 10 to 16, 2026)
    Last Week in Unreal

    Last Week in Unreal: The Build Farm Stops Blaming the Network (August 10 to 16, 2026)

    847 commits on ue6-main, and the week belongs to build infrastructure. Horde agents on streams with moving Perforce pins were producing builds from a mix of old and new files, and the detector written to catch that stayed dormant. UBA’s cache server went from roughly 500 buckets to roughly 5,000 and grew sweep-budget scaling, automatic bucket retirement, and retention telemetry to survive it. A disk stall detector landed after farm hosts were found holding single filesystem calls for up to 28 minutes while their timeouts got blamed on the network. Plus a material instance cook fix with a measured A/B, a Windows SDK floor bump worth checking before you sync, and an input thread default that flipped on and back off the same day.

    VS
    Venkat S
    Last Week in Unreal: Seven Ways a Build Cache Can Lie (August 3 to 9, 2026)
    Last Week in Unreal

    Last Week in Unreal: Seven Ways a Build Cache Can Lie (August 3 to 9, 2026)

    784 commits on ue6-main, and the most consequential ones are all the same bug: a cache returned a confident answer that was not a function of its inputs, and nothing logged a complaint. The shader job cache dropped keys at every hash-table growth boundary. DDC record bytes changed based on whether debug dumping was on. The UBA cache server ratcheted its own expiration window from three days to four seconds while crashing with SIGBUS in production. Plus an HDR correctness fix that moves pixels, a lifetime check that went fatal, mimalloc as the desktop editor allocator, and a 5.x sidebar showing 5.8.2 being assembled.

    VS
    Venkat S