Linux
Linux Developer Environment Setup
Pull Submodules
git submodule update --init --recursive
For Debian/Ubuntu based distros:
sudo apt install g++ make libx11-dev libasound2-dev libpulse-dev libcurl4 cmake pkg-config
For the VideoPlayer addon (FFmpeg-backed video playback):
sudo apt install libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libswresample-dev
For Arch-based distributions:
sudo pacman -S gcc make libx11 alsa-lib libpulse curl cmake pkgconf
For the VideoPlayer addon (FFmpeg-backed video playback):
sudo pacman -S ffmpeg
Note: arch users may get a dependency error when attempting to install alsa-lib, in this case try to install lib32-alsa-lib.
Note: libcurl4/curl is optional but required for the auto-update feature in the editor.
Note: libpulse/libpulse-dev is required for streaming audio (used by the engine's AUD_*Stream* API and the VideoPlayer addon). Without it, video plays silently.
Note: FFmpeg dev packages are only required if you build a project that uses the VideoPlayer addon. The engine itself does not depend on them.
Note: On Ubuntu 24.04+, the ALSA runtime library was renamed from libasound2 to libasound2t64 as part of the time_t 64-bit transition. The -dev package above (libasound2-dev) still works for building — apt resolves it transparently — but if you ship a built binary, end-user install lines that named libasound2 directly will fail with "Package 'libasound2' has no installation candidate". Use libasound2t64 in runtime install instructions on 24.04+.
Installing Dependencies
Install Vulkan SDK version 1.3.275.0:
- Download the 1.3.275.0 tar file from https://vulkan.lunarg.com/sdk/home#linux
- Extract the tar file somewhere (e.g. ~/VulkanSDK/)
- Add these to your ~/.bashrc file (replace
~/VulkanSDKwith the directory where you extracted the files to). You may instead add these to a .sh file in your /etc/profiles.d directory to set up Vulkan for all users.
export VULKAN_SDK=~/VulkanSDK/1.3.275.0/x86_64
export PATH=$VULKAN_SDK/bin:$PATH
export LD_LIBRARY_PATH=$VULKAN_SDK/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
export VK_LAYER_PATH=$VULKAN_SDK/share/vulkan/explicit_layer.d
- Close and reopen your terminal to apply the .bashrc (or run source ~/.bashrc)
Install devkitPro
- Install devkitPro Pacman for GameCube/Wii/3DS development (Optional) (https://devkitpro.org/wiki/devkitPro_pacman)
- wget https://apt.devkitpro.org/install-devkitpro-pacman
- chmod +x ./install-devkitpro-pacman
- sudo ./install-devkitpro-pacman
- Install Wii/3DS development libraries (Optional) (https://devkitpro.org/wiki/Getting_Started)
- sudo dkp-pacman -S wii-dev
- sudo dkp-pacman -S 3ds-dev
- Restart computer
- If you want to package for GameCube, install
libogc2(https://github.com/extremscorner/pacman-packages#readme) sudo dkp-pacman-key --recv-keys C8A2759C315CFBC3429CC2E422B803BA8AA3D7CE --keyserver keyserver.ubuntu.comsudo dkp-pacman-key --lsign-key C8A2759C315CFBC3429CC2E422B803BA8AA3D7CE-
Put this entry in
/opt/devkitpro/pacman/etc/pacman.confabove the[dkp-libs]entry:[libogc2-devkitpro] Server = https://packages.libogc2.org/devkitpro/linux/$arch Server = https://packages.extremscorner.org/devkitpro/linux/$arch-sudo dkp-pacman -Syuu-sudo dkp-pacman -S gamecube-tools-git libogc2 libogc2-libdvm- Accept overwriting if asked.
Compile Shaders, libgit2, and Standalone embedded-asset stubs
bash Tools/prebuild.sh
This runs three steps: builds libgit2, compiles shaders, and writes minimal stubs for Standalone/Generated/EmbeddedAssets.{h,cpp}, EmbeddedScripts.{h,cpp}, and AddonPlugins.cpp. The stub step only writes files that are missing — these are gitignored and normally regenerated by the Editor's "Build Data" action, but a fresh clone needs the stubs so the Standalone build succeeds. Requires python3 on PATH.