Engine Dependencies
中文 · Building · Developer index
Dependencies have distinct responsibilities:
- Squirrel: scripting; SimpleSquirrel: C++ bindings.
- VKBuilder: Vulkan integration combining features of vk-bootstrap and Vookoo; submodule
external/VKBuilder. - ECS.hpp: class-enabled ECS for entities/declarative rendering;
external/ECS.hpp. - ik.hpp: header-only FABRIK/joint constraints exposed by the
ikmodule;external/ik.hpp. - zeroerr: tests, assertions and logging;
external/zeroerr. - Poco: networking, database support and filesystem watching.
- medialoader and its codecs: image/audio loading extracted for standalone use.
- SDL2: windows, platform messages and input.
- FreeType: fonts; GLM: mathematics.
- Dear ImGui: GUI backend. Third-party CMake builds
third-party/imgui/and exposes headers. Theuimodule uses SDL/Vulkan backends. - OpenAL: spatial audio; PhysFS: virtual filesystem.
- Box2D / Box3D: 2D / 3D physics.
- LZ4 / zlib: compression; smmalloc: allocator used in snapshot-related work.
- CLI11: command-line parsing; rang: terminal colors.
This is a role list, not a package lockfile. Current source pins/build declarations determine versions; historical labels in design notes do not override them.
Source management
Initialize external/* submodules after cloning. Root CMake obtains the separately pinned EVEngine/third-party repository and validates its revision. It can contain its own submodules, such as Box3D and Dungeon Template Library.
Most libraries use the dependency build targets rather than individual host installation. Host window/audio/Vulkan tools still need the building setup.
Read-only prebuilt installation
With a complete third-party install tree:
It must contain include/ and lib/ with matching platform/configuration libraries. CMake reads it and creates a compatible empty third-party target; it does not configure, build or install into that directory. Each engine checkout keeps its own mutable build tree.
Procedural generation
Dungeon Template Library (BSL-1.0) is integrated through third-party/DungeonTemplateLibrary for BSP dungeons, cellular caves, MazeDig and Perlin terrain. FastNoise2 (MIT) is an optional extension for fast/tileable noise; fast-wfc (MIT) is an optional Wave Function Collapse extension. An optional design entry is not an already integrated dependency.
cave.drunkard is implemented in the module because DTL lacks that algorithm. See the procedural generation design (Chinese).
EVENGINE_PREBUILT_THIRD_PARTY remains a deprecated compatibility alias; prefer EVENGINE_THIRD_PARTY_BINARY_DIR.