Apparatus

Native data-driven ECS workflow for Unreal Engine (C++ and Blueprints).

  • Supported Platforms
  • Supported Engine Versions
    4.26 - 4.27
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.

Apparatus ECS supports the Unreal Engine 5 Early Access version day one!* Go true next-gen, go data-driven NOW!

Also take a look at our newest multi-threaded 100 000 Paper Planes Demo. More eye candy to come!


Have you dreamt about developing your Unreal games ECS-style? The data-driven workflow has finally arrived to Unreal Engine in its full versatile glory. Introducing – the Apparatus!


FAQ

Is this a real ECS or some hack, emulation, limited implementation?

This is a full-featured ECS implementation with cache-friendly memory model implemented.


Is it C++-only or Blueprint-only implementation?

It supports both, wholeheartedly.


Is it some kind of port of the other library?

No. The framework is designed and written from scratch with Unreal Engine in mind and is using its whole infrastructure of available APIs, reflection system, Editor, etc. The legacy of the tool goes as far as of 2019.


I've heard Unreal Engine is not suited for ECS and has to be refactored to make such functionality even possible.

Unreal Engine has enough features already built in. You just have to go low-level, have enough expertise and a good design to implement the feature.


Is the source code provided?

This is a commercial sources-available initiative, much like Unreal Engine itself is.


Is it compatible with other Unreal Engine systems like Animation Blueprints, Behavior Trees, Niagara?

Yes.


How fast is it?

Yes. All sorts of optimizations, lookups, packing and caching are used. The Blueprint frontend is pushed to the limits with of what can be achieved within UE's VM. C++ base is 90% header-only for the most performant compiler output. With the current feature-set implemented, we don't even know what else to improve performance-wise. Maybe we'll introduce more faster-less-safe APIs in the future and provide additional iterating contexts.


Is this some kind of experimental package. How stable is the codebase?

The tool has already passed quite some iterations and is regularly being tested with our own automation suite and projects. Consider it utterly ready for production. Feel challenged to find any behavioral issues within our runtime, please.


Is multi-threading supported?

The implementation contains a unique and profound concurrent processing support and is effectively parallelized via tasks.


Is it Network-Replicated?

No it's not, as the most better suited implementation would be a whole separate lockstep system. But consider it Network-Ready or Network-Agnostic. As long as you provide your own networking routines, we provide the fundamental ECS logic for it.


TERMINOLOGY

We provide all of the ECS idioms and even more. Being unambiguous and self-sustained, the framework uses its own naming scheme. Here is the list of analogs:

  • Entity – Subject, Subjective
  • Component – Detail, Trait
  • System – Mechanic
  • A group of Systems – Mechanism
  • Archetype – Fingerprint
  • Chunk – Belt, Chunk


GOALS

We strongly believe in the profound data-driven workflow and use it in our own studio projects. That's why we created Apparatus. The story behind it is quite long of almost 1,5 years of research, active prototyping, development, profiling and tests. The first of its iterations were developed for a whole different technology stack, but after some long days and nights of work, we are thrilled to present it to you – the Unreal Engine Community!


The current sample project, while having quite a broad functionality scope, can be considered a basic demonstration of the technology and some more complex examples are due to come in the near future. The Apparatus itself is thoroughly tested and fully production-ready. Don't hesitate to contact us for any assistance possible as we strive do deliver the most comprehensive and feature-rich experience.


UPCOMING FEATURES

  • Networking sample & utilities. October+


LINKS


From Russia, Moscow and Chekhov cities with much ♡.


© 2019 – 2021 Vladislav Dmitrievich Turbanov


* The installation for UE5 EA is manual for now as the Marketplace doesn't support scenario at the moment. Please verify your purchase and contact us through support@turbanov.ru for the installation guide.

Technical Details

FEATURES

  • A complete Unreal Engine integration of the data-driven workflow. Both C++ and Blueprint development is supported.
  • Performance-targeted GC-less linear data of structs or high-level components with inheritance support (or even both).
  • Semantically-safe multi-threading support.
  • Versatile including and excluding subject filtering in the mechanics.
  • Multiple details of the same type on a single subject are allowed. All of the available detail combinations are processed.
  • Dedicated user experience touches for some clear reading, validation and overall ease of use.
  • Many performance optimizations: caching, fast bit-array lookups, CPU cache-locality, manual belt assignment.
  • Thoroughly documented API with a dedicated manual.


MODULES

  • ApparatusRuntime
  • ApparatusUncooked
  • ApparatusEditor


INFORMATION

Number of C++ Classes: 50

Network Replicated: No (Network-Agnostic)

Supported Development Platforms: Windows, Linux, macOS

Supported Target Build Platforms: Windows, Linux, macOS, iOS, Android (Platform-Independent)

Documentation: Turbopedia, API Reference

Example Project: ApparatusPlatformer

Important/Additional Notes: For additional platforms (Consoles), please, compile from sources directly.