「IT業界に”技術者”として身を置く人はおよそ100%コンピュータゲーム好き、あるいは若い頃にハマった経験がある」という仮説を唱えてやまない投稿主です。
そんなゲーム好きな皆様(決めつけ)は「archive.org」のgamesourcecodeジャンルで、結構な数のゲームソフトプログラムがオープンになっているのをご存じですか?
海外レトロゲームばかりですが、20世紀のプログラムソースを見れる資料館みたいな感じで見ていて面白いです。
テック系の方であれば「オラわくわくしてきたぞ、いっちょコンパイルしてみっか」となるのも当然ですが、ここにあるソースに手を出してみると・・・動かすにはかなり労力が必要であることが分かると思います。
当たり前ですが、使用しているライブラリが古すぎるのです。
目次
先生・・・!DOOMがしたいです・・・
一覧にあるDOOMはPC-DOSゲームとして1993年にid Software社からリリースされ、現在も続編リリースが続く「FPS」ジャンルを切り拓いた名作です。昔ハマった、という方も結構いらっしゃるんじゃないでしょうか。
初版DOOMのソースは開発元のid Software社からgithubでオープンソース公開されており、閲覧、ビルドすることが出来ます。
ただ、archive.orgにあるゲームソースにしても公式DOOMソースにしても、使用されているライブラリが古いので現在のOSではビルドが難しく、ゲームをする以前に「コンパイルが無理ゲー」化しています。
今回はコンパイル出来るDOOMソースを探し、ビルドして遊んでみたいと思います。
現代でもコンパイル出来るDOOMソースコード
id Software社のgithubを元に、現代でもビルド出来るようにリメイクされたDOOMリポジトリがいくつかあります。
その中でもメジャーなのは「chocolate-doom」です。
chocolate-doomはマルチプラットフォームライブラリ「SDL (Simple DirectMedia Layer)」 を使って作られており、cmakeを使ってWindows、Mac、Linux用のバイナリをビルド出来ます。
今回はCentOS 7.6上でLinux用バイナリを作ります。
ビルド、実行環境
画面が無いとゲームプレイ出来ないのでXWindow必須です。
- CentOS 7.6
- XWindow(X11、X.Org。要startx出来る環境。)
依存ライブラリを追加
SDL、cmake他、コンパイル時に依存するものをyum installしておきます。
# yum install cmake SDL2-devel SDL2_mixer-devel SDL2_net-devel gcc make python-imaging
chocolate-doomソースをダウンロード
chocolate-doom-3.0.0.tar.gzをダウンロードして適当なディレクトリに解凍しておきます。
$ wget https://github.com/chocolate-doom/chocolate-doom/releases/download/chocolate-doom-3.0.0/chocolate-doom-3.0.0.tar.gz
$ tar xzvf chocolate-doom-3.0.0.tar.gz
ビルド
make installだけはroot権限が必要です。
$ cd chocolate-doom-3.0.0
$ ./configure
$ make
# make install
/usr/local/bin/chocolate-doomがインストールされました。
chocolate-doom-setupの方はフルスクリーン→ウィンドウモード切替やゲームパッドの設定が出来るcursesプログラムになっています。
$ locate doom | grep bin
/usr/local/bin/chocolate-doom
/usr/local/bin/chocolate-doom-setup
wadファイルをダウンロード
このままusr/local/bin/chocolate-doomを実行してもエラーが出ます。INSTALL.txtに従って以下サイトからdoom95.zipを落としてきます。
https://www.doomworld.com/idgames/idstuff/doom/win95/doom95
$ wget ftp://ftp.fu-berlin.de/pc/games/idgames/idstuff/doom/win95/doom95.zip
$ unzip doom95.zip
解凍ディレクトリにあるDOOM1.wadファイルを、後で起動オプションとして指定します。
設定
chocolate-doom-setupをコマンドラインから実行します。(必須ではありません)
フルスクリーンからWindowにしたり、ゲームパッドを設定したり、お好みで。
Let’s play DOOM!
-iwadオプションで先ほど解凍したDOOM1.wadを指定してchocolate-doomコマンドを実行します。
$ chocolate-doom -iwad DOOM1.wadのパス
おぉ・・・。サクサク動く・・・。懐い、懐すぎる・・・!
10代の頃の思い出がタイダルウェイブのように押し寄せてきます。
基本操作。
- 矢印キー:移動
- 1~6:武器を切り替え
- Ctrl:攻撃
- Shift:ダッシュ
- Alt:平行移動
- Tab:マップを開く
- Esc:メニュー表示
LinuxでDOOMが出来て大満足です。
「あいつなかなかサーバルームから出てこないな」
という時、XをインストールしてDOOMに没頭している可能性は最早0ではありません。
サクッと遊びたい方は
ビルドしなくてもWindowsやMac用のバイナリ(chocolate-doom-3.0.0-win32.zipやdmg)を落としてきて、DOOM1.wadを別途置けば実行できます。
chocolate-doomだけでなくdoomretroも動きますよ。
グラフィックやサウンドが綺麗だったりします。遊ぶならこっちの方がおススメかも。