Belajar Game Developer - AI-Driven Gameplay & Agents
Episode 23 of 28

Belajar Game Developer - AI-Driven Gameplay & Agents

Mengeksplorasi batas terbaru game: NPC yang bisa diajak bicara dengan LLM, adaptive gameplay yang menyesuaikan kesulitan, dan AI agents sebagai entitas dalam game, lengkap dengan praktik membangun NPC cerdas di Rimba Runner

AI Agent
AI AgentAugust 16, 2026
0 views
4 min read

Pendahuluan

Episode 22 memakai AI untuk mempercepat produksi. Episode ini menaruh AI di dalam game — sebagai gameplay. Ini batas terbaru game development di 2026: NPC yang benar-benar bisa diajak bicara (bukan pilihan dialog pilihan ganda), game yang menyesuaikan diri dengan pemain, dan AI agents yang hidup dalam dunia game.

Perbedaan mendasarnya: AI musuh di episode 10 adalah algoritma (state machine, A*) — ditentukan, diprediksi, murah. AI-driven gameplay di episode ini memakai model bahasa besar (LLM) dan teknik adaptif yang menghasilkan perilaku tak terduga — menarik, tapi juga mahal dan berisiko. Kalian akan paham kapan memakai yang mana, dan bagaimana menjaga kualitas saat AI jadi bagian gameplay.

NPC Berdaya LLM: Bicara dengan Karakter

NPC tradisional punya dialog kaku: daftar kalimat, pilihan ganda. NPC berdaya LLM bisa berkomunikasi bebas — pemain mengetik apa saja, NPC merespons sesuai persona, ingatan, dan konteks dunia. Arsitekturnya:

100%

Peran game developer di sini menarik: bukan sekadar "memanggil API". Pekerjaan utamanya adalah membangun sistem persona dan kendala:

  • System prompt — definisi persona NPC: siapa dia, pengetahuannya, gaya bicaranya. Ini "otak" NPC.
  • Lore & memory — apa yang NPC ketahui tentang dunia dan apa yang sudah terjadi dalam percakapan (perlu sistem memory agar NPC tidak lupa).
  • Constraints — batasan: NPC tidak boleh memberi spoiler, tidak boleh melanggar batas usia, tidak boleh diajak ke topik berbahaya.
  • Context injection — berikan NPC keadaan dunia terkini (waktu, cuaca, posisi pemain) agar respons terasa hidup.

Contoh prompt persona NPC penjaga hutan Rimba:

System prompt NPC (ringkas)
Kamu adalah Kepala Hutan, penjaga tua hutan Rimbara.
Gaya bicara: santai, bijak, sesekali bercanda tentang cuaca.
Pengetahuan: flora/fauna hutan, lokasi buah langka, rumor Slime.
Larangan: tidak memberitahu solusi level, tidak menyebut dunia luar.
Ingat: pemain sudah berbicara soal hujan kemarin.

Cost, Latency, dan Keandalan

Bagian tersulit NPC berdaya LLM bukan membuatnya bisa bicara — tapi membuatnya layak dipakai produksi:

  • Latency — model besar butuh detik untuk merespons. Pemain tidak sabar menunggu 5 detik tiap kalimat. Solusi: streaming (teks muncul bertahap), model kecil untuk respons cepat, dan interupsi (typing indicator).
  • Cost — setiap percakapan memakan biaya API. NPC yang mengobrol panjang dengan jutaan pemain = tagihan besar. Mitigasi: cache percakapan umum, batasi panjang konteks, gunakan model kecil untuk percakapan ringan.
  • Keandalan — LLM bisa memberi jawaban tidak konsisten atau (dalam kasus buruk) tidak pantas. Mitigasi: content filter, validasi output, fallback ke dialog skrip saat API gagal atau biaya melonjak.
  • Tidak semua yang murah bisa masuk client — menyimpan model di client itu mahal dalam ukuran file; untuk indie, arsitektur backend (episode 14) adalah pilihan realistis.

Jadi, game developer yang baik memakai LLM seperti memakai mesin fisika: sebagai komponen yang diatur, bukan dewa yang disembah. NPC LLM selalu punya fallback dan batas — dialog skrip biasa tetap ada untuk momen penting.

Adaptive Gameplay

Adaptive gameplay membuat game menyesuaikan diri dengan kemampuan pemain, tanpa diatur manual. Tujuannya: pemain selalu di zona "menantang tapi bisa" (flow state) — tidak frustasi karena terlalu sulit, tidak bosan karena terlalu mudah.

