On Windows, all 3rd party libraries are vendored in the LumixEngine repository, either as a binary or in the form of source code. Everything should work out of the box.
We utilize Dear ImGui for user interface of the editor. The source code for Dear ImGui is includede in our repository under external/imgui. We use docking branch. To update Dear ImGui, you can run the provided batch script. Dear ImGui is included as a unity build.
We utilize Recast & Detour for navigation purposes. The source code for Recast is included in our repository under external/recast/src. To update Recast, you can run the provided batch script, which will download the latest version and copy it to the appropriate directory. Recast is included as a unity build. Recast is built as a part of the navigation plugin.
We utilize FreeType2 for text rendering. On Windows, the prebuilt static library is included in external/freetype/lib/win and is used by default. If you want to build FreeType from source code, use the following steps:
We utilize Luau for scripting. On Windows, the prebuilt dynamic library is included in external/luau/lib/win and is used by default. We use the dynamic library because it’s much smaller (~100x on Windows) than a static library. If you want to build Luau from source code, use the following steps:
If you build Luau from source code like this, it’s built as a static library by default. To build a dynamic library, pass --luau-dynamic
to GENie. The static library version of Luau includes Luau analysis, which is used by Studio to report type errors in Luau scripts. The dynamic library does not include this analysis.
We utilize PhysX for physical simulation. On Windows, the prebuilt static library is included in external/physx/lib/win and is used by default. If you want to build PhysX from source code, use the following steps:
We utilize LZ4 for asset compression due to its exceptional speed and efficient compression ratio. The source code for LZ4 is includede in our repository under external/lz4.
We utilize meshoptimizer for automatic LOD generation. The source code for meshoptimizer is included in our repository under external/meshoptimizer.
We utilize MikkTSpace for generating tangent space as it is the de-facto standard. The source code for MikkTSpace is included in our repository under external/mikktspace.
We utilize OpenFBX for loading FBX files due to its high quality and open-source nature. The source code for OpenFBX is included in our repository under external/openfbx.
We utilize rgbcx for efficient BC texture compression due to its best-in-class speed and compression quality. The source code for rgbcx is included in our repository under external/rgbcx.
We utilize stb for image manipulation and loading Vorbis files. The source code for stb is included in our repository under external/stb.
We utilize xxHash for its exceptional speed and hash quality. The source code for xxHash is included in our repository under external/xxhash.