📑 Daftar Isi

Doom berjalan di dalam database SQL melalui proyek SQLDoom

Doom Kini Berjalan di Dalam Database SQL, 35 Fps Tanpa Kode Game Engine

Penulis:Ida Farida
Terbit:
Diperbarui:
⏱️5 menit membaca
Bagikan:
  • Developer Lukas Vogel memporting Doom agar berjalan sepenuhnya di dalam database SQL lewat proyek SQLDoom
  • Geometri level dan status permainan disimpan di tabel CedarDB, output ditangani skrip Python ringan
  • Menghasilkan 35 frame per detik berwarna penuh pada resolusi 640×480 dari sekitar 1.300 baris SQL dalam 89 blok query
  • Versi awal DoomQL memakai raycasting grayscale dan lebih mirip Wolfenstein 3D
  • Sekitar 60 fps di laptop Ryzen 7 7840U, turun ke 35 fps pada adegan sibuk
  • Mendukung deathmatch dengan server publik di Eropa dan Amerika Serikat
  • Bisa dicoba lewat kode GitHub dengan CedarDB dan data WAD asli Doom, atau pertandingan gratis online

Telset.id – Developer Lukas Vogel berhasil memporting Doom agar berjalan sepenuhnya di dalam sebuah database SQL, dengan logika permainan dan rendering ditangani melalui query. Proyek yang diberi nama SQLDoom ini menyimpan geometri level dan status permainan di dalam tabel CedarDB, sementara skrip Python ringan menangani timing, input, dan output tampilan. Hasilnya, SQLDoom mampu menghasilkan 35 frame per detik berwarna penuh pada resolusi 640×480, menggunakan sekitar 1.300 baris kode SQL yang terbagi dalam 89 blok query.

Pencapaian ini menjadi penting karena menunjukkan bahwa beban kerja yang biasanya dijalankan oleh game engine konvensional bisa dipindahkan ke operasi database. Vogel menegaskan bahwa untuk SQLDoom, ia mensyaratkan sistem rendering dan game loop beroperasi sepenuhnya melalui SQL, dengan output terbatas pada tabel warna presisi atau bitmap. “Merender Doom di dalam database jelas merupakan ide yang buruk,” ujar Vogel dalam sebuah posting blog tentang proyek tersebut.

Sebelum SQLDoom, Vogel lebih dulu meluncurkan upaya bernama DoomQL pada tahun lalu. Versi awal itu mengandalkan raycasting dengan karakter teks skala abu-abu, sehingga lebih menyerupai Wolfenstein 3D ketimbang Doom. Raycasting tersebut melewati BSP-tree traversal yang menjadi pembeda pendekatan rendering Doom, dan hal inilah yang mendorong Vogel mengembangkan versi kedua.

Membangun Ulang Rendering Doom Lewat Operasi Database

Membangun versi baru berarti menciptakan ulang bagian-bagian kunci dari proses rendering Doom menggunakan operasi database, bukan kode game engine konvensional. Menangani geometri level tergolong relatif mudah karena sort key yang dihitung saat setiap peta dimuat memungkinkan satu klausa pengurutan menentukan bagian dinding mana yang digambar.

Lantai dan langit-langit justru menjadi masalah yang lebih sulit. Engine asli Doom menggunakan visplanes dan perubahan status, yang keduanya tidak dapat diterjemahkan dengan rapi ke rendering SQL kolom per kolom. Vogel mengganti sistem tersebut dengan pendekatan yang ia sebut “pretty hacky”, yakni melakukan looping melalui urutan panel yang telah diurutkan untuk mengisi permukaan-permukaan itu.

Doom in an SQL database

Soal kecepatan, Vogel melaporkan sekitar 60 fps pada laptop dengan chip Ryzen 7 7840U, meski adegan yang sibuk bisa turun ke 35 fps. Ia menyebut overhead tabel cukup besar, namun port tersebut tetap berjalan lebih cepat dibanding upaya DoomQL miliknya yang lebih sederhana pada tahun lalu.

“Saya bermaksud menjadikannya sebagai tech demo, tetapi rasanya seperti Doom sungguhan, meskipun tidak berbagi satu baris kode pun dengan port Doom yang ada,” kata Vogel. Port ini juga mendukung permainan deathmatch, dengan server online publik yang dihosting di Eropa dan Amerika Serikat terbuka untuk pertandingan multiplayer.

Reviewer yang mencoba demo online tersebut menggambarkan performa yang lambat, dan salah satu media menduga server, bukan port-nya, yang bertanggung jawab atas hal itu. Vogel berargumen bahwa database menyimpan satu catatan status permainan yang stabil, dengan “tidak ada pembaruan yang diterapkan sebagian, bug fisika, atau perbedaan pendapat soal apakah roket benar-benar mengenai sasaran”.

The Register mencatat bahwa karya ini sekaligus menjadi etalase bagi CedarDB, sebuah sistem database yang mengompilasi query kompleks menjadi machine code. Siapa pun yang ingin mencobanya dapat menjalankan kode GitHub secara lokal dengan CedarDB dan data WAD asli Doom, atau bergabung dalam pertandingan gratis yang dihosting secara online. Kabar ini pertama kali dilaporkan melalui The Register.

