~/talk

From C to Ruby: Porting Doom

Talkat RubyKaigi 2026 · 2026-04-22..04-24· [ruby, game-development]
links:none on file
slides:none on file

A full rewrite of Chocolate Doom in Ruby runs original WAD assets with a software renderer (no MIDI music, frame rate unlocked) and targets playable speed: the renderer processes 70,800 pixels per frame, original game logic runs at 35 ticks per second, and a hot-path optimization that removes a redundant floor/ceiling pass yields ~50% speedup. Runtime testing shows YJIT doubles FPS versus disabled, making Doom playable on Ruby 3.3; installable as gem install Doom.

AI-written summary · about

  1. 0:00Introduction
  2. 0:47Why port Doom to Ruby
  3. 3:14Ruby Doom overview
  4. 8:13Rendering techniques in Doom
  5. 11:03Performance with YJIT
  6. 13:15PlayStation emulator comparison
  7. 13:56Benchmarking approach
  8. 16:23Benchmark results
  9. 18:30Optimizing ZJIT
  10. 20:38Rendering optimization
  11. 22:02Potential further optimizations
  12. 23:04Ruby Doom demo mode
~/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.