スクリーンショット_2016-02-24_03-42-10

VAIO TYPE P上のLinux Mint17でゲームする。マジだ。



VAIO TYPE Pで、プログラミングの合間にゲームしたい。

考えてみると、俺が好きなのはシミュレーションとかロールプレイング。
で、思い出したのが、昔Linux上でやったことがあるnethackっていうローグ系RPG。

こいつを日本語化してLinux Mintに入れる。
JNethackを、俺はやる!


ダウンロード&色々

Terminal起動。
ログインユーザーのホームディレクトリの下にsoftってディレクトリがすでに存在している前提で以下操作。
ちなみにX11版とかは眼中にない。tty版のみだ。主人公は"@"じゃなきゃダメだ。
cd soft
svn co http://svn.sourceforge.jp/svnroot/jnethack/ jnh-svn
cd jnh-svn
wget http://elbereth.up.seesaa.net/nethack/jnethack-3.4.4-0.10-utf8-2.patch.bz2
bzip2 -d jnethack-3.4.4-0.10-utf8-2.patch.bz2
cd jnethack/trunk
cat ../../jnethack-3.4.3-0.10-utf8-2.patch | patch -p1
vim sys/unix/Makefile.src
# flags for Linux
#   compile normally
CFLAGS = -O2 -fomit-frame-pointer -I../include ←ここ修正
vim sys/unix/Makefile.utl
# flags for Linux
#   compile normally
CFLAGS = -O2 -fomit-frame-pointer -I../include ←ここ修正
#LFLAGS = -L/usr/X11R6/lib
 :
# flags for debugging:
# CFLAGS = -g -I../include

#CFLAGS = -O -I../include ←ここ修正
#LFLAGS = ←ここ修正
vim include/unixconf.h
#define SYSV
#define LINUX
#define TERMINFO
#define TIMED_DELAY
vim /include/config.h
#define DLB

make&エラー&make&エラー

以下の操作でmakeする。
cd sys/unix
sh ./setup.sh
cd ../../
make all
dev_user001@dev002 ~/soft/jnh-svn/jnethack/trunk $ make all
( cd src ; make )
make[1]: ディレクトリ `/home/dev_user001/soft/jnh-svn/jnethack/trunk/src' に入ります
gcc -W -g -O -I../include -c monst.c
In file included from ../include/config.h:376:0,
                 from monst.c:5:
../include/global.h:8:19: fatal error: stdio.h: そのようなファイルやディレクトリはありません
 #include 
                   ^
compilation terminated.
make[1]: *** [monst.o] エラー 1
make[1]: ディレクトリ `/home/dev_user001/soft/jnh-svn/jnethack/trunk/src' から出ます
make: *** [jnethack] エラー 2
そしてエラー!ごふっ!!
stdio.hが無いとか、なんだこれ?基本的なヘッダだろ?
というわけで、インストールして再度make。
sudo apt-get install libc6-dev
make all
../sys/unix/unixmain.c:24:25: fatal error: X11/Xlocale.h: そのようなファイルやディレクトリはありません
 #include 
                         ^
compilation terminated.
make[1]: *** [unixmain.o] エラー 1
make[1]: ディレクトリ `/home/dev_user001/soft/jnh-svn/jnethack/trunk/src' から出ます
make: *** [jnethack] エラー 2
そしてまたエラー。ふっざけんなぁぁぁ。
俺はX11はOut of 眼中と言うとるのに、なぜXlocake.h見ようとするか。

どうも調べてみると日本語化のパッチ当てると読みに行っちゃうらしい。
つ〜わけで入れる。
あとncursesがらみのエラーも出ていたっぽいので、合わせてインストール。
sudo apt-get install libX11-dev libncurses-dev 
make all
なんか上手く行った。というわけでインストール。
sudo make install


早速プレイしてみる

jnethack
バルキリー、人間、中立という定番で開始。
すぐさま持ち物確認。
オイルランプ持ってなかったらやり直し。

というわけで3回やり直してようやく初期持ち物にオイルランプある状態でゲーム開始。

そしてドワーフだかオークだかの炭鉱か運命の迷宮に進むかの分かれ道。もちろんまずは幸せの石取りに炭鉱に進むが。

スクリーンショット_2016-02-22_03-22-39

で、とりあえず途中でやめようと思って保存したら以下のエラー。ふひっ?

No such file or directory Exec to compress save/dev_user001 failed.

とうやらgzipしようとしてgzipが無いまたはあるけど参照パス間違ってます、みたいな感じらしい。
で、nethackのソース見るとinclude/config.hで"COMPRESS"の定義が"/usr/bin/gzip"になってる。
俺のマシンでは
which gzip
/bin/gzip
。。。
コンパイル面倒くさいので、/usr/binの下にgzipをコピーしちゃう。
cp /bin/gzip /usr/bin/.
これで保存時にエラー出なくなりました。

あと一応気付いたので、/usr/games/lib/jnethackdirの下のlogfileとrecordに書き込み権限付けとく。
cd /usr/games/lib/jnethackdir
sudo chmod 664 logfile
sudo chmod 664 record
あとは気付いたらその都度対処、かな。

これで気兼ねなくゲーム出来る。はずだ。いいのか?


参考

jNetHack UTF-8対応 を CentOS 6.3 にインストール