I Promised Myself I'd Never Build Another Asset Format

A few years ago, while working on the C++ version of the Untold Engine, I made a decision that came back to haunt me: I built my own asset format.

When I rewrote the engine in Swift, I promised myself I wouldn't make the same mistake again. Instead, I adopted industry-standard formats like USD and built the asset pipeline around them.

For a while, that worked great.

But once I started implementing asset streaming and testing larger scenes, I ran into a problem. Every streamed asset required parsing files, traversing scene hierarchies, creating runtime resources, and performing work that was becoming increasingly expensive at runtime.

In this video, I talk about why I eventually changed my mind, why USD wasn't the right solution for this particular problem, and why I ended up building a native runtime asset format for the Untold Engine after all.

This is the story of a decision I never wanted to make—and why it turned out to be the right one.

Untold Engine is a Swift + Metal renderer and engine focused on XR, streaming, and real-time rendering for Apple platforms.

Untold Engine: https://github.com/untoldengine/UntoldEngine

If you enjoy engine development, rendering architecture, XR rendering, or graphics programming, consider subscribing.

Harold Serrano

Computer Graphics Enthusiast. Currently developing a 3D Game Engine.