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 libssl-dev
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 openssl
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.4.350.0:
- Download the 1.4.350.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).
export VULKAN_SDK=~/VulkanSDK/1.4.350.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)
- Run this command in a terminal
sudo apt install libvulkan-dev
Install devkitPro
- Install devkitPro Pacman
wget [https://apt.devkitpro.org/install-devkitpro-pacman](https://apt.devkitpro.org/install-devkitpro-pacman) (May 403 fail, if so just download the file manually)
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 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.com
sudo 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- Run thesesudo 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.
VSCode / GDB Debugging Issues on Ubuntu 24+
Some Linux users may encounter extremely slow debugger startup times, hangs, or failed launches when using cppdbg in Visual Studio Code on newer Ubuntu releases (22.04+ / 24.04+), especially inside containers, XRDP sessions, or remote development environments.
This is commonly caused by GDB attempting to automatically download external debug symbols from Ubuntu's debuginfod servers.
Symptoms may include:
- Debugger hangs before launch
Failed to set controlling terminal: Operation not permitted- Very slow startup times
cppdbgtiming out or freezing- GUI applications never appearing
To resolve this issue, disable automatic debuginfod symbol downloading by setting:
"remoteEnv": {
"DEBUGINFOD_URLS": ""
}
For non-container environments, you can also export the variable globally:
export DEBUGINFOD_URLS=""
or add it to your shell profile:
echo 'export DEBUGINFOD_URLS=""' >> ~/.bashrc
source ~/.bashrc
Additionally, some users may need to force VSCode automation tasks to use Bash:
"terminal.integrated.automationShell.linux": "/bin/bash"
This issue is related to newer Ubuntu debugging environments and is not specific to Polyphase or FAW itself.