TIS-100でCPUの気持ちになるですよ
SpaceChemでおなじみ? のZachtronicsがこの度Steam早期アクセスにTIS-100というゲームを発表しました。
パズルゲーム? ……正直怪しいところです。パズル要素はたしかにあるものの、まるっきりプログラミングそのものです。まあジャンル分けの話題はそこそこにして、雑感を交えながら遊び方を説明していきます。
マニュアル
ゲーム中にESC→「VIEW THE TIS-100 MANUAL」でマニュアルが閲覧できます。
マニュアルは実際の古い端末の操作説明書を意識した作りになっており、プリントアウトしての利用が推奨されているようです。
当然全部英語ですが、有志による日本語訳がこちら→http://steamcommunity.com/sharedfiles/filedetails/?id=454245453&insideModal=1 で公開されています。
ゲーム中にF1キーで命令セットの一覧も出ます。
とりあえず遊んでみよう
最初は「SELF-TEST DIAGNOSTIC」だけが提示されています(クリアで問題が増えます)。クリックして問題を選択し、続けて左上の「CREATE NEW PROGRAM」を選択して入力画面に移ります。
……よく言えば硬派ですが悪く言うととっつきにくい画面です。とりあえずマニュアルを見ながら動作を確かめてみました。
左側にIN.Aと書かれている数字のリストがあります。これが画面中央上の「IN.A ↓」と呼ばれるポートから順に入力されます。
この問題は「IN.Aから読み込んだ値をOUT.Aに出力せよ」らしいです。
入力したデータをOUT.Aのポートに出力するよう各ノード(画面に12個ある四角の処理単位)の処理を書いてみましょう。
(ただし、この問題で赤くなっているノードは使えません。右上経由か左下経由で出力にデータを送ることになります。)
「上のポートから読み込み、右のポートに渡す」は「MOV UP, RIGHT」になります。この調子で各ノードに命令を書いてみましょう。
左下の「RUN」または「FAST」で計算処理が開始されます。お題を満たしたらクリア。
デバッグ用に「STEP」をぽちぽちクリックするのも効果的です。
クリアしたら、プレイヤーの回答の統計画面が表示されます。上から順に「計算に要したサイクル数」「計算に使用したノード数」「計算に使用した命令数」です。この問題は単純なので全くばらけていませんが、難しくなるにつれて自分の回答とランキングとの差違が際立ってきます。これどうやって実現したの? と首を捻るようなものも。
単なるクリアに満足せず、各性能を改善させるという遊び方もまた一つの楽しみです。
DCSS Webtile試験サーバについていろいろ
この記事は Roguelike Advent Calendar 2014 の2日目の記事ですでした。*1
■DCSS Webtileサーバとは
前の記事([id:dlusplus:20140501])で書きましたが、現在Dungeon Crawl Stone Soupというローグライクゲームのオンラインプレイサーバを運用しています。7か月とは早いものでいろいろありました。
このサーバはさくらのVPS上で動作しています。元々land.toが重くなったのに耐えられなくなりWebサイトを移転したものですが、こうしてゲームサーバを立ち上げるのに役立ったかと思うと、まあ色々と巡り合わせというものはあるということでしょうか。
↑のURLにアクセスすることで、画像のようなゲーム画面がブラウザ上に表示され、そのまま遊ぶことができます。
また観戦機能・チャット機能もついており、他プレイヤーのプレイ内容を見てみたり、逆にアドバイスを受けることも可能です。*2
ローカルでプレイするのも十分楽しいですが、オンラインで他のプレイヤーのプレイ内容を覗いてみるのもまたよいものです。
「この人のスコアすごいな」「えっ、こんな組み合わせアリなの?」など、普段のプレイから離れた遊び方の模索の助けとなるでしょう。
■オフィシャルサーバーになったよ
DCSS開発メンバーのPleasingFungus氏から声をかけていただいて、Official serversの末席に加えていただけることとなりました。
現時点ではCAO鯖のプロフィールページとの連携がされています。→例:http://crawl.akrasiac.org/scoring/players/dplusplus
ゆくゆくはトーナメントイベント参加とかもしてみたいですね。
■今後の課題
自動ビルド&デプロイ
現在の手順としては、人の少ない時間帯にサーバを止めてアップデートなりなんなり、という手順をとっています。しかし最近無理も出てきたので、自動でビルドしてサーバーにデプロイするような機構を考えたいものです。
■プレイヤーの方にお願い
なにか不具合が発生した際は何らかの形でレポートしてもらえるとありがたいです。
その時、プレイヤーidも添えていただけると解決が捗ります。
(「新規登録プレイヤーがゲーム開始できない不具合」という大ポカに長いこと気付けなかった前科がありますので……)
■おしまい
「古典的」というような印象のあるローグライクゲームですが、こうして今時のブラウザ環境を生かして遊び方を共有できるようになると、まだまだ楽しみ方にも幅が出てくるのかなという気はします。
DCSSだけにとどまらず、他のゲームについても模索してみたいものですね。
Dungeon Crawl Stone Soupサーバ試験公開
最近、Dungeon Crawl Stone Soup(以下DCSS)というローグライクゲームにはまっています。
とはいえ、一番初心者に手っ取り早い(はずの)脳筋ミノ戦士でもなかなか攻略が捗らず、脱出*1までどれくらいかかることやら……
さてこのDCSSですが、Web上でサーバを公開してオンラインプレイをできるようにするコードが配布物に含まれており、現在でもいくつかの公開サーバが動いています。現状国内で動いているサーバがないようなので、試験的に建ててみました。
メリット:
- 海外鯖に繋ぐよりラグが少ない(かも)
- 管理者に日本語が通じる(多分)
デメリット:
- 外国人とのプレイ観戦など交流がしにくい
- 管理者が(色々な意味で)素人
まあ需要とかは不明ですがぼちぼちやっていこうかと思います。
要望その他は当blogコメントとかtwitter @dplusplusまで。
TODO:
*1:「ゾットのオーブ」を持ち帰ること。このゲームの最終目的
JNetHack FHSpatch 0.8.26+20140213をUbuntu Linux 12.04 LTSでとりあえず動かす
サクシャ氏が開発しているJNetHack FHS patchが最近更新されていたのでUbuntu Linuxで動かしてみました。
ついでにUnNetHackからuse_darkgrayパッチを拝借して適用しました。
ソースコード等ダウンロード
http://sakusha.s26.xrea.com/x/FHS/FHS.html から「試験版 ver0.8.26+20140213版 全ソース」をダウンロードし展開します。
% ls
ChangeLog.j INSTALL.j README dat/ doc/ include/ src/ util/
Files Porting README.j default.css fhs_doc/ japanese/ sys/ win/
文字コードおよび改行コードを変換します。
% find -type f -print | xargs nkf -Sed --overwrite
FHSpatch 0.8.26+20140213用darkgray patchをダウンロードし、パッチを当てます。
% wget https://gist.github.com/dplusplus/9035018/download -O darkgray.tgz % tar zxf darkgray.tgz % git apply -p1 gist*/*.diff
Ubuntu Linuxでのコンパイルのための謹製一括置換スクリプトを走らせます。
% git clone git://github.com/dplusplus/nhconfigure % ./nhconfigure/nhconfigure.sh
あとはmake && sudo make installで動くようになるかと思います。(出力文字コードがEUC-JPな点に注意)
% fhspatch
後でUTF-8対応パッチも試してみます。
UnNetHack 5.1.0 その2
現在B25Fまで到達。
分岐「Town」
B9Fに上り階段が生成された。川を水上歩行で抜け、さらにもう1階あがったところに集落的な店の集まりが。めぼしい物は特になし。
分岐「The Ruins of Moria」
B17Fに上り階段が生成された。B11Fまで上がっていくらしいが、途中に待ち構えるDurin's bane(デュリンの禍)がだいぶ強いので保留。
UnNetHack 5.1.0
UnNetHack 5.1.0がリリースされていたのでさっそく手元のPCにインストールして遊んでみました。
鉄板のValkyrie-Human-Lawでまずお試し。と思ったら祭壇がそこらに生成されるわ、#offerでグレイスワンダーが下賜されるわで一気に昇天も夢ではない状態になってきましたよ。
全体的にUIが便利になっています。menucolorsパッチ、statuscolorsパッチを取り込んだ結果でインベントリやステータスラインが見やすい。まああんまり慣れすぎるとvanillaに戻ったときに辛いのだけど。
あ、あとCtrl-Eで「床にElberethを書く」コマンドが追加されてたのはちょっと面白かった。
現在鉱山と倉庫番を制圧して、Townへの分岐にさしかかったところ。
また大きな進捗があり次第ぼちぼち書いていきます。
インストールメモ
autotools対応になってるので./configure && make && make install の簡単インストールになっています。
ウィザードモード用のアカウント指定したい人は./configure --enable-wizmode=hogehogeで。
オプションに--prefix、--exec-prefixを指定しない場合、/usr/local/ 以下にインストールされる模様です。まあこれはいじらなくてもいいか。
起動時に.nethackrcが読み込めないよ! とエラーが出る場合、.unnethackrcのパーミッションが読み込み可になってないか、ホームディレクトリのグループ内パーミッションがg-xになってるのが原因です。
vanillaだとg+xは要求されなかったように思いますが……まああとで気が向けば確認してみます。