Tagline: Instant replay without leaving your game. Tap a key to rewatch the last few seconds, or ask "when did I last die?" and Deja finds it.
Inspiration
Replay systems let you review your gameplay, but you have to wait for the match to end or open another window and lose track of the game. Usually it isn't worth the hassle, so you never look. I wanted a replay to be as easy as asking "wait, what just happened?"
What it does
Deja records your game in the background. Press a hotkey and a small player appears over the game in under half a second, showing the last few seconds without stealing focus or stopping the recording. Or hold a key and say "show me the last time yellow fell off the map": Deja finds that moment and plays it, or tells you it never happened. There's no per-game setup, because it works from what's on screen.
How I built it
- C++ / Qt 6 recorder and player, built on the open-source GameHQ capture pipeline. Replays are copied from the recorded segments without re-encoding, so they open almost instantly.
- Python for search: faster-whisper transcribes speech on-device, OpenCV samples frames, and a vision model finds the moment, then checks it against more frames before playing.
- A HUD-discovery pipeline that finds a game's event indicators from raw footage by watching how pixels change over time.
Challenges I ran into
- Keeping the recording running while a replay plays, including stopping the recorder from switching to the player window when it takes focus.
- Handing keyboard and mouse to the overlay and back without stuck keys or stray shots.
- Stopping the model from "finding" moments that never happened.
Accomplishments that I'm proud of
- Quick replays open in 0.3–0.5 s.
- A spoken question becomes the right replay with one held key.
- HUD discovery found every planted death and kill on a test clip, and no false events on real Doom footage.
What I learned
Measure before optimizing: the biggest speedup came from a slow Windows audio-device lookup, not the code I planned to rewrite. And fix the structure, not the threshold: tuned numbers broke on the next game, while rules that always hold kept working.
What's next for Deja
Ideally, Deja gets faster the more you use it. Frames it has already checked for one question can be kept as examples, so the next time that kind of moment comes up it's recognized right away instead of searched for from scratch. Over time that becomes a live event index, so "my last death" is instant. After that: automatic player placement that avoids the HUD, and benchmarks on Valorant, League and Minecraft.
Log in or sign up for Devpost to join the conversation.