“DOOMQL: เกมยิงแบบมัลติเพลเยอร์ที่เขียนด้วย SQL ล้วน ๆ — เมื่อฐานข้อมูลกลายเป็นเครื่องมือสร้างโลก 3D”
ใครจะคิดว่า SQL ซึ่งเป็นภาษาที่ใช้จัดการฐานข้อมูล จะสามารถใช้สร้างเกมยิงแบบ DOOM ได้ ล่าสุด Lukas Vogel นักวิทยาศาสตร์คอมพิวเตอร์และผู้ร่วมก่อตั้ง CedarDB ได้สร้างเกมชื่อ “DOOMQL” ซึ่งเป็นเกมยิงแบบมัลติเพลเยอร์ที่เขียนด้วย “pure SQL” ทั้งหมด โดยใช้เวลาเพียงหนึ่งเดือนระหว่างการลาคลอด
DOOMQL ใช้เพียง ~150 บรรทัดของ Python สำหรับ client ที่รับอินพุตจากผู้เล่นและแสดงภาพ ส่วนการประมวลผลทั้งหมด — ตั้งแต่การเรนเดอร์ภาพ 3D, การเคลื่อนไหวของศัตรู, ไปจนถึงการจัดการสถานะเกม — ถูกเขียนด้วย SQL ล้วน ๆ บนฐานข้อมูล CedarDB ซึ่งทำให้เกมสามารถรันได้ที่ 30 FPS บนความละเอียด 128x64 พิกเซล
ความพิเศษของ DOOMQL คือการใช้ฐานข้อมูลเป็น “เซิร์ฟเวอร์เกม” โดยอาศัยคุณสมบัติของ SQL เช่น transaction isolation เพื่อให้ผู้เล่นแต่ละคนเห็นสถานะเกมที่สอดคล้องกัน แม้จะมีผู้เล่นหลายคนพร้อมกัน และยังสามารถ “โกง” ได้โดยการส่งคำสั่ง SQL ตรงเข้าไปในฐานข้อมูล
Vogel ได้แรงบันดาลใจจากโปรเจกต์ DuckDB-DOOM ซึ่งใช้ SQL ร่วมกับ JavaScript ในการเรนเดอร์ภาพ แต่เขามองว่าการใช้ JavaScript เป็น “การโกง” และต้องการพิสูจน์ว่า SQL เพียงอย่างเดียวก็สามารถสร้างเกมได้จริง แม้จะยอมรับว่า “มันอาจจะเป็นไอเดียที่แย่” ในแง่ของการดูแลรักษาและดีบัก
จุดเด่นของ DOOMQL
เกมยิงแบบมัลติเพลเยอร์ที่เขียนด้วย SQL ล้วน ๆ — ไม่มี JavaScript หรือ engine ภายนอก
ใช้ CedarDB เป็นฐานข้อมูลหลักในการจัดการสถานะและเรนเดอร์ภาพ
รันที่ 30 FPS บนความละเอียด 128x64 พิกเซล — เร็วกว่ารุ่น DuckDB ที่รันได้เพียง 8 FPS
ใช้เพียง ~150 บรรทัดของ Python สำหรับ client ที่รับอินพุตและแสดงภาพ
สถาปัตยกรรมของเกม
ข้อมูลทั้งหมดอยู่ในตาราง SQL เช่น map, players, mobs, inputs, sprites
การเรนเดอร์ใช้ stack ของ SQL views ที่ทำ raycasting และ sprite projection
game loop เป็น shell script ที่รัน SQL file ประมาณ 30 ครั้งต่อวินาที
ผู้เล่นสามารถส่งคำสั่ง SQL เพื่อเปลี่ยนสถานะเกมหรือ “โกง” ได้โดยตรง
ข้อมูลเสริมจากภายนอก
DuckDB-DOOM เป็นโปรเจกต์ก่อนหน้า ที่ใช้ SQL ร่วมกับ JavaScript และ WebAssembly
DOOMQL ได้รับความสนใจจากนักพัฒนาและนักวิจัยด้านฐานข้อมูล
CedarDB เป็นฐานข้อมูลที่ออกแบบมาเพื่อประสิทธิภาพสูงในการ query แบบ real-time
Vogel วางแผนเพิ่มฟีเจอร์ เช่น power-ups, อาวุธหลายแบบ, AI ฝ่ายตรงข้าม และระบบ sprite ที่ดีขึ้น
https://www.tomshardware.com/video-games/retro-gaming/doom-multiplayer-tribute-gets-coded-in-pure-sql-and-runs-at-30fps-made-from-just-150-lines-of-code-in-less-than-a-month
ใครจะคิดว่า SQL ซึ่งเป็นภาษาที่ใช้จัดการฐานข้อมูล จะสามารถใช้สร้างเกมยิงแบบ DOOM ได้ ล่าสุด Lukas Vogel นักวิทยาศาสตร์คอมพิวเตอร์และผู้ร่วมก่อตั้ง CedarDB ได้สร้างเกมชื่อ “DOOMQL” ซึ่งเป็นเกมยิงแบบมัลติเพลเยอร์ที่เขียนด้วย “pure SQL” ทั้งหมด โดยใช้เวลาเพียงหนึ่งเดือนระหว่างการลาคลอด
DOOMQL ใช้เพียง ~150 บรรทัดของ Python สำหรับ client ที่รับอินพุตจากผู้เล่นและแสดงภาพ ส่วนการประมวลผลทั้งหมด — ตั้งแต่การเรนเดอร์ภาพ 3D, การเคลื่อนไหวของศัตรู, ไปจนถึงการจัดการสถานะเกม — ถูกเขียนด้วย SQL ล้วน ๆ บนฐานข้อมูล CedarDB ซึ่งทำให้เกมสามารถรันได้ที่ 30 FPS บนความละเอียด 128x64 พิกเซล
ความพิเศษของ DOOMQL คือการใช้ฐานข้อมูลเป็น “เซิร์ฟเวอร์เกม” โดยอาศัยคุณสมบัติของ SQL เช่น transaction isolation เพื่อให้ผู้เล่นแต่ละคนเห็นสถานะเกมที่สอดคล้องกัน แม้จะมีผู้เล่นหลายคนพร้อมกัน และยังสามารถ “โกง” ได้โดยการส่งคำสั่ง SQL ตรงเข้าไปในฐานข้อมูล
Vogel ได้แรงบันดาลใจจากโปรเจกต์ DuckDB-DOOM ซึ่งใช้ SQL ร่วมกับ JavaScript ในการเรนเดอร์ภาพ แต่เขามองว่าการใช้ JavaScript เป็น “การโกง” และต้องการพิสูจน์ว่า SQL เพียงอย่างเดียวก็สามารถสร้างเกมได้จริง แม้จะยอมรับว่า “มันอาจจะเป็นไอเดียที่แย่” ในแง่ของการดูแลรักษาและดีบัก
จุดเด่นของ DOOMQL
เกมยิงแบบมัลติเพลเยอร์ที่เขียนด้วย SQL ล้วน ๆ — ไม่มี JavaScript หรือ engine ภายนอก
ใช้ CedarDB เป็นฐานข้อมูลหลักในการจัดการสถานะและเรนเดอร์ภาพ
รันที่ 30 FPS บนความละเอียด 128x64 พิกเซล — เร็วกว่ารุ่น DuckDB ที่รันได้เพียง 8 FPS
ใช้เพียง ~150 บรรทัดของ Python สำหรับ client ที่รับอินพุตและแสดงภาพ
สถาปัตยกรรมของเกม
ข้อมูลทั้งหมดอยู่ในตาราง SQL เช่น map, players, mobs, inputs, sprites
การเรนเดอร์ใช้ stack ของ SQL views ที่ทำ raycasting และ sprite projection
game loop เป็น shell script ที่รัน SQL file ประมาณ 30 ครั้งต่อวินาที
ผู้เล่นสามารถส่งคำสั่ง SQL เพื่อเปลี่ยนสถานะเกมหรือ “โกง” ได้โดยตรง
ข้อมูลเสริมจากภายนอก
DuckDB-DOOM เป็นโปรเจกต์ก่อนหน้า ที่ใช้ SQL ร่วมกับ JavaScript และ WebAssembly
DOOMQL ได้รับความสนใจจากนักพัฒนาและนักวิจัยด้านฐานข้อมูล
CedarDB เป็นฐานข้อมูลที่ออกแบบมาเพื่อประสิทธิภาพสูงในการ query แบบ real-time
Vogel วางแผนเพิ่มฟีเจอร์ เช่น power-ups, อาวุธหลายแบบ, AI ฝ่ายตรงข้าม และระบบ sprite ที่ดีขึ้น
https://www.tomshardware.com/video-games/retro-gaming/doom-multiplayer-tribute-gets-coded-in-pure-sql-and-runs-at-30fps-made-from-just-150-lines-of-code-in-less-than-a-month
🧠 “DOOMQL: เกมยิงแบบมัลติเพลเยอร์ที่เขียนด้วย SQL ล้วน ๆ — เมื่อฐานข้อมูลกลายเป็นเครื่องมือสร้างโลก 3D”
ใครจะคิดว่า SQL ซึ่งเป็นภาษาที่ใช้จัดการฐานข้อมูล จะสามารถใช้สร้างเกมยิงแบบ DOOM ได้ ล่าสุด Lukas Vogel นักวิทยาศาสตร์คอมพิวเตอร์และผู้ร่วมก่อตั้ง CedarDB ได้สร้างเกมชื่อ “DOOMQL” ซึ่งเป็นเกมยิงแบบมัลติเพลเยอร์ที่เขียนด้วย “pure SQL” ทั้งหมด โดยใช้เวลาเพียงหนึ่งเดือนระหว่างการลาคลอด
DOOMQL ใช้เพียง ~150 บรรทัดของ Python สำหรับ client ที่รับอินพุตจากผู้เล่นและแสดงภาพ ส่วนการประมวลผลทั้งหมด — ตั้งแต่การเรนเดอร์ภาพ 3D, การเคลื่อนไหวของศัตรู, ไปจนถึงการจัดการสถานะเกม — ถูกเขียนด้วย SQL ล้วน ๆ บนฐานข้อมูล CedarDB ซึ่งทำให้เกมสามารถรันได้ที่ 30 FPS บนความละเอียด 128x64 พิกเซล
ความพิเศษของ DOOMQL คือการใช้ฐานข้อมูลเป็น “เซิร์ฟเวอร์เกม” โดยอาศัยคุณสมบัติของ SQL เช่น transaction isolation เพื่อให้ผู้เล่นแต่ละคนเห็นสถานะเกมที่สอดคล้องกัน แม้จะมีผู้เล่นหลายคนพร้อมกัน และยังสามารถ “โกง” ได้โดยการส่งคำสั่ง SQL ตรงเข้าไปในฐานข้อมูล
Vogel ได้แรงบันดาลใจจากโปรเจกต์ DuckDB-DOOM ซึ่งใช้ SQL ร่วมกับ JavaScript ในการเรนเดอร์ภาพ แต่เขามองว่าการใช้ JavaScript เป็น “การโกง” และต้องการพิสูจน์ว่า SQL เพียงอย่างเดียวก็สามารถสร้างเกมได้จริง แม้จะยอมรับว่า “มันอาจจะเป็นไอเดียที่แย่” ในแง่ของการดูแลรักษาและดีบัก
✅ จุดเด่นของ DOOMQL
➡️ เกมยิงแบบมัลติเพลเยอร์ที่เขียนด้วย SQL ล้วน ๆ — ไม่มี JavaScript หรือ engine ภายนอก
➡️ ใช้ CedarDB เป็นฐานข้อมูลหลักในการจัดการสถานะและเรนเดอร์ภาพ
➡️ รันที่ 30 FPS บนความละเอียด 128x64 พิกเซล — เร็วกว่ารุ่น DuckDB ที่รันได้เพียง 8 FPS
➡️ ใช้เพียง ~150 บรรทัดของ Python สำหรับ client ที่รับอินพุตและแสดงภาพ
✅ สถาปัตยกรรมของเกม
➡️ ข้อมูลทั้งหมดอยู่ในตาราง SQL เช่น map, players, mobs, inputs, sprites
➡️ การเรนเดอร์ใช้ stack ของ SQL views ที่ทำ raycasting และ sprite projection
➡️ game loop เป็น shell script ที่รัน SQL file ประมาณ 30 ครั้งต่อวินาที
➡️ ผู้เล่นสามารถส่งคำสั่ง SQL เพื่อเปลี่ยนสถานะเกมหรือ “โกง” ได้โดยตรง
✅ ข้อมูลเสริมจากภายนอก
➡️ DuckDB-DOOM เป็นโปรเจกต์ก่อนหน้า ที่ใช้ SQL ร่วมกับ JavaScript และ WebAssembly
➡️ DOOMQL ได้รับความสนใจจากนักพัฒนาและนักวิจัยด้านฐานข้อมูล
➡️ CedarDB เป็นฐานข้อมูลที่ออกแบบมาเพื่อประสิทธิภาพสูงในการ query แบบ real-time
➡️ Vogel วางแผนเพิ่มฟีเจอร์ เช่น power-ups, อาวุธหลายแบบ, AI ฝ่ายตรงข้าม และระบบ sprite ที่ดีขึ้น
https://www.tomshardware.com/video-games/retro-gaming/doom-multiplayer-tribute-gets-coded-in-pure-sql-and-runs-at-30fps-made-from-just-150-lines-of-code-in-less-than-a-month
0 Comments
0 Shares
4 Views
0 Reviews