Game AI: Cách NPC game sử dụng behavior tree và LLM thông minh

NPC (Non-Player Character) trong game hiện đại không còn là bộ máy đơn giản với vài dòng script. Game AI đã tiến xa: kết hợp behavior tree cho hành vi có cấu trúc, LLM cho đối thoại tự nhiên, và utility AI cho quyết định động. Kết quả là NPC cảm giác “sống”, phản ứng thông minh với môi trường và người chơi.

Từ Half-Life 2 (2004) với NPC gắn bó với điểm waypoint, đến The Last of Us Part II (2020) với kẻ địch phối hợp đội hình thực tế — Game AI đã thay đổi hoàn toàn. Năm 2025, sự kết hợp giữa behavior tree và LLM mở ra kỷ nguyên mới cho NPC trong game.

Behavior Tree là gì?

Behavior tree (BT) là cấu trúc cây quyết định, mỗi node đại diện cho một hành vi hoặc điều kiện. NPC duyệt cây từ gốc đến lá, chọn nhánh phù hợp dựa trên trạng thái thế giới.

  • Selector (?) — thử nhánh từ trái sang phải, dừng khi thành công
  • Sequence (→) — thực hiện tuần tự, dừng nếu có node fail
  • Decorator — bọc node khác, thay đổi logic (lặp lại, đảo ngược, delay)
  • Composite — nhóm nhiều node, quản lý luồng phức tạp

Behavior tree ưu việt hơn Finite State Machine (FSM) cổ điển vì dễ mở rộng, tái sử dụng subtree, và debug trực quan. Halo 2 (2004) là tựa game đầu tiên dùng BT rộng rãi, mở đường cho các tựa game sau.

Sơ đồ behavior tree cho NPC game: Selector, Sequence, Combat, Flee, Patrol

Tích hợp LLM vào Game AI

LLM (Large Language Model) như GPT-4, Claude, Gemma đang thay đổi cách NPC đối thoại và ra quyết định. Thay vì script hội thoại cố định, NPC có thể:

  • Đối thoại động — trả lời dựa trên ngữ cảnh, lịch sử hội thoại, và tính cách nhân vật
  • Hiểu mệnh lệnh giọng nói — người chơi nói trực tiếp với NPC bằng ngôn ngữ tự nhiên
  • Phản ứng cảm xúc — nhận diện cảm xúc người chơi qua text hoặc voice, điều chỉnh hành vi
  • Sáng tạo nội dung — tạo quest, bí mật, backstory ngẫu nhiên mỗi lần chơi

Ví dụ thực tế: Inworld AI cung cấp engine nhân vật AI cho game, cho phép developer tạo NPC có ký ức, động cơ, và mục tiêu riêng. NPC trong demo của Inworld có thể nhớ cuộc trò chuyện trước, thay đổi thái độ dựa trên hành động người chơi.

Kiến trúc Game AI hiện đại

Game AI thế hệ mới thường là hybrid — kết hợp nhiều lớp:

Lớp AI Vai trò Công nghệ
Navigation & Pathfinding Tìm đường đến đích, tránh vật cản A*, NavMesh, Recast/Detour
Behavior Tree Quyết định hành vi cấp cao (tấn công, trốn, tuần tra) BT, Utility AI
World Perception Nhận diện người chơi, đồng minh, âm thanh Sensory system, raycast, hearing cone
LLM Dialogue Đối thoại động, phản ứng ngữ cảnh GPT-4, Claude, Gemma 2B (local)
Animation & Expression Biểu cảm khuôn mặt, cử chỉ tự nhiên Animation blueprint, morph targets

Lớp Behavior Tree quyết định “NPC làm gì”, trong khi LLM quyết định “NPC nói gì”. Hai lớp hoạt động song song, kết hợp thông qua event system.

Utility AI: Quyết định động hơn FSM

Utility AI đánh giá mỗi hành vi bằng utility score — tổng điểm từ nhiều tiêu chí (khoảng cách, sức khỏe, ammo, mục tiêu). NPC chọn hành vi có điểm cao nhất. Cách này tạo hành vi linh hoạt, phản ứng thay vì script cứng.

Ví dụ: NPC có 10% máu, thấy người chơi ở xa. Utility score:

  • Tấn công: 2 điểm (yếu, dễ chết)
  • Trốn: 8 điểm (sinh tồn ưu tiên)
  • Gọi tiếp viện: 5 điểm

NPC chọn “trốn” — nhưng nếu có đồng minh gần, “gọi tiếp viện” có thể cao hơn. Utility AI tự điều chỉnh theo ngữ cảnh.

Giao diện debug Unreal Engine 5: Behavior Tree panel, Utility Score, LLM Dialogue

Thử nghiệm: NPC LLM trong game indie

Cộng đồng indie đang thử nghiệm LLM cho NPC với các model nhỏ chạy local như Llama 3.2 1B/3B, Phi-3 Mini, hoặc Gemma 2B. Chi phí inference thấp, có chạy trên CPU hoặc GPU yếu.

Thư viện hỗ trợ:

  • llama.cpp — chạy LLM local hiệu quả, có bindings cho C++, Python, Unity
  • Ollama — quản lý model đơn giản, API tương thích OpenAI
  • Inworld SDK — engine nhân vật AI hoàn chỉnh, tích hợp Unity/Unreal

Hạn chế hiện tại: LLM tốn resource, latency cao (100-500ms mỗi câu), và khó kiểm soát 100% hành vi output. Đa số game hiện tại dùng LLM cho đối thoại phụ, không phải hành vi chiến đấu.

Tương lai Game AI

Xu hướng rõ ràng: AI ngày càng phi script, hướng mục tiêu (goal-oriented), và thích ứng với người chơi. Behavior tree vẫn giữ vai trò backbone cho hành vi có cấu trúc, trong khi LLM bổ sung lớp thông minh cho đối thoại và quyết định phức tạp.

Nguồn tham khảo: Unreal Engine Behavior Trees, Inworld AI, Ollama

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

AI Alignment là gì? Vấn đề an toàn đằng sau LLM

AI Alignment là gì? Vấn đề an toàn đằng sau LLM AI alignment đang trở thành chủ đề nóng khi các mô hình ngôn ngữ lớn ngày càng mạnh. Alignment…

Xem thêm

AI trong giáo dục: Từ cá nhân hóa đến chấm điểm tự động

Trí tuệ nhân tạo đang thay đổi căn bản cách chúng ta dạy và học. Từ cá nhân hóa lộ trình đến chấm điểm tự động, AI trong giáo dục…

Xem thêm

LLM Structured Output: Đảm bảo JSON trả về luôn đúng schema

LLM STRUCTED OUTPUT: Đảm bảo JSON trả về luôn đúng schema Structured Outputs (còn gọi là JSON mode) là tính năng của các mô hình ngôn ngữ lớn (LLM) đảm…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất