Hey Chris,
Thanks for taking the time to write up an answer to the questions. Using a bundled approach was the first idea that came to mind as well. We already use bundles in conjunction with precaching, and our game is open world, though the levels are still in flux (the initial spawn point remains mostly unchanged). Normally, our bundles ignore precached PSOs. I did a test run where the bundles also tracked precached PSOs and created a second bundle specifically for this. Unfortunately, precaching still fired the same number of requests between each level load.
We’re already hiding the requests behind loading screens.
Preloading some of the assets was another idea I had as well. The problem I saw was components can have different material combinations to their default objects when placed in a level, so asynchronously loading some assets from the next level would likely require managing a list of component-to-material combinations. Which felt a little backwards because levels already handle this right?
To quickly test this, I manually added a chunk of the starting area to the main menu and placed it behind some rocks. This did shift the work, but identifying each precached component making a request and moving it over was tedious. Additionally, this didn’t address HLOD components, which wouldn’t translate well to the world composition-based main menu level.
This is where I’m particularly interested in how FN is handling this.