Skip to content

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 ~/VulkanSDK with 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

  1. Install devkitPro Pacman for GameCube/Wii/3DS development (Optional) (https://devkitpro.org/wiki/devkitPro_pacman)
  2. wget https://apt.devkitpro.org/install-devkitpro-pacman
  3. chmod +x ./install-devkitpro-pacman
  4. sudo ./install-devkitpro-pacman
  5. Install Wii/3DS development libraries (Optional) (https://devkitpro.org/wiki/Getting_Started)
  6. sudo dkp-pacman -S wii-dev
  7. sudo dkp-pacman -S 3ds-dev
  8. Restart computer
  9. If you want to package for GameCube, install libogc2 (https://github.com/extremscorner/pacman-packages#readme)
  10. sudo dkp-pacman-key --recv-keys C8A2759C315CFBC3429CC2E422B803BA8AA3D7CE --keyserver keyserver.ubuntu.com
  11. sudo dkp-pacman-key --lsign-key C8A2759C315CFBC3429CC2E422B803BA8AA3D7CE
  12. Put this entry in /opt/devkitpro/pacman/etc/pacman.conf above 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.