2013/10/19
■ [変愚蛮怒/開発]ハードコーディング処理による各職業の別ゲー度(変愚蛮怒 Ver2.1.4 rev3495)
Twitterの #hengband クラスタにて狂戦士の仕様の話題が上り、うっかり見逃していた仕様などにまたいくつも気づかされたのでこんなネタを上げてみる。
C言語の#defineプリプロセッサで定義された各職業のマクロが何件出るかを基準に、各職業がどの程度ハードコーディングで特別処理されているかを探る。無論明確な統計的基準にはなりえないが「各職業がどの程度、暗黙的な特別ルールを課されているか」の一定の指数にはなるだろう。
探った方法は以下の通り、
- VC++Express2008のシンボル検索で()内のキーワードを探る
- シンボルで#define定義、ならびに#ifdef JPによる、ロケール記述で重複している部分は除外
- #defineで多重マクロ定義されているものは1件と扱う。(これにより吟遊詩人のみは実際より簡略化されて件数が減っている可能性大)
結果は以下の通りである。
バーサーカー(CLASS_BERSERKER) | 60 |
スペルマスター(CLASS_SORCERER) | 59 |
忍者(CLASS_NINJA) | 58 |
練気術師(CLASS_FORCETRAINER) | 42 |
赤魔道師(CLASS_RED_MAGE) | 37 |
修行僧(CLASS_MONK) | 33 |
鏡使い(CLASS_MIRROR_MASTER) | 31 |
超能力者(CLASS_MINDCRAFTER) | 30 |
剣術家(CLASS_SAMURAI) | 28 |
魔道具術師(CLASS_MAGIC_EATER) | 23 |
ハイ=メイジ(CLASS_HIGH_MAGE) | 23 |
魔獣使い(CLASS_BEASTMASTER) | 23 |
騎兵(CLASS_CAVALRY) | 23 |
戦士(CLASS_WARRIOR) | 22 |
メイジ(CLASS_MAGE) | 21 |
吟遊詩人(CLASS_BARD) | 21 |
プリースト(CLASS_PRIEST) | 20 |
青魔道師(CLASS_BLUE_MAGE) | 20 |
ものまね師(CLASS_IMITATOR) | 19 |
スナイパー(CLASS_SNIPER) | 19 |
アーチャー(CLASS_ARCHAR) | 19 |
混沌の戦士(CLASS_WARRIOR_MAGE) | 17 |
盗賊(CLASS_ROGUE) | 17 |
鍛冶師(CLASS_SMITH) | 17 |
レンジャー(CLASS_RANGER) | 15 |
パラディン(CLASS_PARADIN) | 14 |
観光客(CLASS_TOURIST) | 13 |
魔法戦士(CLASS_WARRIOR_MAGE) | 11 |
ああ、やっぱり、というべきか。特別な打撃処理、技能体系が与えられている職業は極めて多く、逆にAngband以来の標準的なシステムを中心に実装されている、ごく普通のデュアル職は特に少ない。
吟遊詩人は、先に述べた通り特別処理を別個マクロ化している箇所が多いので、実際はより複雑である可能性は大きい。あと、青魔道師とものまね師はそれぞれに処理を丸ごと重複し実装するというかなりどぎついことやってるせいで、却ってこの基準では低位にある可能性が巨粒子レベルで存在している。成し遂げたぜ。
■ [ヴィーヤウトゥムノ] 森蜘蛛/Wood spider (L.Umber 'S')
=== Num:127 Lev:7 Rar:3 Spd:+10 Hp:3d6 Ac:16 Exp:15 それは一目散に冒険者に向かってくる。 それは通常地下 7 階で出現し、素早く動いている。この自然界のモンスターを倒 すことは 50 レベルのキャラクタにとって 約2.02 ポイントの経験となる。それ は通常集団で現れる。それは AC16 の防御力と 3d6 の体力がある。それはドアを 打ち破ることができる。それはまれにテレパシーで感知できる。それは毒の耐性 を持っている。それは経験を積むと、闇の森蜘蛛に進化する。それは侵入者に対 してあまり注意を払わないが、 80 フィート先から侵入者に気付くことがある。 それは 1d4 のダメージで噛んで攻撃し、 1d5 のダメージで刺して毒をくらわす。
鬼畜大佐『ロムンクァリィ』
おう、MBLVのMRMちゃんやめろや。
アッキ=ニンジャ『ウルウェン』
いやこんな所でま○もちゃんやってるんじゃ、 *勝利*の見込みないだろ、常考。