- 순수 TypeScript 타입 시스템만으로 DOOM을 실행하는 데 성공
- 총 3조 5천억 줄, 177TB의 코드
- 첫 프레임 생성에 12일 소요
- 이를 위해 순수 TypeScript 타입 시스템으로 WASM 가상 머신을 구현
기술적 도전 과제 및 솔루션
- 규모 문제
- 최적화 이전 코드 규모는 1.25PB로, 초기 계산에 3개월이 필요했음
- 최적화를 통해 각각 177TB와 12일로 감축
- TypeScript 컴파일러 제한
- 스택 깊이 및 재귀 제한 등을 극복하기 위해 컴파일러 수정
- 게임 리소스 인코딩
- 맵, 텍스처, 적 AI, 물리엔진 등 모든 게임 요소를 타입으로 인코딩
- 타입 수준의 Garbage Collector, L1 CPU 캐시, Dead-Code Elimination, 실시간 Memory Compactor, 전역 스택 등을 구현해야 했음
- 엔진 전체는 문자열 리터럴 형태의 2의 보수만으로 구현됨
이후 예정
- 후속으로 심층 분석 영상 게시 예정
- 개발 중에 만들었으나 게시하지 못한 60개 이상의 Shorts도 있음