~/talk

Playing Video Games One Frame at a Time

Talkat NDC TechTown 2023 · 2023-09-18..09-21· [game-development]
slides:none on file

Shows how programmatic play actually works: runs Doom demo files deterministically to approval-test a C++ refactor, executes dozens of demos in CI and compares numeric outputs; uses OpenCV color HSV heuristics and template matching with OpenCV to locate 64×64 gem cells and identifies exactly 32 possible moves; injects a DLL with Microsoft Detours into a DirectX9 game, hooks EndScene to emit per-frame keyboard events (200 ms throttle during tests) and records frame-accurate input scripts for replay.

AI-written summary · about

  1. 0:00Introduction
  2. 2:53Why this talk is fun
  3. 5:47Remote game control challenges
  4. 6:31Games with built-in support
  5. 9:20Doom demo files speedrunning
  6. 12:14Doom's deterministic engine
  7. 15:22Approval testing with Doom demos
  8. 19:42Bejeweled image recognition
  9. 27:31Gem colors with HSV
  10. 30:19Best Bejeweled move
  11. 31:55Automating Bejeweled clicks
  12. 33:55Live Bejeweled demo
  13. 34:59Games without built-in support
  14. 36:01Game loop understanding
  15. 40:26Frame-based timing
  16. 41:51Hooking VBV DirectX calls
  17. 45:02Detours for DirectX interception
  18. 48:33Hooking end scene for input
  19. 51:49Live VBV frame demo
  20. 56:02Summary and applications
  21. 57:30Resources for TAS and Doom
  22. 58:15Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.