concurrents
← All posts

March 1, 2022 · Concurrents

Slice 101: how to encode a Slice

A Slice is a streamable piece of a game. Encoding one is the process of turning a game build into the visibility-aware, prefetchable asset graph that GPEG can stream.

The encoding pipeline

At a high level, encoding a Slice involves:

  1. Asset partitioning — break the build into subassets (submeshes, texture tiles, audio clips) that can be streamed independently.
  2. Visibility precomputation — for each region the player can enter, compute the conservative set of subassets they could observe. This is what lets GPEG prefetch only what the player will see.
  3. Streaming graph construction — order the subassets so that the most-likely-next ones are sent first, given navigation patterns.
  4. CDN distribution — push the encoded Slice to the CDN, ready for any player to start streaming.

What stays the same

Critically, encoding a Slice doesn't require re-architecting the game. The engine, the rendering pipeline, the gameplay — all unchanged. The encoder is a build-time tool that takes a built game and produces the streaming-ready Slice.

For publishers, that's the unlock: a marketing channel and a UGC ecosystem with minimal development impact.