SQLデータベースでDoomを描画、SQLDoom公開
Lukas Vogel氏がSQLデータベースでDoomをフルカラー描画するSQLDoomを公開。約1,300行のSQLクエリで毎秒35フレームを生成する。
Lukas Vogel氏は、SQLデータベースを使ってDoomを描画するプロジェクト「SQLDoom」の詳細をブログ記事で明らかにした。ゲームの描画処理の大部分をSQLクエリで実装した点が特徴だ。
SQLDoomでは、小さなPythonクライアントが入力と出力、ゲームのタイミング制御、各フレームの画面表示を担当する。ゲームの幾何形状と状態はCedarDBのテーブルで管理される。
ゲームロジックとフレームバッファの生成は、89個の共通テーブル式(CTE)にまたがる約1,300行のSQLクエリで実装されている。これにより毎秒35枚のビットマップフレームバッファを生成し、640x480のフルカラーフレームを出力する。
前作DoomQLからの変化
Vogel氏は昨年、マルチプレイヤーのDoom風シューターを完全にSQLで構築する「DoomQL」プロジェクトに取り組んだ。しかしこれはレイキャスティングベースのグレースケールASCIIグラフィックスで、Wolfenstein 3Dの90度角のマップに近いものだった。
今回のSQLDoomはフルカラーの640x480描画を実現しており、SQLデータベースを用いたゲーム描画の可能性を広げる試みとなっている。詳細はVogel氏のブログ記事で説明されている。
よくある質問
SQLDoomとは何ですか?
Lukas Vogel氏が作成した、SQLデータベースを使ってDoomを描画するプロジェクトです。小さなPythonクライアントが入出力やタイミング制御、画面表示を担当します。
SQLDoomはどのようにゲームロジックを実装していますか?
89個の共通テーブル式にまたがる約1,300行のSQLクエリでゲームロジックを実装し、毎秒35枚のビットマップフレームバッファを生成します。
前作のDoomQLとは何が違いますか?
昨年のDoomQLはレイキャスティングベースのグレースケールASCIIグラフィックスでしたが、SQLDoomは640x480のフルカラーフレームを生成します。