トップ «前の日記(2013/02/19) 最新 次の日記(2013/02/21)» 編集

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/02/20

[変愚蛮怒/スポイラー]build_type16()の部屋生成プロセス(変愚蛮怒 Ver2.1.2 rev3327)

地下街

iksさんが実装してくれた新しい部屋生成処理「地下街」の処理の流れを追ってみることにした。コメントによれば、Vanilla 3.0.3からの流用らしい。

  • 横サイズ:town_wid = 33~44 を設定
  • 縦サイズ:town_hgt = 11~14 を設定
  • 既に他の部屋生成でブラックマーケットの入口が生成されている場合には、ブラックマーケットの生成を抑制する。
  • precalc_ugarcade()という関数で、生成がフロア上で可能かをチェックする。不可能ならキャンセル。
    • この時点で店舗に当たる矩形状の永久壁地形を、全店舗分確定する。基本的に永久壁の矩形が他の矩形にくっつかないように領域を確保していき、どうしても店舗数分生成できない場合は失敗扱いになる。
  • find_space関数でtown_wid+4, town_hgt+4のスペースが確保できるかをチェックする。不可能ならキャンセル。
  • 確定した生成範囲を3x3分割し、その中央部分を部屋にする。
  • build_stores()関数で実際に店舗を生成。
    • 店舗永久壁から周囲2マスの壁は必ず床にする。
    • 永久壁の東西南北いずれかの端に店舗入口を作成する。

結果は上図の通り、何となくVanillaTownらしい地形がランダムに生成されるようになっている。悪くない。