- ประสบความสำเร็จในการรัน DOOM ด้วยระบบชนิดข้อมูลของ TypeScript แบบล้วนๆ
- โค้ดทั้งหมด 3.5 ล้านล้านบรรทัด ขนาด 177TB
- ใช้เวลา 12 วันในการสร้างเฟรมแรก
- เพื่อสิ่งนี้ ได้อิมพลีเมนต์เครื่องเสมือน WASM ด้วยระบบชนิดข้อมูลของ TypeScript แบบล้วนๆ
ความท้าทายทางเทคนิคและแนวทางแก้ไข
- ปัญหาด้านขนาด
- ก่อนการปรับแต่ง ขนาดโค้ดอยู่ที่ 1.25PB และต้องใช้เวลา 3 เดือนในการคำนวณครั้งแรก
- หลังการปรับแต่ง ลดลงเหลือ 177TB และ 12 วันตามลำดับ
- ข้อจำกัดของคอมไพเลอร์ TypeScript
- มีการแก้ไขคอมไพเลอร์เพื่อก้าวข้ามข้อจำกัดอย่างความลึกของสแตกและข้อจำกัดด้านรีเคอร์ชัน
- การเข้ารหัสทรัพยากรของเกม
- เข้ารหัสองค์ประกอบทั้งหมดของเกม เช่น แผนที่ เท็กซ์เจอร์ AI ของศัตรู และเอนจินฟิสิกส์ เป็นชนิดข้อมูล
- ต้องอิมพลีเมนต์ Garbage Collector ระดับ type, L1 CPU cache, Dead-Code Elimination, Memory Compactor แบบเรียลไทม์ และ global stack
- เอนจินทั้งหมดถูกอิมพลีเมนต์ด้วย two's complement ในรูปแบบ string literal เท่านั้น
สิ่งที่จะตามมา
- มีแผนจะเผยแพร่วิดีโอวิเคราะห์เชิงลึกต่อจากนี้
- ยังมี Shorts มากกว่า 60 ตอนที่ทำไว้ระหว่างการพัฒนาแต่ยังไม่ได้เผยแพร่
6 ความคิดเห็น
ว้าว 1.25PB เลยเหรอเนี่ย
นี่คือความบ้าคลั่งที่อ้างความอยากรู้อยากเห็นเป็นข้ออ้างหรือเปล่า... สยองสุดๆ
บ้าชิบหาย.... GOAT
ว้าว...
"ขนาดโค้ดก่อนปรับแต่งอยู่ที่ 1.25PB" โหดจัด..
เห็นจาก GN ก่อนแล้วก็ได้แต่คิดว่า.. สุดยอดมากจริง ๆ ครับ