One IT Thing

IT業界を楽しむ為の学習系雑記

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

執筆者:

関連記事

認証付きHTTPプロキシを認証無しで利用する下位プロキシをsquidで構築

目次1 はじめに2 環境3 手順3.1 squidをインストール3.2 /etc/squid/squid.confを設定4 squid起動4.1 3128ポート開放4.2 各種端末で上記プロキシを設定 …

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

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

Linuxコマンドラインで英語を日本語翻訳、cowsayは日本語を話せる

サバサバしがちなIT開発現場、一服の潤いが必要ですね。以前、Linuxログインした時に牛に格言を喋らせる伝統芸能を試しました。  One IT ThingLinuxのシェルログイン時、牛に格 …

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

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

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

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


shingo nakanishi。東京で消耗中の職歴20年越え中年ITエンジニアです。「生涯現役プログラマを楽しむ」ことができる働き方探しをライフワークにしています。

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