Version 1.4 will be a major new version for Bolt, which will be dubbed the Live Update.
Why? Because with this update, Bolt will support
fully fledged live graph editing. That's right: most of your game's development could be done while in play mode!
Think of it this way: scripting today is like pre-rendered 3D. You make changes, hit compile, wait a while, then play it. If you need to make adjustments, you have to stop and go through the motions again.
Bolt Live is the equivalent of real-time 3D: the changes you make are instantly reflected in your game, on all objects, with zero second of wait.
Conceptually, this means we are completely removing iteration time when creating logic. No more compilation, no more entering / exiting play mode: just do it all while it runs, and tweak as you need. I believe this has the potential of changing how we approach designing logic and games, and it's the direction I want to take with the future of Bolt.
Concretely, this means:
Changes made to macros in play mode will be saved
Changes made to macros in play mode will be instantly shared across all instances of those macros
Graph nests (machines and nested graphs) will be able to change their nested graph while in play mode (e.g. switch macro, or change source)
Flow graph input and output ports will be editable during play mode
While changing the architecture to allow for this, the following features also become possible:
Asynchronous flow on any event which allows for complex wait patterns (e.g. waiting inside loops or sequences)
Running graph logic during edit mode (e.g. gizmos, custom buttons)
Multiple graph window tabs
Sidebar with variables and graph inspector while in full-screen mode
Preserving the current nested graph path when entering play mode
It also has a huge performance benefit: macro graphs will no longer be instantiated, meaning there will no longer be a play mode entry delay. Likewise, the memory footprint of Bolt will be greatly reduced.
Finally, this brings Bolt's reflected runtime much closer conceptually to how the C# language is structured. This sets the table for robust, human-legible script file generation in the future (still slated for Bolt 2.0).
Oh, and one last bit of good news: as of now, 1.4 will likely not require a manual update from v.1.3.
Here are the changes to the roadmap and product cycle:
Workflow features that were planned for v.1.4.2+ will be moved to v.1.5.x+. Features planned in v.1.4.1 will remain slated for v.1.4, except for tweening.
Further versions will also be moved by one minor version increment (e.g. v.1.5 => v.1.6)
v.1.4 will require Unity 2017.4, because it is a Long-Term Support (LTS) version that will keep receiving patches for at least two years
v.1.4 will be tested and adjusted to be compatible with Unity 2018.1
Assembly definition files will be fully supported starting in v.1.6
Unless a critical issue arises, no further patches will be developed for v.1.3.0
I apologize for delaying the workflow features again. Believe me when I say can't wait to implement them! (Seriously, don't we all just want approximate string matching in the fuzzy finder?!) I am deciding to prioritize a strong core architecture to minimize bugs and maximize efficiency when developing new features later on.
Likewise, I understand some users who have already updated to Unity 2018 are having some minor issues with v.1.3.0. However, because this is still a minority of users, I am choosing to provide full support only as part of v.1.4.
Needless to say this is a big architectural change!
We will need an army of testers to make sure the Alpha and Beta versions of the Live update catch any bug or regression. As usual, there will be no stability guarantee, so you are advised to test on a copy of your project or on an entirely new blank project.
If you want to help test, join the #testing channel on Discord. Each new link to an alpha or beta preview build will be posted there as soon as it's ready.
There is no ETA for v.1.4 as I don't want to rush such a big change, but to promote transparency, I'll regularly update the task list on the forum with my current progress: Task List
You can also follow me on Twitter @ludiq_io to get sneak peeks of the in-dev features!