I've been reading about Pixar's Universal Scene Description (USD) system after seeing it in the package list inside Unity. All the material that I've read is within the context of the Film/Vfx industry with lots of focus on different teams working in the same larger scene.

From what I've seen the USD system has all the information that is commonly used in games but with the focus on film the frame budgets that these are designed to work with are huge when compared to games (minutes, hours and days vs milliseconds) which means that there are a lot of files and bits that make up a scene rather than the singular files that popular engines use (thinking of Unity and Unreal).

Ultimately I'm wondering if there is any reference material for how well this system works for games (with game industry practices and workflows) or if there are any engines which have support for USD as a primary means of representing a scene?

edit - to better specify what my question is

So from the Pixar documentation I've read that there was a design decision that favours Low memory footprint (which is always good) but results in high latency data access and since they specify that there are no GUIDs but rather namespaced access to elements which means a lot of recursive child.child style searching for data (in my mind at least, I'm sure once you get into it there are some optimisations you can make).

Since games defiantly need low latency data access to function well and low memory is a plus I'm asking if there are any known example implementations/strategies that work around this issue to provide an implementation that works for high performance games (thinking PC/Console rather than mobile)?

Or if the best solution to get around this is to perform a build step between the level editing stage and the runtime game engine that flattens the USD structure into something that is more typical of a game engine scene, which would work but make incremental changes more difficult to see in game as there could potentially be a lot of time between making a change and the build step completing.

  • 2
    \$\begingroup\$ Most questions of the form "is technology X suitable for games" can be answered "for some games, yes, and for other games, no" — so to get good constructive answers that will help you with your current project, you should try to explain where you've encountered a problem in that project that you think USD could help you solve, or a problem implementing/using USD that we can help you overcome. Once you've identified a specific problem in your particular game, we can help you solve it — using USD or other technologies. \$\endgroup\$
    – DMGregory
    Dec 27, 2020 at 23:04
  • \$\begingroup\$ In addition, asking "which studios/games/engines used X" is not considered to be on-topic. You could edit the question to focus on what role USD has in game dev, which is probably more on topic (though it sounds like you've already done a fair bit of research that probably answers that). \$\endgroup\$
    – Pikalek
    Dec 28, 2020 at 5:47


You must log in to answer this question.

Browse other questions tagged .