From C to Ruby: Porting Doom
summary
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
chapters (12)
- 0:00Introduction
- 0:47Why port Doom to Ruby
- 3:14Ruby Doom overview
- 8:13Rendering techniques in Doom
- 11:03Performance with YJIT
- 13:15PlayStation emulator comparison
- 13:56Benchmarking approach
- 16:23Benchmark results
- 18:30Optimizing ZJIT
- 20:38Rendering optimization
- 22:02Potential further optimizations
- 23:04Ruby Doom demo mode
related talks
29mHow I Ported Doom to the Browser with WebAssembly
33mRun your favorite games everywhere with WASM: the BlazorDoom use case
52mFallacies of Doom Lessons learned from porting Doom 3 to Java
01h 04mFallacies of Doom - Lessons learned from porting Doom 3 to Java
56mFrom Hell to Heaven: Porting Doom to MAUI
56mFrom Hell to Heaven: Porting Doom to MAUI
23mDOOM Postmortem: 30 Years of DOOM
31mBuilding a Commercial Game Engine using mRuby and SDL
