ローグライク実験室がおんぶにだっこしている技術2016-12-02 00:00

Roguelike Advent Calendar 2016 の2日目の記事です。

ローグライク実験室」はAngbandバリアント(主に変愚蛮怒)の最新ソースコードをビルドしたWindows用バイナリを置いてるページです。以前は自分で遊ぶ用でしたが、もはや自宅でWindows PCが稼働していない今でも続けています。まあ、いかに手間ひまかけずにビルドをこなすかとか、ソース眺めたりとか、バグ修正パッチを送るのも楽しみです。

2013年のAdvent Calendarの記事でも、どんな風にビルドしてサイトに載せているかをかなり雑に説明しました。あれから2年、相変わらず独自ビルドのタイミングはRSSリーダーのFeedlyでコミットを目視で確認してます。

ビルド用のWindows環境はどうしているかというと、Microsoft Azureで調達しています。Windows用のPCを持たないことでかえって快適になりました。昼夜問わず思い立ったらインターネットにつながりさえすればビルド作業を開始できるのです。
Azure上の仮想マシンにリモートデスクトップ接続してビルドスクリプトを走らせてファイルをDropboxに放り込んで任務完了。使う時しか動かさないのでコストは月に100円程度で安上がりですね。もうこりゃWindowsマシンいらんわポイして困るのは、たまにSteamでWindowsにしか対応していないゲームがあるくらいです。

実験室の配信インフラの要を担うDropboxは、publicフォルダによるサイトの公開が(無料ユーザーは一足早く)できなくなってしまった。超重要なんだけど、Feedlyは有料ユーザーなんだけどDropboxは無料で使ってたわゴメン。とりあえずHerokuに引っ越して https://rlbuild.herokuapp.com/ 存続しています。新しいサイトでもNode.jsでDropboxをこきつかってお手軽な配信インフラとしてがんばってもらってますステキ。Node.jsで構築している部分のソースコードはGitHub https://github.com/shimitei/tamate に置いてます。Dropbox内の一覧を取ってきてリスト表示、指定したファイルの共有リンクにリダイレクトしてのダウンロードを行えます。以前は一覧のHTML生成スクリプトを実行したり、ページのリンクをちまちま編集していたのと比べると楽ちんになりました。

他にはWindows用だけでなくmacOS用バイナリのビルドにも手を出そうかと https://github.com/shimitei/hengband-cocoa 先人のリポジトリをForkして、いまのところほぼそのままで動作してくれています。変愚蛮怒本家の最新ソースと合わせてビルドするスクリプトを書いたところで満足してしまったのか、macOS向け機能の追加や改善は進捗ダメです。

Twitter https://twitter.com/shimitei_labo ではつぶやくネタも無いのでとりあえずGoogleアラートで仕入れたローグライクなニュースを流してます。アラートは意外にも高頻度でがんがん入るのですが、大半がspam的サイトで残りも多様性というか広義すぎる感のあるローグライクが多いのですね。こいつのフィルタリングを機械学習するのが今後のテーマでしょうか。

ローグライク実験室の裏側2013-12-17 00:00

Roguelike Advent Calendar 2013 の17日目の記事です。

悪い話と良い話がある。
パシフィック・リムのブルーレイ版をレンタルして、PCで観ようとしたら案の定トラブってドライバー入れ直そうと削除したら再インストールが失敗する。ATI Radeon HD4200はWindows8.1には古すぎるか。8インチWindowsタブレット買っちゃおうかと調べたら今使ってるAMD Athlon II X2 240eとあんまりパフォーマンス変わらないって進歩しているようなしていないような。

良い話は、さっき起動したら消したドライバーが復旧してたよ。
実験室ページ用の半自動ビルド環境構築をメモって記事にしてWindows環境つぶしちゃおうと思ってたのにー。

「ローグライク実験室」はいろいろローグライクゲーム(といってもAngbandバリアントのみ)のパッチ作ったりするページにしようかなーと思ったこともありますが、結局CVSから最新ソース取ってきてコンパイルしてWindows用バイナリをうpするページになりました。
最初期は自分が遊ぶ用なのでリビジョンとか気にしない、CVSにはリビジョンなかったしね。パッチ適用変愚蛮怒のファイル名が年月日のものはその名残。

現在はほとんどのバリアントはSubversionに移行してるのでちょこっと洗練してリビジョン毎にビルドしてます。全自動まではいけてないけれど、今では手作業は苦にならないくらいには減らしてる。

作業は以下の流れ。
1.コミットの検出はRSSリーダーで
 SourceForgeならRSSフィードがあるし、GitHubにもある。
 Googleリーダー亡き後はFeedlyに移行。
2.コミット内容の確認
 trunk以外は無視するポリシーで運用。
3.ビルド対象のリビジョンをコンパイルする
 バッチファイルの引数にリビジョン番号を付けると、自動でzipファイルにパッケージングまでできちゃうBATを作ってある。
4.Dropboxのpublicフォルダにコピー
 Dropboxのpublicにファイル置くだけでサイト公開できるのでらくちん。
 ドメイン用意してないのでURLがあやしい感じなのはいなめないが。
 一覧HTMLはシェルスクリプト(Cygwin入れてる)で生成。容量足りなくてファイル消すことになっても一覧HTMLの維持がらくちん。
5.トップページの更新は手作業
 コピペして数字変えるのにたまに間違えてるのは手作業だから。
6.Twitterでつぶやく
 リビジョン○○をビルドしました。
 実験室ページにはTwitterの投稿表示するようにしたり結構マッシュアップ?
 でもFacebookとGoogle+のボタン用意したのにだれもいいねしてくれないよ。

まだ結構手間ひまかけてるけど、全自動にしちゃったら興味関心を維持できなくておしまいかな。

