
Miliaran baris, beberapa bahasa pemrograman dan satu tahun keringat untuk mengeksekusi malapetaka pada frekuensi gambar yang tidak dapat dimainkan
Dalam konteksnya: Orang -orang telah membawa kemalangan ke segalanya, dari kalkulator hingga register tunai McDonald. Baru-baru ini ada dorongan untuk mengoperasikan perangkat lunak pada platform tanpa memproses feeding-PDF dan dokumen Word yang sebenarnya adalah contoh terbaru. Tentu saja, metode ini sangat lambat, tetapi luar biasa bahwa permainan bahkan dapat berjalan pada platform yang tidak biasa.
Insinyur perangkat lunak Dmitri Mitropoulos membawa port platform yang dilepaskan ke tingkat yang sama sekali baru. Programmer berhasil membuat malapetaka beroperasi di dalam sistem TypeScript – prestasi pikiran yang rumit sehingga butuh satu tahun penuh untuk berhasil.
TypeScript adalah bahasa yang dikembangkan oleh Microsoft yang bergantung pada JavaScript dengan menambahkan verifikasi statis untuk menangkap kesalahan pengkodean sebelum dieksekusi. Pertimbangkan itu sebagai pengejaan ejaan atau tata bahasa untuk kode, memastikan bahwa fungsi dan variabel dimasukkan dengan benar. Pengembang umumnya menggunakannya untuk membuat aplikasi JavaScript besar.
Eksekusi game dalam sistem TypeScript dianggap “tidak mungkin”. Bahkan Mitropoulos mencatat bahwa dia telah memulai proyek untuk “dengan cepat” membuktikan mengapa itu tidak bisa dilakukan. Namun, ketika dia memasukinya, dia secara obsesif menjadi termotivasi untuk membuatnya bekerja. Pada akhirnya, bahkan pengembang TS berpengalaman terkesan dan terdiam.
Versi Doom de Mitropoulos berlangsung di dalam 3,5 miliar orang jenis, mengkonsumsi 177 Teraoctets narkotika. Kompilasi frame tunggal memakan waktu 12 hari, yang mengarah ke perlambatan mengerikan 0,000000009645 per detik. Pelacak tipe TypeScript harus mengobati 20 juta tipe instance per detik untuk menghasilkan output, yang mengarah pada frekuensi gambar yang sangat lambat.
Terlepas dari biaya umum yang besar, Mitropoulos percaya bahwa peningkatan kinerja dimungkinkan. Di Michigan TypeScript Discord Server, ia menyarankan bahwa kompilasi dapat dikurangi menjadi “1 hingga 12 jam” dengan optimisasi lainnya. Dia telah mengidentifikasi area di mana dia dapat meningkatkan kecepatan.
Agar semuanya berfungsi, ia telah membangun mesin virtual sepenuhnya dari jenis typecript, termasuk implementasi logis dari 116 instruksi WebA sear yang diperlukan untuk mengeksekusi malapetaka. Setiap elemen komputer fungsional – RAM, ruang disk, bahkan cache CPU L1 – harus diciptakan dengan cermat dalam sistem jenis. Karena TypeScript hanya memungkinkan iterasi rantai dari kiri, ia harus memahami algoritma biner terbalik.
Eksekusi program membutuhkan pelaksanaan penelitian WebA yang dipersonalisasi, dengan menangani segala sesuatu dalam editor tipe. Kompiler Typecript juga harus diubah untuk mengelola skala proyek ekstrem, karena pelacak tipe -nya sendiri mengkonsumsi lebih dari 90 GB RAM selama eksekusi.
Mitropoulos menggambarkan upaya itu sebagai tantangan yang melelahkan. Dia menulis 12.364 tes tulisan tangan, mempelajari beberapa bahasa pemrograman dan awalnya memperkirakan bahwa proyek akan membutuhkan hingga 1,25 petak sebelum optimasi. Pada satu titik, kompilasi satu frame membutuhkan waktu tiga bulan instantiasi terus menerus. Dia menunjukkan bahwa AI tidak membantu.
“Oh, dan AI tidak dapat membantu dengan semua ini,” kata Mitropoulos dalam penjelasan video singkat tujuh menitnya (masthead). “Sangat rendah sehingga tidak ada meja, benda atau senar atau boolean di dalam mesin -hanya bilangan bulat biner dan takdir hanya menggunakan bilangan bulat 64 -bit dan 32 -bit, itu saja.
Tugas raksasa memakan waktu satu tahun penuh pada pukul 6 malam. Pengembang TS lainnya memiliki begitu banyak pertanyaan tentang proyek yang berencana Mitropoulos untuk menerbitkan dua video lain yang menjelaskan detail yang sangat teknis dan motivasinya. Untuk saat ini, kami memiliki bukti lain yang membuktikan bahwa Doom dapat mengerjakan apa pun – termasuk hal -hal yang tidak pernah dimaksudkan untuk melakukan game.