Proyek SQLDoom ini juga bersinggungan dengan tren pengembangan game yang lebih luas, di mana perangkat dan platform terus bereksperimen dengan cara-cara baru menjalankan perangkat lunak. Sejumlah eksperimen serupa menunjukkan bagaimana teknologi mapan bisa dipakai ulang untuk keperluan yang tidak biasa, termasuk lewat pendekatan tanpa coding seperti yang terlihat pada Google Playground Hadir. Di sisi lain, industri game tetap menjadi ruang uji bagi berbagai inovasi rendering dan gameplay, tak terkecuali pada judul-judul baru seperti yang dibahas dalam Valor Mortis Uji Coba.

Bagi Vogel, SQLDoom tetap diposisikan sebagai tech demo. Meski demikian, ia menegaskan bahwa hasilnya terasa seperti Doom sungguhan tanpa berbagi satu baris kode pun dengan port Doom yang sudah ada. Pendekatan ini memperlihatkan bahwa database, yang biasanya identik dengan penyimpanan data dan query analitik, ternyata mampu menangani beban real-time yang selama ini diasosiasikan dengan game engine.

Dukungan deathmatch dan server publik di Eropa serta Amerika Serikat memperluas cakupan proyek ini dari sekadar eksperimen pribadi menjadi sesuatu yang bisa dicoba banyak orang. Meski reviewer menyoroti performa lambat pada demo online, dugaan bahwa serverlah penyebabnya, bukan port-nya, menegaskan bahwa inti eksperimen SQLDoom sendiri tetap berjalan sesuai rancangan Vogel.

Dari sisi teknis, keputusan Vogel membangun ulang rendering Doom lewat operasi database menunjukkan bahwa batas antara sistem manajemen basis data dan aplikasi real-time bisa dibuat lebih cair. Visplanes dan perubahan status yang menjadi andalan engine asli Doom digantikan oleh looping panel terurut, sebuah solusi yang diakui Vogel sendiri sebagai pendekatan “pretty hacky”.

Yang menarik, DoomQL yang lebih sederhana pada tahun lalu justru berjalan lebih lambat dibanding SQLDoom. Perbandingan ini memberi gambaran bahwa overhead tabel yang besar tidak otomatis membuat port berbasis SQL kalah cepat, setidaknya pada perangkat uji dengan chip Ryzen 7 7840U. Angka 60 fps di laptop dan 35 fps pada adegan sibuk menjadi tolok ukur yang dilaporkan Vogel sendiri.

Dengan 1.300 baris SQL dalam 89 blok query, SQLDoom menunjukkan bagaimana query dapat menggantikan sebagian besar logika yang biasanya ditangani kode imperatif. CedarDB, yang mengompilasi query kompleks menjadi machine code, menjadi fondasi yang memungkinkan pendekatan ini. The Register menyoroti bahwa karya Vogel sekaligus menjadi showcase bagi sistem database tersebut.

Bagi siapa pun yang tertarik, jalur mencobanya sudah tersedia: menjalankan kode GitHub secara lokal dengan CedarDB dan data WAD asli Doom, atau bergabung ke pertandingan gratis yang dihosting online. Tidak ada klaim soal rencana komersial atau pengembangan lebih lanjut dari Vogel dalam laporan ini. Proyek ini berdiri sebagai tech demo yang membuktikan bahwa Doom, salah satu game paling banyak diporting ke berbagai perangkat, kini juga bisa berjalan di dalam database SQL.

Eksperimen semacam ini menegaskan bahwa kreativitas pengembang sering kali mendorong teknologi ke arah yang tidak terduga. Doom sendiri punya sejarah panjang diporting ke perangkat tidak lazim, dan SQLDoom menambahkan bab baru pada tradisi tersebut. Vogel tidak mengklaim ini sebagai sesuatu yang praktis, melainkan sebagai demonstrasi teknis yang, menurutnya, tetap terasa seperti Doom sungguhan.

Dengan segala keterbatasannya, SQLDoom memperlihatkan satu hal: batas antara database dan game engine tidak sekaku yang dibayangkan. Selama ada query yang tepat dan struktur tabel yang mendukung, beban real-time seperti rendering frame berwarna penuh dan game loop bisa dijalankan. Vogel telah membuktikannya lewat 89 blok query dan sekitar 1.300 baris SQL.

[CONCLUSION]

SQLDoom yang dibangun Lukas Vogel menegaskan bahwa database SQL mampu menangani logika permainan dan rendering Doom, menghasilkan 35 fps pada 640×480. Dukungan deathmatch dan server publik di Eropa serta Amerika Serikat membuat proyek ini bisa dicoba, baik secara lokal lewat GitHub dengan CedarDB dan data WAD asli Doom, maupun melalui pertandingan gratis online.

Ikuti Telset.id di Google NewsFollow

Komentar

Belum ada komentar.