見出し画像

戦闘AIを作る(概要)

RPG風味の周回ゲームを制作しています。戦闘シーンをしっかり実装しました。


実装内容

戦闘シーンの大きな実装は以下の3つです。このうちエフェクトの再生と順序管理は以前に実装しました。1年前だといま気づいて少し震えています。

  • 今回:シーン実行前のアセットのプリロード

  • 今回:戦闘AI(行動の自動決定)

  • (済):戦闘のエフェクト類の再生、および再生順序の管理

今回はプリロードと戦闘AIに手を付けました。


実装の中身(別サイト)

実装の中身の記事はBloggerに掲載します。今回は図に加えて数式も多いので…

プリロードhttps://symbolicgarden.blogspot.com/2024/06/battlepreload.html

  • 戦闘ログ生成とログ再生(ビューワ)の分離

  • アセットのプリロードとシーン遷移のシーケンス

  • ログのヤード変換(モジュール間の情報の変換)

戦闘AIを作るhttps://symbolicgarden.blogspot.com/2024/07/battleAI.html

  • 戦闘AIの方針:行動と対象の組を確率値に応じてランダムで選択

    • 単純ベイズ分類器の枠組みを使用

    • 所持行動と行動の好み

    • 対象のフィルタ

    • 選択素性と素性関数

  • 実装コード

    • 確率計算

    • モデルデータ(CSVファイル)のインポータ

雑感

単純な構成ですがキャラ同士の戦闘ができるようになったので、これでゲームシステムのインフラがまた一つ整いました。
コード実装は今年(2024年)6月にはおおむねできていたのですが、記事を更新する体制を整えるのにとても時間がかかりました…。
具体的には表を書きやすくするためのマークアップ表記とその処理系を作ったりしてました。markdownだと表がどうも書きづらくて。マークアップ処理系の実装のよもやま話もいずれ書ければと思います。

この記事が気に入ったらサポートをしてみませんか?