มีคนรัน Doom ได้ในฐานข้อมูล SQL
โปรเจ็กต์ SQLDoom ของนักพัฒนารายหนึ่งแสดงให้เห็นการนำเกม Doom มาสร้างภาพและคำนวณสถานะภายในระบบฐานข้อมูล SQL แบบจริงจัง แม้จะดูเหมือนเป็นการทดลองสุดประหลาด แต่เบื้องหลังไม่ได้มีแค่คำสั่ง SQL ล้วนๆ…

โปรเจ็กต์ SQLDoom ของนักพัฒนารายหนึ่งแสดงให้เห็นการนำเกม Doom มาสร้างภาพและคำนวณสถานะภายในระบบฐานข้อมูล SQL แบบจริงจัง แม้จะดูเหมือนเป็นการทดลองสุดประหลาด แต่เบื้องหลังไม่ได้มีแค่คำสั่ง SQL ล้วนๆ เพราะยังมีไคลเอนต์ Python ขนาดเล็กคอยรับอินพุต ควบคุมจังหวะเกม และส่งเฟรมภาพออกไปแสดงผลบนหน้าจอ
หัวใจของงานชิ้นนี้คือการใช้ตารางใน CedarDB เก็บข้อมูลเรขาคณิตของฉากและสถานะต่างๆ ของเกม จากนั้นใช้คิวรี SQL จำนวนมากร่วมกับ common table expressions หลายสิบชุดเพื่อคำนวณตรรกะของเกมและสร้างเฟรมภาพทีละเฟรม แนวทางนี้ต้องพึ่งพาโค้ด SQL ราว 1,300 บรรทัด กระจายอยู่ใน 89 CTE เพื่อให้เกมเดินหน้าได้ถึงระดับ 35 เฟรมต่อวินาที
ผลลัพธ์ถือว่าก้าวหน้ากว่าโปรเจ็กต์ก่อนหน้าของผู้พัฒนาอย่าง DoomQL อย่างชัดเจน เพราะเวอร์ชันเดิมพยายามสร้างเกมยิงสไตล์ Doom ที่ทำงานใน SQL ล้วนๆ แต่สุดท้ายได้เพียงภาพ ASCII ขาวดำและการเรนเดอร์แบบง่ายคล้ายเกมยุคเก่าอย่าง Wolfenstein 3D มากกว่า
SQLDoom รุ่นใหม่นี้เปลี่ยนจากความเป็นสาธิตเชิงเทคนิคให้ใกล้เคียงเกมต้นฉบับมากขึ้น ด้วยภาพสีเต็มรูปแบบความละเอียด 640×480 ที่ดูคล้ายเฟรมจาก Doom เวอร์ชันดั้งเดิม ความสำเร็จดังกล่าวสะท้อนว่าฐานข้อมูลเชิงสัมพันธ์สามารถถูกดัดแปลงไปทำงานเกินบทบาทปกติได้มาก แม้จะไม่ได้หมายความว่านี่คือวิธีที่เหมาะสมหรือมีประสิทธิภาพสำหรับการพัฒนาเกมจริง
โดยรวมแล้ว โปรเจ็กต์นี้เป็นตัวอย่างของการทดลองเชิงวิศวกรรมที่ทั้งขบขันและซับซ้อน ซึ่งเน้นให้เห็นพลังของ SQL และข้อจำกัดของมันไปพร้อมกัน รวมถึงตอกย้ำธรรมเนียมของวงการเทคโนโลยีที่ชอบถามว่า “มันรัน Doom ได้ไหม” แล้วหาทางทำให้คำตอบกลายเป็น “ได้” ในรูปแบบที่คาดไม่ถึง


