Aurigaにオリジナル要素を追加しようとすると、大抵はアイテム、モンスター、MAP、NPC・・・
どれもDBの追記やクライアント側のファイル追加、すなわち外部ファイルに対してのオリジナルばかりで、
Auriga自体に手を加える人は少ない傾向にあると感じています。
影響の範囲などを考慮すると、その理由も頷けるのですが、
もっとAurigaはこんなことも出来るんだぞー!とアピールすべく、
今回はオリジナル第3弾として「BOTシステム」を実装しようと思います。
タイトルだけ聞くと「は?」と感じられますが、
クライアント側でパケットを自動で送出してPCを制御する一般的なBOTクライアントの事ではなく、
Auriga(サーバー側)でPCに似せたキャラクターを自動制御させるBOTシステムです。
具体的にはオフライン状態でも疑似PCがマップ内をうろつき、狩りの邪魔をしてきたり、
設定次第では辻支援をしてきたりするようになります。
迷惑行為でトラブルの元になりかねない要素ですが、
プレイヤー共通の「敵」をサーバー側で用意してあげるのも、遊びの幅が広がるんじゃないかなぁ、と。
今考えてる目論見は以下の通りです。
・block_listの種別にPCとは別にBOT専用の種別を設ける
→容姿やステータス、所持アイテムなどの情報構造体を用意
→ステータスや所持アイテムはsave対象
・ステータスや容姿、行動AIはDBにて設定できるようにする
→ハエ飛びやアイテムルート、横殴り可否やスタック状態など
・攻撃対象とするMOBやルート対象のアイテムはDBで管理
・スキル使用もDBにて設定、書式はMOBのスキル使用DBに則る。
・BOTはプレイヤーから攻撃可能(PK)、BOTが死亡した場合は再出現時間を設ける
→再出現時間
→BOTが死亡時、レベルを下げるのもいいかも?
・MAP間移動は諦める
→ほぼ全マップの個別データが必要になってくるため
・BOT所持アイテムは露店BOTで商品として出品する(T.B.D)
→露店BOTの出店場所はDBにて設定
→商品とする対象アイテムIDや値段の設定DBが必要
以上のことを踏まえると、block_listを弄るのでかなり影響範囲が広く、
さらにはchar鯖との連携が必要になるため、ソースがスパゲッティ状態になるのは目に見えてます。。
時間がかかりそうな企画ですが、長い目で見てやってください。
通りすがり 2011年03月03日(木)23時09分 編集・削除
Koreの改造&配布してたぼくとしては
BOTの一番の悩みどころが、街から狩場へのルート移動時で如何に人間らしく移動させるか、というのが一番の悩みでしたよ。
単純に壁との距離(重み)を計算するのも大事でしたが、人間は他PCとすれ違う時相手キャラの移動先を瞬時に予測して避けて通ったりするのでそういうのの再現とか、
相手がMOBなら移動先の中間位置を予測し移動し殴ったりとか(それやらないと、移動先まで行ってまた戻って殴るとか変な動きを・・・)
あとは、縦置きFWを使うBOTも作ろうとしてましたが挫折した記憶が・・・(トオイメ