0
Answered

One time AOT

ddalacu 3 years ago updated by .jayderyu 3 years ago 2

The idea is, we want to build our game once(do the ahead of time step) and then trough asset bundles update our game with new graphs but no new code, could this work if in the linker we mark all assemblies with preserve all? Could we do the ahead of time step for all the assemblies?

Bolt Version:
Unity Version:
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):
Answered

Hi ddalacu,

No, even if you mark all assemblies as preserve all (which would create gigantic builds, probably something to avoid), Bolt would not run properly. It relies on generic types to provide high-efficiency reflection, and these need to be stubbed through the AOT pre-build step. Therefore, only the graphs/methods/properties that were available during AOT pre-build will be compatible with your future asset bundles.

Hope this clarifies things!

I know this is a month old, but I'm confirming what's being said.

AOT building is a pre-build step that makes sure that generics are referenced accordingly for various graphs. This is required for the graphs to run on the differing platforms. So due to this there is no way to create new content prefabs or bug fixes in macros and update through asset bundles. Am I correct in this statement, or is AOT something different than I think it is and I'm off basis.

If this is correct then this is very unfortunate and I wish I saw this earlier. With Bolt not  being a script or compiled code the entire purpose for myself getting Bolt was for the reasons of asset bundle updates and because I enjoy VPL. My c# code is experienced enough that I don't need the VPL and the VPL is slower that what I can do in script. But script required recompile. The gain of asset bundle updates with content prefabs and fixes was well worth the slower dev time.

I'm hoping I misunderstood the role of AOT.