0
Answered

Standalone logic checkin?

Bartholomew 3 years ago updated by Lazlo Bonin (Lead Developer) 3 years ago 6

Does bolt generate any sort of stand alone file that can run logic without the Bolt editor being installed in Unity?

In the past I’ve used uscript and nottorus. Both editors bothered my partner partner due to the errors associated with the plugins. But in both cases I could  check in the base logic generated by these tools - so he could experience my work without the overhead of the actual plugin being installed on his machine (and thus I only have the given visual script editor installed on my local machine.)

Is there a way to do this in bolt? Just to be clear, I am not asking if Bolt generates raw, clean, human editable C-sharp. In the case of Uscript (for example) it creates an auto-generated c-sharp file, not intended for human reading/editing. 

Side Note: I asked this previously in a personal email and received a short response from the moderator that indicated this is not possible. Thought I'd post here publicly, to make sure I understood correctly -- and  I'd appreciate any further information on this topic (for example, if there is any intention to add this sort of feature in the future.)

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

Hi there Bartholomew - i'm very new to Bolt - and even Unity - (after using Unreal for some time now) - but now after using bolt a very short time - i realize that it does not write c# files - i understand this is not your question - but is it reallytrue that it does not write c# files? 

Is it that hard to make a plugin that reads/writes c# files? - it could have a Bolt section - with extra bolt specific visual code for placing elements etc. - but if you did not have bolt - or simply wanted to change the c# yourself - then what can you do with it now? 

Im really surprised about this - because i thought it actually had some value that it was mixing the visual script with c#... now im not entirely sure.


Answered

Hi Bartholomew!

Bolt 1 does not generate C#, it all runs from reflection in memory.

Bolt 2, however, will generate human-readable C# files automatically!

To be clear, however, you will still require the Bolt runtime to run these C# files in your builds, so you can't just generate C# from Bolt, then delete Bolt. At least, not on a large scale. If you just want to use one or two specific scripts, you'd always be able to open them up, strip anything Bolt-related (we're striving for this to be minimal glue code), and use them in any other Unity project.

Let me know if that answers your question!

Thanks for your reply. Super helpful. 


Just to be clear - when you say “Bolt runtime” - does this mean there will be some sub-component of Bolt that can be checked into the group project and shared so that anyone on my team can read my bolt logic. Or does this imply the entire bolt editor would still need to be owned/installed on every machine.

So for example, if I wanted a collaborator to see my logic - would I be checking in just A) my bolt generated c# file.  B) some sort of stand alone run-time component that allows others to read those custom c# files. 

I know I’m being annoying and asking for over clarification on the answer - but I love Bolt and would love to be able to continue to use it on my current project.  

It sounds like Bolt 2 is very exciting whatever the case. Is there any estimate on how far out it is? 

Thanks so much for your help. Much appreciated. 


Bolt is divided in two: the Runtime and Editor DLLs. The Runtime part holds the components, scriptable objects, and anything that is needed to run your game in a build. The Editor part holds the editor windows, inspectors, configuration, utilities, etc. It's excluded from builds.

You could, I guess, exclude the editor part from source control and the Bolt components would still be found and run. However, the Runtime is also under the Asset Store EULA, so your teammates would still need a Bolt license to be legally allowed to have these assets in their project.

We don't have an ETA for Bolt 2, but we intend to publish frequent in-dev alphas along the way.

Yes thanks Lazlo for replying -

Can you give any example of what could be Bolt specific "glue" code?

Thanks

All our custom runtime systems are "glue" code, like the Variables system, the Event system, the graph nesting, etc. Likewise, C# has no notion of State Machines, so it is entirely implemented in Bolt-only classes.