← Back
Home › Systems › Games

world-streaming

open-world asset streaming

Unreal World Partition

SystemTechniques · 9Primitives · 30 world-streaming Work-stealing dequeconcurrency · medium: Per-worker deque: the owner pushes and pops at the bottom without contention, idle workers steal from the top; the core of Rayon, Tokio and Go.›Asset streaming prioritygraphics · medium: Prioritized async loading of assets by distance and visibility under a memory budget with evictionFrustum occlusion cullinggraphics · medium: Frustum tests on bounds, hierarchical-Z occlusion and GPU culling passesGpu asset decompressiongraphics · medium: Decompress assets on the GPU (GDeflate, DirectStorage) straight from NVMe to VRAMMesh simplification quadricgraphics · medium: Edge collapse with quadric error metrics to build mesh LODsMeshlet cluster lodgraphics · medium: Split meshes into small clusters with a LOD DAG for fine-grained culling and streaming (Nanite-style)Virtual texturinggraphics · medium: Sparse virtual textures: page tables, feedback buffers and streaming of mip tilesLRU and CLOCKsystems · low: LRU evicts the least recently used entry via hash map plus linked list; CLOCK approximates it with a reference bit, so hits take no lock.›LZ4compression · low: Byte-aligned LZ77 with no entropy stage; compresses at hundreds of MB/s and decompresses at several GB/s per core, for when speed beats ratio.›Zstandard (zstd)compression · low: LZ77 plus Huffman and FSE entropy coding, with levels from LZ4-like speed to xz-like ratio, all decoding at about 1-2 GB/s.›Quadtree octreegeometry · low: Adaptive spatial subdivision trees for queries and level of detail; loose and linear variantsFloating origin rebasinggraphics · low: Shift the world origin near the camera to keep float precision in huge worldsio_uringnetworking · low: Linux async I/O through two shared-memory rings (submissions in, completions out), batching or eliminating syscalls for sockets and files alike.›Spatial hashingphysics · low: Uniform grid stored in a hash table: bucket objects by cell, test only neighbouring cells; O(n) neighbour search for many similar-sized objects such as particles.›Buddy allocatorsystems · low: Power-of-two block splitting and coalescing; base of kernel page and GPU heap allocatorsEpoch-based reclamationconcurrency · low: Threads announce a global epoch while touching shared lock-free data; garbage retired in epoch e is freed once the epoch reaches e + 2.›Memory orderingconcurrency · low: What Relaxed, Acquire, Release and SeqCst atomics actually guarantee, what they cost on x86 and ARM, and which one each pattern needs.›d-ary heapdata-structures · low: Array heap with d children per node (d = 4 typical): half the binary heap's depth, siblings in one cache line, faster priority queues.›Buffer pools for zero-allocation I/Ohardware-os · low: Preallocate a fixed set of aligned I/O buffers and recycle them through a free list, so the hot path never mallocs, faults or unmaps. The bounded count doubles as back pressure.›Homogeneous transformsgeometry · low: 4x4 affine and projective matrices, homogeneous coordinates, view and projection, normal matricesImage pyramidsgraphics · low: Gaussian/Laplacian pyramids and tiled multi-resolution images for zoom and blendingGPU compute shadersml-training · low: The vendor-neutral GPU launch model of Metal, Vulkan and WebGPU: a grid of workgroups, shared memory, barriers and subgroups, driven by recorded command buffers.›Bounding volume hierarchyphysics · low: Binary tree of nested bounding boxes; prunes overlap and ray queries to O(log n) for any size distribution, and supports cheap insert/remove for moving objects.›+ 2 more techniques+ 14 more primitives

Similar systems

Share the most building blocks with this one.