To build VR games in Unreal Engine, start a project from the VR Template on Unreal 5.4 or 5.5, enable OpenXR and the Meta XR plugin, and target Quest 2 or Quest 3 for standalone or SteamVR and PSVR2 for tethered play. Plan rendering, performance, input, and store submission before production ramps up.
When Unreal fits for VR games vs Unity
Unreal is a strong fit for VR games in Unreal Engine when the project needs high-fidelity PCVR or PSVR2 visuals, custom C++ systems, and dense physics or destruction. Teams that already work in Unreal for a flat-screen title usually keep the same toolchain for a VR spin-off.
Unity remains the pragmatic choice when the target is Quest-only, the team is small, and the design leans on stylised art. Unreal on Quest is fully viable, but it demands stricter budget discipline and a mobile forward renderer setup from day one.
Game-Ace scopes engine choice against the target device list, art direction, and the client’s existing codebase before recommending Unreal or Unity for a VR project.
Project setup: VR Template, OpenXR, and Meta XR plugin
A production-ready Unreal VR project usually starts from the built-in VR Template on Unreal Engine 5.4 or 5.5. The template ships with pawn, motion controller, teleport, and snap-turn examples wired to OpenXR, which keeps the same input map working across Quest, SteamVR, and PSVR2 without a rewrite.
For Meta devices, the Meta XR plugin adds Quest-specific features such as passthrough, hand tracking profiles, guardian access, and the Meta XR Simulator. Install the plugin from Fab, enable it alongside OpenXR, and disable the legacy SteamVR plugin to avoid duplicate input sources.
- Create the project from Games > Virtual Reality template.
- Set the target hardware to Mobile or Desktop depending on Quest standalone vs PCVR.
- Enable OpenXR, OpenXRMsftHandInteraction, and MetaXR plugins.
- Set forward shading, MSAA, and mobile HDR to false for Quest standalone builds.
- Configure Android SDK, NDK, and JDK per the Unreal Meta Quest documentation.
Target platforms for VR games in Unreal Engine
Unreal supports three practical VR targets today: Meta Quest 2, Quest 3, and Quest Pro as standalone Android devices; PSVR2 on PlayStation 5 through the Sony developer program; and PCVR through SteamVR on Windows using OpenXR.
Each target implies a different rendering path and content budget. Quest standalone runs on Snapdragon XR2 class hardware and demands the mobile forward renderer. PSVR2 uses PS5 GPU headroom and supports deferred rendering with eye-tracked foveated rendering. PCVR ranges from a mid-range RTX 4060 desktop to a high-end workstation, so the project needs quality scalability from the start.
| Target | Rendering path | Performance target | Publishing |
|---|---|---|---|
| Meta Quest 2 | Mobile forward, MSAA 4x | 72 or 90 Hz, ~4 ms GPU headroom | Meta Horizon Store, App Lab |
| Meta Quest 3 and Pro | Mobile forward, FFR, eye-tracked FR on Pro | 90 or 120 Hz | Meta Horizon Store |
| PSVR2 | Deferred, eye-tracked FR | 90 or 120 Hz on PS5 | PlayStation Network via Sony program |
| PCVR via SteamVR | Deferred with DLSS or FSR | 90 Hz on mid-range, 120 Hz on high-end | Steam |
Rendering: mobile forward vs deferred, MSAA, foveated rendering
Rendering choice is the single biggest performance decision for VR games in Unreal Engine. Quest standalone builds should use the mobile forward renderer with MSAA 4x, HDR disabled, and static lighting baked wherever possible. Deferred rendering does not fit Quest bandwidth budgets and causes noticeable frame drops on Quest 2 and Quest 3.
PCVR and PSVR2 can safely use deferred rendering with dynamic lighting. Fixed Foveated Rendering (FFR) reduces GPU cost by dropping shading rate in the outer regions of the eye buffers, and on Quest Pro and PSVR2 the same technique can be driven by eye tracking for a sharper focal region without wasted pixels.
Nanite and Lumen work in Unreal 5.4 and 5.5 for desktop VR with quality caveats. Lumen software global illumination is expensive at 90 Hz, and Nanite works best when the project already uses virtual shadow maps and a single-pass rendering setup. On Quest, both features are off the table and traditional LODs plus baked lighting remain the standard. Epic Games documents the current VR rendering paths in its virtual reality development guide.
Performance budgets: 72, 90, and 120 Hz
VR frame timing is unforgiving. Missed frames cause reprojection artifacts and comfort issues. A Quest 3 title at 90 Hz has around 11 ms per frame minus runtime overhead, which leaves roughly 8 ms for the app to render both eyes.
- Keep draw calls under 150 per eye on Quest, under 800 on PCVR.
- Cap triangles at 500k to 750k per eye on Quest 2, 1M on Quest 3, and 2M plus on PCVR.
- Use static meshes with baked lighting for level geometry; dynamic lights for characters only.
- Profile with Unreal Insights, RenderDoc, and the Meta Quest Developer Hub GPU trace.
- Set r.MobileHDR=0, r.MSAA.CompositingSampleCount=4, and enable OcclusionCulling.
PSVR2 has more headroom but higher expectations on visual quality. The 120 Hz mode is reserved for lightweight scenes, and most PSVR2 titles ship at 90 Hz with reprojection.
Input: Enhanced Input, IK, and hand tracking
Unreal Enhanced Input is the standard input layer for VR projects on 5.4 and later. It maps OpenXR input paths for motion controllers, buttons, thumbsticks, and grip pressure to gameplay actions in one asset that works across Quest Touch, Sony Sense, and Valve Index controllers.
Full-body or upper-body IK usually comes from Control Rig or a middleware such as Final IK. For hand-only games, the Meta XR plugin exposes hand tracking through OpenXR extensions with pinch, grab, and system gesture events. Hand tracking is production-ready on Quest 3 and Quest Pro; on Quest 2 it works but with lower confidence in low-light scenes.
Locomotion and comfort
Comfort options are not optional for a VR title that ships. The VR Template offers teleport and smooth locomotion as a starting point, and shipping games usually expose both with a vignette or tunneling comfort setting.
Snap turns at 30 or 45 degrees remain the safest default for wide audiences. Smooth turns should stay opt-in. Physical crouch, seated mode, and one-handed mode are common accessibility features that pass Meta Horizon Store submission more easily.
Audio: spatial, Steam Audio, and MetaSound
Spatial audio matters more in VR than in flat-screen games. MetaSound is the current audio system in Unreal 5.4 and 5.5, and it works well with the built-in Unreal spatializer for simple projects.
For occlusion, reflections, and HRTF-based binaural rendering, Steam Audio remains the most mature free plugin. Meta XR Audio provides a Meta-tuned HRTF that some Quest developers prefer for consistency with system audio.
QA on device: Quest, PSVR2, PCVR
On-device QA is the only reliable way to validate VR performance. Editor previews under-report GPU cost and hide thermal throttling. A shipping VR project needs a device matrix that covers Quest 2, Quest 3, at least one PCVR headset such as Valve Index, and PSVR2 when the title targets PlayStation.
- Automated smoke tests through the Meta Quest Developer Hub CLI.
- Thermal soak tests of 30 to 60 minutes to catch throttling on Quest.
- Reprojection rate tracking with the Oculus performance HUD.
- GPU frame captures with RenderDoc for outlier frames.
- Comfort passes with external testers, not just the dev team.
Packaging: Quest APK, Steam VR build, PSVR2 dev kit
Packaging differs by target. Quest builds are Android APKs signed with a keystore that matches the Meta developer account. Package for arm64 only; armv7 is deprecated. Enable Vulkan and disable ES 3.1 unless the project explicitly needs it.
PCVR ships as a standard Windows build with OpenXR runtime detection. Steam requires a depot layout and Steamworks integration. PSVR2 builds go through the Sony toolchain with dev kit access; the packaging flow is documented under NDA in the PlayStation partner portal.
Store submission: Meta Horizon Store, App Lab, Steam, PSN
The Meta Horizon Store has a curated review with performance, comfort, and content policy checks. App Lab is a lighter track for smaller titles that skips the curated placement but is still discoverable through direct links and search. Meta documents the full review checklist in its Horizon developer documentation.
Steam accepts VR titles under the standard Steamworks flow with a VR-only or VR-supported tag. PSN submission goes through Sony QA with a compliance checklist covering trophies, save data, and PSVR2 specific comfort criteria.
Ready to scope a VR game in Unreal Engine?
If you are planning a Quest, PSVR2, or PCVR title, talk to Game-Ace.
When to talk to Game-Ace about VR games in Unreal Engine
Talk to Game-Ace when the VR project needs a full production partner on Unreal, a co-development team to strengthen an in-house Unreal group, or a dedicated pod for VR optimisation on Quest, PSVR2, or PCVR. Typical engagements start with a technical review of the existing project or design brief, a target device list, and a milestone plan tied to store submission.
Game-Ace’s custom game development studio has delivered 200+ games since 2005 with 120+ in-house specialists, and the Unreal Engine developers team covers VR production from setup through store approval, alongside a dedicated VR game developers track and full-cycle game development engagements. For related reading, see the VR game development cost breakdown and the guide on testing VR games on device.
How MetaHuman changes game character development
Game development for startups: budget and MVP guide
Engineering tower defense games from prototype to live service
Idle game development: a full production guide
Gamification in recruitment: what actually works
























