Sveriges mest populära poddar

TypeScript.fm – The Friendly Show for TypeScript Developers

DOOM.ts | Dimitri Mitropoulos | Ep 13

85 min • 16 april 2025

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

SquiggleConf 2025

Michigan TypeScript

DOOM with Dimitri


VGM Con
 
Excalibur Games:

Shader Programming Talk

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

  • https://www.pipe0.com/blog/never-in-typescript 
  • https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types 

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)

Förekommer på
00:00 -00:00