開発

SQLでDoomを描画 1300行で35fpsを記録

Kyle OrlandがArs Technicaで報じたSQLによるDoom描画の記事に基づく引用と論評を記す。

4分で読める SINGULISM 編集チームが確認・編集

SQLでDoomを描画 1300行で35fpsを記録
Photo by Shubham Dhage on Unsplash

Kyle Orland が Ars Technica で報じた記事に基づく。

“Rendering Doom in a database is obviously a bad idea,” Lukas Vogel writes in a lengthy blog post explaining how exactly he managed to render Doom using an SQL database.

OK, that’s not entirely accurate. The SQLDoom project uses a small Python client to handle input and output, drive the game’s timing, and display each frame to the screen. Behind that, a series of CedarDB tables tracks the game geometry and state, while about 1,300 lines of SQL queries spread across 89 common table expressions implement the game logic and generate 35 bitmap framebuffers per second.

編集部の見解

今回の事例は実用的な実行方式ではなく、関係データベースの表現力を示す検証事例と見る。状態の参照断面を保ちつつ同時実行を扱う発想は、多人数参加型処理の設計論に材料を提供すると評価する。今後3〜6か月では、個人開発者による再現や別種の基盤での追試が増えると見る。

1〜3年の視点では、処理を基盤に寄せる設計と専用処理層に分離する設計の境界が議論になると見る。描画のような逐次処理まで問い合わせ言語で記述する手法は、保守性や効率の観点で不利と評価する。一方で、状態管理と同時実行制御を基盤側に委ねる考え方は、協調作業支援機能に応用できる可能性があると見る。

どこまでを問い合わせ言語で担い、どこからを外部処理に任せるべきかという線引きが問われている。Canon EOS 550DにDoom移植、Magic Lanternでゲームプレイ可能に見られる移植事例と同様に、実行可能であることと適切であることは別と評価する。制約の厳しい環境で動作させる試みにどのような技術的意義を認めるべきかという点が、今後の論点になると見る。

参考

よくある質問

関係データベースで遊戯作品を動作させる試みに意義はあるのか
実用性よりも表現力の検証に意義があると見る。制約の強い環境での実装は処理分担の境界を明らかにすると評価する。派生実験の蓄積が設計論の議論に役立つと見る。
状態管理を基盤に委ねる考え方は実務に生かせるのか
同時実行制御や状態共有の分野で参考になると見る。全処理を問い合わせ言語に寄せる必要はないと評価する。協調作業支援など共有状態を扱う機能で応用余地があると見る。
出典: Ars Technica

コメント

← トップへ戻る