This project is a toy game engine with the following features:
- USD-based scene management
- Hydra 2.0 / Storm / Vulkan rendering
- Profiling with Tracy
- Lua scripting
- Hot reload of USD scenes


First, clone the repository and all its submodules
git clone https://github.com/jlvoiseux/aerial-cmake.git --recursive
- Then, generate the solution on the platform of your choice using CMake. The engine should build and work out of the box. (tested only on a full Visual Studio toolchain)
- USD scenes can be placed in
res/usd
- The engine is instrumented with Tracy. To visualize the profiler, you need to run the version 0.10 of the Tracy server. You can find the server and usage instructions on the tracy GitHub repository.
- Shaders (culling program, drawing program) look like they are recompiled for each draw batch on the main thread every time the program starts (~35s)
- When using the ImGui debug menu, copying the texture to the viewport is expensive (~30ms)
- Hydra's
_endFrameSync()
is surprisingly expensive when using the Vulkan backend (~30ms as well)