Skip to content

Commit

Permalink
Add editor icons, clean-up some text
Browse files Browse the repository at this point in the history
  • Loading branch information
Naros committed Apr 14, 2024
1 parent a45722a commit 3e5650f
Show file tree
Hide file tree
Showing 24 changed files with 304 additions and 157 deletions.
37 changes: 22 additions & 15 deletions docs/about/complying-with-licenses.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,17 @@ Orchestrator is created and distributed under the <ExternalLink href="https://ww
The project does not have a sole owner, as every contributor that submits code to the project does so under the same license and keeps ownership of their contributions.

The license is the legal requirement for you (or your company) to use and distribute the software (and derivative works, including games made with it).
Your game or project can have a difference license, but it still needs to comply with the original one.

:::warning
In your project's credits screen, remember to also list third-party notices for assets you're using, such as textures, models, sounds, music, and fonts.
Your game or project can have a different license, but it still needs to comply with the original one.

:::tip
In your project's credits screen, remember to include third-party notices for assets you're using, such as textures, models, sounds, music, and fonts.
Free assets in particular often come with licenses that require attribution.
Double-check their licenses before using those in public projects.
:::

### Requirements
### Requirements {#requirements}

For derived works that include Orchestrator, but do not modify or change its source, should include the following:
For derived works that include Orchestrator, but do not modify or change its source, include the following:

```text
This game uses Orchestrator, which is available under the following license:
Expand All @@ -42,41 +41,49 @@ For derived works that include Orchestrator, but do not modify or change its sou
limitations under the License.
```

:::warning
For works that included a modified build of Orchestrator, be sure to comply with the full Apache License, Version 2.0 requirements regarding tracking changes, and that all source files of the original work retain the `Copyright (c) 2023-present Vahera Studios, LLC and its contributors` copyright and the Apache License, Version 2.0 text in each source file.
:::danger[Critical]
For works that not only include Orchestrator, but includes a modified version of the plug-in, be sure you company with the full <ExternalLink href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</ExternalLink> requirements.
These requirements not only require the inclusion of the above text, but all source files of the original work must retain the original copyright and license preamble.
Additionally, any changes made to the source must be recorded in the headers of the source files.
While changes are not required to be submitted back to the original project, they're welcomed!
:::

:::info
:::tip
Your game does not need to be under the same license as Orchestrator.
You are free to release your Godot projects under any license and to create commercial games with this plug-in.
You are free to release your Godot project under any license, and to create commercial games with this plug-in.
:::

### Inclusion

The license does not specify specifically how it must be included in your game, so there are a number of options that you can freely use depending on how you distribute or wish to share license information with your users.
These are the most common approaches and you only need to implement one, not all.
The license does not specify specifically how it must be included in your game.
There are a number of options that you can freely use depending on how you distribute or wish to share license information with your users.
These are the most common approaches, and you only need to implement one, not all.

#### Credits screen

