特集

Raspberry Pi 3で懐かしのFPSゲーム「Quake III Arena」をプレイする

 IoTでの運用や、手軽にプログラミングに始められることで有名なシングルボードコンピュータ「Raspberry Pi」。もちろん、ハードウェア特有のGPIOを利用した各種センサーの制御や、Linuxベースならではの豊富なプログラミング環境を利用しない手はないのだが、基本的に汎用コンピュータである点を忘れてはならない。

 特に最新の「Raspberry Pi 3 Model B」は、CPUにARMのCortex-A53をベースとした1.2GHzのクアッドコアプロセッサを搭載しており、内蔵しているGPU「Broadcom VideoCore IV」と組み合わせることで、そこそこの3Dグラフィックス性能を実現できる。そこに着目した筆者は、何か3Dゲームをプレイできないかと模索していた。

 ネット調べてみたところ、Raspberry Piで懐かしのFPSゲーム「Quake III Arena」(以下Quake 3)がプレイできることが判明した。今回はここで公開されている英語の手順を元に、Quake 3をプレイできるような環境に持っていくことを日本語で解説したい。

 まずは当然のことながら、Raspberry Pi 3本体と、それを動作させられる一通りの周辺デバイスを揃える必要がある。具体的にはACアダプタ、キーボード、マウス、それからOSなどを入れるためのmicroSDカード、画面を映し出せるHDMIディスプレイである。今回は東芝の32GBのmicroSDカード、ドスパラのWUXGA(1,920×1,200ドット)表示対応モバイル液晶「DG-NP09D」などを使用した。

 注意したいのはACアダプタで、できれば2.5A以上を確保できるものを用意されたい。さもないと性能が出ない可能性がある。また、Quake 3プレイ中はプロセッサがかなり熱くなるので、ヒートシンクを貼り付けて放熱性を高めた方が良いだろう。

 環境を揃えたら、Raspberry Pi向けに最適化されたOS、RASPBIANをインストールする。インストール方法は複数あるが、Windows環境であれば、「NOOBS」を使った方が良い。パナソニックが配布しているSD Formatterを使い、オプションの「理論サイズ調整」をONにしてからmicroSDカードをフォーマット、その後、ダウンロードしたNOOBSのZIPを解凍し、中身を全てmicroSDカードに移す。そうすれば、OSのインストーラが起動するので、RASPBIANがインストールされるまでひたすら待てば良い。

 なお、HDMI経由でPC用ディスプレイに出力した場合、Raspberry Piがオーバースキャンを自動的にかけ、黒枠が表示されフル解像度にならない場合がある。その場合は左上のMenu→Preference→Raspberry Pi Configurationで、OverscanをDisabledにすると良い。

Quake 3のインストール

 さて、起動したらいよいよQuake 3のインストールに入るのだが、まずネットワーク環境を整えておく必要がある。Raspberry Pi 3内蔵の無線LANを使っても良いし、手っ取り早く有線LANで繋げてしまうのも手ではある。ネットワークに繋げたら次のステップだ。

 Quake 3だが、Raspberry Pi向けのバイナリが既に用意されているわけではなく、ソースコードの状態で公開されている。また、コンパイルされるプログラムはあくまでもQuake 3の本体のみで、マップなどの情報は別途ダウンロードする必要がある。そのためRaspberry Piで動作させるためには、

1.ソースコードをバイナリにコンパイルする環境を整える
2.ソースコードをダウンロードする
3.ソースコードをコンパイルする
4.マップデータをダウンロードする
5.マップデータを指定のフォルダに解凍する
6.Quake 3を起動する

 という手順を踏む必要がある。それでは1つずつ追っていこう。

1.ソースコードをバイナリにコンパイルする環境を整える

 RASPBIAN標準ではコンパイラを持っていないので、apt-getというコマンドを使い、ライブラリやコンパイルをインストールする。画面上部のタスクバー部分に、黒い画面のアイコンがあるのだが、それがターミナル、Windowsで言うところのコマンドプロンプトのようなものだ。入力するコマンドは下記の通り

sudo apt-get install git gcc build-essential libsdl1.2-dev

2.ソースコードをダウンロードする

 続いて、GithubからQuake3のソースコードやスクリプトをローカルにクローンする。ターミナルでの入力は下記の通り。

git clone https://github.com/raspberrypi/quake3.git

 ソースコードのクローンが終了したら、quake3のフォルダにカレントを移しておく。

cd quake3

3.ソースコードをコンパイルする

 英語による解説では、コンパイルのスクリプト「build.sh」を編集するよう指示しているのだが、実は現在、Raspberry Pi向けのスクリプト「build_rpi_raspbian.sh」が用意されているので、これを実行するだけで良い。なので、コマンドは下記だ。

./build_rpi_raspbian.sh

 コンパイルが終わるまでお茶でも飲んで待とう。コンパイルされたプログラムは、quake3の下のbuild/release-linux-armに出力される。

4.マップデータをダウンロードする

 Quake 3は基本的に有料なシェアウェアだが、体験版のマップデータが使える。wgetコマンドを使ってダウンロードする。

wget http://dl.dropbox.com/u/1816557/Q3%20Demo%20Paks.zip

5.マップデータを指定のフォルダに解凍する

 ご覧の通りダウンロードされたファイルはZIP形式となっているため、ダウンロードが完了したファイルを右クリックし、「Extract to...」で解凍すると、baseq3というフォルダができるので、このbaseq3の中身を先ほどのbuild/release-linux-arm/baseq3の下に移すか、build/release-linux-armにフォルダごとドラッグ&ドロップしてマージすると良い。

6.Quake 3を起動する

 最後はいよいよ起動だ。当然のことだが、自分でプログラムをコンパイルした場合、デスクトップやスタートメニューにショートカットが登録されない。実行はターミナルから行なう。もしターミナルのカレントディレクトリがまだquake3のままだったら、

cd quake3/build/release-linux-arm

でカレントディレクトリを移動してから

sudo ./ioquake3.arm

 という管理者権限でプログラムを実行すると良い。なお、実行後フォーカスが別のウィンドウに持って行かれ、マウスやキーボードに反応しない場合があった。その場合はAlt+TabキーでフォーカスをQuake 3に持ってきてから操作すると良い。

 さて実際の実行速度だが、動画を観ていただければ分かる通り、概ね快適である。近くでのロケットランチャーや血しぶきがあがるようなシーンでは若干処理落ちするものの、プレイには差し支えない。もし遅いようなら、ACアダプタや放熱周りをチェックすると良いだろう。

 それにしても17年前とは言え、当時Celeron 300A(300MHz)を450MHzにオーバークロックして、RIVA TNTといった当時最新鋭のビデオカードでようやくプレイできた3Dゲームが、13W程度のシングルボードコンピュータで動くようになるとは、なかなか感慨深い。

【動画】Raspberry Pi 3でQuake 3を動作させているところ。