無料で読める "Game AI Pro" がとても良い

Game AI Proという、ゲームAIについての記事をまとめた本があります。
Game Programming Gemsのように技術について書かれたトピックを、
たくさん集めた本、それのゲームAIについて特化したバージョン。

Game AI Pro, Game AI Pro2という2冊の本が現在刊行されているが、
最初のGame AI Proは公式サイトですべての記事が公開されています。

www.gameaipro.com

ゲームAIは最近、テクニックが細分化され高度化されているおり、
ゲームプログラマとしては、ある程度把握しておくのは良いこと。

最近だと開発会社によっては専門職としてゲームAIプログラマーを採用していることもあり、
AIに習熟していけばエキスパートを目指すのもありだし、
そうでないオールマイティなゲームプログラマとしても、
スキルセットに持っておくのはプラスになるでしょう。

公開されているのは英語版になり、
まだ日本語には翻訳されてませんが、
それでも読む価値はあると思います。
とても有用な本なので、是非日本語化されて欲しいとは思いますが。

今回、さっと読んでみて、
とばし読んだところもあるけど、
各章の概要をまとめておこうと思います。
紹介程度に。

Section 1: General Wisdom

1. What is Game AI?

概要。Game AIの定義とは。

2. Informing Game AI through the Study of Neurology

神経学の入門。

3. Advanced Randomness Techniques for Game AI: Gaussian Randomness, Filtered Randomness, and Perlin Noise

シンプルなランダムではない3つの特徴のある乱数の紹介。

Section 2: Architecture

4. Behavior Selection Algorithms: An Overview

アルゴリズムの選択について。 FSM/HFSM/behaviour tree/GOAP
Hierarchical Task Networks(HTN)

5. Structural Architecture -- Common Tricks of the Trade

アーキテクチャの紹介。hierarchy/option stacks/black board/Modularity

6. The Behavior Tree Starter Kit

BTについて概要と実装。

7. Real-World Behavior Trees in Script

Kingdoms of Amalur: Reckoningというゲームでの実例。
ビヘイビアの実装をLuaスクリプトで書くことによるイテレーションの高速化。

8. Simulating Behavior Trees: A Behavior Tree / Planner Hybrid Approach

ビヘイビアツリーとプランニングのハイブリッド実装。

9. An Introduction to Utility Theory

ユーティリティ理論・ユーティリティベーストAIのイントロダクション。

10. Building Utility Decisions into Your Existing Behavior Tree

ユーティリティのBTへの組みこみ。

11. Reactivity and Deliberation in Decision Making Systems

Reactivity(反射、反応)とdeliberation(熟考)について、どのデザインが効果的か、どう落とし穴を回避するか。
意思決定システムにはReactivityとDeliberationが必要。

12. Exploring HTN Planners through Example

hierarchical task networks(HTN)について。

13. Hierarchical Plan-Space Planning for Multi-Unit Combat Maneuvers

Multi agent におけるプランニングは、協調させる必要があり、ワールドステートが膨大になるためGOAP,HTNが適用しにくい。
全てのプランを含むplan-spaceで調べるメリットについて。

14. Phenomenal AI Level-of-Detail Control with the LOD Trader

LODについて。距離だけでは微妙。

15. Runtime Compiled C++ for Rapid AI Development

RCC++ runtime c++コンパイルについて。

16. Plumbing the Forbidden Depths: Scripting and AI

スクリプティングについて。

Section 3: Movement and Pathfinding

17. Pathfinding Architecture Optimizations

A*より最適化の余地がある。事前計算など。

18. Choosing a Search Space Representation

探索のための世界表現の選択。
Grid / Weigh-pointed graph / Navigation Meshes

19. Creating High-Order Navigation Meshes through Iterative Wavefront Edge Expansions

ナビゲーションメッシュの生成アルゴリズムについて。

20. Precomputed Pathfinding for Large and Detailed Worlds on MMO Servers

MMO(FF14)での事前計算ナビゲーションの用例。

21. Techniques for Formation Movement using Steering Circles

Steering circleを用いた隊列移動。

22. Collision Avoidance for Pre-Planned Locomotion

Hitman:Absolutionでの、ADL(Animation Driven Locomotion)とコリジョン回避の組み合わせ方法。
Reciprocal velocity obstacle techniques (RVO)

23. Crowd Pathfinding and Steering using Flow Field Tiles

FlowFieldを利用した群衆の移動。

