Not using Bolt to load scenes

My project already has scene management (async loading with an overlay showing progress, etc), so I don't want to use Bolt to handle scene loading for me. The project is broken up into several scenes, but they all end up loaded together and there aren't different scenarios requiring different levels to be loaded depending on game mode or other user selections. Therefore, I can run the same scene loading logic on client and server, before even starting Bolt.

That leads to some questions:
  • The `GlobalEventListener.SceneLoadLocalDone` and `GlobalEventListener.SceneLoadRemoteDone` callbacks aren't called, since I've completed scene loading before starting Bolt; is there a way to tell Bolt to fire those events without loading a scene? Or a way to have Bolt use my scene loading functionality (to keep my loading screen / progress bar / other related features)?
  • The tutorial has player prefabs being instantiated by the server in the `SceneLoadLocalDone` and `SceneLoadRemoteDone` callbacks. If I can't get those to fire, my plan is to use `BoltStartDone` in place of `SceneLoadLocalDone` to instantiate the server controlled player (and other dynamic entities), and `Connected` to instantiate the client controlled player. Is that reasonable, or are there other events I should prefer?
  • In my initial test, everything seems to work in the editor (with the exception of something weird happening with my lighting), but when I run a standalone build I end up with nothing rendering besides the skybox. I haven't really dug into what's going wrong there yet, but does Bolt's scene loading functionality do anything else I should be aware of besides loading the scene and firing event listener callbacks?

Is the source of Bolt available anywhere? It would be immensely helpful in working stuff like this out, and I'm assuming with the base asset being free that the revenue is mainly from the cloud infrastructure / service side, but maybe there's enough from the 'Pro' licensing to keep source availability for only licensees?

Best Answer

Answers

  • Ah, that would work. Loading and activating an empty scene should be fast enough to do behind an indeterminate progress spinner I can set up before starting Bolt.
  • Oops, no it doesn't, since Bolt doesn't use (and doesn't have a way I can find to use) additive scene loading, so the scene replaces what I already have. I went back to the other approach described in the original post and it seems to be working fine (the lighting problem was because I needed to make the additively loaded scene active, and the standalone issue is coming from a different asset).

    So, does Bolt's scene loading do anything more than load the scene on the server, trigger clients to load the scene locally, and fire the scene loading related events? Is there any other functionality that might be missing as a result of not having Bolt handle any scene loading?