2014年7月15日火曜日

指揮官の選択・任命される仕組み


小ネタですが、How are random leaders assigned?というスレ でAIが各ユニットのリーダーを選択・任命する仕組みをDevチームのSymonさんが解説しているのを読んだので紹介します。


ランダムだが、完全にランダムだというわけではない。コードが参照しなければならない事項がいくつかあって、例えば艦船の場合は船級(class)を参照する。戦艦ならば、その国の、Type=5(艦船)にふさわしい、その船級にふさわしい階級(戦艦は主力艦とされているので大佐相当)のリーダーが選択される。船級ごとに価値の一覧表があって、VP、攻撃目標としての価値、魚雷何本を発射すべき目標か、などいろいろな場面で参照される。総じてその船級ごとの価値がうまく評価されていると思う。また、その船級の価値の降順に、大きな艦は大佐、そうでない艦は中佐、少佐、大尉から少尉といった具合に艦長の階級も低くなる。
艦長を選択するロジックはファジーで、少佐に価する艦であっても条件(これについては後ほど詳しく)にぴったりとあてはまらない中佐や大尉が任じられることもある。あるユニットにリーダーが必要になると、ゲームのコードは適切な要件を満たしたリーダーのリストを作成し、その一番目の人物をリーダーに任命する。そして、例えばリストの中に大佐が払底している場合、中佐が選択されるかもしれない。条件に合わないリーダーの任命に関して、上下にそれぞれどの程度の階級差まで許容されるのかについては、知的財産に関わるので公開するわけにはゆかない。
大戦後期になって、あるユニットのリーダーにふさわしい人物のリストに載せるべき人がすべて任命済みで、候補者をみつけることができないようになると、ゲームコードはそれらしい階級と国籍と能力をもった架空の人物を生成する。これに関するアルゴリズムもやはり知的財産に関わるので公開できない。
諸君の中には、TFを指揮する人物をFleet HQの指揮官に任命できないこと、逆にFleet HQの指揮官をTFの指揮官に転任させられないことを不思議に感じている人がいるものと思う。なぜそうなっているのかと言うと、それぞれの指揮系統がデータベースの”Type”フィールドの値によって別々に定義されているからだ。また、しばしば同じ名前の人物がTF(Typeが04)指揮官用とHQ(Typeが01)指揮官用に2人べつべつに用意されているのもそのためだ。
地上部隊のリーダーの任命に関しても同様。

0 件のコメント: