Software Design 2016年10月号

サポートページ

この記事を読むのに必要な時間:およそ 3 分

このページではSoftware Design 2016年10月号に関する補足情報を公開しています。

ダウンロード

P.161 「チャーリー・ルートからの手紙 第35回」

記事で紹介した,天気予報通知スクリプト「wa.fish」がダウンロードできます。ダウンロードしたzipファイルを解凍してご利用ください。コード内のメールアドレスとURLは自分のものと地域のURLに置き換えて使ってください。

ダウンロード
サンプルプログラム(wa.zip)

P.170 「Unixコマンドライン探検隊 第6回」ローグ攻略資料&パッチ

(2016年9月21日更新)

本誌P.170からの「Unixコマンドライン探検隊 第6回」で紹介したローグの攻略資料(日本語翻訳済み)とローグ&ロゴマチックのパッチファイルがダウンロードできます。

ダウンロードしたrogue_appendix.zipファイルを解凍し,index.txtを最初にご覧ください(本サイトの「補足情報」と同じ内容です)。

また,パッチファイルはここからダウンロードもできますが,誌面やindex.txtにあるように,wgetコマンドでダウンロードいただくのがUnix流かと思います(誠に申し訳ございません。誌面のファイルリンク先が間違っておりました。「お詫びと訂正」をご確認ください。index.txtは修正済みです)。

ダウンロード
ローグ攻略資料(rogue_appendix.zip)
ローグ&ロゴマチックパッチファイル(rogue_rogomatic.patch_20160623)
OS X用パッチファイル(make_brew.patch_20160621)

免責:本サンプルを使用することによって,使用者が受けたあらゆる不利益に対して,原著者および技術評論社はその責任を負いません。

お詫びと訂正

本誌の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2016年9月20日更新)

P.175 図3 1行目のコマンド


$ wget http://gihyo.jp/magazine/SD/archive/2016/201610/support/rogue_rogomatic.patch_20160623


$ wget http://image.gihyo.co.jp/assets/files/magazine/SD/2016/201610/download/rogue_rogomatic.patch_20160623

P.175 図6 1行目のコマンド


$ wget http://gihyo.jp/magazine/SD/archive/2016/201610/support/make_brew.patch_20160621


$ wget http://image.gihyo.co.jp/assets/files/magazine/SD/2016/201610/download/make_brew.patch_20160621

P.175 参考文献[3]のURL

http://rogue.rogueforge.net/rogomatic/
(RogueおよびRog-O-Maticの開発を継続している活動)

ご注意:2016年9月20日時点で,このサイトにアクセスできなくなっているようです。

補足情報

(2016年9月21日更新)

P.170 「Unixコマンドライン探検隊 第6回」補足情報

ローグ攻略資料 (ダウンロード配布)

ローグは,ソースコードと一緒に提供されるドキュメントも英語である上,難易度的に高いこのゲームを手がかりなしでの攻略はハードルが高いかもしれません。以下に,日本語訳したドキュメントを含む,ゲームの攻略情報を提供します。

