How to Make VR Games in Unreal Engine
Back to top

How to build VR games in Unreal Engine

Dmytro Lunov

Written by

Dmytro Lunov Verified author

Head of Delivery and Program Director at Game-Ace

Dmytro leads Game-Ace delivery teams on game development, art production, game design, MVP prototyping, and Unity and Unreal Engine projects.

Published June 28, 2022 Updated September 9, 2026

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.

Frequently searched questions about VR games in Unreal Engine

It depends on the target and team. Unreal is stronger for high-fidelity PCVR and PSVR2 with C++ codebases and dense physics. Unity is usually pragmatic for Quest-only titles built by smaller teams.

Yes, one Unreal project can target both Quest 2 and Quest 3 through the same Android build. The Meta XR plugin exposes device-specific features such as Quest 3 mixed reality and higher resolution eye buffers, and the project can switch quality settings at runtime based on the detected device.

PSVR2 development in Unreal runs through the Sony PlayStation Partner program with a signed developer agreement, PS5 dev kits, and access to the PlayStation VR2 toolchain. A typical PSVR2 pipeline in Unreal covers:
  • Sony developer registration and NDA signoff.
  • PS5 dev kit and PSVR2 hardware provisioning.
  • Unreal PSVR2 platform extension provided by Sony.
  • Eye-tracked foveated rendering configuration.
  • Compliance checks against Sony technical requirements.

A focused Quest title in Unreal typically starts around €80,000 for a single-mechanic experience. A commercial VR game with multi-hour content, multi-player, and PCVR support usually falls in the €200,000 to €600,000 range depending on art scope. Cross-platform releases with PSVR2 add certification and QA cost on top.

Timeline depends on scope. A prototype in Unreal for one headset usually takes 6 to 10 weeks. A single-platform Quest release runs 6 to 9 months from setup through Meta Horizon Store submission. A cross-platform release covering Quest, PSVR2, and Steam typically runs 9 to 14 months with parallel QA tracks.

Hand tracking is production-ready on Quest 3 and Quest Pro through the Meta XR plugin and OpenXR extensions. On Quest 2 it works but tracking quality drops in low-light conditions and fast motion. Most shipping titles support hand tracking as a secondary input alongside motion controllers rather than the only input path.

Foveated rendering lowers shading rate in the outer regions of the eye buffers to save GPU cost. Fixed Foveated Rendering is safe to enable on all Quest devices with minor visible falloff. Eye-tracked foveated rendering, available on Quest Pro and PSVR2, keeps the sharp region on the fovea and hides the falloff. Enable FFR early in the project and tune the aggressiveness during optimisation passes.

Meta Horizon Store submission runs through the Meta developer dashboard with a signed APK, store listing assets, and a compliance checklist. Meta reviewers verify performance, comfort options, and content policy on a real device. App Lab is a lighter alternative for smaller titles that skips curated placement but still allows discoverability through search and direct links.
Average rating 4.9 / 5. Votes: 341
Related posts
Metahuman game character standing near realistic cars in unreal engine scene How MetaHuman changes game character development Game development for startups rocket in space Game development for startups: budget and MVP guide Tower defense games image preview Engineering tower defense games from prototype to live service Idle game development preview img Idle game development: a full production guide Gamification in recruitment preview Gamification in recruitment: what actually works
Futuristic game robot running through a purple portal
Get in touch
menu
Get in touch
Game-Ace logo loader