The Machinery by Our Machinery is a new game engine, currently in beta, by some of the creators of the Stingray/BitSquid game engine. It follows many of the same design prinicipals, being data driven, light weight and extended via a simple C interface. The Machinery is designed from day one to be a framework for creation of your own tools and features, essentially a game engine construction kit.
The Machinery is described as such:
A toolbox of building blocks
The Machinery is completely plugin-based. You can pick and choose the parts you need to customize it to your specific needs. You can extend the engine, and the editor, by writing your own plugins. You can even build completely new applications on top of our API, or embed our code into your existing applications or workflows.
Powerful editing model
The Machinery uses a powerful data model to represent edited assets. This model has built-in support for serialization, streaming, copy/paste, drag-and-drop as well as unlimited undo/redo. It supports an advanced hierarchical prefab model for making derivative object instances and propagating changes. It even has full support for real-time collaboration. Multiple people can work together in the same game project, Google Docs-style.
Since all of these features are built into the data model itself, your custom, game-specific data will get them automatically, without you having to write a line of code.
Easy to build tools
The Machinery uses an in-house, lightweight IMGUI framework that sits directly on top of our rendering system. The same UI system is used both by the editor and the runtime, making it possible to run the full editor UI inside a game or in VR. With The Machinery you no longer need watertight boundaries between the editor and the runtime, editing can be done inside the game itself, if you so like.
Using our drawing primitives, it is easy to create custom UI controls. And everything has been heavily optimized to feel snappy and responsive. In fact, the entire editor UI is rendered with just a single draw call.
Modern rendering architecture
The renderer has been designed to take full advantage of modern explicit graphic APIs like Vulkan, DX12 and Metal 2. You can reason explicitly about advanced setups such as multiple GPUs and GPU execution queues. Similar to the rest of the engine, the built-in rendering pipeline is easy to tweak and extend.
All the code in the engine is built based on data-oriented design principles. We focus on data flows and cache friendly memory layouts. All performance critical code is written to run as jobs, taking full advantage of the parallel processing power of modern CPUs.
The Machinery explicitly aims to be simple, minimalistic and easy to understand. In short, we want to be “hackable”. All our code is written in plain C, a significantly simpler language than modern C++. The entire code base compiles in less than a minute and we support hot-reloading of DLLs, allowing for fast iteration cycles.
Our APIs are exposed as C interfaces, which means they can easily be used from C, C++, D or any other language that has a FFI for calling into C code.
The Machinery is currently in invite only beta, write to them for access. Or you can check out an early build of The Machinery in action in the video below.