NetHack 3.6.0 in NAO

この記事は Roguelike Advent Calendar 201520日目の記事です。

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では同じメニューが呼び出されるようになっています。
また、床に置いてあるアイテムにも名付けられるようになっています。これで蹴飛ばしても動かない「灰色の石」を見つけても安心?

Menucolorsパッチの取り込み

Menucolorsパッチが取り込まれ、設定ファイルに記述することで特定のアイテムに色を付けることができます。

画像では祝福された(blessed)アイテムを緑、呪われた(cursed)アイテムを赤にしています。

他にもたくさん

ぱっと見よく分からないような修正もdoc/fix36.0を読むと盛りだくさんのようです。まあ12年分だもんね、しかたないね。
めぼしい変更点については追って自サイトwikiの方でまとめようかなと思っています。墓掘ミラーの凍結は解かれるのかどうか。まあそこらへんは管理人氏の判断に任せます。

おわりに

半分以上諦めていた公式バージョンのアップデートをこの目で見れるとは感激です。何せ私は3.4.3リリース後から入ったものでアップデートするのを見たのは実質初めてです。
劇的な変化は望めないかもしれませんが、今後もNetHackを遊んだり、話題のタネにして楽しんでいきましょう。Happy NetHacking!

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が入っていたのが標的にされたっぽい。

対策:

  • wikiディレクトリをSPAMの文字列で適当にgrep -rした。当環境ではwiki/3A636F6E6669672F706C7567696E2F747261636B65722F64656661756C742F70616765.txtに記録されていたが別環境ではどうか知らない。
  • ファイルを手編集してスパムコメントを削除した。あと#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」をぽちぽちクリックするのも効果的です。

クリアしたら、プレイヤーの回答の統計画面が表示されます。上から順に「計算に要したサイクル数」「計算に使用したノード数」「計算に使用した命令数」です。この問題は単純なので全くばらけていませんが、難しくなるにつれて自分の回答とランキングとの差違が際立ってきます。これどうやって実現したの? と首を捻るようなものも。

単なるクリアに満足せず、各性能を改善させるという遊び方もまた一つの楽しみです。

難しいですか?

わりと。


私は多少はプログラムの心得はあるもののアセンブリ言語の経験はなく、また、命令セットも貧弱なためちょっとした操作ではまったりすることが多数でした。
アセンブリ言語をバリバリ書ける方なら楽勝なのかもしれませんが……


現在7問目の「SEQUENCE COUNTER」までクリアしたもののこの時点でかなり一杯一杯になっています。どんどん難しくなるのでどうなることやら……
まあ、値段分は楽しめることでしょう。

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
ゆくゆくはトーナメントイベント参加とかもしてみたいですね。

■今後の課題

自動ビルド&デプロイ

現在の手順としては、人の少ない時間帯にサーバを止めてアップデートなりなんなり、という手順をとっています。しかし最近無理も出てきたので、自動でビルドしてサーバーにデプロイするような機構を考えたいものです。

GCC 4.8.x系でのビルド

現在の最新trunkではビルドの際にg++ 4.8を必要とするようです。しかし、gcc-4.8.1/g++-4.8.1を導入した状態でも現状ビルドエラーが出るため、現在アップデート停止状態です。
なんとか原因なり対処法を見つけてアップデートを再開したい。解決しました。

ドメイン

現在ddo.jpの無料期間が延長フェーズになっており、月にいくらかのバナー表示で無料になる状態です。しかしこれもずっと続くわけではなさそうです。
有料プランへ以降となれば月500円と、単なるドメイン取得としては割高な金額ですのでそうなったら適当なドメイン取って移るかなーと思っています。
まあすぐにどうこうという話でもないので保留状態。

■プレイヤーの方にお願い

なにか不具合が発生した際は何らかの形でレポートしてもらえるとありがたいです。
その時、プレイヤーidも添えていただけると解決が捗ります。
(「新規登録プレイヤーがゲーム開始できない不具合」という大ポカに長いこと気付けなかった前科がありますので……)

媒体はtwitter,メール*3,当blogコメント欄などなんでも結構です。可能な限り対処します。

■おしまい

「古典的」というような印象のあるローグライクゲームですが、こうして今時のブラウザ環境を生かして遊び方を共有できるようになると、まだまだ楽しみ方にも幅が出てくるのかなという気はします。

DCSSだけにとどまらず、他のゲームについても模索してみたいものですね。

*1:大遅刻きめてしまい誠に申し訳ありません……

*2:ゲームプレイや観戦中のチャット発言にはユーザ登録が必要。見るだけなら登録無用

*3:sulpsulpd なると gmail.com

Dungeon Crawl Stone Soupサーバ試験公開

最近、Dungeon Crawl Stone Soup(以下DCSS)というローグライクゲームにはまっています。
とはいえ、一番初心者に手っ取り早い(はずの)脳筋ミノ戦士でもなかなか攻略が捗らず、脱出*1までどれくらいかかることやら……


さてこのDCSSですが、Web上でサーバを公開してオンラインプレイをできるようにするコードが配布物に含まれており、現在でもいくつかの公開サーバが動いています。現状国内で動いているサーバがないようなので、試験的に建ててみました。

メリット:
  • 海外鯖に繋ぐよりラグが少ない(かも)
  • 管理者に日本語が通じる(多分)
デメリット:
  • 外国人とのプレイ観戦など交流がしにくい
  • 管理者が(色々な意味で)素人


まあ需要とかは不明ですがぼちぼちやっていこうかと思います。
要望その他は当blogコメントとかtwitter @dplusplusまで。

TODO:
  • ダンプ出力先の設定変更 ロビーからdump一覧に飛べるようにした
  • ロビー画面での生い立ち・種族表示などの有効化
  • trunkと0.14その他の共存
  • ゲーム中dumpコマンドを押した際のチャットメッセージ更新機能
  • telnet or SSHでのアクセス
  • rcs/ttyrecs/* が肥大化する問題への対策 ほぼ済
  • 更新時の手順整備
  • dump一覧をトグル操作で畳めるようにする
  • HPゲージの表示周りの不具合について調査
  • *.map,*.lstを閲覧しやすくする
  • セーブデータ移行確認画面の実装について調査
  • ログ監視での自動エラーチェック手段を整える

*1:「ゾットのオーブ」を持ち帰ること。このゲームの最終目的

JNetHack FHSpatch 0.8.26+20140213をUbuntu Linux 12.04 LTSでとりあえず動かす

サクシャ氏が開発しているJNetHack FHS patchが最近更新されていたのでUbuntu Linuxで動かしてみました。
ついでにUnNetHackからuse_darkgrayパッチを拝借して適用しました。

事前にいるもの

  • git, build-essential, nkf, flex, bison, libncurses-dev

適宜apt-getしてください。

ソースコード等ダウンロード

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対応パッチも試してみます。