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は要求されなかったように思いますが……まああとで気が向けば確認してみます。
Dive Into Source Code
この記事は Roguelike Advent Calendar 2013 の24日目の記事です。
今回の記事は「Roguelikeゲームのソースコードを読んでみよう、読みやすくする環境を整えてみよう」について書いてみます。
ソースコードのダウンロード
商用・同人ゲーム用でないRoguelikeゲームの多くがソースコードを公開しています。置いてある場所はsourceforge、github、自前サイトなど様々ですが、好きなタイトルのソースコードをダウンロードしてみましょう。
プログラムを完全に理解するにはC言語等の知識が必要ですが、特に知識がなくても読める部分(*bandのlib/edit/以下とか)もたくさんありますので、ダンジョン探索の合間の気分転換がてらにいかがでしょうか。
※Macでのやり方は(持ってないので)今回解説しません。
Windowsで
個人的にはDevasというソフトを使っています。→ ダウンロードページ
複数のフォルダから正規表現検索でき、動作もそこそこ軽いのでおすすめ。好みの外部エディタでファイルを開くこともできます。
ソースコード全体を読むのにはやや力不足ですが、特定のメッセージの周辺を探すには十分です。
他にもこんな便利なソフトあるよ! という人は是非教えてください。
Linuxで
伝統的なgrepではこんな感じですが:
% cd include % find . -type f -print | xargs egrep -n "Hallu[[:alpha:]]+"
ack-grepというツールを導入することで、さらに見やすく検索することができます。
% ack-grep "Hallu[\w]+"
ack-grepの導入は以下の通りです。
; apt-getでのインストールの場合 # apt-get install ack-grep ; YUMでのインストールの場合 # yum install ack
ブラウザで見る 〜GNU Global編〜
% cd nethack-3.4.3 % gtags ; GPATH, GRTAGS, GSYMS, GTAGSが生成される。 % htags --alphabet --line-number --symbol --xhtml ; HTMLディレクトリが生成される。これを適当なHTTPサーバで公開される場所に置く
ワンクリックで変数や関数の定義場所に飛ぶことができます。
また、emacsやvimなどエディタとの連携も可能です。
GNU Globalの導入は以下の通りです。
; apt-getでのインストールの場合 # apt-get install global ; YUMでのインストールの場合 # yum install global
ブラウザで見る 〜OpenGrok編〜
すいませんがOpenGrokのインストールに手間取ってるので後で追記します……
まとめ
ソースコード読むだけでもけっこう楽しいのでレッツチャレンジ。
次回予告
飛び入りの方が誰か入らない場合@deskullさんになると思います。