BATのビルドスクリプトは無くすとまた作るの面倒なのでアップロードしてるzipに一緒に入れてます。
CVSからソース取っていたころはwgetでtarballダウンロードしてたけど、コミット数多いのとダウンロードサイズの大きいDeeangband対策としてローカルにSubversionサーバ立ててコミット内容を同期するようにした。
VisualSVN Serverインストールして、他のリポジトリから同期するように設定。svnsync sync http〜で同期が実行される。
実行すると取り込まれたリビジョン番号がずらずら出てくるので、それ見て指定範囲のリビジョンをビルドするBATファイルを実行する。(ビルドBATをループで実行するBATファイル。)

おおざっぱにはこんな感じ。
バリアントによっては公式に無い俺おれmakeファイル用意してるのもあって、これは自分の都合のいいコンパイル環境を使うため。
今はMacbook Airがメインマシンなので、隣の部屋のWindows PCにChrome リモートデスクトップでインターネット経由で操作したり。

今時のゲームは時間だけでなくてお金も吸い取られるので、変愚蛮怒でなくてもスマートフォンでローグライクゲームができればね。あるにはあるんだけどねPCのと同じのが。操作しにくいよ。
昔作った携帯電話Java向けのmiRogueは、10キー操作に特化してたんだけどタッチパネル操作に合わせるにはどうしたものか。このネタは来年にまわして、今年のAdvent Calendarが埋まらなかったら「爆発だよ鉄獄は」の2013年バージョンを作ろうかな。

次はClockさんにバトンタッチ。

変愚蛮怒パッチ:*クイック*・スタートパッチ2009-11-28 23:40

*クイック*・スタートパッチ
http://www.asahi-net.or.jp/~KH4S-SMZ/roguelike/labo/index.html#hengpatch

他にすることしちゃったし、今週もひねり出してみた。

Gumbandを懐かしんで、あれのクイックスタートはレベル5からスタートだったなあと。変愚にも追加してみる。
レベル5よりは中盤くらいとか、ボーグにプレイさせて途中からとかでもいいんだけど。

レベル5でも戦士系じゃなけりゃありがたいかな。武器防具はそんなに上等なものを持たせるものじゃないと思うが、ランダムアーティファクトの方が何が付いてるかわからんので上等。あと地味に所持金10倍。

Gumbandのアストラル体からスタートもスカムスキーにはおもしろいのだろうか。幽体啓蒙テレパシー状態で深層からスタートして地上に出てからは普通のプレイ、のはず。途中であきたりぬっころされて出れたためしがない。

変愚蛮怒パッチ:種族間抗争2009-11-23 16:57


今週もパッチを書いてアクセスランキングを下げよう。
種族間抗争パッチ
http://www.asahi-net.or.jp/~KH4S-SMZ/roguelike/labo/index.html#hengpatch

エルフロードとか友好的なモンスターがうざいのは少なすぎるから、ということにして友好的なモンスターを増やしてみる。
プレイヤーの種族に近いシンボルのモンスターは友好的にする。
ドワーフとオークで戦争しようとしてもドワーフがいなさ過ぎだ。エルフもドワーフもホビットもシンボルhだからみんな仲良くしてもらうのは手抜きすぎるか。

ユニークは間引かないでJ戦などで共闘してみたい。ハルマゲドントラップ並にカオス状態になるかしら。ダンジョンの主は友好的でもいいや。
TObandみたいにアライメントが秩序と善良、邪悪と混沌なら面白くなるかなならんかな。邪悪アライメントなら邪悪モンスターを友好的に、は無理だけど種族とアライメントが合えば友好的なのはよさそう。そんな都合のいいモンスターがいないけど。

善良だけアライメントで友好的になるようにして、あまり意識されない徳も絡めるくらいで試してみるかな。

変愚蛮怒パッチ:借金地獄パッチ2009-11-15 23:09

NetHackトーナメントのような改造を追加しようと思ってできたのは、これ?

借金地獄パッチ
http://www.asahi-net.or.jp/~KH4S-SMZ/roguelike/labo/index.html#hengpatch

中盤以降はお金の使いどころはBMスカムくらい。XAngbandは武器防具の強化につぎこめる。最初からお金使えないようにしてありがたみを思い知ってみようじゃないか。たぶん食料無くて死ぬ。

初期オプションに借金地獄オプション追加。選択するとスタート時の所持金がなんとマイナス。がんばって金鉱ほりまくればいつかはプラスになるのだろうか。お金拾ってもアイテム売っても即取り立てられると考えるよりは、お金の存在を忘れてしまいましょう。
拾ったアイテムだけでなんとかする鉄人向け。あー鉄人用って書いてなかった。

キングボンビーが憑いて、我が家のアイテム全部売り払ってあげたのねん、は未実装です。余計ななんとかの像などのアイテムに混じって食い物買ってきてくれたら許せるか?

変愚蛮怒パッチ:ユニークな世界パッチ42009-11-15 22:34

Twitterでroguelikeリスト入り記念にしょうもないパッチを書いてみるのでした。

ユニークな世界パッチ4
http://www.asahi-net.or.jp/~KH4S-SMZ/roguelike/labo/index.html#hengpatch

ユニークな世界パッチで、並や上質なアイテムは生成されないようにしてみたい。
power=0が並、1が上質のようだ。
powerが1以上なら+1、他は-1してみる。
店にもエゴや☆がずらりだぜ。副作用としては、アーティファクトな矢玉も生成されてしまう。ゴミ☆の鑑定が面倒。

盗賊クエストで高級品がぼろぼろ出てくるので、種族にアンドロイドを選択してもさくさく進めることができるようになった。
あとはダンジョンがすかすかでQy@したくなる問題だなあ。