The following list provides the most common terms used in The Machinery.
|The Truth||The Truth is a system that holds an authoritative data state and allows it to be shared between various systems. In particular, it supports the following features:|
- Objects with properties (bools, ints, floats, strings).
- Buffer properties for holding big chunks of binary data.
- Subobjects (objects of other types belonging to this object).
- References to other objects.
- Sets of subobjects and references.
- Prototypes and inheritance.
- Change notifications.
- Safe multi-threaded access.
- Undo/redo operations (from multiple streams).
More information is available in the documentation.
|Truth Aspect||An “aspect” is an interface (struct of function pointers) identified by a unique identifier. The Truth allows you to associate aspects with object types. This lets you extend The Truth with new functionality.|
|Creation Graph||The creation graph is (as the name implies) a graph based tool for creating assets. It allows developers to define and alter various types of assets using visual scripting. More broadly speaking, the creation graph can be used for arbitrary data processing tasks. More|
|Creation Graph GPU Nodes||Creation Graphs contain nodes that can execute on both the CPU and GPU. The GPU nodes usually become part of a shader program when the creation graph is compiled. There are nodes to transition from the CPU to GPU.|
|Entity Graph||The Machinery’s Visual Scripting Language for game play. More|
|Prototype||Our prototype system allows entity assets to be used inside other entities. Therefore, you can create an entity asset that represents a room and then create a house entity that has a bunch of these room entities placed into it. For more information on Prototypes, check out its Prototypes. (Also called Prefabs in other Engines)|
|Properties Tab||Whenever an object gets focused in the asset browser or entity tree, properties of it can be edited from the properties tab.|
|Asset Browser||Shows all assets in your project in an explorer-style fashion. An asset can be thought of as the equivalent of a file in the OS. Some assets such as entities can be dragged and dropped from the asset browser into the scene tab.|
|Graph Tab/View||A tab that can either represent an Entity Graph or a Creation Graph.|
|Entity Tree||Hierarchical view of the Entity currently being edited.|
In The Machinery, every entity has a parent except for the root entity of the world. (which is generally called “world”).
This Tab Allows the user to quickly reason and re-organize the hierarchy by adding, removing, expanding and reordering entities.
|Simulation Entry||Is a generic concept to provide functionality for the game play to start, stop and update (tick). This concept consists of two components: The Simulation Entry Interface (tm_simulation_entry_i) as simulation entry component. The interface is there to provide functionality, while the component is the connection with the simulation.|
|Engine (ECS)||An engine is an update function that runs on all entities that have certain components. (Jobified)|
|System (ECS)||A system is an update function that runs on the entire entity context.|
|Entity Context||It’s the core runtime Entity-Component-System of The Machinery.|
It’s main two components are:
- Entities (see Entity)
- Systems and Engines
|Entity||In The Machinery a game world is built out of different entities which are defined through different components. Those components create the building blocks of each entity and give them their meaning.|
|Components||A building block for entities. Moreover a component is a type of data that can be associated with an entity.|
|DCC Asset||Digital Content Creation Assets. Any type of assets created by any digital content creation tool such as Blender or Maya.|
|Plugin||The Machinery is built around a plugin model. All features, even the built-in ones, are provided through plugins. You can extend The Machinery by writing your own plugins. When The Machinery launches, it loads all the plugins named |
|Plugin assets||A special type of asset that contains the library (executable code) for a plugin. This makes it possible to add compiled plugins without have to copy the DLL into a specific folder, instead you can just drag n drop DLLs into the project. The user will be asked for consent to run the code in the plugin.|
|Project||It is a self-contained directory or database file that holds all the game data used during the development.|