以前NetHackはインストールした時は遊び方が分からず、それで終わってしまったのですが、最近になって日本語版がある事とGUI版がある事を知ったので、これなら私でも遊べるかもと思いインストールしてみました。今回は Lubuntu16.04 に X11版のJNetHack3.6.1 をインストールしています。
JNetHackのバイナリが見つからない
NetHackの日本語版であるJNetHackのサイト https://ja.osdn.net/projects/jnethack/ を見たところWindows版のバイナリはあるもののUnix版はdiffファイルが用意されているだけのようです。もしかしてパッケージ化されているかもとapt search jnethack
として検索してみたものの結果は0件。どうやらコンパイルの必要があるようです。
GUI版はどこに?
コンパイルする覚悟はできたのでじゃあGUI版はどこ?って話なんですが、それらしいスクリーンショットは見つかるもののそれをどうやってゲットするのかがいまいち分かりません。色々と調べてみたところ、どうやらコンパイルする際にX11のヒントファイルを指定すれば良いようです。またJNetHackのChangeLog.jにX11対応のようなことも書かれていましたので特別なことはしなくてもいけそうです。
ソースコードのゲット
まずはソースコードとパッチをゲットします。NetHackとJNetHackのサイトを確認してみたところ最新の3.6.1であればNetHackのオリジナルソースも日本語版パッチもダウンロードできそうですので今回は3.6.1をコンパイルすることとしました。
NetHack
NetHackはオフィシャルサイトである https://www.nethack.org/ からソースコードをダウンロードします。この時のバージョンは3.6.1でnethack-361-src.tgz
というファイル名でダウンロードすることができました。
JNetHack
JNetHackは https://ja.osdn.net/projects/jnethack/ からソースコードをダウンロードします。この時のバージョンは3.6.1でjnethack-3.6.1-0.1.diff.gz
というファイル名でダウンロードすることができました。
環境の整備
コンパイルが必要となりますのでコンパイルに必要なものをインストールします。
$ sudo apt install build-essential libncurses5-dev libxt-dev libxaw7-dev bison flex
コンパイル
NetHackのソースを解凍してパッチをあててコンパイルという流れになります。JNetHackからダウンロードしたファイルはShiftJISで書かれていたためutf8に変換してパッチをあてています。
$ tar xvfz nethack-361-src.tgz
$ cd nethack-3.6.1
$ zcat ../jnethack-3.6.1-0.1.diff.gz |iconv -f cp932 -t utf8 | patch -p1
$ sys/unix/setup.sh sys/unix/hints/linux-x11
$ make all
インストール
インストールします。自身のホームディレクトリにインストールされますので管理者権限である必要はありません。インストール先は `~/nh/
フォルダです。
$ make install
デフォルトだとタイルが16x16と少し小さいのでImageMagickを使って24x24のタイルを作成して、それを使うようにします。このあたりは好みかなっと思います。
$ cd ~/nh/install/games/lib/jnethackdir
$ convert x11tiles -sample 150% x11tiles24
$ sed -ri 's/^(JNetHack.tile_file).*/\1: x11tiles24/' JNetHack.ad
$ sed -ri 's/^(JNetHack.tile_width).*/\1: 24/' JNetHack.ad
$ sed -ri 's/^(JNetHack.tile_height).*/\1: 24/' JNetHack.ad
起動
起動してみます。
$ ~/nh/install/games/jnethack
うまく起動できて日本語化されていればめでたしめでたしです。
遊んでみて
X11版なのでマウスも使えるし日本語になってわかりやすくなったのですが、まだ楽しめるまでにはいけてないです。コマンドも多いし難しいです。あとたまにCore Dump吐くことあるのはut8に変換したからなのか、そうゆうものなのかも分かっていません。
あとウィザードモードっていうデバッグモードもあるようなんですが、wishがうまく使えないようです。日本語で入力しないといけないみたいなんですが日本入力できないみたいなので…。他にも色々とありそうなんですが、とりあえずいろいろと試しながら遊んでみようかなと思う今日このごろです。
$ sudo ~/nh/install/games/jnethack -u wizard -D
コンソール版について(おまけ)
コンソール版のJNetHackを作りたいときはパッチをあてるときにEUC-JPの文字コードに変換してパッチをあてて、~/.jnethackrc
ファイルに OPTIONS=kcode:u と書いておけばいけるようです。iconvではEUC-JP変換時に変換できない文字があるよって言われて変換できなかったのでnkfを使用しています。
$ tar xvfz nethack-361-src.tgz
$ cd nethack-3.6.1
$ zcat ../jnethack-3.6.1-0.1.diff.gz | nkf -e | patch -p1
$ sys/unix/setup.sh sys/unix/hints/linux
$ make all
$ make install
$ echo "OPTIONS=kcode:u" > ~/.jnethackrc
$ ~/nh/install/games/jnethack