トップ 最新 追記

SikabaneWorksが関係するコンテンツ(主に*band系ローグライク)の開発近況・補足から全く個人的な雑記まで。

[WEB:屍の見える丘公園]| [RSS]

Angband | Badiashimshe | C# | CRAUZEL | D'angband/小説草稿 | D'angband/開発 | DarkSouls | Demon'sSouls | DungeonCrawl | ElvenUteruses | Haskell | Hengband | J9シリーズ | LEGO | LineDrawing | MISC | MTG | Mac | Math | Moria | R-18 | Roguelike | Rough | RoughSketch | Ruby | SDL | UNIX | VMware | WarHammer | Zangband | アタシラヂョウヲウ | イラスト | ガジェット | ゲーム | ゲーム紹介 | ゲーム製作技術 | ゲーム論 | スケッチ | ツクール | テクノロジー | ニコニコ動画 | ファルコム | ファンタジー | マリオ | ヴィーヤウトゥムノ | 別記事追加予定 | 変愚蛮怒 | 変愚蛮怒/スポイラー | 変愚蛮怒/元ネタ探訪 | 変愚蛮怒/攻略 | 変愚蛮怒/開発 | 宗教 | 情報 | 政治 | 文字コード | 日ペ昔話 | 東方 | 東方ワンドロ | 東方外法漢女 | 歴史 | 漫画製作 | 版権絵 | 画像処理 | 翻訳 | 自然言語 | 艦隊これくしょん | 落書き | 言語解析 | 読書 | 超人ロック | 追記予定 | 通信 | 鉄獄旅慕情 | 阿片窟 | 馬鹿馬鹿蛮怒/開発 | 魔法少女まどか☆マギカ | 魚類版深夜の真剣お絵描き60分一本勝負



2019/12/04

[ヴィーヤウトゥムノ]シェロブ姉貴

メルコールを食べ損ない、バルログ達にぶちのめされて以来耄碌中の母親(ウンゴリアント)を数千年介護中。主に食的に欲求不満気味。

シェロブ姉貴




2019/12/07

[変愚蛮怒/開発]変愚開発日誌part300…Doxygenで2.2.1rから2.2.2-Refactoringの比較をちっとしてみる

hengband

はじめに

何かPart300とかになってますが、数え方いい加減な上に雑に続けてきただけなので何もめでたくないです。恥の多い開発を送ってきました。

去年のカレンダーで散々新要素にチャージマンとかマーフォークとか追加してたくせにそいつがバグ塗れだったり微調整だったり、単にサボっていたりで2.2.2リリース出来てません。

なにやってたんだヴォケと言われればリファクタリングです。必ずしもする必要はないのですが、将来の拡張性とか、ソースのライセンス絡みを更新するための書き起こし直しの検証とかを狙っていたりして泥沼にはまりました。

何年かぶりにDoxygenでデータ化したので何となく何やってきたか比較してみましょう。

ソースをそもそも分割したり整理してみている

2.2.1rくらいの時点で、もう200kB超えのファイルがだらだら並んでいたりしました。全くソース的に関係のないところに無関係の関数があったりしました。同じような、あるいは似たようなことをやる関数が別々に実装されていたり、もう辛抱たまらなかったので、切り分けたりしてました。

大体良くなったとは思うのですが、ヘッダファイルとソースファイルの宣言位置の齟齬とかはチケットで突っ込まれている通り、まだ残っていたりするので何とかします。

グローバル変数を各構造体にぶち込んで整理しなおした

グローバル変数上で関数の値渡しされていたりする悪夢とかは依然も何度か話した次第ですが、それに加えて

  • どう見てもプレイヤー自身に属する要素がplayer_type構造体に含まれずにグローバル変数に放置されている。
  • 逆に要らなさそうなのがplayer_typeに存在している

とか色々しんどいのが多かったのでこれを大分直したつもりです。

似たようなことをフロア構造体であるfloor_typeにもやったり、ゲーム全体に関する値はworld_typeとか突っ込んだりもしてます。

用語をあれこれ直した

例えば"cave"という表現が昔はあったわけですが、これが何を指すのかが

  • キャラクター一個分のマス目を指す。(grid)
  • フロア一つそのものを指す。(floor)
  • 生成される部屋の中でも天然の洞窟状のものを指す。(generate_何たら付きの関数)

とか色々紛らわしいことになっていたので、()の通りに名称を変更したりしてました。置換処理に誤ってコメントの中身まで変えてしまった問題を外国人兄貴にチケットで突っ込み入れられたりしてます。大変申し訳ないと同時に、まだ注目してもらっている件を大変うれしく思ってもおります。

いつ終わるのかしら

正直まだわかんねえっす。これからのリアル事情と自身のおメンタルで大きくぶれます。ゆ る し て。





2019/12/11

[変愚蛮怒/開発][変愚蛮怒/スポイラー]激しく虚無招来

カオス領域の4冊目最高ランクの呪文「虚無招来」

  • 虚無招来
    • 自分の周囲8マスいずれかに壁があると半径(14+d11 +レベル)の破壊(確率665/666) またはそのフロアの壁全て消失(確率1/666)の後, 100+d150のダメージを受ける. そうでない場合, 以下を順に.
      • 半径2, ダメージ175のロケットを8方向に打つ.
      • 半径3, ダメージ175の魔力の球を8方向に打つ.
      • 半径4, ダメージ175の放射性廃棄物の球を8方向に打つ.

地形を整備した状態で使うと、8方向連続ボール処理が結構な威力をはじき出してくれることは知る人ぞ知ると思われますが、今回のお題はこっちの方。

そのフロアの壁全て消失(確率1/666)

