LoginSignup
5

More than 5 years have passed since last update.

LubuntuでGUI版JNetHack3.6.1をコンパイルして遊ぶ

Last updated at Posted at 2018-07-14

以前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に変換してパッチをあてています。

解凍、パッチ、コンパイル(X11版)
$ 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のタイルを作成して、それを使うようにします。このあたりは好みかなっと思います。

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

2018-07-13-090931_1004x450_scrot.jpg

うまく起動できて日本語化されていればめでたしめでたしです。

遊んでみて

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

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
5