26
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コンパイルしやすくなったJNetHack3.6.7で遊ぼう!

26
Last updated at Posted at 2019-12-04

はじめに

最初期のコンピュータRPGの1つである「ローグ」の流れを汲み、プレイする度にダンジョンが変化するタイプのゲームの総称を「ローグライク」1と言います。
NetHack はその中でも直系と言えるキャラクタベースのシンプルな見た目のゲームですが、根強い人気があります。2

英語版の NetHack 自体は各種Linuxのディストリビューションのパッケージに含まれているので簡単にインストール出来ますが、日本語版はありません。
JNetHack Project で日本語化の為のパッチを作成・配布してくださっていますので、これを使って自分でビルドしてみましょう。

以前は日本語が EUC-JP で出力されるために UTF-8 ロケールのターミナルでは cocot を使ったり、一時的に文字コードの設定を変える、等の対処が必要でした。
それが、最新版である JNetHack 3.6.7-0.1 では入出力の文字コードが完全に UTF-8 になっており、ほぼそのままビルドしてプレイできる様になりました。
事前にMakeFileをエディタで編集したりする手間もなくなり簡単な手順のみでコンパイル可能で大分敷居が低くなったので、是非遊んでみましょう。

【更新情報・配布先の変更について】
この記事の初出時に案内していた OSDN(旧 SourceForge.JP / osdn.netja.osdn.net*.osdn.jp) はサービスを終了しており、当時のダウンロードURLやプロジェクトページにはアクセスできなくなっています。JNetHack の配布は GitHub および JAISTミラー へ移行しました。本記事はこれに合わせて、ベースの NetHack 本体・JNetHack パッチともに最新の 3.6.7 系へ更新済みです。最新の配布状況は公式サイト JNetHack Project (jnethack.github.io) を確認してください。

コンパイル&実行環境について

Windows11 の WSL2(Ubuntu 22.04.5 LTS / gcc 11.4) で動作確認しました(初出時は Ubuntu 18.10・Windows10 の WSL1 で検証)。Windows の WSL & ターミナル環境の整備についてはこちらを参考にしてみてください。

  • NetHack本体と日本語化パッチの入手

JNetHackのプロジェクトページからもダウンロード出来ますが、ここではターミナル上で

~% wget https://ftp.jaist.ac.jp/pub/sourceforge.jp/jnethack/78334/jnethack-3.6.7-0.1.diff.gz
~% wget https://www.nethack.org/download/3.6.7/nethack-367-src.tgz

とする事で落として来ましょう。
JNetHack のパッチは JAIST のミラーから取得しています。繋がりにくい場合は、公式の GitHub Releases からも同じものを入手できます。

~% wget https://github.com/jnethack/jnethack-release/releases/download/v3.6.7-0.1/jnethack-3.6.7-0.1.diff.gz

コンパイル手順

  • コンパイル等に必要なパッケージをあらかじめインストールしておきます。
~% sudo apt-get install build-essential bison flex libncurses5-dev gzip nkf

新しめの Ubuntu(20.04 以降)で libncurses5-dev が見つからない場合は libncurses-dev を指定してください。JNetHack 3.6.7 のビルドには gcc 9 以上が必要ですが、最近のディストリビューションなら標準で満たしています。

  • ソースコードを展開し、パッチを適用して内部処理用の文字コードに変換します。
~% tar zxvf nethack-367-src.tgz
~% cd NetHack-3.6.7/
~% zcat ../jnethack-3.6.7-0.1.diff.gz | patch -p1
~% find ./ -type f | xargs -i nkf -e -Lu --overwrite {};
~% cd sys/unix
~% sh setup.sh hints/linux

3.6.7 では手元(Ubuntu 22.04)の環境ではパッチは綺麗に当たりました。環境によっては Windows 向けのファイルへのパッチ適用が失敗した旨のメッセージが出ることもありますが、Unix 系で遊ぶ分には無視して大丈夫です(マズかったら教えてください)。

  • コンパイル&インストール
~% cd ../../
~% make all
~% make install

昔より恐ろしく手順が簡単です笑

遊んでみよう

ホームディレクトリに nh というディレクトリが作成されていますので

~% nh/install/games/jnethack

で起動します。プレイ中の画面はこんな感じです。

