diary-2018-09-01-221515.txt
これは?
変愚蛮怒というローグライクRPGがあります。ローグライクRPGとは、いわゆる「シレン」や「トルネコ」の元となったゲームです。
特に昔ながらのローグライクRPGはテキストだけで画面が構成されているという非常に渋いゲームです。
一般的なRPGとは違い、死んでしまうと、そこで冒険は終わり。セーブデータには死亡回数が刻まれ、またレベル1からやり直すというハードなRPGです。
ゲーム内のキャラクタのデータはリセットされますが、プレイヤーはその経験を生かして次のプレイではより高いレベルまで成長できるという「プレイヤー自身が成長する」という感覚が魅力です。(と僕は思っています)
また、操作はキーボードを駆使して行います。装備変更は「e」食事を食べるのは「E」物を投げるのは「f」といった具合です。
そのため、スマートフォンやゲーム機に移植したものとは操作感覚が全然違います。やはりファンとしてはキーボードを使って操作したいところです。
ということで、変愚蛮怒専用機を作ることにしました。
材料
- RaspberryPi Zero WH
-- WifiやBluetoothが使える方のRaspberryPiZeroです。今回はBluetoothキーボードを使いたいのでWHのほうを選びました。
- Raspberry Pi用の3.5インチ液晶
-- 解像度は480x320、SPI接続により映像信号を送るタイプです。(HDMI接続のモニタも試しましたが、HDMIケーブルの取り回しが難しくSPI接続のモニタにしました。 しかしSPI接続は転送速度が遅いので、アクションゲームなどには不向きです)
- Bluetoothキーボード
-- スマートフォンのアクセサリとして作られた小型のキーボードを選びました。
- モバイルバッテリー
-- ダイソーの500円のモバイルバッテリーを用意しました。一般的なモバイルバッテリーは消費電力が少ないと電力供給をやめてしまうものが多いですが、このバッテリーはそのような動作をしませんでした。
- 3Dプリンタで作った筐体
-- 上記の部品を組み合わせた形がぴったりおさまる筐体を作りました。これはまだ改良の余地がありそうです。
セットアップ
RaspberryPiをセットアップして、変愚蛮怒が動作するようにします。
OTGケーブルによるPCとの接続
Raspberry Pi ZeroはOTG接続により、パソコンとネットワークを共有できます。
これによりWiFi接続などの設定をせずにパソコンからSSH接続でRaspberryPiを操作することができます。
液晶の設定
このページを参考にして、液晶の設定をします。
設定後、液晶をピンヘッダに接続して起動すると液晶画面にRaspberryPiの画面が表示され、タッチパネルも有効になります。
キーボードの設定
Bluetoothキーボードの設定はRaspberryPiのGUIから行いました。(コマンドでもできるはずです。)
一度ペアリングをしておくと、再起動後も引き続き有効のようです。
ここまで操作すると、PCからのSSH経由での操作の他にBluetoothキーボードでの操作もできるようになります。
簡素なGUIに変更
Raspberry Piの標準的なGUIは、便利ですが、変愚蛮怒専用機には不要です。
変愚蛮怒はXorg上で実行するつもりなのでXorgはそのままにして、session-managerとwindow-managerの設定を変更します。
- - /usr/bin/x-window-manager を消す(これは/etc/alternatives/x-window-managerを指していて、さらにopenboxを指しています)
> code
$ sudo rm /usr/bin/x-window-manager
<<
- /usr/bin/x-session-managerを消す(これは /etc/alternativess/x-session-manager を指していてさらに /usr/bin/startlxde-pi を指しています)
> code
$ sudo rm /usr/bin/x-window-manager
<<
デフォルトのターミナルはlxterminalですが、これをxtermに変更しておきます。
> code
$ sudo apt-get install xterm
$ sudo update-alternatives --config x-terminal-emulator
/usr/bin/xterm を選択
$ sudo halt
<<
ここで再起動すると、今までのGUIはどこかへ消え、真っ黒なターミナルが起動するようになります。
変愚蛮怒のビルド
変愚蛮怒のLinux版はソースコードで提供されています。そのためビルドする必要があります。
必要なライブラリをインストールします。
> code
$ sudo apt-get install libncurses5-dev libx11-dev libxt-dev
<<
変愚蛮怒をダウンロードして、ビルドを行います。
> code
$ tar xzf hengband-1.6.2.tar.gz
$ cd hengband-1.6.2
$ ./configure
(略)
$ make
(略)
$ make install
(略)
<<
EUC-JPロケールの追加
raspi-configを実行し、「4 Internationalisation Options」→「I1 Change Locale」を選択し、「ja_JP.EUC-JP EUC-JP」と「ja_JP.UTF-8 UTF-8」をスペースキーで選択します。
これによりEUC-JPロケールが追加されます。
12pxの日本語フォントの追加
320x480のディスプレイで変愚蛮怒を表示するには12pxのフォントが最適です。これをインストールします。
> code
$ sudo apt-get install xfonts-mplus
<<
起動用のシェルスクリプトの追加
起動のための設定をシェルスクリプトとして作成します。
> code
export LANG="ja_JP.eucJP"
export ANGBAND_X11_FONT='-*-*-medium-r-normal--12-*-*-*-*-*-iso8859-1,-*-*-medium-r-normal--12-*-*-*-*-*-jisx0208.1983-0'
unset LC_ALL
unset LANGUAGE
unset XTERM_LOCALE
./hengband -- -n
<<
起動して、キーボードでboot.shを実行することで変愚蛮怒で遊ぶことができるようになりました。
3Dプリンタでの筐体の作成
3Dプリンタで筐体を作成します。本当はこういう平べったいものはレーザーカッターのほうが作りやすそうなのですが、、
Fusion360でそれっぽく作ってみました。
まとめ
今回は電子工作を全くせず、ただ買ったものを組み合わせただけでゲーム機を作成しました。
RaspberryPi Zeroは非常に小さいので、こういうものを作るのには適していると感じました。
最近は自作キーボードなども流行っており、さらにそれに液晶を組み合わせて、小型のPCを作るのが流行っているようです。今回はキーボードは既存のbluetoothキーボードを使いましたが、次は自分で超小型のキーボードを作って組み合わせてみたいなと思っています。
ともあれ、これで通勤中も変愚蛮怒が遊べます!