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 with the VR Template and choose an engine version compatible with your target headset, platform SDK, and required plugins. Use OpenXR for supported devices and add platform-specific integrations where needed. Plan rendering, controller input, comfort settings, on-device testing, and store submission requirements before full production.

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

The built-in VR Template is a starting point for prototyping interactions, with examples of grabbing objects, teleport locomotion, and snap turning. It uses OpenXR to support compatible headsets and controllers. Platform-specific features, input bindings, and packaging requirements still need configuration and testing for each target device.

For Meta Quest projects, check the Meta XR plugin’s compatibility with your Unreal Engine version before installation. The plugin adds platform-specific features such as passthrough and hand tracking. Follow Meta’s setup instructions for the selected plugin release, including its OpenXR configuration, and test the required features on the target headset.

  • Create a project from the VR Template in the Games category.
  • Configure the project for standalone Quest or desktop VR according to the target platform.
  • Enable the XR plugins required for the selected devices, following the engine and plugin documentation.
  • For Quest standalone, start with mobile forward rendering, enable MSAA, and disable Mobile HDR, then validate performance on the headset.
  • Install the Android SDK, NDK, and JDK versions required by the selected Unreal Engine release and Meta Quest integration.

Target platforms for VR games in Unreal Engine

Target platforms can include standalone Meta Quest headsets, PCVR headsets, and PSVR2 on PlayStation 5. Confirm support for each device in the selected Unreal Engine release and platform integration before committing to production. PlayStation development also requires access through Sony’s developer program.

Each platform needs its own rendering and content budgets. Standalone Quest builds must account for mobile GPU limits, memory use, and sustained performance as the headset heats up. PCVR performance depends on the computer, headset resolution, and refresh rate. For PSVR2, choose rendering features supported by the PlayStation integration and validate them on development hardware.

Target Rendering considerations Performance validation Publishing
Standalone Meta Quest Start with mobile forward rendering and assess supported optimisation features. Test frame timing, memory use, and thermal behaviour on each supported headset. Meta Horizon Store
PSVR2 on PlayStation 5 Use rendering features supported by the PlayStation integration. Validate performance and platform requirements on development hardware. Through Sony’s developer program
PCVR Compare rendering options against visual requirements and GPU cost. Test the supported headsets, refresh rates, and minimum PC specification. Steam or another supported distribution channel

Rendering: mobile forward vs deferred, MSAA, foveated rendering

For standalone Quest projects, mobile forward rendering with MSAA enabled and Mobile HDR disabled is a practical starting point. Test lighting, shadows, materials, and anti-aliasing on the target headset before setting the visual budget.

For PCVR, compare forward and deferred rendering against the project’s visual requirements and measured GPU cost. Forward rendering supports MSAA, while deferred rendering offers a different feature set and performance trade-offs. Foveated rendering can reduce GPU workload, but support depends on the headset, runtime, and platform integration.

Epic classifies Nanite and Lumen support for XR as experimental, with support limited to PC using the Deferred Renderer and DX12. They are not supported on mobile XR hardware. Review Epic’s Nanite and Lumen for XR documentation before considering either feature for production.

Performance budgets: 72, 90, and 120 Hz

The target refresh rate sets the frame-time budget: approximately 13.9 ms at 72 Hz, 11.1 ms at 90 Hz, and 8.3 ms at 120 Hz. CPU and GPU workloads must fit within the available timing constraints, with room for runtime overhead and demanding gameplay moments.

  • Choose a refresh rate supported by the target headset and platform integration.
  • Measure CPU and GPU frame times on the device during representative gameplay.
  • Set draw-call, geometry, texture, and lighting budgets from profiling results rather than universal limits.
  • Test sustained performance to catch thermal throttling, memory pressure, and frame-time spikes.
  • Use Unreal Insights and platform profiling tools to identify bottlenecks before reducing visual quality.

For PSVR2, validate refresh-rate and reprojection settings against Sony’s current developer documentation and the project’s Unreal Engine integration. Do not assume that every title uses the same rendering or display mode.

Input: Enhanced Input, IK, and hand tracking

Use Unreal Engine’s input tools to map controller actions such as grabbing, pointing, and movement. OpenXR supports input across compatible devices, but controller bindings and platform-specific interactions still need testing on each target headset.

For avatar movement, Unreal’s Control Rig and IK tools can help position hands and body parts from the available tracking data. Hand tracking requires a compatible headset and XR integration. Test gesture recognition, tracking loss, and recovery during gameplay, and offer controller support where the interaction design calls for it.

Locomotion and comfort

The VR Template includes teleport locomotion and snap turning. Add smooth movement only if it suits the game, and test comfort settings such as optional vignettes and adjustable movement speed with players on the target headset.

Offer movement and turning options that suit the intended audience. Depending on the gameplay, seated play, height adjustment, and one-handed controls can make the game more accessible. Test these options throughout gameplay, including menus and object interactions.

Audio: spatial, Steam Audio, and MetaSound

Spatial audio helps players locate sounds and understand events outside their field of view. Unreal Engine’s audio tools, including MetaSounds, can control sound behaviour, while spatialisation determines how sounds are positioned around the listener.

Choose built-in audio features or a compatible plugin according to the project’s needs for directional sound, occlusion, and reflections. Before adding Steam Audio or Meta XR Audio, check support for the selected Unreal Engine version and target platform. Test sound positioning and processing cost on the headset.

QA on device: Quest, PSVR2, PCVR

Test on every headset and platform the game will support. Editor previews help during development but cannot replace device testing for performance, tracking, input, and comfort. For PCVR, include the minimum supported PC specification in the test matrix.

  • Test installation, startup, saving, loading, and recovery after interruptions.
  • Measure CPU and GPU frame times during representative gameplay and demanding scenes.
  • Run extended sessions to check thermal behaviour, memory use, and stability.
  • Check controller bindings, tracking loss, and hand tracking where supported.
  • Test movement, menus, readability, and accessibility settings with players outside the development team.

Packaging: Quest APK, Steam VR build, PSVR2 dev kit

For standalone Quest, configure Android packaging and application signing according to the requirements of the selected Unreal Engine release and Meta integration. Check the required SDK, NDK, JDK, graphics API, and target architecture, then test the packaged build on the headset.

For PCVR, package a Windows build and test it with the supported OpenXR runtimes and headsets. If distributing through Steam, follow the Steamworks requirements for uploading and configuring the release. PSVR2 packaging requires access to Sony’s development tools and platform documentation through the PlayStation developer program.

Store submission: Meta Horizon Store, Steam, and PlayStation

Publishing on the Meta Horizon Store requires meeting Meta’s technical and content requirements. App Lab was merged into the Store in August 2024 and is no longer a separate distribution channel. Check the submission requirements in the Meta Horizon developer documentation when planning testing and release.

For Steam, follow the Steamworks submission process and specify the game’s supported VR hardware and play modes. For PlayStation, follow Sony’s submission and compliance requirements available through its developer program. Allow time to address review feedback before the planned release.

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