ローグライク攻略&開発雑記

コンシューマー/PCに限らず、適当に綴っていくブログ 無駄にあれこれ遊んだので要らん知識だけは豊富

2020年09月

変愚蛮怒3.0.0 進捗状況 その26

こんにちは、Hourierです
ようやくこのブログも累計PV1000に到達しました
ひとえに皆様の応援あってこそです、ありがとうございます

さてモンスター実装の続きです
Dの次はz、そしてhやらCの追加やらと泥沼の調整を繰り返していましたが、ようやく完了しました
本当はhを調整しているくらいのタイミングで1記事作りたかったんですがタイミングを逃しました

更に引き続いてダメージ計算式の調整です
これは実験ビルドではなく、v3.0.0の正式な方針として実装しています
(もちろん上過ぎたり下過ぎたりしたら再調整します)

といってもプレーヤーに有利な方向の調整しかしていません
例えば毒攻撃は酸・電・火・冷と違ってAC緩衝がありませんでしたが、今回導入しました
具体的には一次耐性で2/5、二重耐性で4/25に減衰します
この計算式を前提にしたモンスター調整もd/D (と新規追加のh)については実施しています
旧来の毒打撃持ちモンスターは大体がヌルく感じると思います、その分追加モンスターの強烈さに頭を悩ませる……かもしれません
とはいえ毒と劣化は「耐性があるのに打撃面では役に立っていない」とか、恐怖・盲目・混乱・麻痺に至っては「取り敢えず打撃属性に付けておけばAC緩衝がなくなる、後半のモンスターは混乱打撃と麻痺打撃に違いがない」という元々がガバガバなバランスだったので、この際思い切って耐性を持たせることの旨味を増加させた次第です

ここから先の作業は4つあります、最初の2つはどしどし募集してますよ!!
  • 投稿モンスターの実装
  • 新規アーティファクト等の実装
  • メンテナ主導のコードリファクタリングに伴って、筆者の作業範囲も合わせて修正していく (バグ取り含む)
  • v3.0.0としてのバランス向上

そんなこんなで今日はこの辺で
ベータ版リリースまでもうすぐ!?
お楽しみに!!

変愚蛮怒3.0.0 進捗状況 その25 (お知らせあり)

こんにちは、Hourierです
長い長いd/Dの調整が (多分)完了しました
パラメータの細かい調整はまだありそうですが、大幅な追加・変更はもうないものと思っています
今は色々モンスターを追加したりなんだりしてフレーバー的な調整も含めてあれこれやっている最中です
調整用のアイディアをちゃんと固めたりフレーバーテキストを思いつくのに苦労したりしています
ところでzですが、『クァチル・ウタウス』のHPが本物のドラゴンより高いのは頂けません
こいつにはもう少し深層へ潜ってもらいましょう
代りに1人、ちょっと弱いのを似たような位置に追加する予定です

重要なお知らせ
各種クエスト (特に特異点系)における固定出現モンスターが変更されています
が、元々の強さとそこまで変わらないはずです (一部強化されます)
「元は××のはずだったのに△△だった、これって仕様変更?」っていうのは、ここでお知らせするものを除き高確率でバグです
モンスターそのものの調整が完了したらクエストも調整&チェックしますが、どこか抜け・漏れがありましたらご連絡下さい、修正します
具体的な仕様変更は、調整完了後改めてお知らせします

思ったよりかなり大掛かりな変更になりそうですが、その分新しい鉄獄に出会えることでしょう!
引き続きお待ち下さいませ!
それでは次回もお楽しみに♪

変愚蛮怒スポイラー 悪夢モード

こんにちは、Hourierです
何故か連続更新ですよ奥さん!

