Recording Unity gameplay: 4 approaches compared — Recorder, OBS, capture SDKs, in-game
Comparing gameplay recording options for QA and bug reporting. Editor-only or not, always-on or not, synced with game data or not — those are the forks in the road.
- unity
- recording
- qa
"I want to record Unity gameplay" means completely different things depending on why. A high-quality trailer capture and an always-on recording for bug reports are different problems. This post compares four approaches against the QA / bug-reporting requirement — the moment the bug happened has to be on film.
The comparison criteria
For bug reporting, four things matter more than image quality.
- Can it record all the time? Bugs don't show up after you press record.
- Does it run in shipped/QA builds? Editor-only tools can't help on a QA machine.
- Does it sync with game data? Can you tell which log line corresponds to second 14 of the video?
- Performance cost — if recording drops frames, it distorts the very performance bugs you're trying to reproduce.
1. Unity Recorder — editor-only, built for quality
The official package. Timeline integration, high resolutions, multiple formats.
The decisive constraint: editor-only. It can't ship in a build, so it's not an option on QA machines or test builds. It's the best tool for captures that don't have to be real-time (trailers, store footage), but for bug reporting it only works when a developer reproduces the bug in the editor themselves — and at that point, the reproduction has already succeeded.
2. OBS (replay buffer) — always-on, but outside the game
OBS's replay buffer does exactly the right thing for bug reports: keep the last N minutes at all times, save on hotkey. Install it on QA machines and the always-on problem is solved.
The limits come from living outside the game.
- There's no way to align the video with game logs. "The broken UI at second 14" has to be matched to an exception by hand.
- Game state (scene, inventory, progress) isn't captured at all.
- Every QA machine needs install, setup, and hotkey training — and collecting the files is its own process.
As a pragmatic "at least get video" answer, it's fine. The ceiling arrives the moment diagnosis needs more than video.
3. Platform / third-party capture SDKs
Console platform capture features and mobile screen-recording SDKs. They run inside the build and are platform-optimized, but they're strongly platform-bound (multi-platform means one integration per platform), and syncing with game data remains an unsolved, separate problem. Unless the project targets a single platform, maintenance tends to outweigh the benefit.
4. In-game implementation — the only road to sync, and its price
Capture and encode frames inside the game process and all four criteria can be met. Video, logs, and game state share one clock, so synchronization is solved structurally.
The price is difficulty. Reading pixels back from the GPU (AsyncGPUReadback helps, but isn't free), real-time encoding (platform-specific hardware encoder access), ring-buffer memory management, resolution/framerate trade-offs — each is a fight with the performance budget. The essential dilemma of this road is avoiding the paradox of recording-for-bugs eating the frames itself.
Summary
| Unity Recorder | OBS replay buffer | Capture SDKs | In-game | |
|---|---|---|---|---|
| Always-on | ❌ | ✅ | per-platform | ✅ |
| Runs in builds | ❌ editor-only | ✅ (external) | ✅ | ✅ |
| Log/state sync | ❌ | ❌ | ❌ | ✅ |
| Adoption cost | low | low (per-machine setup) | medium | high |
In short — Recorder for trailers, OBS for "at least get video," and if logs and state need to sit on one timeline, in-game capture is the only road. Why that shared timeline changes diagnosis speed is covered in a separate post.
Rekon is the option where we pay the cost of road #4 for you — a Unity plugin that captures rolling-buffer video, logs, and game state on one clock. If you're considering building it yourself, start with the minimal implementation guide. Even logs and state alone, before video, visibly change how often bugs get reproduced.