- Réussite de l’exécution de DOOM uniquement avec le système de types pur de TypeScript
- Un total de 3,5 billions de lignes, soit 177 To de code
- 12 jours nécessaires pour générer la première image
- Pour y parvenir, une machine virtuelle WASM a été implémentée uniquement avec le système de types pur de TypeScript
Défis techniques et solutions
- Problème d’échelle
- Avant optimisation, le code atteignait 1,25 Po et le calcul initial nécessitait 3 mois
- Les optimisations ont ramené ces chiffres à 177 To et 12 jours respectivement
- Limites du compilateur TypeScript
- Le compilateur a été modifié pour surmonter des contraintes comme la profondeur de pile et les limites de récursion
- Encodage des ressources du jeu
- Tous les éléments du jeu, y compris les cartes, les textures, l’IA des ennemis et le moteur physique, ont été encodés en types
- Il a fallu implémenter un garbage collector au niveau des types, un cache CPU L1, de la dead-code elimination, un compacteur mémoire en temps réel et une pile globale
- L’ensemble du moteur est implémenté uniquement avec des compléments à deux sous forme de littéraux de chaîne
Suite prévue
- Une vidéo d’analyse approfondie est prévue par la suite
- Il existe aussi plus de 60 Shorts créés pendant le développement mais jamais publiés
6 commentaires
Waouh, 1,25 Po, quand même.
Est-ce de la folie déguisée en curiosité... frissons
Putain… le GOAT
waouh...
« Avant optimisation, la taille du code était de 1,25 Po » 😱..
Je l’ai d’abord vu sur GN… c’est tout ce que j’ai fait… Ça a l’air absolument incroyable.