日記/2007-11-10

2007-11-10 (土) 23:31:29
お名前:

敵火壁対応、実施中

回避運動用の処理:「あるセルに火壁があると仮定する」処理は、予想通りたいした問題ではなく、実装済み。

問題は「あるセルに火壁があると判断する」処理。
先日の方針通り、ノックバック起因で処理を変えるつもりだったのですが、そのノックバック判定に意外な苦戦をしています。

問題点:移動中のノックバックの判断が手間
どういうことかというと。
ホムからは「1セルのノックバック」にしか見えない。

例えばあるAIサイクル開始時、の位置関係が以下のような場合。話を簡単にするためにX座標にだけ注目。

座標01234
   ホ炎 敵

この状態では、ホムは自分の位置を「座標1」と検出。 上記状態から→へホムが移動しようとしてMove()実行し、このAIサイクル終了。
で、次のAIサイクル時点では、以下のようになる。

座標01234
  ホ 炎 敵

ホムは火壁にはじかれて、火壁から見て2セルの位置に移動。
つまりホムは自分が今「座標0」にいると判断、以前の位置からは1つ左にずれたと判断する。

「じゃあ1セル戻ってもノックバックでいいじゃない」という話をしようとすると、これはまた具合が悪い。
移動中に手動で移動方向を変えた場合に誤検知してしまうケースがある。
同様にX座標だけで例を書くと。

座標012345
    ホ  x

状況として、一度上記x地点:座標5に向かってのMove()命令が実施されていると思いねぇ。
この状態でAIサイクル開始、ユーザーが座標0への移動操作を行ったとする。
この時点ではホムは「自分は座標2にいて、目標が0になった」と記憶する。
ここで問題になるのは、この操作をしている最中にもサーバ側ではホムが右に動いているという事実。
その結果、次のAIサイクル開始時には、以下のような位置になっている可能性がある。

座標012345
  新  ホ 旧

この状態をホムから見ると。
「自分は座標0に向かっているつもりなのに、以前いたはずの座標2よりも右にいる」
・・・つまり、座標2からノックバックさせられたように見えるわけだ。

・・・ダメージ判定とか、過去座標も含めて「方向転換後の1手目の移動は無視」とかしないとだめかなぁ。いまいち面倒なんだけど(^^;;;
DanceMacableとの兼ね合いもあるので、「ダメージが入ってかつ1セル」ってのもまずそうな気もするので、かなりめんどくさい状況に。

ちなみに戦闘中:ホムが移動していないときについては、今のところ問題なさそうです。
しかもこの場合、普通敵が以下のような位置になります:

座標01234
  ホ 炎敵

これも昨日のルールどおり、火壁の周囲はすべて侵入不能セルにするので、結果、敵が進入不能セル内にいると判断、自分でChaseしにいきません。
結果、掲示板であった「迎え撃つ」動きが自然にできたりしました(笑)
これはまあ、もうけものかな。


中身がいないこと。

友瀬は「中身なしで狩をしているROキャラクター」は本質的に認めていません。

機械の人がダメな理由にはいろいろあります:以下、いろいろ言われているケースについての友瀬のコメント。

規約に書かれているからNG
一理あると思います。
ですが友瀬的には「なぜ規約でNGとされているのか」という本質を語られていないので、いまいちです。
そこに触れないでこれを主張するだけでは、ダメだと思います。 というか、これを認めるってことは「規約に書かれていないからOK」と言っているのと同じですよね。
それについては散々否定しているわけで。
マクロツール使用だからNG
上記に近い話で一理はありますが、まだ不足です。
例えばその人がツールを使っていようがいまいが、その人が横殴りだとかルートだとか、そういうことを友瀬にしてこなければ、友瀬にとっては実害はありません。
勝手にやってください、って感じです。
貴重品が量産されてゲームバランスが変わる
一理ありますが、友瀬的にはあまり大きな問題ではないと思います。
例えば24時間稼動している機械の人が1人いなくても、8時間プレイする廃人が3人いれば総量は変わりません。
ゲーム寿命全体としてみたらどうかわかりませんが、1個人レベルで文句をいうのはあんまり意味がないと思います。
1プレイヤーの収入が増え、Gvへの影響が大きい
一理ありますが、友瀬的にはあまり関係のない話です。
確かにGvプレイヤーとしては決定的に大きな問題でしょう:前述の例でいえば、毎週の投入額に3倍の差が生まれるわけで。
でも、Gvをやらない友瀬には関係がありません。
横殴りするのがNG
友瀬的に、嫌な項目。
横殴り自体は、人間だってします。きちんと設定している機械の人は、確かに人間よりも「実際に横殴り」することは少ないと思います。
問題は、実際に横殴りした場合になんの謝罪もないこと。
経験値が減るとかルート権を奪われるとかいう実害もそうですが、それよりはそれが「今後も改善されずに繰り返し実施される」という心理的な影響も大きい。
ルートするのがNG
友瀬的には、これが一番納得がいかない項目です。
前者の横殴りと同様の「繰り返し」という点もありますが、それよりも得られるものが貴重というのが問題です。
経験値は単に倒せば確実に手に入りますが、ドロップ品、特にレア度の高いものはなんぼ倒しても手に入らないことはあるわけで。
人間がやらないような挙動
あんまりこれを言う人はいないと思いますが。
これ、前提としてはここまでに書いた「嫌な行為」を連想させる効果があるのがよくないです。
例えばテレポしまくりの人なんてのは、実際にはなんの悪影響も無いはずです。
が、それが「横殴りやルート」をしてくる相手だと思ったら、いつそれらに襲われるのか気にならない人はいないでしょう。
似たような話で、人間ではやらないような横殴り阻止方法:隣接する前歩いてきてからテレポなんてのも、乱戦中にやられたらルートの心配があるわけで。

人間、正論でいうことは簡単です。
だけど本質はやっぱり「自分がやられて気分が悪い」というのが根底にあるわけで。
それが社会一般のルールと合致している以上、文句を言いたくなるのは当たり前です。