[ GAME DEVELOPMENT ]
Frame Rate Targets in VR: Choosing and Holding Them
A VR game should target the refresh rate of the headset, usually 72, 90 or 120 frames per second, and then build every scene so it hits that number on almost every frame. The target matters less than holding it. Steady timing keeps the world locked to the player's head, and that stability is what makes a game comfortable over a long session.
What target should you choose?
Start with the refresh rate your headset runs at. If the game only manages 60 frames per second on a 90 Hz headset, the system has to fill in the gaps, and the picture can judder or swim when the player moves. That is why most teams pick one target early and design for it from the start, rather than hoping to reach it at the end.
The number that matters is the frame budget, the time you have to finish all the work for one frame. The higher the target, the less time you get.
| Target | Frame budget | What it means |
|---|---|---|
| 72 Hz | About 13.9 ms | The most time per frame, and the easiest to hold on standalone hardware |
| 90 Hz | About 11.1 ms | A common balance for action games and shooters |
| 120 Hz | About 8.3 ms | Very responsive, but it needs real headroom |
Why steady frames beat high averages
An average hides the problem. A scene that runs at 90 most of the time but drops to 55 when a room fills with enemies will feel worse than a steady 72. The late frames are the ones the player notices, because they break the link between head movement and what the eyes see.
To check your own game, record frame time during a real fight, not only the frame rate counter. Look at the spikes. Large or frequent spikes will show up as stutter even when the average looks healthy.
Where do dropped frames come from?
Most spikes come from a short list of causes, and each one needs a different fix:
- Loading and streaming: a new area loads assets in the middle of play. Preload what you can and spread the rest over several frames.
- Too many draw calls: every object costs CPU time. Combine meshes and use instancing where it fits.
- Heavy effects: particles, shadows and transparent surfaces eat GPU time. Cap the counts and test them in the busiest room.
- Scripts and physics: a frame with many colliders or events can stall the main thread. Profile it and move work off the critical path.
How do you hold a target over a whole session?
Set a budget for each system, not just a global number. Give rendering, physics, audio and game logic their own slices of the frame, then test every new feature against those slices. A feature that blows its budget is a bug, even if it looks good on screen.
Dynamic quality is the safety net. Most modern engines can scale resolution and reduce effects when frame time climbs. Scale down smoothly rather than in visible jumps, and scale back up slowly so the picture does not pump in and out.
Headsets have a fallback too. Meta headsets include a frame reprojection feature, and SteamVR offers motion smoothing. Both can hide a missed frame, but they can also leave artifacts around moving objects, so do not design around them.
Common mistakes when you set a target
- Testing only in an empty room, where the game looks fine.
- Choosing 120 Hz on hardware that cannot hold it, then calling the game unplayable.
- Ignoring loading, which causes the biggest spikes for many players.
- Adding a late visual feature without checking what it costs per frame.
- Relying on reprojection to cover for a scene that is simply too heavy.
What does a healthy frame time look like?
Open your profiler and look at the graph for a single scene. A healthy scene shows a fairly flat line with small wobbles that stay under the budget. A problem scene sits under the budget most of the time, then jumps past it during fights or loading. The worst frames matter more than the middle ones, because those are the frames that break the feeling of presence.
Test three moments in every level: the quiet entrance, the busiest fight and the instant a new area loads. If all three hold the target, the level is in good shape. If one fails, you know where to look first, which saves hours of guessing. Keep the test scene in your project so you can run it again after every big change.
Should players get a refresh rate option?
Yes, when the platform allows it. Let players choose between a smoother setting and a more detailed one, and explain the trade in plain words. A player with a strong PC may want the higher rate with fewer effects. A player on standalone hardware may prefer a steady 72 with richer lighting.
Give a sensible default, because most players never open the menu. Set it to a rate the weakest supported hardware can hold in your worst room.
If you build for standalone headsets, read performance basics for standalone VR before you set your targets. Dropped frames also affect comfort, which is covered in low frame rate and VR sickness. For the headset side of the decision, VR refresh rate explained breaks down what each rate means for the player.
Pick a target that matches your headset, write the frame budget into your task list and measure frame time in the busiest room you have. Keep the spikes small. A steady 72 that never breaks will usually be more comfortable to play than a 90 that stutters every time a door opens.
Frequently asked questions
What frame rate should a VR game target?
Match the refresh rate of the headset, usually 72, 90 or 120 frames per second. Pick the highest target your hardest scene can hold most of the time, not the highest number you reach in a quiet room.
Why does frame time matter more than average FPS?
Your eyes and inner ear notice frames that arrive late, even when the average looks fine. Consistent frame time keeps the picture locked to head movement, which is what keeps players comfortable.
Should players be able to change the refresh rate?
Yes, when the headset and platform allow it. A smoother option and a more detailed option let players choose what matters more on their own hardware.