linux

LinuxでDOOMをプレイ(ゲームソースコードをコンパイル)

投稿日:2019年8月6日

「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も動きますよ。

グラフィックやサウンドが綺麗だったりします。遊ぶならこっちの方がおススメかも。

-linux
-, , ,

執筆者:

関連記事

テキストファイル内の改行コード差異を見つけるワンライナー

ファイル内容は同じなのにdiffで違いが出るWeb上でソースレビューする時に同じ内容の行なのに差分が出て紛らわしい これらの原因はWindows、Mac、Linuxが入り混じった、改行コードが統一され …

VirtualBoxにUbuntu18.04をインストール(SSH接続するまで)

2019年も変わらずLinuxディストリシェアトップをキープしたUbuntuをVirtualBoxでインストールします。 マイナビニュース  7 UsersDebianとCentOS下落- …

Termuxで動作が確認できたターミナルゲーム4つ

Android端末をroot化せずにLinux環境を独自構築する神アプリ「Termux」。 play.google.comhttps://play.google.com/store/apps/deta …

Linux、Macでハードディスクが一杯になった時の対処

「いつの間にかハードディスク一杯になってた・・・」 運用側が10:0で言い訳出来ない障害の一つなんじゃないでしょうか。 怖い先輩(上役)に体育館裏(会議室)に連れていかれる恐怖を思い出します。 運管ミ …

CentOS8にPostgreSQL12をインストールする手順

以前CentOS7にPostgreSQL11をインストールしてSQL実行しました。 One IT Thing  1 Pocket開発用PostgreSQLをCentOSにインストールしてSQ …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。