In-development version of Victoria Engine
Python is required in some form on all PCs for the build process, but it should be installed by default on most Linux distributions and exist somewhere on most Windows OSes. make and some form of compiler (we only support GCC and clang for the moment) are also required. Specific compilers can be specified with the COMPILER= option when compiling, and overriding CC= and CXX= can set separate compilers for C and C++ compilation, however this is not supported and should be avoided.
- Make for Windows as our buildsystem
- Visual Studio Build Tools
- Option is under "All Downloads" -> "Tools for Visual Studio" (they don't offer it though regular Visual Studio in the 2026 edition)
- Select
Windows Universal C Runtime,MSVC Build Tools for x64/x86 (Latest)and theWindows 11 SDK (latest version)from the "Individual Components" tab to obtains the strictly necessary packages for development.
- Python for build scripts that are run during compilation.
- Some form of compiler. Currently,
clangandclare supported on Windows
- MSVC from the additional options (
C++/CLI support (Latest MSVC))- See below for how you get the commands into your system
PATH.
- See below for how you get the commands into your system
- Clang for compiler services as well as clangd and codeLLDB.
- These may be automatically installed by development tools in your editor of choice.
- (Optional) Git for Windows if you wish to contribute to the engine.
If you are running an older version of Windows and lack native OpenGL support (or if your driver is known to be buggy) you may wish to retrieve ANGLE binaries from our own repository. Windows builds will always come with these binaries as they are needed for certain GPUs.
cl.exe is Microsoft's native compiler for Windows. It sucks to use, primarily due to the Visual Studio installer not putting it on the command line for any old tool to reference it. In order to use cl for compilation, run a new command to call utils/windows/build_windows.bat from the command-line which will build Victoria for you. The reason for this is due to cl needing certain environment variables set up so it can be called (namely a temporary update to the system PATH) which exists in a specific Visual Studio file that is called by get_vc_env.bat.
Debian-based
sudo apt install libx11-dev libgl1-mesa-dev libstdc++-12-dev
Fedora-based
sudo dnf install libX11-devel wayland-devel libxkbcommon-devel
Arch-based
<no packages currently required>
By default, we use clangd and clang-format for debugging and formatting options. To support clangd in particular within our buildsystem, we have specific makefile targets that allow one to build a compile_commands.json file from the source tree without installing additional dependencies. Run make generate_compile_commands or make generate_compile_commands DEBUG=yes to build a compilation database for debugging. Code debuggers may whine about missing symbols without this.