24. Efficient Crowd Simulation for Mobile Games

FieldRunner2におけるFlowField。モバイル最適化。

25. Animation-Driven Locomotion with Locomotion Planning

ADL を状況に合わせてプランにする。
Bulletstormでの例。

Section 4: Strategy and Tactics

26. Tactical Position Selection: An Architecture and Query Language

Tactical Position Selection (TPS)
CryEngine, Crysis2。
DSLによる非同期抽出,重みつけ

27. Tactical Pathfinding on a NavMesh

最短経路よりも、危険性などを考慮した良い経路をナビメッシュで見つける方法。

28. Beyond the Kung-Fu Circle: A Flexible System for Managing NPC Attacks

Kingdoms of Amalur: Reckoningでの例。
よくある多数のエネミーとの戦闘で通常1人ずつ攻撃してくるようなケース(Kung-Fu Circle)で、
ダイナミックまたは難易度に応じて攻撃してくる人数を変動させる。
ベルギアンAIの紹介。

29. Hierarchical AI for Multiplayer Bots in Killzone 3

Killzone3のBots
3つのレイヤーからなるアーキテクチャ
レイヤーは下のレイヤーを制御し、下のレイヤーは情報を返す。

30. Using Neural Networks to Control Agent Threat Response

supreme commander 2にて
ニューラルネットワーク使ったら非常に効果的だった話。

Section 5: Agent Awareness and Knowledge Representation

31. Crytek's Target Tracks Perception System

CryEngineのTarget Tracks Perception System (TTPS).
主人公の居場所などをAIに渡してしまうと不自然に感じられてしまう。

32. How to Catch a Ninja: NPC Awareness in a 2D Stealth Platformer

Mark of the NinjaのAI実装例。
interest sourceを使ってオブジェクト・イベントを大量に作成する作業の軽減や、
roleをエージェントに与えて自然なグループの反応の実現について。

33. Asking the Environment Smart Questions

Bulletstormの例。
低CPUコストで直観的なシステム。Environment Tactical Querying (ETQ)

34. A Simple and Robust Knowledge Representation System

EverSkyの例。
Knowledgeについて、blackboardの改善。

35. A Simple and Practical Social Dynamics System

パーティでのハグなど言葉を用いないコミュニケーションにより世界をより納得感のあるものに。
Gaze control(凝視)/Proxemic Control(位置、距離)/Posture(姿勢)/Gesture

36. Breathing Life into Your Background Characters

背景NPCについて。Schedule system。

37. Alibi Generation: Fooling All the Players All the Time

町を歩くNPCをより高度なものにするために意味をつける。
どういう背景を持っていて、なにをするのか。

Section 6: Racing

38. An Architecture Overview for AI in Racing Games

レースゲームのためのアーキテクチャ。4つのレイヤーと一つのサブシステム(コリジョン回避)

39. Representing and Driving a Race Track for AI Controlled Vehicles

Track(コース)について。

40. Racing Vehicle Control Systems using PID Controllers

PIDコントローラについて。

41. The Heat Vision System for Racing AI: A Novel Way to Determine Optimal Track Positioning

ひとつの車への反応を記述するのはできるが、同時に一台となってしまう。
混雑した状況での挙動のためにHeat visionというシステム。

42. A Rubber-Banding System for Gameplay and Race Management

Rubber-banding。
プレイヤーの前に離れているときはスローダウン、
後ろにいるときはブーストしてプレイヤーの近くに来るようにする。

Section 7: Odds and Ends

43. An Architecture for Character-Rich Social Simulation

Prom Weekで使われた Comme il Faut (CiF) social simulation architecture について。

44. A Control-Based Architecture for Animal Behavior

World of Zooの例。
Control-Basedアーキテクチャ

45. Introduction to GPGPU for AI

GPGPUの話。OpenCL

46. Creating Dynamic Soundscapes using an Artificial Sound Designer

Artificail Sound Designer。
イベントを登録してDBを更新して適切な音を鳴らしてくれる。

47. Tips and Tricks for a Robust Third-Person Camera System

Third-Person viewにおけるカメラについて。

48. Implementing N-grams for Player Prediction, Procedural Generation, and Stylized AI

N-gramsの推測をゲームへの適用する。



以上、簡単なコメントを読んだメモから補足して、
書いてます。

僕自身は実はGame AI Proをkindle版を購入してましたが、
そのあとpdfの公開に気付きました。

次はGame AI Pro2も読みたいところです。