トップ «前の日記(2016/02/29) 最新 次の日記(2016/03/02)» 編集

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


2016/03/01

[ヴィーヤウトゥムノ] 水のエレメンタル/Water elemental (Blue 'E') 修正&着色

=== Num:512  Lev:33  Rar:2  Spd:+0  Hp:25d8  Ac:40  Exp:325
それは高くそびえ立つ水の竜巻だ。
それは通常地下 33 階で出現し、少々不規則に普通の速さで動いている。この邪
悪なるモンスターを倒すことは 50 レベルのキャラクタにとって 約206.25 ポイ
ントの経験となる。それは魔法を使うことができ、アイス・ボルトの呪文を唱え
ることがある(確率:1/6)。それは AC40 の防御力と 25d8 の体力がある。それは
ドアを打ち破り、弱いモンスターを倒し、アイテムを壊すことができる。それは
冷血動物である。それはテレパシーでは感知できない。それは毒と水の耐性を持
っている。それは進化しない。それは恐怖を感じないし、混乱しないし、眠らさ
れない。それは侵入者を見過ごしがちであるが、 120 フィート先から侵入者に気
付くことがある。それは 1d10 のダメージで殴って攻撃し、 1d10 のダメージで
殴って攻撃し、 1d10 のダメージで殴って攻撃する。

http://sikabane-works.net/monzetsu_diary/?date=20130819#p03を修正&着色。

0

Romunqualy

鬼畜大佐『ロムンクァリィ』
「高くそびえ立つ水の竜巻」(人型)

Urwen

アッキ=ニンジャ『ウルウェン』
エレメンタルはこういう形にリテイクしたいんだとよ。

[変愚蛮怒/スポイラー] build_tunnel()関数及びbuild_tunnel2()関数による通路生成(基本前提)(変愚蛮怒 Ver2.1.5)

通路生成処理のアルゴリズム頼むよ~と言われたので今更ながらスポイラー続けます。

cave_gen()関数によるフロアの内容生成の流れ(変愚蛮怒 Ver2.1.1)の処理の流れの途中から派生。まず前提として大まかな流れのみ記述。

  • cave_gen()関数で確定し、生成された部屋の中心座標を保存した配列が、(部屋数)回分の配列要素のランダムなスワップを通じて、シャッフルされる。
  • 通路の結果作成されたドアのカウントを0から開始。
  • 部屋中心座標配列の最後の要素をx, yに代入し、最初の配列要素から順に接続処理を行っていく。
    • つまり、n-1番目の部屋~0番目の部屋の接続処理→0番目の部屋~1番目の部屋の接続処理→………n-2番目の部屋~n-1番目の部屋の接続処理という形で1ループを作ることになる。
    • 高確率で部屋間の通路生成の際に通路が他の部屋や通路を貫く。その場合、必然的にダンジョン全体は単純円環状にはならず、各部屋が多数かつ複雑な通路を持つようになる。
  • 1回の接続処理の流れは以下の通り。
    • 通路の生成はn回の各接続処理毎にd_info.txtの各ダンジョン毎に固定されたtunnel_percent値を基準として、1d(生成階) > tunnel_percentならばbuild_tunnel2()、そうでなければbuild_tunnel()に処理が移る。
      • 英文コメントによればbuild_tunnel()は通常の(曲がりくねりの少ない)通路であり、build_tunnel2()が洞窟らしい(強く曲がりくねった)通路である。
      • 双方の関数とも、自身を呼び出す再帰処理で構成されているが、アルゴリズムそのものはかなりの違いがある。
      • build_tunnel()は先の接続元から接続先までのx, y座標2つを引数に持ち、接続が失敗した場合はその旨を返す。失敗数はカウントされ、失敗数が2以上(=孤立した部屋の生まれる可能性が0でなくなった場合)ダンジョン生成そのものを失敗としてやり直す。
      • build_tunnel2()は接続元と接続先の座標に加えtype値とcutoff値を引数に持ち、初期はどちらとも2から開始する。

tunnel_percent値は低い程、天然性の高い洞窟であることを示すようである。また、tunnel_percentを超えた階層かつ、深層である程通路はbuild_tunnel2()を採用し、より複雑に曲がりくねるようになる。

ダンジョン毎のtunnel_percent値はd_info.txtにより、以下のように設定されている。

IDダンジョン名tunnel_percent値
0荒野(不使用)50
1鉄獄50
2イークの洞窟8
3オークの洞窟14
4迷宮100
5竜の住みか0
6墓地30
715
8火山0
9地獄0
10天界1000
11水没した遺跡100
12100
13ルルイエ100
140
15金鉱0
16反魔法の洞窟50
17反攻撃の洞窟50
18カメレオン洞50
19暗闇の洞窟50
20ガラスの城100

以上の前提を踏まえて、次回以降にbuild_tunnel()とbuild_tunnel2()の処理の流れを追う。