NetHack 3.6.0 in NAO
この記事は Roguelike Advent Calendar 2015 の20日目の記事です。
nethack.alt.orgで遊ぼう
今月12年ぶりの公式リリースが発表され、一部界隈が激震したNetHack 3.6.0ですが、NetHackオンラインプレイが可能なサイトnethack.alt.orgでもNetHack 3.6.0が盛況です。
適当なtelnetクライアントで接続し、ユーザ登録さえすればすぐにプレイが可能です!
プレイ雑感
とりあえず鉄板のHuman-Neutral-Valkyrieで軽く遊んでみました。
3.4.3の経験者ならプレイ自体に戸惑うことは少なそうかなといった印象。ただ、細かいところが便利になってはいます。
箱類の#loot
別のアイテムを中に入れることのできるアイテム(箱、袋、etc)に#lootコマンドを使ったときの選択肢が拡張されています。
まあ読んだとおり……とはいえ、"stash one item into the (container)"は指定した一種を入れるという"put something in"の劣化バージョンにしか見えないのでよく分かっていません。別の使い道があるのだろうか。
[C]all/#nameの統合
従来はモンスターに名付ける用の[C]allコマンドと、特定のアイテムやアイテム種別に名付ける#nameコマンドが別れていましたが、3.6.0では同じメニューが呼び出されるようになっています。
また、床に置いてあるアイテムにも名付けられるようになっています。これで蹴飛ばしても動かない「灰色の石」を見つけても安心?
他にもたくさん
ぱっと見よく分からないような修正もdoc/fix36.0を読むと盛りだくさんのようです。まあ12年分だもんね、しかたないね。
めぼしい変更点については追って自サイトwikiの方でまとめようかなと思っています。墓掘ミラーの凍結は解かれるのかどうか。まあそこらへんは管理人氏の判断に任せます。
LLD(石鍋試験鯖)の内側
この記事は Roguelike Advent Calendar 2015 の9日目の記事です。
そもそも何それ?
石鍋試験鯖はDungeon Crawl Stone Soup(以下DCSS)というローグライクゲームをブラウザ上でオンラインプレイ、観戦、プレイ履歴管理などを行うために動いているサーバのうちの一つです。
DCSS公式オンラインサーバに参加しており、ここでの略称としてLLD(lazy-life.ddo.jp)と呼ばれています。
まずはアクセスしてみましょう。ユーザ登録をしなくても(誰かがプレイしていれば)観戦は可能です。*1
Games currently running欄のユーザ名をクリックすると観戦スタートです。ESCキーで抜けます。
*1:チャット機能はユーザ登録してログインしないと使えません
wikiにコメントスパムが来ていたので対策した
うちのサイトのwikiにコメントスパムが来ていたのに気付いたので対策覚え書き。
デフォルトで入っているtrackerプラグインの雛形らしい。ここに#commentが入っていたのが標的にされたっぽい。
対策:
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対応パッチも試してみます。