TypeScript.fm – The Friendly Show for TypeScript Developers
This week on the pod, we talk to Dimitri Mitropoulos about building DOOM in the TypeScript type system. We walk through all the nitty gritty and explore this truly amazing engineering feat! We touch on things that Dimitri learned and discovered along the way, and how you might be surprised what you can accomplish by trying! In the news, Zod 4 Beta drops with awesome new features.
Links
DOOM with Dimitri
VGM Con
Excalibur Games:
Interview
00:00 Intro
00:37 SquiggleConf 2025
01:33 Personal News
05:34 Dimitri's Background and Michigan TypeScript
10:18 JSON Parser in TypeScript Types
10:55 Where do you start with DOOM in Types?
11:51 "DOOM" Complete
16:09 How do you run DOOM in TS?
20:15 Debugging an Emulator in TS Types
22:14 How does DOOM work?
23:54 Using Web Assembly
26:17 Understanding WebAssembly and TypeScript Integration
28:49 The Concept of Abstraction in Programming
31:03 Challenges in Implementing WebAssembly from the Spec
33:16 Ambiguities in Specifications and Their Impact
35:11 Debugging Techniques and Error Handling
37:06 Innovative Use of Overflow in Game Development
40:46 Insights Gained from TypeScript During the Project
43:49 The Complexity of TypeScript Types
49:18 Time Travel Debugging and Memory Management
51:20 The Most Challenging Aspects of the Project
55:16 Reactions to DOOM
01:00:28 The Dawn of TypeScript Go
01:10:33 Lessons Learned and Future Directions
01:17:45 Outro
News
01:19:06 News for the Week of April 7th
01:24:29 Community Posts
01:27:54 Secret of the Handbook
01:29:36 Cool Stuff
01:30:28 Debugging and Performance Optimization Techniques
01:34:31 Post-roll
Sponsored by Excalibur.js
Excalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.
Music
Seahorse Dreams by Kubbi (Spotify)