突然ですがRQ解析の過程で悪夢モードについて調べたくなりました
そもそもONにしてプレイしてる人はほぼ0だと思うんですが確認してみます
調査方法は簡単で「ironman_nightmare」というグローバル変数が使われているところを検索するだけです
  • 宿屋その他で眠ると悪夢を見る。具体的にはエルドリッチホラー持ちのモンスターを一体ランダムに選択し、それを見てしまった時の処理を実行する。エルドリッチホラー自体のパワーブースト+10もかかる (撃破済のユニークは除外されるはず)。詳細はこちら
  • モンスターのHPが『混沌のサーペント』を除き2倍になる。但し最大30000。主にグラウルングのブレスがMAX威力になる。やったねグラちゃん!
  • モンスターの加速が一律+5される。ノミやレプラコーンは全く手に負えなくなる
  • FORCE_DEPTHフラグ持ち、かつQUESTORフラグなしのモンスターが、そのレベルよりも浅い階層で出現する可能性が出てくる (『モルゴス』とサーペント・ゾンビのみ)
  • 実質反感 (モンスターが起きている状態で生成される)
  • モンスターが目を覚ます確率が8倍になる (上と合わせると、スリープ・モンスターで眠らせた後のターン経過処理、のはず。荒野の襲撃確率は上がらない)
  • モンスターの行動数が少ない (≒加速値以上に連続攻撃される可能性が高い)
  • 召喚酔いを起こすはずのモンスターが酔わなくなる、即ち召喚されたそのターンで攻撃してくる (詳細は勝手版の解説記事に詳しい)
  • 悪夢モードなしの状態に比べ、更なる深層生成が行われる。具体的には、今いるフロアをX階として、[1 + (X * 128 / (1~128の乱数)] 階までのモンスターが出る可能性がある。理論上1Fでも『モルゴス』だろうが金無垢の指輪だろうが出得る (nasty生成とは別計算、日数が経過すれば更に倍率ドン!)
  • フロア移動時にペットの行儀が悪くなる? (召喚酔い周辺で何かやっているようだが詳細不明、ペットでないモンスターと同様に何らかの状況で即攻撃ができる?)
  • 攻撃呪文の威力が、XdYから(2*X)dYに上がる。ワーロックとかマジで死ねる
  • 死亡または*勝利*時のスコアが倍になる
  • 毎日0時0分に太古の怨念が発動する。予兆として23時から不気味な鐘が鳴り始める
  • 地上から鉄獄に帰還する時、1/666の確率で最深到達階より深い階層に帰還させられる (※)
※ 最深到達階層に応じて以下の通り
1~49F:最深到達階層×2
50~98F:99Fとの中間地点 (端数切捨て)。例:62Fならば(62+99) / 2 = 80.5 → 80F
99~100F:そのまま (何も起きない)
101F~:127F

まさに悪夢ですね!
試しに城の20Fを数十回ほど出たり入ったりしてみましたが、最高記録は50Fのモンスターでした
一方で平均的には30F (=1.5倍)ですらレアだったので、「1モンスター当たりの強化」「召喚酔い無効」が悪夢モードの真髄と言えそうです
HP2倍と合わさって、上位ブレス持ちが現れたらその時点で半分くらいゲームオーバーですね

なおこんな酷い状態でもイークの洞窟 (BIGINNERフラグ持ちダンジョン)では深層生成がかかりません
それでも辛いですがまだ温情ですね
またダンジョンの外では各種WILDフラグが付いていないとモンスターが出現できないので影響は限定的です
悪夢モードの攻略チャートは若干ながらググると存在しますが、「荒野で稼げ!」って感じですね
帰還なしとか原初の街のみとかだったら更に悲惨なことに……

今日はこの辺で
次回はモンスター追加の模様をお送りします、お楽しみに!

変愚蛮怒スポイラー ランクエ解析

こんにちは、Hourierです
昔書いた記事がガバガバ過ぎて若干のウソが混じっていたのと、このところのモンスター調整でRQやらアリーナやらも含めて全体的に見直しが必要だと感じ始めています
そこで改めて間違っていた箇所の修正を行いつつ、現状について色々書いてみようと思います
なおv3.0.0を前提とした記述のため、一部本日現在の追加予定モンスターも含まれています
「誰だそいつ」って思った方はぜひ鉄獄で相対峙してみて下さい♪

変愚蛮怒のRQにおけるモンスター選定
メインの処理は単純で、quest.c のdetermine_random_questor() です
車輪の再発明感が半端ないですが、解読してみましょう

ユニークフラグがあるのは当然として、更に以下の条件を持つモンスターは除外されます
いくつかの条件は既プレイ者 (が読者様のほとんどだと思いますが)の感覚に一致しているはずです
  • クエスト限定のモンスターである(オベロンとサーペントを除くと『ゴルフィンブール』しかいない。かつて「オーククエをクリアするとRQは不戦勝」という事態が起きていたので弾いた模様。但し『ブル・ゲイツ』は何故かこのフラグがない。可能性が12Fに比べて低いからか? 『エリック』もついていないがRQ討伐対象にならないレベル帯)
  • Rar値が100を超えている (アリーナ専用ユニーク&助さん格さんは255。他に101~254のモンスターはなし。これらを弾いている)
  • 状況に応じて友好的になるユニーク (FRIENDLYフラグ。『ナミ』、『ファンゴルン』等が該当)
  • 水棲ユニーク (AQUANTICフラグ。『ジョーズ』、『カリブディス』等が該当)
  • 荒野にのみ出現するユニーク (WILD_ONLYフラグ。『手負いの熊』『血塗られし牙』が該当)
  • 既にRQ討伐対象に選ばれたユニークは、二重には選ばれない
  • 存在自体に特殊なフラグが付与されている『バーノール=ルパート』『摂政バーノール公』『ルパート将軍』(※)
  • 強制的に標準出現フロア以降にしか出現しないユニーク (FORCE_DEPTHフラグ。『モルゴス』が該当)
  • 各種ダンジョンの主 (get_mon_num_prep() 内で別途判定)
※ v3.2.0目処で『分裂/統合』フラグを持たせるよう一般化して、ユニークをいくつか追加するつもり

具体的なモンスター生成方法は以下の通りです。クエスト階層をXとします
ここでYは1~X/10の乱数、端数切り捨てです
  • レベルがX+5+Y 以下のモンスターをランダムに選定する
  • 上記条件に当てはまるユニークを探す
  • ユニークのレベルがX+X/20 (端数切り上げ)以上ならば採用

RQ討伐対象の具体的フロア
以上より、最終的に選ばれるユニークの階層は以下の通りです
  • 6F:7~12F
  • 12F:13~18F
  • 24F:26~31F
  • 38F:40~46F
  • 44F:47~53F
  • 50F:53~60F (後述)
  • 56F:59~66F
  • 62F:66~73F
  • 76F:80~88F
  • 88F:93~101F (100Fと101FにRQ討伐対象はいないので、実質99Fの『秩序のユニコーン』まで)

v2.2.1r時点では、RQ空白地帯が以下の3フロアに存在しました
13F:『ボルドール』のみ、かつダンジョンの主なので除外
30F:『ジョーズ』のみ、かつ水棲フラグ持ちなので除外
31F:『マリオ』『ルイージ』のみ、かつFRIENDLYフラグ持ちなので除外

v3.0.0にて伝説のクソゲーキャラを13Fに、いそうでいなかったあの子を30Fに追加予定です
あなたも面白いモンスターを実装すれば、きっとRQでお目にかかれますよ!

ここで、モンスターの選定基準は一様 (単純なサイコロ)ではありません
具体的には「Rar値が低いと出現確率が高い」「階層が深いと出現確率が高い」となっています
更に具体的なパーセンテージを出す計算はget_mon_num() ですが、最終鬼畜級の難易度なのでまともに触っていません

そして60Fの連中、すなわち『50Fより56FのRQ討伐対象が弱いまである』可哀想なユニークちゃん達を以下に列挙します
何故Dとpしかいないんでしょうか……
見かけたら養豚場の豚を見るような目で見てあげて下さい
水竜『エイブラ』
邪竜『ナース』
アンバーの狂気の夢想家『ブランド』
狂気を紡ぎしもの『アブドゥル・アルハザード』

59Fは『はぶ』と『ドルアーガ』、そして66Fの連中は『ディオ・ブランドー』のみです
現行のRQ仕様では、新規モンスターをこの辺に追加するのは避けた方が無難でしょう

ところでコード上は「何かフラグを持ってたら除外」って処理が多重実装されています
何とかしたいです(遠い目

今日はこの辺で
次回もお楽しみに♪

余談
その1
悪夢モードだとヤバみが深い……ように見えたんですがなんと!
何回か新規キャラを作った感じだとRQ対象のモンスターに変化はありませんでした
上の関数は「データベースに近い何かをC言語で書き上げる」という頭を抱えざるを得ない超複雑コードなのでこれ以上何とも分かりません
リファクタリングして変数の見通しを立ててから開発ソフト上でステップ実行──としないと調査自体苦しいですね
ついでに悪夢モードならもっと強いユニークでもいいんじゃないだろうかと思ってます(暗黒微笑
これはv3.2.0の宿題にでもしておきます

その2
RQ討伐対象は「0日目」に生成する扱いです
なのでnasty生成 (時間経過で強めのモンスターが出現するようになる仕様)は一切寄与しません
以前は死亡時の日数でnasty生成がかかってしまうバグもありましたがv2.2.1r時点で修正済です

その3
18F&30F自体にRQを実装しても他とは被りません (本当に実装するかは別問題)
仮に実装すると以下の階層が討伐対象になり得ます
18F:19F~24F (『ボルグ』等)
30F:32F~38F (『ジャート』『ハイドラ』等)

変愚蛮怒3.0.0 進捗状況 その24

こんにちは、Hourierです
引き続きモンスター調整を進めております
この数日はDをごにょごにょ弄ってます
今あるネタだけだと流石にネタ切れ感がヤバいので竜退治 はもう飽きた ネタを突っ込んだりしてます
火炎系Dの優遇っぷりは前々から酷いと思ってたので「他の4属性よかちょっと強い」程度にガッツリ弱体化させました
ただそれだけだと面白くないのでMAX属性ブレスをぶっ放してくる上級ワイアームも追加しました
シャンブラーの存在価値が危うくなりますが、丁重に無視します


そういえば書いてなかった (五体投地)ので調整の目的をここに書きます
v3.0.0における調整は主に「強すぎるモンスターを少し下のフロアから出現するようにし、代りにちょっと弱めのモンスターを元々のフロアに追加する」という方針で作っとります
例えばこんな感じ:

v2.2.1
白衣の修行僧 33F (加速+10)

v3.0.0
白衣の修行僧 33F (加速+5) ← v2.2.1よりちょっと弱い
白衣の上級修行僧 38F (加速+10) ← パラメータは「v2.2.1における白衣の修行僧」と同等


少なくとも修行僧系には根拠と妥当性があって、カジノのモンスター闘技場できゃつらは軒並みハンデがついていました
今回の調整でノーハンデになりました
そして件のアイアン・リッチは最初からノーハンデなガバガバランスでした
モンスター数が半端ないので全体最適は難しいですが、見える範囲で何とかしようと思ってます

逆に強化した連中もいます
dシンボルは『カブラックス』と、なるべく関わり合いになりたくないカオス・ドレイク&バランス・ドレイクを除きほぼ全員ザコです
もちろん酸dも鬱陶しいですがこいつはいわゆる5属性なので冷気とかと揃えます
そんなこんなで、ベビー系はともかくヤング系&無印系はパラメータを強化して更に数フロア分浅いところから出現させるようにしました
下級とはいえドラゴンですからね、それ相応の強さでないと

もうちょっとDの調整作業は続きます
40Fじゃなくて50Fが壁になるかもしれません (それでもv2.2.1までの40Fに比べればフラットな難易度上昇のはず!?)

今日はここまで
次回の更新もお楽しみに♪
ギャラリー
  • 開発者になろう GitHub編
  • 開発者になろう GitHub編
  • 変愚蛮怒3.0.0 進捗状況 その36
  • 変愚蛮怒 3.0.0 進捗状況 特別編 その3 C#への可能性
  • 開発者になろう
  • 開発者になろう
  • 変愚蛮怒2.2.2 進捗状況 その21
  • 変愚蛮怒(2.2.2 開発中版) ハイエルフレンジャー その5
  • 変愚蛮怒(2.2.2 開発中版) ハイエルフレンジャー その3