Include the above license text somewhere in the credits screen.
Include the above [License text](#requirements-text) somewhere in the credits screen.
It can be at the bottom after showing the rest of the credits.
Most studios use this approach with open source licenses.

#### Licenses screen

Some games have a special menu (often in the settings) to display licenses.
This menu is typically accessed with a button called `Third-party Licenses` or `Open Source Licenses`.
If your game uses such a style, include the above [License text](#requirements-text) there.

#### Accompanying file

If the game is distributed on desktop platforms, a file that contains the license text can be added to the software that is installed on the user's PC.
If the game is distributed on desktop platforms, a file that contains the [License text](#requirements-text) can be added to the software that is installed on the user's PC.

#### Printed manual

If the game includes printed manuals, license text can be included there.
If the game includes printed manuals, [License text](#requirements-text) can be included there.

### Third-party licenses

Orchestrator is free and open-source, and its built using other free and open-source technologies.
Each of those technologies have their own respective licenses, and thanks to them, Orchestrator is possible.

#### Godot GDExtension (godot-cpp)
```text
Copyright (c) 2017-present Godot Engine contributors.
Expand Down
2 changes: 2 additions & 0 deletions docs/about/credits.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ sidebar_position: 7

# Credits

These are assets used by this documentation, but are from other sources.

| Image Names | Attribution | License |
|:--------------------------------------------------|:------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------|
| scripting_first_script_rotating_godot.gif | Juan Linietsky, Ariel Manzur and the Godot community. | <ExternalLink href="https://github.com/godotengine/godot-docs/blob/master/LICENSE.txt">LICENSE.txt</ExternalLink> |
Expand Down
11 changes: 9 additions & 2 deletions docs/about/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Orchestrator's documentation is available in various languages and versions.
Expand the language or version selector in the top navigation panel to see the possible values.
:::

Welcome to the official documentation of <ExternalLink href="https://orchestrator.vahera.com">Orchestrator</ExternalLink>, the ultimate Visual Scripting solution specific designed for Godot platform 4.2 and later.
Welcome to the official documentation of <ExternalLink href="https://orchestrator.vahera.com">Orchestrator</ExternalLink>, the ultimate Visual Scripting solution specific designed for Godot platform.
If you are new to this documentation, we recommend that you read the [introduction page](./introduction.md) to get an overview of what this documentation has to offer.

The table of contents in the sidebar should let you easily access the documentation for your topic of interest.
Expand All @@ -22,4 +22,11 @@ Orchestrator is an open source project developed by Vahera Studios, LLC in colla
The documentation team can always use feedback and help to improve tutorials, class reference guides, and more.
If you don't understand something, or cannot find what you are looking for in the docs, help us make the documentation better by letting us know!

Submit an issue or pull request on the <ExternalLink href="https://github.com/Vahera/godot-orchestrator-docs">GitHub repository</ExternalLink> or help translate the documentation into other languages.
Submit an issue or pull request on the <ExternalLink href="https://github.com/Vahera/godot-orchestrator-docs">GitHub repository</ExternalLink> or help translate the documentation into other languages.

## Offline documentation

To browse the documentation offline, you can clone the <ExternalLink href="https://github.com/Vahera/godot-orchestrator-docs">GitHub repository</ExternalLink>.

This documentation is built using <ExternalLink href="https://docusaurus.io">Docusaurus</ExternalLink>, using React and Node.JS.
Simply install the Node.JS package manager `npm`, and you can easily build and serve this documentation locally.
7 changes: 5 additions & 2 deletions docs/about/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ In case you have trouble with one of the tutorials or your project, you can alwa
## About Orchestrator

Every game emerges from a single idea, and the creation of a game involves many moving parts.
Godot Orchestrator's goal is to provide a series of easy to use, highly customizable features to create game logic, interactions, and supporting logic using visual scripting rather than traditional text-based code.
Orchestrator's goal is to provide a series of easy to use, highly customizable features to create game logic, interactions, and supporting logic using visual scripting rather than traditional text-based code.

Orchestrator is completely free and open source under the <ExternalLink href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</ExternalLink>.
The game you create is yours, down to the last line of code.
Expand All @@ -31,7 +31,7 @@ This plug-in's development is fully independent and entirely community-driven, g
This documentation is organized into several sections:

* **About** contains this introduction, as well as information about the plug-in, its history, licensing, authors, and more.
It also contains the [Frequently asked questions](../about/faq)
It also contains the [Frequently asked questions](../about/faq) section, helping answer some of the most common questions.

* **Getting Started** contains all necessary information on using the plug-in to make games.
It starts with a **Step by Step** tutorial which should be the entry point for all new users.
Expand All @@ -47,6 +47,9 @@ It also has sections intended for advanced users and contributors, with informat
* **Community** is dedicated to the life of the Orchestrator plug-in's community.
It refers to various community outlets and discords, and contains a list of recommended tutorials and materials beyond this documentation.

* The **Script Node Reference** documents each Orchestrator visual script node type, how you can use them, their purpose, and how to configure them.
This is where you should check if you don't understand a specific node or are unsure how to locate a specific node or feature.

In addition to this documentation, you may also want to take a look at the various <ExternalLink href="https://github.com/Vahera/godot-orchestrator-examples">Orchestrator example projects</ExternalLink>.

## About this documentation
Expand Down
6 changes: 3 additions & 3 deletions docs/about/release-policy.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The description below provides a general idea of what to expect, but what may ac

## Versioning

Orchestrator loosely follows <a href="#" class="external-link">Semantic Versioning</a> with a `major.minor.patch` version system.
Orchestrator loosely follows <a href="https://semver.org/" class="external-link">Semantic Versioning</a> with a `major.minor.patch` version system.

* The `major` version is incremented when major compatibility breakages happen which imply significant porting work to move projects from one major version to another.

Expand Down Expand Up @@ -65,8 +65,8 @@ We recommend using Orchestrator 2.0 for all new projects, as the Orchestrator 1.
The Orchestrator contributors do not work under any strict deadlines, but we strive to publish minor releases relatively frequently.
We generally try and focus on a three-month cadence for a minor release, starting at the first month of the calendar quarter and releasing a stable version of that minor release toward the end of the quarter.

For example, Orchestrator 2.0 entered pre-release review for testing at the start of January 2024, and eventually was released stable in March.
In addition, Orchestrator 2.1 entered development in early April and is planned for a stable release sometime toward the end of June 2024.
For example, Orchestrator 2.0 entered pre-release review for testing at the start of January 2024, was released stable in March 2024.
In addition, Orchestrator 2.1 entered development in early April and is planned for a stable release toward the end of June 2024.

## What are the criteria for compatibility across versions?

Expand Down
72 changes: 59 additions & 13 deletions docs/getting-started/introduction/first-look-at-the-plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,41 @@ You access the main workspace of the plug-in by clicking on the tab labeled **Or

### Graph view

Initially, the main workspace is empty, only showing the file list.
This is because no `Orchestration` resources have been opened.
By either creating a new orchestration using `File > New Orchestration`, or opening an existing orchestration, the main workspace will include other widgets.

<Figure image="/img/getting-started/graph-workspace.png" caption="Orchestrator graph workspace"></Figure>

Initially, the main workspace will be mostly empty because no orchestration resources have been opened.
By either creating a new orchestration, using `File > New Orchestration`, or opening an existing orchestration, the main workspace will include a large graph canvas in the center of the main panel, and a set of panels to the right called the **Component** view.
In the above example, an orchestration has been opened.
To the left is the **Graph** canvas where you place visual script nodes to create logic.
At the top of the **Graph**, there is a tab bar, where you can quickly navigate between different **Graph** components or user-defined **Function**s.

On the right is the **Component** view, where high-level components can be added.

### Component view

The **Component** view is where you can quickly add, rename, and remove various components from the orchestration.

<Figure image="/img/getting-started/component-view.png" caption="Orchestrator component view"></Figure>

The **Component** view is where you can quickly add, rename, and remove various components from the orchestration.
* The **Graph** section always defines at least one graph called **EventGraph**.
This is where you will define all your interactions with the Godot engine to handle overrides, such as when your script receives *input* or updates each game tick.

* The **Functions** section allows for defining user-defined functions.
User-defined functions are a great way to not only expose functionality to the outside of your script, but to also organize your code so that the visual scripts do not become cluttered.

* The **Macros** section is currently unimplemented, and will be enabled in a future patch.

* The **Variables** section allows for creating unique named objects for storing values.
Variables are associated with a specific Godot type can can either be publicly accessible or scoped to the script.
A variable will be publicly accessible if it has the <EditorIcon name="GuiVisibilityVisible" /> icon.
The variable is not publicly accessible if it has the <EditorIcon name="GuiVisibilityHidden" /> icon.

* The **Signals** section is for user-defined signals, allowing outside observers to connect and be notified when you emit a signal.

To add a new **Component** type to the `Orchestration`, use the <EditorIcon name="Add"/> button.
Additionally, for **Functions**, you can also override several Godot built-in virtual functions using the <EditorIcon name="Override"/> button.

### All actions dialog

Expand All @@ -33,6 +58,21 @@ To begin adding logic to your script, use the right-mouse button to open the **A
This dialog is where you can search for specific nodes that you wish to add to the graph.
To add a node, either select the choice and press the **Add** button or simply press **Enter**.

Actions are grouped into the following high-level categories:

* Functions that you can call on the object, denoted with the <EditorIcon name="MemberMethod"/> icon.
* Properties that you can access, denoted with the <EditorIcon name="MemberProperty"/> icon.
* Signals you can connect and react to, denoted with the <EditorIcon name="MemberSignal"/> icon.
* Overridable functions, denoted with the <EditorIcon name="MethodOverride" /> icon.
* And Orchestrator script nodes, denoted with the <EditorIcon name="PluginScript" /> icon.

:::tip
The <EditorIcon name="NonFavorite"/> icon identifies an action that is currently not a favorite.
If you use a specific action frequently, it's recommended that you click the <EditorIcon name="NonFavorite"/> button to make it a favorite.
Favorites are listed at the top of the **All Actions** dialog and will have a new <EditorIcon name="Favorites"/> icon.
If you later wish to unfavorite an action, simply click the <EditorIcon name="Favorites"/> button.
:::

:::tip
Right-clicking the graph canvas opens the **All Actions** dialog using the script's base type as the context.
If you drag from a visual script node's pin and release the mouse, the **All Actions** dialog will be opened using the context of the pin.
Expand All @@ -45,9 +85,12 @@ A visual script node is the building block of an orchestration, that you connect

<Figure image="/img/common/example-orchestration.png" caption="Example of visual script nodes"></Figure>

Script nodes consist of two types of pins, execution or control flow pins, identified by the white arrows, and data pins which are identified by colored dots.
The pins on the left side of a script node are inputs, they provide a way for you to pass execution flow or data into the node.
The pins on the right side of a script node are outputs, they provide a way for you to pass execution flow to another node, or output data for another node to consume.
Script nodes consist of two types of pins, <EditorIcon name="VisualShaderPort"/> execution or control flow pins, and data pins which are identified by colored dots.

* **Inputs**<br/>
The pins on the left side of a script node are called inputs, which allow you to pass data or control flow to the node.
* **Outputs**<br/>
The pins on the right side a script node are called outputs, which allow you to pass data or control to another node.

Visual script nodes can be added to an orchestration using various methods, which include:

Expand Down Expand Up @@ -117,28 +160,31 @@ One of the major benefits of Orchestrator is it recognizes data elements that ar

The following drag-n-drop options exist:

- Drag a scene node from the **Scene** dock to get a reference to that scene node in the script.
- Drag a property from the **Inspector** dock to access either a **Get** or a **Set** for the specific property.
- Drag a resource from the **FileSystem** dock to either obtain its path or to create a **Preload** node for the resource.
- Drag a scene node from the **Scene** view to get a reference to that scene node in the script.
- Drag a property from the **Inspector** view to access either a **Get** or a **Set** for the specific property.
- Drag a resource from the **FileSystem** view to either obtain its path or to create a **Preload** node for the resource.

### Multi-node operations

Bulk operations improves efficiency, and having access to such tools makes working with visual scripting less tedious.
You can use the **Left Mouse Button** to click on the graph and begin to drag to select multiple script nodes.

With multiple node selected, you can cut (`Ctrl+X`), copy (`Ctrl+C`), and paste (`Ctrl+V`) as needed.
With multiple node selected, you can <EditorIcon name="ActionCut"/> cut (`Ctrl+X`), <EditorIcon name="ActionCopy"/> copy (`Ctrl+C`), and <EditorIcon name="ActionPaste"/> paste (`Ctrl+V`) as needed.

:::tip
You can also quickly duplicate script nodes using `Ctrl+D`, which is a shortcut for copy-n-paste.
You can also quickly <EditorIcon name="Duplicate"/> duplicate script nodes using `Ctrl+D`, which is a shortcut for copy-n-paste.
:::

### Undo and redo

At this time, Orchestrator does not officially support Undo/Redo operations in the Godot Editor.
It is currently under development, and is planned for a future release.

:::info
This feature is currently under development and is planned for a future release.
:::

## Integrated help

You can access the documentation related to any visual script node by selecting the node, right-click, and selecting the **View Documentation** option.
You can access the documentation related to any visual script node by selecting the node, right-click, and selecting the <EditorIcon name="Help"/> **View Documentation** option.
This automatically redirects the Editor's main view to the Editor Help window, where the script, associated Godot method, or other related object's help will be shown.

Loading

0 comments on commit 3e5650f

Please sign in to comment.