Telset.id – Proyek SQLDoom berhasil menjalankan game legendaris Doom di dalam database CedarDB, sebuah terobosan teknis yang menunjukkan bahwa logika game klasik dapat direplikasi sepenuhnya menggunakan bahasa SQL. Proyek ini digagas oleh Lukas Vogel, pengembang yang sebelumnya menciptakan DoomQL, dan menandai babak baru dalam tradisi panjang menjalankan game tahun 1993 tersebut di berbagai perangkat tidak biasa.
Doom memang telah lama menjadi ajang eksperimen bagi para penggemar rekayasa perangkat lunak. Game ini pernah dijalankan pada alat tes kehamilan hingga satelit luar angkasa. Kini, SQLDoom membuktikan bahwa database relasional pun bisa menjadi rumah bagi game klasik tersebut. Pendekatan ini bukan sekadar lelucon teknis, melainkan demonstrasi bagaimana arsitektur database dapat menangani beban komputasi yang biasanya dijalankan oleh mesin game konvensional.
Menurut laporan Tom’s Hardware, frontend SQLDoom yang menampilkan grafis, memutar suara, dan menerima input ditulis menggunakan Python. Namun, bagian tersebut hanya berperan seperti periferal pada PC. Seluruh perhitungan matematis dan logika game sebenarnya dieksekusi di dalam database. Backend-nya dibangun untuk CedarDB, sebuah sistem manajemen basis data relasional (RDBMS) yang kompatibel dengan Postgres dan berfokus pada performa tinggi.

Seperti port Doom modern, SQLDoom menggunakan dua jalur eksekusi. Satu jalur berjalan pada kecepatan asli game, yaitu 35 Hz, untuk menangani seluruh logika permainan. Jalur terpisah digunakan untuk menampilkan grafis, dengan interpolasi posisi kamera di antara pembaruan game. Pendekatan ini memastikan pengalaman bermain tetap mulus meskipun beban komputasi utama berada di database.
Langkah pertama yang harus dilakukan Vogel adalah mengonversi entitas dalam file paket WAD milik Doom menjadi tabel database. Proses ini ternyata lebih mudah dari yang diperkirakan. Vogel menyebut bahwa data di dalamnya “sudah sangat relasional,” dengan level peta yang pada akhirnya terstruktur dalam hubungan parent-child yang mudah direplikasi dalam tabel biasa. Dibutuhkan sekitar 1.000 baris Python untuk menyelesaikan tahap ini.
Untuk loop gameplay utama, Vogel kembali dibuat terkejut karena logika game ternyata mudah dikonversi. Kode yang dihasilkan mencapai 5.900 baris SQL, dibandingkan dengan kode sumber C asli yang berjumlah 9.000 baris. Penghematan besar ini berasal dari fakta bahwa alih-alih melakukan iterasi atas entitas menggunakan loop “for” atau “while” untuk memperbarui nilai, satu pernyataan “UPDATE… WHERE” di SQL sudah cukup untuk melakukannya sekaligus, bahkan secara paralel.
Sebagai bonus tambahan, fakta bahwa semuanya tersimpan sebagai baris dalam tabel database memungkinkan modifikasi instan dengan mudah. Karakteristik senjata atau perilaku musuh dapat diubah secara langsung saat permainan berlangsung. Fleksibilitas ini menjadi salah satu keunggulan tak terduga dari pendekatan berbasis database.
Baca Juga:
Renderer grafis SQLDoom juga tergolong ringkas, hanya sekitar 1.300 baris. Namun, bagian ini lebih rumit karena merupakan satu query yang mencakup 89 tabel. Vogel mencatat bahwa pipeline-nya pada akhirnya sangat mirip dengan Doom asli. Data untuk traversal Binary Space Partitioning (BSP) milik John Carmack, yang merupakan implementasi pohon biner, dapat dengan mudah direpresentasikan sebagai tabel. Setiap nilai kiri/kanan dapat dikonversi menjadi bit, dan nilai urutan vertex pada akhirnya dapat direduksi menjadi satu angka. Dengan demikian, perintah sederhana “SELECT… ORDER BY” secara otomatis mengurutkan dinding dari depan ke belakang.
Meskipun telah berupaya maksimal, Vogel mengaku bahwa renderer lantai dan langit-langit tidak dapat dipetakan dengan bersih ke SQL. Hal ini karena keduanya pada dasarnya adalah algoritma flood-fill yang cerdik, yang tidak memiliki padanan langsung dalam operasi database relasional.
Yang menarik, ketika sampai pada fitur multiplayer, penggunaan database justru terbukti jauh lebih baik daripada game aslinya. Alasannya sederhana: menjaga status yang tersinkronisasi di banyak tabel dengan interdependensi yang berlimpah adalah hal yang memang dirancang untuk dilakukan oleh database. Snapshot, autentikasi, dan kontrol akses semuanya tersedia secara efektif dan sudah diimplementasikan untuk pengembang. Untuk menjalankan satu tick game, yang diperlukan hanyalah “START TRANSACTION,” menjalankan logika, lalu “COMMIT,” dan semuanya tersinkronisasi secara otomatis.

