日記/2015-03-11
雑記:Ragfun.net、死亡。†
っぽいです。
ウェブページが死亡してアクセスできなくなるなんてのは、当たり前にある話ですが。
今回の場合は、またちょっと違う意味で考えさせられた。
なんというか、動的ページと、wikiシステムの問題点を突き付けられた感じ。
このサーバ、アルケミwikiとSage wikiがあったところです。
つまり、wikiによって集まった集合知がそっくりロストした、ということ。
これは、いろいろとダメージが大きい。
なんていうのかな・・・例えば友瀬の本館and/or別館だって、いつかはなくなるでしょう。
友瀬が契約・運営している以上それは仕方ないところだと思う。
友瀬が必要で記述して、友瀬が運営できなくなったから消えただけ。
でも、wikiの場合は、いろいろと事情が違う。
あくまで一参加者とはいえ、それなりに労力を払って提供した情報が。
こちらとしては維持される前提で考えているところを、いきなり破棄される。
これは痛い。
また、wiki他の動的ページは、ローカルにバックアップすることも難しい、という問題点もある。
これを知って、他のwiki系ページの有用情報をバックアップしようと思っても、難しいわけだ。
普通のページなら頼りになるWebarchiveも、wiki系にはまず無力。
ともあれ、いろいろ困ったねぇ。
ご意見などがあれば。
ホムAI:サモンレギオンの使用タイミング†
サモンレギオンを、考えていて。
現状のGlenelgではイマイチな感じなので、パラメータ拡張を検討中です。
サモンレギオンは使用すると仲間モンスターを召喚、
それが数十秒にわたって一緒に攻撃してくれる、というスキルです。
仲間モンスターは、多少のクセがあるものの、基本的にホムSと同じ対象に対して
自動的に攻撃を行います。
ですからこのスキルの基本的な使い方は、1回スキル使用して召喚したら、
以後それが消えるまでホムSは普通に白兵戦を行う、というかたちになります。
ところで、このスキル自体にはディレイ・クールタイムはありません:
そのため、使おうと思えば1体の敵に対して何度でも使用できます。
そして使用するたびに、以前の仲間モンスターが消失&新しいモンスターが出てきます。
という条件を整理したところ、現状のGlenelgではうまく指定できないことに気付いた、という状況です。
- 基本的に「1回だけしか使わない」ようにしたい。
- 実現案:初撃スキルに割り当ててもらう。
これによって、ある敵に攻撃を仕掛けようとしたときに召喚、以降それを使わない。- この場合の問題点:その敵を倒したあと、次の敵に移ったとき。
- 初撃スキルなので、現状のままだと『即次のサモンレギオンを使用』してしまう:ちょっともったいない。
Lv5レギオンなら約1分間持続するので、もし10数秒で1体目を倒したのならば、次の1体くらいはそのまま戦いたい。
- 実現案:クールタイムを設定し、前の仲間が残っているうちは次のレギオンを使用しないようにする。
- この場合の問題点:レギオン待ちしていると、他のスキルを使ってくれない。
- レギオンを出した&1体目を倒した後を考える。
新しい敵を対象にしたので、セラはレギオンを使おうと考える・・・が、前のレギオンが残っているので使わない。 - この状態だと、現状のGlenelgは「このAIサイクルではスキルを使わない」ように振舞ってしまう。
従来の比較的短いクールタイムのスキルならよいが、今回のレギオンの場合まずい:
前の仲間が残っているかぎり、ニードルオブパラライズも使えない。
- 実現案:初撃スキルに割り当ててもらう。
このあたりを考慮すると、以下のようなオプションが考えられそう。
- レギオン用オプション:仲間が残っているときは、それを使わない。
- 初撃スキルであればそれを使わず、他設定を参照してメイン・サブスキルを使う。
- メイン・サブスキルであれば、他設定を参照してサブ・メインスキルを使う。
- レギオン用オプション:再使用条件
- 戦闘時間を計測して、ある程度レギオンを有効利用するまで次を呼ばない。
- その戦闘時間のリミットを設定。例えば「80%まではひっぱる」というような。
自分で読んでみてわかりづらかったので、整理して追記。
根本的ポイントは、現状のGlenelgの攻撃スキル決定アルゴリズムにあります。
現状の振る舞いは、ざっくりいうと以下のようになっています。
- Step 1. 設定に基づいて、使用したいスキルを選定する
- Step 2. 上記で決定したスキルが、実際に使えるかどうか確認し、ダメなら『このAIサイクルではあきらめる』。
例えば初撃スキルにシュタルホーン、メインスキルにムーンライトを設定してあるとします。
この設定でGlenelgが新しい敵に攻撃を開始した場合、Glenelgはまずシュタルホーンを使用しようとします。
もしシュタルホーンがクールタイム中だった場合、Glenelgはそれでもシュタルホーンから使用しようとします:
結果、ホムの振る舞いとしては『まず白兵戦→シュタルホーン→ムーンライト』というように動きます。
『初撃スキル』といい定義からすればこれで間違っていませんし、
シュタルホーン他、クールタイムが短いスキルならばこれでもそれほど違和感はないのですが。
レギオンの場合そううまくいかないわけです:
例えば初撃レギオン、メインスキルにニードルを入れていた場合。
もし最初の1体を10秒で倒してしまうと、次の2体目では『まずレギオンを使おうとするが、
仲間が残っているのであきらめる』となり。
結果、『白兵戦継続→約50秒後レギオン→ニードル』となるわけです。
そういう意味で、スキル選定アルゴ自体を、以下のようにしていかなければならないのかな、と。
- Step 1. 設定に基づいて、使用したいスキルを選定する
- Step 2. 選定されたスキルが、実際に使えるかどうか確認し、ダメなら Step3へ。
- Step 3. Step 2でダメ判定されたスキルを除外して、改めて設定に基づいてより優先されるスキルを選定する。
その後Step2に戻る。
これによって『初撃ニードル→白兵戦・ASニードル→50秒後レギオン再使用』・・・という感じになります。
繰り返しますが『初撃専用スキル』の定義からすれば、やや逸脱しているので、何か特殊な設定、という感じですね。
ご意見などがあれば。