My expectations for Scene Graph

SceneGraph has been hyped a lot and my expectations have been high. I 've attended the seminar on it and I ve seen all info that is posted publicly, and talked to some Epic Games devs about it.

For our projects, there are four main things that I want to do with it:

  1. Create visual systems: For example, say I have a portcullis that opens with a switch and has a nice animation with a cinematic sequencer where the portcullis slides up, there is a sfx while it does that and a vfx that is attached on the portcullis and creates dust while it goes up. I want to package all that in a nice little prefab or entity (cant remember the wording), then I can copy it around and use it many times, like how devices can do that if you copy them in a group.

  2. Lower memory: Removing attributes from assets that I don’t want and helping performance, also lowering in-game memory so we can add more content without worrying about the limits of the level.

  3. Linking levels together: This is a bit unrelated, but if scene graph defines attributes that include entire levels and allows us to load/unload them on demand, or spawn instances of it for asynchronous multiplayer, that would unlock a new style of game, something that hasn’t happened since ongoing games were unlocked with Salvage Survival back in 2021.

  4. Better project customization and organization: The ability to create my own prefabs or entities and save them in a global gallery that I can then use from other projects, so we can make game types bundled with scripts and assets, and later down the line link them as a general script when the player enters another level (so we don’t rebuild all devices again). Or generally rendering the use of multiple levels non-applicable since we can build an entire game in one single level (my pc will cry though, hopefully its optimized)

@Wertandrew Thank you for your feedback. While I cannot guarantee a response, I can confirm that this has been forwarded to the appropriate team.

Hey @Wertandrew.

  1. Create visual systems: For example, say I have a portcullis that opens with a switch and has a nice animation with a cinematic sequencer where the portcullis slides up, there is a sfx while it does that and a vfx that is attached on the portcullis and creates dust while it goes up. I want to package all that in a nice little prefab or entity (cant remember the wording), then I can copy it around and use it many times, like how devices can do that if you copy them in a group.

This is one of the main design goals with the prefab system and is definitely possible. You’ll also be able to make prefabs based on other prefabs, where you can layer on changes to the base. This way you could also create specialized portcullises and re-use those throughout your map.

  1. Lower memory: Removing attributes from assets that I don’t want and helping performance, also lowering in-game memory so we can add more content without worrying about the limits of the level.

We’ll be working on this and aim to improve it continuously over time. As of the experimental release things are very unoptimized in terms of memory use, so we aren’t where we intend to be with memory reduction yet but we are working on it.

  1. Linking levels together: This is a bit unrelated, but if scene graph defines attributes that include entire levels and allows us to load/unload them on demand, or spawn instances of it for asynchronous multiplayer, that would unlock a new style of game, something that hasn’t happened since ongoing games were unlocked with Salvage Survival back in 2021.

We’ll have to test this all out and see how it is scaling but prefabs can be spawned from Verse and don’t have any restriction on how big they can be. So you should be able to use prefabs to build loadable regions in the world, swap out entire scenes, etc. The one caveat here is that prefabs only contain entities and not Actors. So you aren’t able to package up actor based content into the prefab to be loaded with the level (ex: existing creative devices), which would reduce the utility of using prefabs for this purpose in the short term. We’ll be expanding the capabilities of what you can do with components over time so this problem will get smaller and smaller as entities and components start to reach parity with Actors.

  1. Better project customization and organization: The ability to create my own prefabs or entities and save them in a global gallery that I can then use from other projects, so we can make game types bundled with scripts and assets, and later down the line link them as a general script when the player enters another level (so we don’t rebuild all devices again). Or generally rendering the use of multiple levels non-applicable since we can build an entire game in one single level (my pc will cry though, hopefully its optimized)

We’re working on it.

1 Like

Thanks for the clarifications Kurtis. I played with the system today and it definitely has potential. Hopefully the device workflow is not deprecated with the new approach because it fits perfectly with making prefabs that newcomers will be able to understand well (in addition to verse). Also would love live edit support, for example a hotkey that allows me to select parts of an entity, then when turned off I select the entity itself. Also when you hover with the phone on a prefab, the outline for each entity has different colors to show the parent and the children.

My perfect workflow is to use live edit instead of the prefab editor to make the overrides, because I can form the new version based on its surroundings

No plans to remove the existing device workflow. Longer term we also plan to create devices entirely as scene graph prefabs, which will necessitate creating some additional capabilities to provide some form of higher level API for the prefab, just like devices have today. We haven’t designed that yet so I can’t say if it’ll be 1:1 with what creative devices look like right now but it would be very similar.

1 Like

That sounds incredible! Great thinking

Being able to create large environments that don’t take up too much memory is good,
To effectively populate that large environment with a similarly large array of devices, takes up a lot of memory, and also with each specific device, they start to malfunction from having too many.

I find this to be a bit unbalanced and worry about limitions caused by the number of devices actually being used. My current project is in the high 80k when outside of the loading range of environmental props, after getting rid of unessential devices.

I love the way devices work.

Number 4 - Global gallery, yes, yes… I often think how good your palette idea from one of your feedback threads would be.

1 Like