I've written a lot of blog posts here on Gamasutra about the design decisions and implementation choices we have made in our game engine: The Machinery. So I'm happy to announce that The Machinery is now in Open Beta, available for anyone to download and try out.

The download includes all the engine APIs, headers, and docs, so you can see how a lot of the stuff I've written about here works in practice. For example, check out foundation/carray.inl and foundation/hash.inl to see our type-safe C implementations of arrays and hash tables, that I talked about in the Minimalist container library in C blog post. Or foundation/slab.inl for a similar implementation of the bulk data storage model that I talked about in the Data Structures Part 1: Bulk Data post.

If you run into any problems with the download or have requests for specific features, post them to our issue tracker. For more general discussions and help getting started, we have a forum. You can also chat with us on our Discord server. You will find us there every now and then, but we’ll pay special attention on Thursdays.

What is The Machinery?

If you haven't heard about it before, The Machinery is a new lightweight and flexible game engine, designed to give you all the power of a modern engine in a minimalistic package that is easy to understand, extend, explore, rewrite, and hack. Beyond games, the API can also be used for simulations and visualizations as well as building custom tools, editors, and applications.

Real-time collaboration in The Machinery.

Some of the things that make The Machinery more hackable than other game engines are:

  • The Machinery’s API is written in C. It’s easy to understand without learning the complexities of modern C++. And don’t worry, you still have type-safe vectors and hash tables, just as in C++.
  • We use a modular design that is completely plugin-based. This makes it easy to extend and replace parts of the engine.
  • The engine can be stripped down to a minimalistic core. Don’t need physics, animation, or sound? Just ship the engine without those DLLs.
  • Individual DLLs can be hot-reloaded. You can modify gameplay, UI, etc, while the editor is running.
  • The codebase is small, readable, and well documented.
  • We offer licenses with full source code for both small and large developers. (Coming soon…)

Some of the features currently available in The Machinery are:

  • Asset import. Import of GLTF, FBX, and many other 3D formats through Open Asset Importer.
  • Creation graphs. Create materials, visual effects, textures, buffers, and more — all within the same graph.
  • Rendering. A data-driven and powerful rendering architecture running on top of Vulkan.
  • Physics. Physics simulation through Nvidia PhysX.
  • Animation. Hierarchical state machines for layered animations.
  • Audio. Software-based 3D audio mixer with surround sound support.
  • Entity system. Data-oriented entity system that can be extended with custom components and simulations.
  • Visual scripting. As a complement to C programming.
  • Immediate mode UI toolkit. Can be used to extend the editor with custom tools or build stand-alone apps.
  • Collaborative editing. Team up with fellow creators and join them in collaborative editing sessions, working on the same project in real-time.
  • Profiling and statistics. Dig into the performance of your project.

Finally, here is some user-created content from The Machinery. Happy hacking!

Screenshot by Karll Henning (@karll_henning) — skybox/background from https://hdrihaven.com/.

 

Virtual Motion Capture by Kota Iguchi (@infosia).