+3
Under Review

Mandelbrot like infinite zoom and free real state

André Ivankio Hauer Ploszaj 1 year ago updated by Lazlo Bonin (Lead Developer) 1 year ago 1

One issue with most visual scripting environments is the "Factorio Problem". In that game, factories (and belts) have a fixed size and as our production line grows more complex, we starts spending more time making space for further development than thinking about what needs to be developed. We start jerry rigging things until we can't manage the network anymore. And that's the fun of the game, what keeps us busy.

^ You can't add anything there - as if it wasn't twisted enough.

In most visual scripting environments, we have a maximum zoom or likewise even a fixed view. Usually they are the intended working zoom like 1x in Bolt where we can read node names and have a reasonable mouse hit box for the connections. It wouldn't help start working with a smaller zoom because we aren't able to read node names or click sockets. We can work really only between 1x and 0.8x, smaller zooms are mostly for visualization purposes.

It also wouldn't help laying the initial nodes very far apart because not always we know ahead of time where we'll need to expand. Also we would need monitors with more than 8k pixels to keep the same work area.

Nodes and texts on Bolt are fixed sized and after a while, the Factorio Problem arises. Like 3D gizmos on Unity's viewport packed together.

What if, like 2D gizmo option, we had dynamic sized nodes relative to the screen, only their positions were stored? Or even better if the nodes had a scale set to the zoom we were working in. Like the advantages of creating using polygons and vectors instead of voxel grids and bitmaps.

Imagine if in Factorio you needed to insert 5 new blue circuit factories because of a new demand. No biggie if you could just zoom in and squeeze them in mandelbrot style and zoom back to the broader view.


Yes we have Super Units in Bolt that can condense in a small space a whole new universe of nodes. But then we need to create interfaces for them and we kinda shy away from using them for trivial calculations. Maybe I should start using them more, but I still like the bird's eye view with a tiny network, black boxes are deceiving. We could really use a more evident Super Unit node anyway atm.

Something like this but not this





instead of

Bolt Version:
Unity Version:
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):
+1
Under Review

That's a clever and fascinating idea, I must say!

The direction we're headed with Bolt 2 is to:

  • Make units much more compact
  • Make the creation of Super Units much easier (select a group of node; hit a button; voilà)

But this wouldn't be incompatible with a scaling system like this one. The problem is that all graphics would have to be vectorized for rendering to not be ugly at close zooms, like on your first example screenshot. Unity seems to be moving towards a flat theme anyway, so it might be possible. 

In all likelihood however, I don't think we're going to be implementing such a drastic new paradigm for Bolt 2.0. I'm not entirely closed to the idea for the future though, your last screenshot is convincing!