Giới thiệu
Để xử lý một tình huống diễn ra trong game AI cần phải trải qua một chuỗi các trình tự xử lý liên tiếp, kết quả là AI sẽ có được phản ứng của mình dành cho tình huống mà nó gặp phải
Trình tự xử lý của một tình huống như sau:
- Tình huống xảy ra (tiếng súng, tiếng bước chân, nhìn thấy địch...) sẽ gửi tới các tín hiệu tới AI (signalCode)
- AI xử lý một số lệnh ngay khi tiếp nhận signal (‣ → ‣)
- Ai kích hoạt behavior (‣ → ‣) sau một khoảng thời gian chờ ngắn (delay) để phản ứng lại với với signal nhận được
<aside>
💡 Một số Behavior sẽ cần được kích hoạt theo chuỗi và sử dụng các behavior đệm trước đó, mỗi behavior sẽ được kích hoạt sau khoảng thời gian delay
</aside>
Situations
- Situation là các tình huống diễn ra trong game.
- Truyền tới AI thông qua các signalCode (‣ → ‣)
- Có một số Situation không sinh ra signalCode để truyền tới AI mà sẽ xử lý lệnh ngay khi xảy ra
Thông tin về các Situation có thể xảy ra với character
SignalCode
- Mỗi signal code sẽ xử lý một tập hợp các thay đổi trước khi chính thức kích hoạt Behavior
- Các thay đổi này thường là dành cho cautionLevel, hoặc một số bộ biến Time combo
Thông tin về các signalCode mà Situation gửi tới
Behaviors
- behavior sẽ được kích hoạt thông qua ‣ → ‣, function này xác định behaviorCode và khoảng thời gian delay trước khi xử lý behavior
- Sau khi hết thời gian delay, behavior sẽ thực hiện một tập hợp các action khác nhau cấu thành nên behavior
Thông tin về các behavior có thể được kích hoạt bởi các signalCode
Actions
Có 4 loại di chuyển mà AI có thể thực hiện
- Tìm hiểu: Tiến tới waypoint gần vị trí của source nhất
- Ẩn nấp: Tiến tới waypoint gần vị trí hiện tại nhất
- Giữ nguyên vị trí: không di chuyển
- Lẩn trốn: Tiến tới waypoint trong vòng bán kính 10 đơn vị và ở xa source nhất
Tùy vào cautionLevel, AI sẽ đưa ra các bộ di chuyển với tỉ lệ khác nhau sau một khoảng thời gian nhận tương tác từ source. (Thông tin về cautionLevel )

Trình tự xử lý một Situation