
A tour of the Flowgraph Editor
Flowgraphs are saved on the disk as XML files, but can be parsed and edited by the Flowgraph Editor in order to provide a visual interface to the process of creating game logic.

Components
This section of the Editor contains all the flownodes in your project, organized into neat categories. Let's take a quick look inside this, open up the Misc folder. You should be presented with a set of nodes, assigned to categories:

- Graph: This refers to a context containing a set of nodes linked to each other.
- Node: This is a visual representation of a class that can receive data and events from its input ports, as well as send data via its output ports. It is connected to other nodes in graphs to create logic.
- Port: This is a visual representation of a function. Nodes can specify multiple input and output ports, and can then send or receive events from them.
You may be missing the node marked as Debug here; CryENGINE assigns categories to nodes as a way of indicating where it's appropriate for them to be used.
- Release: This node is suitable for use in production
- Advanced: While this node is suitable for use in production, it may have complex behavior in certain situations
- Debug: This node should only be used for internal tests
- Obsolete: This node should not be used, and this node will not be visible in the components list
For example, while working on a level that's intended to be shipped to the public, you might not want to accidentally include any Debug nodes! We can enable or disable the viewing of the first three categories inside the Flowgraph Editor via View | Components:

Flowgraph types
Before creating a new flowgraph, we'll want to know of what type our purpose is most relevant to. Different flowgraph types allow for specialization, for example, to create UI graphs that handle the layout and drawing of the player's user interface.

These are flowgraphs you can create to wrap up AI behaviors into convenient nodes that can be reused elsewhere. We'll address these later when you learn about Artificial Intelligence (AI).
CryENGINE allows you to script your user interfaces and in-game heads-up-displays using flowgraphs, via a system of UI events. We'll discuss these in Chapter 7, The User Interface.
CryENGINE supports convenient designer-editable flowgraphs to control how material events are handled, for example, spawning a dirt particle and obscuring the player's screen with a layer of dust when the ground is shot nearby.
You can package up flowgraphs into handy modules for reuse across different situations. We'll describe these in depth later.
This is where we'll spend most of our time in this chapter! 90 percent of the time,a flowgraph is assigned to an entity, otherwise known as the graph entity, and this logic takes place in the game world.