これらの資料は,誌面で取り上げたrogue Version 5.4.4. の配布ドキュメントとソースコードから著者が読み取った情報です。ひょっとすると,誤りがあるかもしれません。もしもおかしいなと思う場合,不明瞭な部分があれば,英語原文,ソースコードを確認してみてください。

  • a. rogue.html日本語版 (roguejp.html)
    • 英語でないと意味が不明瞭な部分もあるので,ぜひ原文と一緒に読んでください。
      文中Unix関連のシェル,コマンドはRogueが配布されたBSD Unixを対象としています。ですので,シェルのプロンプトはcshのデフォルト"%"です。
      30年程前の環境のために書かれているので,端末のスピード(1200 baud)などの記述があります。Ethernetなどではなく,シリアル(モデム経由やRS-232Cインターフェース)でホストシステムへ接続された端末を想定した話です。これが,一般的な環境でした。
  • b. アイテム-メッセージ対応リスト (items_messages.html)
  • c. モンスター一覧 (monsters.html + monsters.files/*)
  • d. アイテム装備品など攻略情報 (info.html)
記事の補足
  • 1. コラム:ソースが提供されているゲームの攻略
  • 2. パッチファイルを使ったビルドの全手順
  • 3 動作環境について
1. コラム:ソースが提供されているゲームの攻略

昔大学の計算機センターでよくあった話しだろうと思います。センターでアドベンチャーゲームをプレーしていると肩越しに,「木に登って,鳥の巣を確認しろ」,次は「家に戻ってカーペットの下を確認するのだ」などと,口出ししてくる者がいました。ゲームをすべてやり終えたのかと聞いてみると,自分はプレーしていない。でもソースコードを読んだから,よく分かっているということ。

Unixなどでのゲームは,商用目的ではないので,製作者も大体ソースコードを配布する形で広く遊んでもらえるようにしていました。だいたいどのゲームも,辛口のコンピューターナードをうならせるために難易度は高めです。もちろん,攻略本なんてありません。今日ではそうした人気のゲームは,どこかのWeb上に攻略情報があるかもしれませんが,以前はUsenetなどネットニュースを使っての情報のやりとりが中心でした。

今回の記事の執筆のため,ひさしぶりにローグのソースコードを眺めていて,改めて感じたことがあります。こうしたゲームはソースコードが攻略情報の源泉であり,さらにゲームを面白くしたり難易度を調整したいなら,自らプログラムをハックして楽しむのが正しいコンピューター技術者のゲームの楽しみ方だということです。

本誌でも紹介しましたが,ローグの後さまざまなローグライクゲームが登場します。hack(ハック)は,ローグが出て間もなく登場しました。ハックは後にNethack(ネットハック)として発展し今も多くのファンがいます。難易度は,ローグよりも難しいかもしれません。ローグが決められた単純な行動しかできないのに対してありとあらゆることができるのも特徴です。アイテムや職業の選択,ともに旅をする動物,さらにダンジョンを進んでいくと様々な謎が待ち構えています。きっと製作者たちは,ローグにこうした要素があったらと思って,機能やシナリオを加えていったのでしょう。

みなさんも,ソースコードが提供されているお気に入りのゲームを,ソースを読んで攻略し,自分なりのオマージュ作品を作ってみてはいかがでしょうか。

2. パッチファイルを使ったビルドの全手順
  • a) まずは,作業用ディレクトリを作成し,その中に移動
    
    $ mkdir Rogue+Rogomatic
    $ cd Rogue+Rogomatic
    
    
  • b) 本誌にあるように,オリジナルのソースを取得して展開
    
    $ wget http://www.anthive.com/rog/rogue5.4.4-ant-r1.1.2-src.tar.gz 
    $ wget http://www.anthive.com/rog/rogomatic-r2.0.2.tar.gz
    $ tar xvzf rogue5.4.4-ant-r1.1.2-src.tar.gz
    $ tar xvzf rogomatic-r2.0.2.tar.gz
    
    
  • c) パッチをSDサイトからダウンロード
    
    $ wget http://image.gihyo.co.jp/assets/files/magazine/SD/2016/201610/download/rogue_rogomatic.patch_20160623
    
    
    作業用ディレクトリにパッチファイルがあることを確認しパッチを当てる
    
    $ patch -p0 < rogue_rogomatic.patch_20160623
    
    
  • c-osx) OS Xでは,以下の作業が必要
    
    $ wget http://image.gihyo.co.jp/assets/files/magazine/SD/2016/201610/download/rogue_rogomatic.patch_20160623
    $ cd rogue5.4.4-ant-r1.1.2
    $ patch -u Makefile < ../make_brew.patch_20160621 
    
    
  • d) ローグからビルド
    
    $ cd rogue5.4.4-ant-r1.1.2
    $ ./configure
    
    
    ここで,不足のパッケージをyum, apt, brewでインストールする
    不足のパッケージをインストールしたら再びconfigureを実行
    configureが成功するまで続ける
    makeを実行し,コンパイル
    
    $ make
    
    問題がなければインストール
    
    $ sudo make install
    
    
  • e) 続いてロゴマチック
    
    $ cd ../rogomatic-r2.0.2
    $ ./configure
    
    
    ここで,不足のパッケージをyum, apt, brewでインストールする
    不足のパッケージをインストールしたら再びconfigureを実行
    configureが成功するまで続ける
    makeを実行し,コンパイル
    
    $ make
    
    
    問題がなければインストール
    
    $ sudo make install
    
    
    /var/games/rogomaticは手動で作成する,アクセス権限は誰でも読み書き可
    
    $ sudo mkdir -p /var/games/rogomatic
    $ sudo chmod 777 /var/games/rogomatic
    
    
  • f) 最後にシェルスクリプトr-o-mをインストール (任意)
    作業ディレクトリの一番上に移動して
    
    $ cd ..
    
    
    /usr/local/binにr-o-mをインストール
    
    $ sudo cp r-o-m /usr/local/bin
    $ sudo chmod 755 /usr/local/bin/r-o-m
    
    
    これで,ビルドとインストールは完了

    実行用のディレクトリを任意の場所に作って実行するとよい
    ここでは,作業用ディレクトリの中に作って実行
    
    $ mkdir playground
    $ cd playground
    
    
    ためにしrogomaticを10回実行させる
    
    $ r-o-m 10
    
    
3. 動作環境について

著者がビルドと動作確認をした環境は,Ubuntu 16.04とOS X 10.11.6 + brew です。
Linuxであれば,他のディストリビューション,バージョンなどでもおそらく動くだろうと思います。

OS X + portを使っては確認していませんが,必要なライブラリが用意できればおそらく動作するだろうと思います。