Skip to content

Blueprint collection scale and lifecycle — 2026-10-12 ​

Accepted scoped evidence: the existing saved Field journal and JournalEntry work with1,000and10,000stable presentation models in24source/exact Development-package runs across5.6.1/5.7.4/5.8.3. This is measured virtualized-list behavior, not a universal UI/entity-performance guarantee or product completion.

Actual workload and authoring pattern ​

The opt-in example fixture creates generic presentation UObjects, replaces the journal list once through Set List Items, and performs16producer bursts. Each burst changes every model's Detail and invokes Notify Data Changed. Current visible rows update synchronously without replacing their widget identities. Only displayed models have live row subscriptions. This deliberately measures a full-population notification burst; a real producer should group changed fields and notify only changed models rather than poll all models each frame.

The fixture then selects/updates a visible row, scrolls to the last model, checks old subscription release and stale-source isolation, selects after recycling, clears the collection, verifies empty labels/selection/style/subscriptions, repopulates and checks bounded pool reuse, then closes and checks final teardown. These are actual saved Blueprint graphs/public InterfaceForge contracts and engine ListView, not a native substitute entry. Blueprint workflow.

Across all runs the normal journal realizes3rows and observes6reused row objects; enlarged realizes2and observes4.10,000models remain in the collection, but10,000widgets are not constructed. Stable UObjects still carry population memory cost; pooling widgets does not remove that cost. No entity population scanner, gameplay system, inventory, asset or core change. Only sample EntryReview cpp/header changed;153approved files/53own packages/63unchanged core files. Before-CollectionScale source/progress snapshots preserve previous work.

Timings and limits ​

Native measurements separate model creation, synchronous Set List Items assignment, and16bulk notification durations. Assignment timing excludes subsequent Slate realization. Reported P95 is the nearest-rank maximum of16samples. This single-host sample is descriptive, not a budget or cross-device comparison. Whole-scene actor delta/frame observations include the example, renderer and screenshot readback; they must not be presented as isolated widget/GPU benchmarks.

For10,000models: source creation18.3–22.1ms, assignment2.5–2.7ms, notification median0.441–0.459ms; packaged creation13.5–18.1ms, assignment2.6–2.7ms, notification median0.416–0.437ms. Packaged notification P95 reaches1.396ms in these16samples. Numbers are not promises for different entries, machines, providers, languages or heavier layouts. All measured10krows and exact reports/arguments (local verification record) preserve each run rather than selecting only the fastest result.

No performance threshold was invented to turn observations into green certification. Acceptance instead requires the exact dataset, visible-only subscriptions, bounded row count/pool, immediate visible refresh without rebuild, stale-source isolation, selection and teardown. The tool verifies measured engine/count/viewport/preferences and all lifecycle assertions.

Builds, paths and exact packages ​

Installed Build.bat ForgeExamplesEditor Win64 Development -Project=<canonical or isolated> -WaitMutex -NoHotReloadFromIDE. CompileAllBlueprints uses complete30-class allowlist/NullRHI/unattended/nosplash/InstalledNoZenLocalFallback/unique absolute logs. Source56 prefix CollectionScale-BaselineSource; newer source CollectionScale57/58-Source; cooked CollectionScale56/57/58-Cooked. Tools/run_entry_scale_reviews.ps1 serializes1k/10k×normal/enlarged and supplies actual EngineVersion/ProjectPath or exact inner PackagedExecutable.

Actual engineEditor buildBlueprint compilationNative warnings
5.6.1 CL443949968.71s30classes/0errors/0warnings/0failed loads0
5.7.4 CL5149498242.20ssame0
5.8.3 CL5821070947.49ssame20existing C4305 colors/2CS0618 include-order notices

The initial long UE57-CollectionScale copy failed Windows generated-path validation at260/261characters before compilation. The failed log and long copies are retained. Fresh shorter UE57-CS/UE58-CS approved copies succeeded; canonical/reference locations were not moved or upgraded. Copies contain153files, differing only in copied EngineAssociation. Tools are internal verification aids, not a required buyer workflow.

Serialized RunUAT BuildCookRun uses own project, Win64 Development, build/cook/stage/pak/archive, both maps, NoHotReloadFromIDE and InstalledNoZenLocalFallback. Exact engine UAT Log.txt/staging manifest preserved before the next UAT run; tests use inner Windows/ForgeExamples/Binaries/Win64/ForgeExamples.exe.

ArchiveBuild/cook/stage/archiveCookCooked + platform skippedStaging targets
CollectionScaleUE5622.49s8.88s486+7=4932663
CollectionScaleUE5745.54s9.36s488+7=4952678
CollectionScaleUE5879.96s32.49s559+7=5662341

All final processes/strong verifiers pass. No final cook/Blueprint/material/shader warning/error lines. Boundaries153source53packages5546reference hashes pass all exact manifests. All153canonical and152copied files per shorter newer copy match; only copied association differs. Unchanged63core files match prior fresh InputEdges strict independent5.6/5.7/5.8hosts; no needless core rebuild.

Two actual renders reviewed/copied:10k normal source selection and10k enlarged cooked selection. Text/selection styling/footer remain usable; clipped last row reflects the bounded list viewport. The journal's default white ListView scrollbar remains a visual mismatch with the themed reading regions and is recorded for the next presentation pass. Functional/performance checks do not erase that remaining polish issue.

Preservation and open gates ​

CollectionScale-References.json confirms discovery HEAD/prior changed-file hashes/all5546UIpackage hashes match; Sakura status unchanged. GameMaster/MassForge retain externally observed code changes; full statuses not unchanged. No reset/rebaseline/native/reference app operation/commit/publication. All own handles terminal. Earlier broader UI/input/audio/material receipts retain their revision scope.

Win64 DX11 RenderOffscreen/programmatic list/model/selection setup only. Physical controller/touch explicitly deferred or unverified. These counts describe presentation models, not actual simulated MassForge entities, world markers, networking or arbitrary TreeView/TileView templates. Memory profiling/cross-hardware measurements, optional entity adapters, layout/accessibility/localization/custom exits and final product polish remain open. Goal ACTIVE; inventory excluded; Game Master design exclusive; Sakura tint unchanged.

UIForge v0.1.0 · Blueprint and C++ development documentation.

Enlarged documentation image

Enlarged documentation image