nfEngine
The main purpose of this project is to create an open-source, multi-platform, efficient and universal 3D game engine. At the moment the engine is in early development state. Detailed list of features can be found in a section below.
More information (features, detailed descriptions, contribution rules, etc.) can be found on our Wiki page.
Building the project - Windows
To make the code compilable, the following requirements have to be met:
- Installed Visual Studio 2019 with Windows SDK.
- Installed Vulkan SDK (if you want to build Vulkan renderer; otherwise, it can be excluded from building)
- Pulled external dependencies via Git submodules:
git submodule update --init --recursive - CMake, with cmake.exe visible in PATH
- msbuild.exe visible in PATH (for VS2019 Community it is typically located in
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin)
Building the project - Linux
Currently buildable parts of nfEngine are: Common, CommonTest, CommonPerfTest, RendererVk and RendererDemo. Requirements:
- Installed a C++17-compatible compiler (compiler tested to work is Clang 10 and GCC 10).
- Installed CMake 3.18 or higher.
- Installed Vulkan SDK
- NOTE: Make sure that
VULKAN_SDKenv variable is set in the system and points to dir x86_64 inside Vulkan SDK.
- NOTE: Make sure that
- Pulled external dependencies via Git submodules:
git submodule update --init --recursive - Installed libxcb and libxcb-image libraries and their headers
Out-of-source CMake build is recommended to make the cleaning process easier and not make the repo itself dirty, ex.
mkdir build; cd build
cmake ..
make
Changing build settings is done by defining CMake variables (all are optional):
- CMAKE_BUILD_TYPE - specifies build type. Possible values: Release, Debug. Building nfEngine with Debug build type will turn off compiler optimization and generate debugging information for GDB.
- SANITIZE - specifies sanitizer to be used (by adding -fsanitize= compiler flag). Possible values: thread, address, memory, undefined. This requires support in a compiler.
To rebuild the entire project in one go, Scripts/rebuild-all.sh script is available, which works similarly to "Batch Build" feature in Visual Studio. The script will call cleaning script and build the engine in all configurations possible. Unlike Windows platform, due to conflicts between 32-bit and 64-bit versions of some packages, the Engine builds only in version which conforms Distros version.
If you need to manually build (without cleaning) single configuration, Scripts/build.sh script can be used. It's only argument is build configuration and can be Debug or Release. Calling without argument assumes Release build.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
