Developer Onboarding & Environment Setup¶
Audience
Incoming capstone developers setting up their local development environment for the first time.
Welcome to the DeVILSona project. This guide will walk you through every step required to get from zero to a working development environment. Read this page in full before starting—the order of operations matters.
Hardware & Software Prerequisites¶
Minimum Hardware Requirements¶
| Component | Minimum | Recommended |
|---|---|---|
| OS | Windows 10 64-bit | Windows 11 64-bit |
| CPU | Intel Core i7 (8th gen) / AMD Ryzen 7 | Intel Core i9 / AMD Ryzen 9 |
| RAM | 32 GB | 64 GB |
| GPU | NVIDIA GTX 1080 / AMD RX 5700 XT | NVIDIA RTX 3080+ |
| Storage | 200 GB free SSD space | 500 GB NVMe SSD |
| Meta Quest headset | Quest 2 (for VR testing) | Quest 3 |
macOS Warning
macOS developers face significant limitations on this project. The OVRLipSync plugin is compiled for x86_64 only, requiring Unreal Engine to run in Rosetta 2 emulation mode on Apple Silicon Macs. You cannot build Android APKs on macOS. See Mac-Specific Limitations at the end of this page for complete details if you must use a Mac.
Required Software¶
Install the following in this order:
1. Visual Studio 2022 (Community or Professional)
- Download: https://visualstudio.microsoft.com/vs/
- During installation, select these workloads:
- ✅ Desktop development with C++
- ✅ Game development with C++
- Under "Individual components", also install:
- ✅ Windows 10/11 SDK (latest version)
- ✅ .NET 8.0 Runtime
2. Unreal Engine 5.6+
- Install the Epic Games Launcher: https://www.epicgames.com/store/en-US/download
- In the launcher, navigate to Unreal Engine → Library
- Install Unreal Engine 5.6 (or the latest 5.x version)
- Installation size: ~60–80 GB
3. Git
- Download: https://git-scm.com/download/win
- During installation, select:
- ✅ "Git from the command line and also from 3rd-party software"
- ✅ "Use bundled OpenSSH"
4. Git LFS (Git Large File Storage)
This is critical.
Unreal Engine projects store binary assets (.uasset, .umap, textures, etc.) in Git LFS. Without it, you will clone a repository with broken placeholder files instead of actual assets.
5. Android Studio Koala 2024.1.2 (for Android/Quest builds)
- Download the specific version: https://developer.android.com/studio/archive
- After installing, in the Android SDK Manager, ensure these are installed:
- Android SDK Platform 34 (Target SDK)
- Android SDK Platform 35 (Recommended SDK)
- NDK version r27c (29.0.13113456) — use this exact version
- Android Build Tools 35.0.1
6. AWS CLI v2
- Download: https://aws.amazon.com/cli/
- Verify:
aws --version
7. Terraform
- Download: https://developer.hashicorp.com/terraform/install
- Add to PATH; verify:
terraform --version
8. Node.js v20+ (for Lambda function development)
- Download: https://nodejs.org/en/download/
- Verify:
node --version
GitHub Access & Repository Cloning¶
Getting Repository Access¶
The DeVILSona project spans multiple GitHub repositories. Request access to:
| Repository | Purpose |
|---|---|
FSE100Capstone/DeVILSona |
Main UE5 VR project |
FSE100Capstone/DeVILSona-infra |
Terraform/AWS infrastructure |
FSE100Capstone/DeVILStarter |
Desktop launcher (Wails/Go/React) |
FSE100Capstone/DeVILSona.wiki |
This wiki |
Contact the project lead or faculty advisor to be added as a collaborator on each repository.
SSH Key Setup (Recommended)¶
Using SSH for Git avoids needing to enter credentials with every push/pull.
# Generate an SSH key (use your university email)
ssh-keygen -t ed25519 -C "your@asu.edu"
# Start the SSH agent
Get-Service -Name ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
# Add your key to the agent
ssh-add ~/.ssh/id_ed25519
# Copy your public key to clipboard
Get-Content ~/.ssh/id_ed25519.pub | clip
Then go to GitHub → Profile Settings → SSH and GPG keys → New SSH Key, and paste the key.
Test the connection:
Personal Access Token (PAT) — Alternative¶
If working in an environment where SSH is not supported:
- GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Generate a token with
reposcope - Use this token as your password when Git prompts for credentials
Cloning the Main Repository¶
# Clone with SSH (recommended)
git clone git@github.com:FSE100Capstone/DeVILSona.git
# Or with HTTPS + PAT
git clone https://github.com/FSE100Capstone/DeVILSona.git
After cloning, verify that Git LFS pulled the actual assets:
cd DeVILSona
git lfs pull
# This may take several minutes on first clone - it downloads all binary assets
Check that assets look correct (not empty placeholder files):
# A real .uasset should be >1KB; an LFS pointer is ~200 bytes
Get-ChildItem -Recurse -Filter "*.uasset" | Where-Object { $_.Length -lt 500 } | Select-Object Name, Length
# In a healthy repo, this should return no results (or very few small ones)
Repository Directory Structure¶
After cloning, the main UE5 project structure is:
DeVILSona/
├── .git/
├── .gitattributes ← Git LFS tracking patterns (DO NOT MODIFY)
├── .gitignore
├── Config/ ← UE5 project configuration files
├── Content/ ← All UE5 assets (.uasset, .umap files)
│ ├── MetaHumans/ ← AI character assets
│ ├── Blueprints/
│ └── Levels/
├── Plugins/ ← Third-party plugins (OVRLipSync, etc.)
│ └── OVRLipSync/
├── Source/ ← C++ source code
│ └── FSE100Capstone/
│ ├── Subsystems/ ← AI subsystem classes
│ ├── Actors/ ← Game actor classes (IntervieweeActor, etc.)
│ └── ...
├── FSE100Capstone.uproject ← Project file (open this to launch UE5)
└── Saved/ ← Generated at runtime, not committed
Local Environment Setup¶
OpenAI API Key Configuration¶
The project needs an OpenAI API key to power the AI conversations. This key is loaded from an environment variable for security—it is never hardcoded in the source code.
Variable name: CAPSTONE_PROJECT_OPENAI_API_KEY
Setting it on Windows (Permanent):
- Open System Properties → Advanced → Environment Variables
- Under System variables, click New
- Variable name:
CAPSTONE_PROJECT_OPENAI_API_KEY - Variable value:
sk-proj-...(your full API key) - Click OK, then restart any open terminals/editors
Verify it's set:
Warning
Obtain the API key from the project lead or your faculty advisor. Do not generate your own key for production use without authorization.
AWS Credentials Configuration¶
Credentials are used by:
- The Terraform infrastructure management (DeVILStarter / DeVILSona-infra)
- The AWS CLI for debugging DynamoDB
Generating Unreal Engine Project Files¶
Before opening the project in Visual Studio, you must generate the Unreal Engine project files:
- Navigate to the project directory in File Explorer
- Right-click
FSE100Capstone.uproject - Select "Generate Visual Studio project files"
This creates FSE100Capstone.sln which Visual Studio needs to compile the C++ code.
Note
If you don't see this context menu option, ensure Unreal Engine is installed via the Epic Games Launcher and properly registered with Windows.
First Compilation¶
Option A: Open in Unreal Engine (Compiles automatically)
- Double-click
FSE100Capstone.uproject - Unreal Engine will open and attempt to compile the C++ code automatically
- On first compile, this takes 10–30 minutes depending on your CPU
- If compilation fails, check Visual Studio is installed with the correct workloads
Option B: Compile from Visual Studio
- Open
FSE100Capstone.slnin Visual Studio 2022 - Set the solution configuration to Development Editor and platform to Win64
- Right-click
FSE100Capstoneproject in Solution Explorer → Build
Learn More
If you'd like to learn more about packaging the project for distribution, you can read our more fine-grained technical documentation on Windows Shipping builds at UE5 Build Guide (Windows Shipping) and Android APK builds at UE5 Build Guide (Android APK).
OVRLipSync Plugin Verification¶
After compiling, verify the OVRLipSync plugin loaded correctly:
- In the Unreal Engine Editor, go to Edit → Plugins
- Search for "OVR" or "Lip Sync"
- Ensure OVRLipSync shows as Enabled (not greyed out)
If the plugin is missing or fails to load:
- Check the
Plugins/OVRLipSync/directory exists and contains actual files (not LFS pointers) - Run
git lfs pulland check again - For UE 5.6 compatibility, the plugin requires a minor source code fix—see instructions in the legacy Oculus-LipSync-Plugin documentation
Mac-Specific Limitations¶
Note
This section applies only to developers using Apple Silicon (M-series) Macs.
The OVRLipSync x86_64 Constraint¶
The OVRLipSync plugin ships as a pre-compiled binary for x86_64 (Intel) architecture only. Apple Silicon Macs run an ARM64 architecture natively. This means:
- If you open the project normally (ARM64 mode), Unreal Engine cannot load the OVRLipSync plugin and will fail with module load errors
- The workaround is to run Unreal Engine in Rosetta 2 (x86_64 emulation) mode
- This requires building and running Unreal Engine from the x86_64 binary, not the ARM binary
Required Xcode Version¶
Install Xcode 16 (not the App Store version):
- Download from: https://developer.apple.com/download/all/?q=xcode%2016
After installation:
First-Time Build on Mac (x86_64 mode)¶
# Clean the project first
rm -rf Binaries Intermediate DerivedDataCache
# Generate project files in x86 mode
arch -x86_64 /Users/Shared/Epic\ Games/UE_5.6/Engine/Build/BatchFiles/Mac/GenerateProjectFiles.sh \
-project="/path/to/FSE100Capstone.uproject" \
-game
# Build in x86 mode
arch -x86_64 /Users/Shared/Epic\ Games/UE_5.6/Engine/Build/BatchFiles/Mac/Build.sh \
FSE100CapstoneEditor Mac Development \
-architecture=x86_64 \
"/path/to/FSE100Capstone.uproject"
Opening the Project on Mac (EVERY TIME)¶
Warning
You MUST open the project via Terminal every single time. Never double-click the .uproject file on Mac.
arch -x86_64 /Users/Shared/Epic\ Games/UE_5.6/Engine/Binaries/Mac/UnrealEditor.app/Contents/MacOS/UnrealEditor \
"/path/to/FSE100Capstone.uproject"
DO NOT:
- Double-click the
.uprojectfile - Open from the Epic Games Launcher
- Allow Unreal to rebuild modules automatically (click "No" if prompted)
Mac Microphone Access¶
Before the AI voice input will work:
- System Settings → Privacy & Security → Microphone
- Enable access for UnrealEditor-Mac-DebugGame
VR Testing on Mac¶
Mac cannot perform real-time VR testing with Meta Quest. Meta Quest Link (USB) and Meta Quest Air Link are not supported on macOS. Mac developers should use Mac for:
- C++ coding and Blueprint editing
- UI development
- General gameplay programming
For VR testing, use a Windows workstation or package directly to the headset (Android APK build is not possible on Mac either—this requires a Windows machine).
Learn More
If you'd like to learn more, you can read our more fine-grained technical documentation on macOS setup including Xcode configuration, Git LFS permissions, OpenAI API key setup, and VR testing limitations at Mac Setup & Limitations.
Next Steps¶
With your environment set up, continue to understand the system architecture: