パソコン

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のフルカラーフレームを生成します。

出典