You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This was meant to become the most awesome C++ game engine (in terms of the object model and iteration speed).
Here are the key R&D innovations of this engine:
automatic code generation of serialization & GUI binding routines for classes thanks to the static reflection - based on the technique from this project (but moved from a hacky Python script to using LibClang to parse the C++) - DRY!!!
a very flexible object model where polymorphic objects can be composed at runtime (with the help of dynamix which helps separate the interface from the implementation) and each component can be built into a separate shared object
thanks to the 2 things above you could modify almost any part of the code and recompile it without having to stop the running engine - it would magically pick up the changes - this is achieved by: 1) serializing the components of all objects which will be reloaded, 2) removing those components from the objects, 3) reloading the shared objects which define the components, 4) recreating the components in the objects, and 5) deserializing the state into them - with the ability to add or remove fields from classes/structs (changing the memory layout)! Even entire subsystems are reloadable (like the Editor) and can be developed while the engine is running!
integrated RCRL (a REPL for C++) and the entire engine API can be used - this was demoed at CppCon 2018
Unfortunately it was really hard to convince any studio to pour resources into the development of a new engine - this was deemed too impractical in 2018... So I'm sorry to say the project has been abandoned.
Building
You'll need:
Python 2.7/3.x
you'll also need the colorama package - pip install colorama
CMake 3.0 or newer
Compilers (one of them)
VS 2017
g++ 7
clang 5 (call export CXX=clang++ before calling ha -g gcc)
you will also need LibClang - for windows install the 64 bit version in the default path from here: https://llvm.org/builds/
Required packages for ubuntu: xorg-dev, libx11-dev, libgl1-mesa-dev (and probably others...)
Use the ha python script in the root of the repository to build the project (it has help). Emscripten requires Python 2.7 and has been setup to work only on windows.
ha -s # setup repository
ha -g msvc # generate msvc solution
ha -b gcc # build with gcc or clang (implicitly calls "ha -g gcc" to generate makefiles)
About
Everything I am (was...) passionate about - the best game engine ever