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

執筆者:

関連記事

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

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

CentOS8をPC実機にネットワークインストール(CD使用)

前回Windows上のVirtualBoxにCentOS8をインストールしました。 One IT ThingCentOS8をVirtualBoxにインストールしてXからdnfを打つまでhttps:// …

CentOS8をVirtualBoxにインストールしてXからdnfを打つまで

2019年9月24日(米時間)CentOS8がリリースされました。 RHEL8リリースから4か月、まだかまだかとリリース進捗を眺めていた方も多かったのではないでしょうか。 「時間が出来たら入れてみよう …

各種OSでのインデックスを使用した高速ファイル名検索と全文検索【Linux編】

目次1 目的2 環境3 使用コマンド4 ファイル名検索5 全文検索6 補足とインデックス更新7 まとめ 目的 CentOS上に存在する全ての「~.java」ファイルをリストアップします。上記の内「Sy …

podmanをdockerとして使う

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

 

shingo.nakanishi
 

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