トップ «前の日記(2013/01/26) 最新 次の日記(2013/01/28)» 編集

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分一本勝負


2013/01/27

[変愚蛮怒/スポイラー]ダンジョンフロアにおけるモンスター配置の流れ(変愚蛮怒 Ver2.1.1)

cave_gen()関数によるフロアの内容生成の流れ中で行われる処理の詳細として追う。

モンスターの生成回数の確定

  • ダンジョン毎に指定されるmin_m_alloc_levelの値を基準にモンスター配置回数を定める。
    • min_m_alloc_levelによる生成回数の基本値は3x3画面分(縦66マス、横198マス)を基準にしたもので、それより小さいダンジョンについては縦横を比例して基本値を割る。(例えば2x2画面分なら4/9になる)
  • 生成回数に1d8を加える。
  • 生成回数に生成階に基づく加算を与える、加算数は生成階 / 3だが2回未満なら2、10回より多ければ10回に留められる。
  • 最終的に算出された回数分alloc_monster()関数でモンスター配置を試行する。

alloc_monster()関数の流れ

  • 最初にalloc_guardian()関数を走らせて、優先的にダンジョンの主を配置し、成功したらそのまま処理を終了する。当然最深層以外では無関係である。
  • ダンジョンの主を配置済か配置する必要がないなら、ランダムモンスターの配置を試みる10000回に渡ってランダムに空いているマスを検索し、配置可能な場所があったらそこに確定。繰り返して確定しかなった場合は失敗として処理を終える。
  • 1d5000<生成階ならば、alloc_horde()関数によるモンスターの大群を生成する処理に移行する。
  • そうでなければplace_monster()関数により単体生成を試みる。

alloc_horde()関数の流れ

  • ダンジョン的に相応しいモンスターの種類、と配置先に相応しいモンスターの種類をget_monster_hook(),get_monster_hook2()関数により規定する。
  • 1000回にわたりランダムにモンスターの選別を試行して、それがユニークかはぐれメタル以外ならそれに確定する。試行しても確定しなかったら生成キャンセル。
  • 最初のモンスターを実際に配置する。
  • その語5+1d10回に渡り、パワー(生成階+5)相当の同族召喚と等価の形でplace_monster_aux()関数による配置を繰り返す。

place_monster()関数の流れ

  • ダンジョン的に相応しいモンスターの種類、と配置先に相応しいモンスターの種類をget_monster_hook(),get_monster_hook2()関数により規定する。
  • 選別でモンスターを一つ選び、place_monster_aux()関数で定めた位置に配置を試みる。

[版権絵]クラウストロフォビア

だからエロくて強い使い魔達がいるのに何故オルステッドにコンプレックス抱く必要があったのか小一時間。

クラウストロフォビア