10 KiB
Unreal Engine 5.4 Installation - WSL/Ubuntu CLI Guide
Overview
This guide provides command-line instructions for installing Unreal Engine 5.4 on Ubuntu within Windows Subsystem for Linux (WSL) or native Ubuntu.
Prerequisites
WSL Setup (If Using WSL)
-
Install/Update WSL (from Windows PowerShell as Administrator):
wsl --install wsl --update -
Launch Ubuntu:
wsl
System Requirements
- OS: Ubuntu 20.04 LTS or later (22.04 LTS recommended)
- CPU: 8+ cores recommended
- RAM: 32GB+ recommended (16GB minimum)
- Storage: 100GB+ free space (SSD recommended)
- GPU: NVIDIA GPU with Vulkan support (for WSL, drivers on Windows host)
Step 1: Install System Dependencies
Update System
sudo apt update && sudo apt upgrade -y
Install Build Tools and Dependencies
sudo apt install -y \
build-essential \
clang \
cmake \
ninja-build \
mono-devel \
python3 \
python3-pip \
git \
git-lfs \
curl \
wget \
unzip
Install Graphics and UI Dependencies
sudo apt install -y \
libvulkan-dev \
libxcb-xinput-dev \
libgtk-3-dev \
libxrandr-dev \
libxinerama-dev \
libxi-dev \
libsdl2-dev \
libssl-dev \
libicu-dev \
libxml2-dev \
libxcursor-dev \
libxcb-icccm4-dev \
libxcb-image0-dev \
libxcb-keysyms1-dev \
libxcb-render-util0-dev \
libxcb-xkb-dev \
libxkbcommon-dev \
libxkbcommon-x11-dev \
mesa-common-dev \
libgl1-mesa-dev
Install Additional Tools
sudo apt install -y \
dotnet-sdk-6.0 \
libc++-dev \
libc++abi-dev
Step 2: Link Epic Games and GitHub Accounts
Required Before Cloning
-
Create Epic Games Account (if needed):
- Visit: https://www.epicgames.com
- Create account and sign in
-
Link GitHub Account:
- Go to: https://www.unrealengine.com/en-US/ue-on-github
- Sign in with Epic Games account
- Link your GitHub account
- Accept Unreal Engine license agreement
Note: This step is required to access the Unreal Engine source code repository.
Step 3: Clone Unreal Engine Source
Set Up Git
# Configure Git (if not already done)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# Install Git LFS
git lfs install
Clone Repository
# Navigate to desired installation directory
cd ~
mkdir -p UnrealEngine
cd UnrealEngine
# Clone Unreal Engine 5.4 (release branch)
# Note: This requires GitHub account linked to Epic Games account
git clone --depth=1 https://github.com/EpicGames/UnrealEngine.git -b 5.4 .
# Or clone specific 5.4 tag:
# git clone --depth=1 --branch 5.4 https://github.com/EpicGames/UnrealEngine.git .
Note: The repository is large (~10GB+). Cloning may take 30-60 minutes depending on connection speed.
Step 4: Build Unreal Engine
Run Setup Script
cd ~/UnrealEngine
./Setup.sh
This script:
- Downloads required dependencies
- Sets up build files
- May take 30-60 minutes
Generate Project Files
./GenerateProjectFiles.sh
This generates:
- Makefiles for building
- Project files for IDEs (optional)
Compile Unreal Engine
# Build Unreal Engine (this will take 2-4+ hours depending on CPU)
make UnrealEditor
# Or build with multiple cores (faster):
make -j$(nproc) UnrealEditor
Build Time:
- 8-core CPU: ~2-3 hours
- 16-core CPU: ~1-2 hours
- 32-core CPU: ~45-90 minutes
Note: The build process is CPU-intensive. Close other applications for faster compilation.
Step 5: Verify Installation
Check Build Output
# Verify UnrealEditor binary exists
ls -lh ~/UnrealEngine/Engine/Binaries/Linux/UnrealEditor
# Check version
~/UnrealEngine/Engine/Binaries/Linux/UnrealEditor -version
Test Launch (Requires X Server for WSL)
# For WSL: You need an X server running on Windows
# Install X server: VcXsrv, Xming, or WSLg (Windows 11)
# Launch Unreal Editor
~/UnrealEngine/Engine/Binaries/Linux/UnrealEditor
Step 6: WSL Graphics Setup (WSL Only)
Option A: WSLg (Windows 11 - Recommended)
WSLg provides built-in graphics support on Windows 11:
-
Verify WSLg:
echo $DISPLAY # Should show something like :0 -
If WSLg not working, update WSL:
# From Windows PowerShell wsl --update
Option B: X Server (Windows 10 or if WSLg unavailable)
-
Install X Server on Windows:
- VcXsrv: Download from https://sourceforge.net/projects/vcxsrv/
- Xming: Download from https://sourceforge.net/projects/xming/
-
Configure X Server:
- Start X Server
- Allow connections from WSL
- Note the display number (usually :0)
-
Set DISPLAY in WSL:
# Add to ~/.bashrc or ~/.zshrc export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0 # Or for WSL2: export DISPLAY=$(ip route list default | awk '{print $3}'):0.0 # Reload shell source ~/.bashrc -
Test X Server:
# Test with a simple X app sudo apt install x11-apps xeyes # Should open a window
Step 7: Create Project
Create Project Directory
cd /home/intlc/projects/metaverseDubai
mkdir -p DubaiMetaverse
cd DubaiMetaverse
Create Project File
# Create .uproject file
cat > DubaiMetaverse.uproject << 'EOF'
{
"FileVersion": 3,
"EngineAssociation": "5.4",
"Category": "",
"Description": "Dubai Metaverse - High-End Interactive Demo District",
"Modules": [
{
"Name": "DubaiMetaverse",
"Type": "Runtime",
"LoadingPhase": "Default"
}
],
"Plugins": [
{
"Name": "ModelingToolsEditorMode",
"Enabled": true
},
{
"Name": "ProceduralContentGeneration",
"Enabled": true
},
{
"Name": "VirtualProduction",
"Enabled": true
},
{
"Name": "MovieRenderQueue",
"Enabled": true
}
]
}
EOF
Generate Project Files
# Generate project files
~/UnrealEngine/Engine/Binaries/Linux/UnrealVersionSelector-Linux.sh \
-projectfiles \
-project="$PWD/DubaiMetaverse.uproject" \
-game \
-rocket \
-progress
Launch Project
# Launch Unreal Editor with project
~/UnrealEngine/Engine/Binaries/Linux/UnrealEditor "$PWD/DubaiMetaverse.uproject"
Alternative: Pre-built Binary (If Available)
Check for Pre-built Linux Binaries
Epic Games may provide pre-built Linux binaries. Check:
- Epic Games Launcher (if available for Linux)
- Unreal Engine downloads page
- Community builds
Note: Pre-built binaries may not be available for all versions. Building from source is the most reliable method for Linux.
Performance Considerations for WSL
WSL2 Configuration
-
Allocate More Resources (
.wslconfigon Windows):[wsl2] memory=32GB processors=8 swap=8GB localhostForwarding=trueLocation:
C:\Users\<YourUser>\.wslconfig -
GPU Passthrough:
- WSL2 supports GPU passthrough on Windows 11
- Install NVIDIA drivers on Windows (not in WSL)
- WSL will use Windows drivers automatically
-
File System Performance:
- Store project on WSL file system (
/home/...) - Avoid Windows file system (
/mnt/c/...) for project files - Better performance on native Linux file system
- Store project on WSL file system (
Troubleshooting
Build Fails
Issue: Compilation errors
# Clean and rebuild
cd ~/UnrealEngine
make clean
./Setup.sh
./GenerateProjectFiles.sh
make -j$(nproc) UnrealEditor
X Server Connection Issues
Issue: Cannot connect to X server
# Check DISPLAY variable
echo $DISPLAY
# Test X connection
xhost +local:
# Verify X server is running on Windows
Out of Memory During Build
Issue: Build fails due to memory
# Reduce parallel jobs
make -j4 UnrealEditor # Use 4 cores instead of all
# Or increase swap
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Missing Dependencies
Issue: Build errors about missing libraries
# Install missing dependencies
sudo apt update
sudo apt install -f
# Check specific error messages and install required packages
Quick Installation Script
Create a script to automate installation:
#!/bin/bash
# save as: install_ue5_wsl.sh
set -e
echo "Installing Unreal Engine 5.4 on Ubuntu/WSL..."
# Install dependencies
sudo apt update && sudo apt install -y \
build-essential clang cmake ninja-build mono-devel python3 python3-pip \
git git-lfs curl wget unzip \
libvulkan-dev libxcb-xinput-dev libgtk-3-dev libxrandr-dev \
libxinerama-dev libxi-dev libsdl2-dev libssl-dev libicu-dev \
libxml2-dev libxcursor-dev libxcb-icccm4-dev libxcb-image0-dev \
libxcb-keysyms1-dev libxcb-render-util0-dev libxcb-xkb-dev \
libxkbcommon-dev libxkbcommon-x11-dev mesa-common-dev libgl1-mesa-dev
# Setup Git LFS
git lfs install
# Clone UE5 (requires GitHub linked to Epic account)
cd ~
if [ ! -d "UnrealEngine" ]; then
git clone --depth=1 https://github.com/EpicGames/UnrealEngine.git -b 5.4 UnrealEngine
fi
# Build
cd ~/UnrealEngine
./Setup.sh
./GenerateProjectFiles.sh
make -j$(nproc) UnrealEditor
echo "Installation complete!"
echo "Unreal Editor: ~/UnrealEngine/Engine/Binaries/Linux/UnrealEditor"
Verification Checklist
After installation, verify:
- UnrealEditor binary exists
- Can launch Unreal Editor
- X server working (for WSL)
- Can create new project
- Project opens in editor
- Engine features work (Nanite, Lumen)
Next Steps
After successful installation:
- ✅ Follow PROJECT_SETTINGS.md for configuration
- ✅ Create project in
/home/intlc/projects/metaverseDubai/DubaiMetaverse - ✅ Copy config templates from
Config/*.templateto projectConfig/ - ✅ Begin Phase 1, Week 2: Geospatial acquisition
Resources
- Unreal Engine on GitHub: https://github.com/EpicGames/UnrealEngine
- UE on GitHub Setup: https://www.unrealengine.com/en-US/ue-on-github
- WSL Documentation: https://docs.microsoft.com/en-us/windows/wsl/
- WSLg Documentation: https://github.com/microsoft/wslg
Version: 1.0 Last Updated: [Current Date] Platform: Ubuntu/WSL