最終盤も最終盤で使えるようになる呪文で小並感の確率で発生する現象を調べるさらに物好きの@さんも史上皆無ではないでしょうが、わざわざやるのはめんどい、ついでに言うならデバッグ上もチェックするのは色々しんどい。

ということでウィザードモードに新しく'@'で「任意のスペル効果を引き起こすコマンド」なるものを実装していくことを考えてみました。

実際に乱雑に実装され続けた各種のスペル効果全てを網羅するには結構手間と修正がかかりそうなので現状名ばかりですが、今回この処理を行うvanish_dungeon()関数を走らせてみた例をお見せしましょう。

これを実装したコミットはこ↑こ↓

おし、じゃあぶちこんでやるぜ。

デバッグコマンド許可後に、ctrl+aからさらに'@'を押します。

Wizard0

SPELL:とプロンプトが出るので"vanish dungeon"と通ずるっこんでやれば、該当処理を実行します。

Wizard1

左上から順番に崩れていくクッソ哀れな壁くんたち、ついでに目を覚ますモンスターくんたち。

Wizard2

全部一通り崩れてから視界も更新されます。

Wizard3

画面端の永久壁くんたちもこわれました。しかし、当然ながら進むことはできんようになっております。

大体こんな現象でした。以上。

関数名に関する余談

[Refactor] #38997 call_the_(void) に player_type * 引数を追加して call_the_void() 改名せざるを得なかった. / Add player_type * argument to call_the_(void) and rename to call_the_void() regretfully.

このコミットの通り、元々虚無招来の処理を実装していた関数は引数を持たなかったために、

void call_the_(void)

と小じゃれたセンスを醸し出していたのですが、今回延々と続くリファクタリングの観点から、player_type引数を付ける必要があり、このセンスを潰さざるを得ませんでした。ゆ る し て。


2019/12/12

[ヴィーヤウトゥムノ]えろかったりつよかったりするナーガもっと増えろ

えろかったりつよかったりするナーガもっと増えろ





2019/12/16

[ヴィーヤウトゥムノ]妖精メイジ@さん

妖精メイジ@さん

MtGの最新環境で何でもかんでも鹿に変えるやら、筋肉モリモリマッチョマンの変態を犬にするやら、やりたい放題の糞妖精PWがいたので女体化っぽくしようとしたけど全然似なかった。まる。



2019/12/18

[変愚蛮怒/開発]Sourcetrailで変愚のソースを便乗解析をしてみる

迫真ソース解析部Sourcetrailの裏技

Roguelike Advent Calendar 2019 にて16日目の記事としてargrath氏にSourcetrailでJNetHackのソースを眺めるという記事を見せていただき、

*bandとかのソースにも多分適用できると思うのでぜひ。

とか誘われたのですから、ホイホイついていくのが筋だろうと思い現在のソースにてやってみました。

この種のツールは導入面倒かなあと思いきや、argrath氏の手順の通りで簡単に解析まで持って行けた次第です。

Sourcetrail

解析はビルドとほぼ似たような速度で終わりました。readdib.cの中身でエラー返されましたが概ね動いているようです。

Sourcetrail

早速、hackってどのhackだよ(哲学)って状態の時にSourcetrailのGUI上でリアルタイムにチェックできることを確認。Doxygenではhtmlで、しかも結構クッソ時間かかる内容をこうもパッと見れるのはうれしい。

Sourcetrail

defineも参照できますね、職業ごと特有の分岐処理もこれで俯瞰できます。

Sourcetrail

今現在、親の顔より見た親の仇みたいなグローバル変数、p_ptrくん。散々リファクタリングで関数引数に追い出しているのにまだ参照数800超えとかうせやろ?いや、grepでもまだ4500とか余裕で残っているのは知っているんですけどね(白目)

Sourcetrail

クリックして展開。この手の解析ツールの自動作図は大抵こんだけの件数だと文字や図表が潰れてしまうのがオチでしたが、そういうのもしっかり対処してくれてますね。

ともあれこれで迷走していた変愚コードいじりも少しははかどりそうな気がします。aragath氏とSourcetrail開発陣Coati Software様に感謝です。






2019/12/23

[ヴィーヤウトゥムノ]久々にHFO子くん

モンスター絵の悶絶役にしょっちゅう描いていたノーオートローラーふつう人間女。一応純戦士職なんだから長身むっちりにかいてやるべきやねんな……

久々にHFO子くん


2019/12/24

[ヴィーヤウトゥムノ]スラーネッシュ姉貴兄貴アバター

スラーネッシュ様に限ればきっと欧米のバタ臭い有様だけじゃなくて、日本のHENTAI文化に即した属性大盛りの御姿を見せてくださるぞ。 そんでもってpixivのあらゆるR-18とR-18Gを実践して楽しめるよう、心身を否応無しに魔改造してくださるぞ。

スラーネッシュ姉貴兄貴アバター


2019/12/26

[ヴィーヤウトゥムノ]腕器耐18/***クター先輩

安易と知ってなお描かなきゃいけない気がした。やっぱ駄目だった。

腕器耐18/***クター先輩





2019/12/30

[ヴィーヤウトゥムノ]上半身に比べて下半身が貧弱な混沌の戦士

元々オリジナル作品のキャラデザだったけどもちろん当時からウォーハンマーとムアコックの影響受けまくりでした(半ギレ)

上半身に比べて下半身が貧弱な混沌の戦士


2019/12/31

[ヴィーヤウトゥムノ]鉄獄旅慕情7

鉄獄深層なりか冥王の心象風景っぽいものなりかでも妄想しながら今年は締め。来年こそ何年も続く自称リハビリ解除できればいいね(棒)

鉄獄旅慕情7