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
-, , ,

執筆者:

関連記事

CentOSで暗号鍵用のパスワードを生成

そこそこ長くて文字種の入り混じった強度の高いものを自分で考えるのは面倒です。 暗号化処理を使う際に必要なパスワード文字列を、mkpasswdコマンドでいい感じに生成出来るようにしておきます。 目次1 …

podman + docker-comopseでwordpressを起動

前回podmanをdockerとして使えるようになりました。 One IT Thing  1 Pocketpodmanをdockerとして使うhttps://one-it-thing.com …

podmanをdockerとして使う

docker代替としてRHEL系OSにデフォルト搭載されたpodmanは当初、dockerを期待している他周辺ソフトウェア(docker-componseやgitlab-runnerなど)と素直に通信 …

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

以前CentOS7にPostgreSQL11をインストールしてSQL実行しました。 One IT Thing開発用PostgreSQLをCentOSにインストールしてSQLを流すまでhttps://o …

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

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

 

shingo.nakanishi
 

東京在勤、職歴20年越え中年ITエンジニアです。まだ開発現場で頑張っています。

19歳(1996年)から書き始めた備忘用プライベートWeb日記数が5,000日を超え、残りの人生は発信をして行きたいと思い、令和元日からこのサイトを開始しました。勉強と試行錯誤をしながら、自分が経験したIT関連情報を投稿しています。

私と同じく、今後IT業界で生計を立てて行きたいと考えている方や、技術共有したいけど仲間が居なくて孤独、といった方と一緒に成長、知識共有して行けたら楽しいな、と思っています。