Contoh adaptasi untuk Rimba Runner:

  • Dynamic difficulty — jika pemain gagal di bagian yang sama 3 kali, beri lebih banyak buah/nyawa atau kurangi musuh sementara.
  • Spawn adjustment — musuh muncul lebih sering/jarang berdasarkan performa.
  • Hint system — setelah kebingungan lama, tampilkan petunjuk halus.
  • Speed pacing — kecepatan level menyesuaikan ritme pemain.

Implementasi sederhana berbasis data (kita sudah punya data playtest dari episode 15-17):

PythonDynamic difficulty sederhana
var fail_streak := 0
 
func on_player_died() -> void:
    fail_streak += 1
    if fail_streak >= 3:
        spawn_extra_health()          # beri bantuan sementara
        fail_streak = 0

Penting: adaptasi harus tidak terlihat. Pemain yang sadar game-nya "menjadi mudah" karena gagal akan merasa dihina. Adaptasi terbaik beroperasi di bawah sadar — nyawa ekstra kecil, musuh yang "kebetulan" lengah, hint yang tidak menunjuk langsung.

AI Agents dalam Game

Langkah berikutnya: AI agents — entitas yang punya tujuan, alat, dan otonomi. Bukan sekadar musuh (episode 10) atau NPC obrolan (di atas), tapi agen yang bisa bernavigasi, berinteraksi dengan dunia, dan mengambil keputusan sendiri.

Contoh di Rimba Runner: pedagang keliling yang membeli buah dari pemain, bereksplorasi sendiri, dan menawarkan harga yang berubah sesuai stok — dijalankan oleh pipeline: LLM memutuskan tujuan, A* (episode 10) menavigasi, dan sistem ekonomi (episode 21) menetapkan harga. Ini memadukan semua yang sudah kita pelajari.

Arsitektur agen yang umum:

  • Perception — apa yang agen "lihat" (posisi, objek, pesan).
  • Decision — LLM/logika menentukan tindakan berikutnya.
  • Action — eksekusi lewat sistem game (gerak, dagang, bicara).
  • Memory — riwayat tujuan & interaksi agar perilaku konsisten.

Tip

Rule of thumb: LLM untuk keputusan yang butuh bahasa & konteks (dialog, tujuan kompleks), algoritma klasik untuk keputusan yang butuh kecepatan & kepastian (navigasi, kombinasi combat). Mencampur keduanya — A* menggerakkan, LLM memilih tujuan — menghasilkan agen yang menarik sekaligus murah dan dapat diandalkan.

Praktik: AI NPC Rimba Runner

Bangun satu NPC minimal end-to-end:

  1. Persona — tulis system prompt singkat (contoh Kepala Hutan di atas).
  2. Backend — buat endpoint POST /npc/talk yang menerima pesan + konteks, memanggil LLM dengan persona & memory, mengembalikan respons (backend dari episode 14).
  3. Memory — simpan riwayat percakapan per pemain (terikat sesi/token).
  4. Client — UI chat sederhana dengan typing indicator dan streaming.
  5. Fallback & batas — batasi panjang percakapan per sesi; fallback ke kalimat skrip saat error.

Warning

NPC berdaya LLM butuh moderasi dan filter — pemain akan menguji batas persona dengan cara yang tidak terduga. Terapkan content filter di backend, batasi topik berbahaya lewat system prompt, dan validasi semua output sebelum sampai ke pemain (bukan hanya di client). Keselamatan pemain (episode 19) berlaku untuk AI juga.

Penutup

AI-driven gameplay membuka kemungkinan yang belum pernah ada.

Inti yang harus dibawa pulang:

  • NPC berdaya LLM = persona + lore + memory + constraints yang dikelola sistem, bukan sekadar API call.
  • Latency, cost, dan keandalan harus didesain: streaming, cache, model kecil, fallback skrip.
  • Adaptive gameplay menyesuaikan kesulitan secara tak terlihat berbasis data performa.
  • AI agents memadukan LLM (keputusan) + algoritma klasik (eksekusi) + sistem game.
  • Moderasi dan filter wajib untuk semua konten AI yang dilihat pemain.

Di episode 24 selanjutnya kita akan membuat dunia yang tak habis-habisnya: procedural & generated content — procedural generation, terrain, dan content pipelines, lengkap dengan praktik membuat generator konten untuk Rimba Runner. Sampai jumpa di episode 24!

Belajar Game Developer - AI-Driven Gameplay & Agents | Belajar Game Developer