Forum Discussion

The_Ant_Man's avatar
10 months ago
Solved

Sublevels?

First, I want to apologize if this is an EA violation.

If so, please promptly delete this post and again accept my humblest apology.

I have heard that we can spawn in a world using a sublevel.

How exactly would this be done in the desktop editor? (I have seen that I enter a world code.)

Say a player accesses a sublevel, does it spawn in for everyone else in the world?

For example, I am working on a history museum project. If Player 1 enters one sublevel (Exhibit 1) and Player 2 enters a different sublevel (Exhibit 2), do both players get the two sublevels spawned in on their headsets?

I could be off-base about how sublevels work, but again, I'm really excited at the possibility of having my exhibits spawn into the same world, rather than splitting them across multiple worlds.

Thank you for your responses.

  • Sublevels would be a great use for this and help you dynamically add and remove vertices from view as well as manage memory capacity without the FPS impact from traditional spawning. Short version is you use that sub-world gizmo in the world with your exhibit and change the dropdown from deeplink to exclude. At a minimum you need to add your default spawnpoint to this exclusion group and anything else you do not want getting streamed into the main world. Then publish it and select to not make it visible. Then in your main museum place your subworld gizmo where you want it leaving the setting at deeplink. Use the button which will let you select a exhibit world you have edit permissions. Once you accept nothing will happen. There is a dropdown that defaults to Unloaded which means it's not even in memory. Loaded means it's loaded into memory (which takes time),  and Active means it is in memory and visible in the world. Switch to Active to preview it in your world and position the exhibit where you want it. When you are done switch it back to unloaded. Now you can use typescript and perhaps triggers to switch the exhibit between these modes. Connect all these to a manager to only show exhibits that are occupied and hide them when they are not, and whenever possible unload them from memory. Switching from Loaded to Active is nearly instant as all the lighting is already calculated so it's not taxing the player headsets trying to calculate shadows and such.

    See the full documentation here which is publicly accessible now. Note that this does not extend your capacity or let you have more simulation or audio, but it does let you manage it in a way that is far superior to traditional spawning.
    https://developers.meta.com/horizon-worlds/learn/documentation/typescript/asset-spawning/world-streaming 

1 Reply

  • Sublevels would be a great use for this and help you dynamically add and remove vertices from view as well as manage memory capacity without the FPS impact from traditional spawning. Short version is you use that sub-world gizmo in the world with your exhibit and change the dropdown from deeplink to exclude. At a minimum you need to add your default spawnpoint to this exclusion group and anything else you do not want getting streamed into the main world. Then publish it and select to not make it visible. Then in your main museum place your subworld gizmo where you want it leaving the setting at deeplink. Use the button which will let you select a exhibit world you have edit permissions. Once you accept nothing will happen. There is a dropdown that defaults to Unloaded which means it's not even in memory. Loaded means it's loaded into memory (which takes time),  and Active means it is in memory and visible in the world. Switch to Active to preview it in your world and position the exhibit where you want it. When you are done switch it back to unloaded. Now you can use typescript and perhaps triggers to switch the exhibit between these modes. Connect all these to a manager to only show exhibits that are occupied and hide them when they are not, and whenever possible unload them from memory. Switching from Loaded to Active is nearly instant as all the lighting is already calculated so it's not taxing the player headsets trying to calculate shadows and such.

    See the full documentation here which is publicly accessible now. Note that this does not extend your capacity or let you have more simulation or audio, but it does let you manage it in a way that is far superior to traditional spawning.
    https://developers.meta.com/horizon-worlds/learn/documentation/typescript/asset-spawning/world-streaming