Mata Kuliah: Game Engine

Pengantar Artificial Intelligence untuk Game

Referensi Utama: "Artificial Intelligence for Games" oleh Ian Millington.

Tools: Unity Game Engine (C#).

Tekan tombol Next atau Panah Kanan untuk memulai.

Tujuan Mata Kuliah

Roadmap Perkuliahan (Sesuai Millington)

Apa itu Game AI?

Game AI tidak selalu tentang menciptakan kecerdasan yang sesungguhnya.

"The goal of game AI is not to be smart, but to look smart."
Ian Millington

Game AI berfokus pada:

Struktur Dasar AI (The AI Model)

Millington membagi arsitektur AI menjadi 3 lapisan utama:

  1. Movement (Pergerakan): Bagaimana karakter bergerak dari titik A ke B.
  2. Decision Making (Keputusan): Apa yang harus dilakukan karakter sekarang? (Misal: Serang, Lari, Sembunyi).
  3. Strategy (Strategi): Koordinasi tim atau rencana jangka panjang.

Bab 2: Kinematic Movement

Bentuk pergerakan paling sederhana. Tidak memperhitungkan massa, inersia, atau gaya.

// Unity Implementation
transform.position += velocity * Time.deltaTime;

Bab 3: Steering Behaviors

Pergerakan yang lebih natural dibanding Kinematic. Menggunakan gaya (forces) dan percepatan.

Konsep Utama:

Algoritma dasar: Seek, Flee, Arrive, Wander.

Algoritma Seek & Flee

Vector3 desiredVelocity = (target - me).normalized * maxSpeed;
Vector3 steering = desiredVelocity - currentVelocity;

Algoritma Arrive

Masalah dengan Seek: Karakter akan "overshoot" (melewati) target karena kecepatan penuh.

Arrive: Memperlambat karakter saat mendekati target (dalam radius tertentu).

Implementasi Steering di Unity

Kita memiliki dua opsi:

  1. Custom Script: Menulis algoritma Millington secara manual (menggunakan Vector3 math). Memberikan kontrol penuh.
  2. Unity NavMeshAgent: Sistem bawaan Unity. Menggabungkan Steering, Pathfinding, dan Obstacle Avoidance menjadi satu.

Di mata kuliah ini, kita akan belajar keduanya.

Bab 4: Pathfinding

Steering hanya menangani gerakan lokal. Bagaimana jika ada tembok di antara NPC dan Target?

Pathfinding adalah proses mencari rute terbaik dari A ke B dalam sebuah lingkungan yang kompleks (Graph).

Representasi Dunia

Sebelum pathfinding bekerja, dunia game harus disederhanakan:

Algoritma A* (A-Star)

Algoritma pathfinding paling populer di dunia game.

Menggabungkan dua konsep:

Rumus: $$f(n) = g(n) + h(n)$$

Unity NavMesh System

Unity menggunakan A* di atas Navigation Mesh.

Contoh Code NavMesh

Sangat sederhana dibanding menulis A* dari nol:

using UnityEngine.AI;

public NavMeshAgent agent;
public Transform target;

void Update() {
agent.SetDestination(target.position);
}

Namun, kita tetap perlu memahami teori A* untuk kasus di mana NavMesh tidak bisa digunakan (misal: game grid turn-based).

Bab 5: Decision Making

Karakter sudah bisa bergerak dan mencari jalan. Tapi, kapan dia harus bergerak?

Metode pengambilan keputusan:

  1. Decision Trees: Pohon keputusan sederhana (If-Else bercabang).
  2. Finite State Machines (FSM): Standar industri lama.
  3. Behavior Trees: Standar industri modern.

Finite State Machines (FSM)

Sistem di mana NPC hanya bisa berada dalam SATU kondisi (State) pada satu waktu.

Mudah dibuat, tapi sulit dikelola jika game menjadi sangat kompleks ("Spaghetti Code").

Implementasi FSM di Unity

enum State { Patrol, Chase, Attack }
State currentState;

void Update() {
switch (currentState) {
case State.Patrol: PatrolLogic(); break;
case State.Chase: ChaseLogic(); break;
}
}

Kita akan mempelajari pola State Pattern (C# Class-based) agar kode lebih rapi.

Behavior Trees (BT)

Evolusi dari FSM. Struktur hierarki yang lebih fleksibel dan modular.

Fuzzy Logic & Markov Systems

Millington juga membahas logika samar (Fuzzy).

Bab 6: Tactical & Strategic AI

AI tidak hanya soal individu, tapi juga pemahaman lingkungan dan kerja tim.

Influence Maps

Teknik merepresentasikan data taktis spasial.

AI bisa menggunakan data ini untuk memutuskan rute pathfinding yang paling aman, bukan hanya yang terpendek.

Group AI & Koordinasi

Bagaimana agar musuh tidak menyerang pemain satu per satu seperti di film laga lama?

Bab 7 & 8: Board Games & Turn Based

Meski fokus kita Real-time (Unity), teori Minimax penting.

Bab 9: Learning (Pembelajaran)

Topik yang sedang hangat: Machine Learning (ML).

Bedanya Classic AI vs ML:

Unity ML-Agents

Implementasi modern dari Bab 9 Millington di Unity.

Tantangan Modern

Evaluasi & Penilaian

Tugas Untuk Minggu Depan

  1. Install Unity Hub dan versi Unity 2022 LTS atau terbaru.
  2. Install Visual Studio atau VS Code.
  3. Baca Bab 1 & 2 dari buku Ian Millington.
  4. Siapkan project Unity 3D kosong.

Q & A

Terima Kasih

Mari ciptakan AI yang cerdas (atau terlihat cerdas)!

Ada Pertanyaan?

1 / 30