ようこそrattcv,NetHackの世界へ!あなたはノームの薬師だ!


        ---------------
        |.............|            ------
        |.............-#           |$...|
        |..........>..|#           |.....#########`##
        -.-----|-------##          |..@.|     # ####
         #     #        #        ##.....|    ------|-----
        ## #####        #        # |....d### |..........|
        #  #            #        # |...[|  # |.......$..|
        #  #            #------ ## ------  # |.........$|
       -.--.-----       #|.%..|##          ##-..........|
       |........|       #....$|#             |..........|
       |.........######  |....|#             ------------
       |..$..<..|     ###.....|#
       ----------        |.....#
                         |....|
                         ------



Rattcv 見習い             強:10 早:9 耐:14 知:9 賢:17 魅:16 中立
地下:1  $:1517 体:12(12) 魔:5(5) 鎧:8  経験:1

画面上の記号の意味

ヘルプから抜粋して表にしました。

記号 説明
- と | 部屋の壁.開いたドアや墓のこともある
. 床 または 出入口
# 廊下 鉄棒 または 木.流し台(もしあれば)や跳ね橋のこともある.
> 次の階への階段等.
< 前の階への階段等.
@ ( ふつうは )プレーヤー または 別の人間.
) いろんな種類の武器.
[ 服 または 鎧.
% 食べもの.(腐ってないとは限らない)
/ 魔法の杖.
= 指輪.
? 巻物.
! 水薬.
( 道具.(つるはし, 鍵, ランプ...)
$ 金の塊.
* 宝石 または 岩.(役に立つ場合も,無価値の場合もある)
+ 閉じた扉 または 呪文の本.
^ (見つけた後の) 罠.
" 魔除け または 蜘蛛の巣.
0 鉄の玉.
_ 祭壇 または 鉄の鎖.
{ 泉.
} 水溜り や 塵だまり
\ 豪華な王座.
` 玉石 または 彫像.
A から Z, a から z, その他: 怪物
I 透明または見えていない怪物が最後にいた場所

※あ、あとペットがいます。仔犬(d)か小猫(f)(職業によっては仔馬(u))です。

コマンドについて

自分のキャラクターは @ で、基本の移動コマンドはVimと同じ h j k l です。
他のキーボードコマンドはヘルプにも記載がありますが、中々覚えられないのでチートシートを作成してみました。3.6.7 のコマンド割り当てに合わせて作り直し、JIS(日本語)配列・US(英語)配列の2種類を用意しました。お使いのキーボードに合う方をどうぞ。

JIS(日本語)配列
JNetHack 3.6.7 cheatsheet JIS

US(英語)配列
JNetHack 3.6.7 cheatsheet US

詳しい設定や遊び方

以下の参考サイトは結構古くからあり今の JNetHack とは異なる部分もありますが、色々参考になると思います。
(これらも以前は OSDN 上にありましたが、ガイドブックは公式の GitHub Pages へ移行しています。)

恐怖の迷宮への招待(NetHack ガイドブック)
猿でもできる JNetHack(通称サルネト)(※OSDN 終了によりリンク切れの可能性があります)

より突っ込んだ攻略・スポイラー情報なら以下が定番です。

NetHackWiki(英語。職業・アイテム・モンスターなど全要素を網羅した事実上の決定版で、3.6系もカバーしています)
ネットハック (ponidog)(日本語の初心者向け解説。3.4.3ベースで少し古いですが基礎固めに良いです)

以下は JNetHackの魅力や遊び方について語れている記事です。

JNetHackというゲームにはまる理由 - 人生なめてるやつが成功する方法
NetHackに取り付かれた男
【Roguelike】NetHack(ネットハック)初めての歩き方【ローグライク】(NAVERまとめのサービス終了によりリンク切れ)

実況・解説動画

文章だけだと取っ付きにくいので、雰囲気を掴むのに実況・解説動画もいくつか紹介します。少し古いものもありますが、喋りが達者で今でも普通に面白いです。

ニコニコ動画:[実況]観光客で解説しながらプレイする[nethack]
古い GUI 版ですが、観光客(Tourist)で初心者向けに解説してくれるシリーズです。

YouTube:ニコチン氏のJNetHack実況(#01)
PeerCast 発のレトロゲーム実況者ニコチン氏による長編アーカイブです。喋りが面白く、日本語版をだらだら眺めるのにちょうど良いです。

YouTube:いま最も難しいローグライクの原点のひとつ【NetHack】
英語版ですが解説は丁寧めです。

ではでは、あなたも是非「恐怖の迷宮」の攻略にチャレンジしてみましょう!

  1. 「トルネコ」や「シレン」等の「不思議のダンジョンシリーズ」なんかもローグライクに分類されます。

  2. Twitterでたまに「あなたの人生を変えたゲームは?」等の様なアンケートがありますが、本ゲームを上げる人がかなり沢山居る様に見受けられます。

26
21
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?