We're just a few short weeks away from the 2.0-stable release of Orchestrator, and we're pleased to announce the first release candidate build, 2.0.rc1.

Jump to the Downloads section and give it a spin now, or continue reading to learn about the highlights and other improvements in this release.

Improved MacOS support

In previous pre-release builds, Orchestrator's MacOS build was not correctly built as a universal library that could be used by both MacOS environments using x86_64 and arm64. Thanks to a fantastic community contribution #f705d1e, the MacOS builds for Orchestrator are fully universal.

Improved node styles

The team has been testing with the upcoming Godot 4.3 release, planned for April 2024. The Godot development team introduced some new style changes for the Visual Shader subsystem, which we felt looked significantly better than the older rendering of Godot's GraphNode widgets. Rather than continue with the older style, we thought it made more sense for Orchestrator to move ahead and take advantage of the new Godot 4.3 styles.

In this release candidate, you will notice that the styles used for rendering the graph nodes changed. The headers for the nodes have a bit more space and utilize better fonts, and we've reduced the color bloat by using a darker color for the lower border portion of each node. Below is a side-by-side comparison of the old and new rendering styles. We'd love to hear your feedback.

Screenshot

Improved Orchestration file list

Another suggestion from the community was to address the awkwardness of the Orchestration file list. In the older releases, the files were listed by their fully qualified resource name, i.e. res:///.os. It wasn't easy for users who used nested directories or descriptive filenames to know what file was being modified without needing to constantly resize the file list width.

In this release, the file list will now default to rendering the file names using their stem names first, i.e. .os, and if there are multiple files that have the same stem name, only then utilize the file path to differentiate the files where there are duplicate stem names. In short, this is the same behavior that users experience in the "Script" tab.

Here's an example of the before and after:

Screenshot

Additional node types

The Orchestrator 2.0.rc1 build also includes two brand-new scene nodes.

Instantiate Scene node

The Instantiate Scene node provides users with the ability to open and create the scene from a .tscn or .scn file in the Godot project. The node output provides access to the root-scene node of the instantiated scene. This new node requires that you supply a path to the .tscn or .scn file as an input, as shown below:

Screenshot

Users can use the output scene root node instance to add the scene to an existing scene by passing the node into the add_child function call node in a later step in the orchestration. For users who are familiar with GDScript, this new node is actually a bit easier to use compared to the following GDScript code:

var packed_scene = load("res://<path>/<scene_filename>.tscn")
if packed_scene and packed_scene.can_instantiate():
  var scene_root = packed_scene.instantiate()
  add_child(scene_root)

Get Autoload node

The Get Autoload node provides direct access to any configured autoload in your Godot project. An autoload is what Godot refers to as their scene singleton pattern. These are typically GDScript, C#, or Orchestration scripts that have a single instance that can be referred to by name from anywhere in that scene. These objects are created and added to the scene automatically by Godot.

Games use Autoloads for various reasons, but typically, they're used to store the global state. It's essential for any script, whether text-based or visual-script based to access this global state in an easy way to use or mutate that state as needed. An autoload node can be added by searching for Autoload in the actions dialog and selecting the desired autoload from a drop-down list in the node's inspector dock:

Screenshot

Bug fixes

In addition to the new changes highlighted above, there were several bug fixes which include:

  • Correctly applying the editor scale factor in the main view
  • Correctly update exported default values in the inspector
  • Correctly coerce specific types of values using the ComposeFrom node
  • Correctly add output pin for functions that return Variant types
  • Delegate all non-Orchestrator functions to Godot, not to the script
  • Fixed resolution of GetSceneNode and NodePath pin values
  • Do not attempt to free null arrays, reporting "p_ptr" errors in the output panels
  • Resolved editor start-up crashes on certain Linux distributions
  • Improved the "All Dialogs" context-sensitivity and search functionality

Changes

There were 31 changes for this release. In the project's change log, you can review all changes in this release.

This release is built from commit 922aceb.

Documentation updates

As a part of this release, we've also updated the documentation layout. There are ongoing discussions in hopes of adding translations for other languages, so keep an eye out for those changes!