Native data-driven ECS workflow for Unreal Engine (C++ and Blueprints).
Apparatus ECS supports the Unreal Engine 5 Early Access version day one!* Go true next-gen, go data-driven NOW!
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!
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?
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.
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:
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.
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 email@example.com for the installation guide.
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)
Example Project: ApparatusPlatformer
Important/Additional Notes: For additional platforms (Consoles), please, compile from sources directly.