Files
metaverseDubai/UE5_WSL_INSTALL.md

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)

  1. Install/Update WSL (from Windows PowerShell as Administrator):

    wsl --install
    wsl --update
    
  2. 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

Required Before Cloning

  1. Create Epic Games Account (if needed):

  2. Link GitHub Account:

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)

WSLg provides built-in graphics support on Windows 11:

  1. Verify WSLg:

    echo $DISPLAY
    # Should show something like :0
    
  2. If WSLg not working, update WSL:

    # From Windows PowerShell
    wsl --update
    

Option B: X Server (Windows 10 or if WSLg unavailable)

  1. Install X Server on Windows:

  2. Configure X Server:

    • Start X Server
    • Allow connections from WSL
    • Note the display number (usually :0)
  3. 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
    
  4. 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

  1. Allocate More Resources (.wslconfig on Windows):

    [wsl2]
    memory=32GB
    processors=8
    swap=8GB
    localhostForwarding=true
    

    Location: C:\Users\<YourUser>\.wslconfig

  2. GPU Passthrough:

    • WSL2 supports GPU passthrough on Windows 11
    • Install NVIDIA drivers on Windows (not in WSL)
    • WSL will use Windows drivers automatically
  3. 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

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:

  1. Follow PROJECT_SETTINGS.md for configuration
  2. Create project in /home/intlc/projects/metaverseDubai/DubaiMetaverse
  3. Copy config templates from Config/*.template to project Config/
  4. Begin Phase 1, Week 2: Geospatial acquisition

Resources


Version: 1.0 Last Updated: [Current Date] Platform: Ubuntu/WSL