クラウドネイティブなデータ可視化ツール「Grafana」で、なぜかWebAssembly化したDoomがプレイ可能に。

クラウド上で実行される多様なソフトウェアのログやメトリクスを受け取り、運用管理のためのダッシュボード上で可視化するツールとして定番のソフトウェアが「Grafana」です。

このGrafanaの開発元であるGrafana Labsは、Grafanaのダッシュボード画面上で一人称ゲームの古典とも言えるDoomをプレイ可能にするソフトウェア「Grafana Doom」をオープンソースで公開しました。

具体的には、Grafanaにログデータを送り込む代わりに、WebAssembly版のDoomの実行画面をデータソースとしてメトリクス化し、Grafanaへリアルタイムにメトリクスをストリーミング。Grafanaは受け取ったストリーミングデータを管理画面上でレンダリングする、という仕組みでGrafanaのダッシュボード画面上でDoomをプレイ可能にしています。

実際にWebブラウザ上でプレイ可能なDoomfanaのフルレゾリューション版ハーフレゾリューション版を公開しています(リンクをクリックするとプレイ可能な状態でGrafanaが起動します)。

プレイしてみましたが、手元のそこそこ高性能なデスクトップPC(第11世代Core i7 CPU+32GBメモリ+RTX3060Ti GPU)でもフルレゾリューション版だとかなり重く、ハーフレゾリューション版ではサクサク実行できました。

社内ハッカソンで開発、リック・アストリーの動画再生に触発

このDoomfanaを紹介した同社のブログ「Can Grafana run Doom?」によると、GrafanaでDoomを実行可能にしようと考えたきっかけは、以前発表された、Grafana上で監視データとしてリック・アストリーのミュージックビデオ「Never Gonna Give You Up」の再生に成功したことに触発されたから、とのこと。

ログデータなどを受け取り、それをグラフなどに可視化して表示するソフトウェアとして使われるGrafanaで動画を表示するには、動画を1フレームずつリアルタイムに走査線に分解し、走査線のパターンをデータ化してGrafanaにログデータとしてストリーミング、Grafana上でリアルタイムにレンダリングする、という方法で実現されていました。

これをRGBに分解して精細に行うことでカラー動画の再生を可能にする手法も編み出されました。

動画が再生できるのなら、ゲームもできるのでは? こう考えた社員数人が社内ハッカソンで開発を進めたのが、今回のDoomfanaの実現につながったとのことです。