Proyek SQLDoom dapat diakses atau diunduh melalui repositori GitHub-nya. Vogel juga menulis postingan blog yang menghibur mengenai petualangan teknisnya. Proyek ini menjadi contoh bagaimana batas antara pengembangan game dan rekayasa database dapat saling bertumpang tindih.
Bagi industri, eksperimen ini menunjukkan potensi database relasional dalam menangani logika kompleks yang biasanya menjadi domain mesin game khusus. Pendekatan ini juga menyoroti bagaimana konsep-konsep klasik dalam ilmu komputer, seperti pohon biner dan sinkronisasi state, dapat diimplementasikan ulang dengan cara yang tidak konvensional. Seperti halnya berbagai eksperimen database lainnya, termasuk Database Foto 9 Juta Orang yang pernah menjadi sorotan, SQLDoom menegaskan bahwa database bukan sekadar tempat penyimpanan data, melainkan platform komputasi yang serbaguna.
Keberhasilan SQLDoom juga memperkuat tradisi menjalankan Doom di perangkat tak terduga. Sebelumnya, ada proyek yang menjalankan game ini menggunakan Microsoft Paint sebagai monitor, CPU rancangan AI, hingga ekspresi reguler. Setiap eksperimen membawa tantangan teknis unik dan menunjukkan kreativitas para pengembang dalam memanfaatkan teknologi di luar fungsinya yang biasa.
Dengan SQLDoom, Vogel tidak hanya menghadirkan port Doom yang berfungsi, tetapi juga membuka diskusi tentang bagaimana arsitektur database dapat dioptimalkan untuk beban kerja yang tidak biasa. Proyek ini menjadi referensi menarik bagi pengembang yang ingin memahami interaksi antara logika game, pemrosesan data, dan manajemen state dalam sistem terdistribusi.

Bagi para penggemar rekayasa perangkat lunak, SQLDoom menawarkan pelajaran berharga tentang bagaimana batasan teknologi dapat diatasi dengan pemikiran kreatif. Konversi logika game ke dalam query SQL bukanlah tugas sepele, namun hasilnya menunjukkan bahwa dengan pendekatan yang tepat, bahkan sistem yang tampaknya tidak cocok pun dapat digunakan untuk tujuan yang tidak terduga.
Proyek ini juga menjadi pengingat bahwa inovasi sering kali muncul dari eksperimen yang tampak iseng. Apa yang dimulai sebagai tantangan teknis dapat menghasilkan wawasan baru tentang kemampuan dan keterbatasan teknologi yang kita gunakan sehari-hari. SQLDoom adalah bukti bahwa rasa ingin tahu dan keberanian untuk mencoba hal yang tidak biasa dapat membuahkan hasil yang mengesankan.





Komentar
Belum ada komentar.