まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

タグ:games

ラズベリーパイ(以下「ラズパイ」)で遊べるゲームも珍しくなくなってきていますが、ラズパイのテキストコンソールでも遊べるゲームを探してみました。


(1) BSD Games

まずは BSD Games です。FreeBSD など BSD ベースの UNIX に搭載されたテキストベースのゲームが元で、今では多くの UNIX ベースの OS に移植され、遊べるようになっています。個人的にもおそらく人生で最初に遊んだ UNIX のゲームがこの中に含まれている worm でした。

ラズパイにインストールする場合は以下のコマンドで導入できます:
$ sudo apt-get install bsdgames

導入が成功すると /usr/games/ 以下に多くのゲームが確認できるようになります:
2019020201


この中のファイルを指定してゲームを遊ぶことができます。例えば上記の worm も含まれていますが、コンソールから worm と入力することで worm を起動して遊ぶことができます:
2019020202
↑ vi のキーを覚える目的で使ってました・・


(2) CGames

CGames は Linux テキストコンソール向けに比較的メジャーな3つのゲーム(倉庫番、マインスイーパー、スライディングブロック)を提供するパッケージです。ラズパイの場合、apt-get install では導入できないのですが、ソースコードからビルドすることで導入できます。

ソースコードを入手して、ビルド、インストールするまでの操作コマンドは以下になります:
$ sudo apt-get install libgmp-dev libncurses5-dev

$ wget http://www.muppetlabs.com/~breadbox/pub/software/cgames-2.2a.tar.gz

$ tar xf cgames-2.2a.tar.gz

$ cd cgames-2.2a

$ ./configure --disable-mouse --with-ncurses

$ make

$ sudo make install

最後まで完了すると、/usr/local/games 以下に3つのゲームが導入されます。なお、このフォルダにはパスが通っていないので、必要に応じて環境変数を書き換えてください:
2019020203


csokoban(倉庫番)を起動するとこんな感じ。矢印キーで操作できます。これは持論なのですが、パズルゲームは1人で時間制限なしに遊べるのがいいと思っています。そして倉庫番やマインスイーパーはその条件を満たしていて、そんなゲームがラズパイのコンソールでも遊べる、というのはいいですよね:
2019020204


ラズパイ操作中の気分転換にいい感じです。


ダンジョン探索型 RPG の草分け的な存在でもある NetHack を CentOS にインストールしてみました。テキストキャラクターインターフェース RPG の元祖とも言える Rogue の後継で、いくつかの進化バージョンがありますが、今回紹介するのは UTF-8 に対応した日本語版 jNetHack 3.4.3 です。なお、今回導入した環境は CentOS 6.7 64bit ですが、(TTY 向けの導入しか紹介していないので)他の Linux ディストリビューションでもほぼ同様の方法で導入できると思います。


導入の方法ですが、現在は yum で簡単にインストール・・・ というわけにはいかないようで、必要なライブラリを揃えて、ソースコードを SVN からクローンして、パッチを充ててからビルドしてインストール、という手順が必要になるようです。以下にその手順を紹介します。

まずはビルド時に必要となるライブラリ群を yum で導入します。ここはコマンド一発:
# yum install -y libX11-devel ncurses-devel libXt-devel libXaw-devel

次に SourceForge から jNetHack のソースコードを入手し、更に UTF-8 対応用パッチを入手します。なお、以下の作業は全て /usr/local/src ディレクトリ以下で行うので、最初にこのディレクトリに移動しておきます:
# cd /usr/local/src

# svn co http://svn.sourceforge.jp/svnroot/jnethack/ jnh-svn
# wget http://elbereth.up.seesaa.net/nethack/jnethack-3.4.3-0.10-utf8-2.patch.bz2


ソースコードのディレクトリに移動し、UTF-8 パッチを適用します:
# cd ./jnh-svn/jnethack/trunk
# bzip2 -d /usr/local/src/jnethack-3.4.3-0.10-utf8-2.patch.bz2
# cat /usr/local/src/jnethack-3.4.3-0.10-utf8-2.patch | patch -p1

ビルド前に Linux 用にファイルを編集します。まず sys/unix/Makefile.top の該当業(青字部分)を編集します:
# vi sys/unix/Makefile.top

: # make NetHack PREFIX = /usr/local GAME = jnethack # GAME = nethack.prg GAMEUID = games GAMEGRP = bin # Permissions - some places use setgid instead of setuid, for instance # See also the option "SECURE" in include/config.h GAMEPERM = 04755 FILEPERM = 0644 EXEPERM = 0755 DIRPERM = 0755 :

次に sys/unix/Makefile.src の CLAGS を Linux 用に変更します:
# vi sys/unix/Makefile.src

: # flags for Linux # compile normally # CFLAGS = -O2 -fomit-frame-pointer -I../include : CFLAGS = -W -g -O2 -fomit-frame-pointer -I../include :

また include/unixconf.h 内で Linux 用の定義が一部無効になっているので、以下の4つをコメントアウトして有効にします:
# vi include/unixconf.h

: #define SYSV #define LINUX #define TERMINFO #define TIMED_DELAY :

同様に include/config.h 内の DLB の定義もコメントアウトして有効にします:
# vi include/config.h

: #define DLB :

これで準備は完了です。以下の手順で環境設定を有効にして、make all して make install します:
# cd sys/unix
# sh ./setup.sh
# cd ../../
# make all
# make install

なお、一度ゲームをスタートした後で、再度環境変更のビルドを行う場合、↑の最後のコマンドを make install から make update にすると、それまでのセーブデータを保護しながら本体だけをアップデートすることが可能です(make install だとセーブデータも上書きします)。

これで jNetHack が導入できました。jnethack コマンド本体は /usr/local/games/ にインストールされているので、フルパスで実行するか、このディレクトリにパスを通してください:
2016070301


実行時には UTF-8 対応の端末でログインし、この本体をコマンドラインから指定して実行します:
# /usr/local/games/jnethack

すると UTF-8 対応の jNetHack が実行されます:
2016070302


vi エディタでお馴染みの H,J,K,L による移動をベースとした RPG (の元祖)です。元々の Rogue が 1980 年に生まれたので、ゲームシステム自体は 36 年前から存在していることになります:
2016070303


NetHack 自体に関してはこちらの Wiki を参照ください:
https://ja.wikipedia.org/wiki/NetHack


 

このページのトップヘ