NPC yang hanya berdiri di tempat, mengulang dialog sama, atau menyerang dengan pola identik akan cepat terasa seperti program.
Pemain modern semakin terbiasa dengan dunia game yang dinamis sehingga perilaku karakter non-pemain juga perlu terasa lebih responsif.
Strategi Menggunakan AI untuk Menciptakan NPC dapat membantu developer membuat karakter yang membaca lingkungan, menilai ancaman, mengingat kondisi tertentu, dan memilih tindakan berdasarkan situasi.
Kuncinya bukan membuat NPC sepintar manusia, tetapi menciptakan perilaku yang cukup fleksibel untuk memberikan pengalaman bermain yang menarik dan sulit ditebak.
Mulai dari Tujuan Perilaku NPC
Kesalahan umum ketika menggunakan AI adalah langsung mengejar teknologi paling kompleks.
Sebelum memilih machine learning atau generative AI, tentukan terlebih dahulu apa yang seharusnya dilakukan NPC. Musuh dalam tactical shooter memiliki kebutuhan berbeda dengan pedagang dalam RPG atau warga kota dalam life simulation.
NPC musuh mungkin perlu mengetahui kapan mengejar, berlindung, mundur, atau mencari bantuan. Pedagang mungkin perlu merespons reputasi pemain, sementara warga kota membutuhkan rutinitas, hubungan sosial, dan reaksi terhadap peristiwa dunia.
Dengan tujuan yang jelas, developer dapat menentukan tingkat kecerdasan yang benar-benar dibutuhkan.
AI yang sederhana tetapi sesuai gameplay sering jauh lebih efektif daripada sistem canggih yang tidak memiliki fungsi jelas.
Gunakan Behavior Tree untuk Struktur Dasar
Behavior Tree masih menjadi salah satu pendekatan yang praktis untuk mengatur keputusan NPC.
Sistem ini membagi perilaku ke dalam cabang-cabang logika. Sebagai contoh, penjaga dapat memiliki kondisi sederhana: jika tidak melihat pemain, lakukan patroli. Jika mendengar suara mencurigakan, lakukan investigasi. Jika melihat pemain, masuk ke mode combat.
Unreal Engine menggunakan Behavior Tree bersama Blackboard. Blackboard menyimpan informasi seperti posisi target atau status tertentu yang kemudian digunakan Behavior Tree untuk mengambil keputusan.
Keuntungan utama pendekatan ini adalah perilaku relatif mudah dilihat dan diperbaiki oleh developer.
Namun hindari membuat satu Behavior Tree berisi ratusan kondisi yang saling bergantung. Pecah perilaku menjadi modul kecil seperti combat, navigation, investigation, dan social interaction agar proses pengembagan lebih mudah dikelola.
Tambahkan Utility AI agar Keputusan Lebih Fleksibel
Behavior Tree biasanya sangat baik untuk menentukan struktur tindakan, tetapi pilihan NPC terkadang terasa terlalu kaku.
Di sinilah konsep Utility AI dapat membantu.
Alih-alih memberikan aturan mutlak seperti “health di bawah 30% berarti kabur”, NPC memberikan skor pada beberapa tindakan. Menyerang mungkin mendapat skor 70, mencari cover 85, dan melarikan diri 60 berdasarkan situasi saat itu.
Skor bisa dipengaruhi health, ammunition, jumlah musuh, jarak terhadap pemain, kepribadian karakter, atau posisi tactical.
Hasilnya lebih dinamis.
Dua NPC yang menghadapi situasi sama tidak harus mengambil keputusan identik jika parameter kepribadian atau keadaan mereka berbeda.
Hindari Randomness tanpa Alasan
Adaptif bukan berarti acak.
Jika NPC tiba-tiba menyerang, kabur, lalu kembali menyerang tanpa alasan yang bisa dipahami pemain, ia bukan terlihat pintar tetapi membingungkan.
Randomness lebih baik digunakan sebagai variasi kecil setelah keputusan logis dibuat.
Biarkan NPC Membaca Lingkungan
NPC adaptif membutuhkan informasi tentang dunia di sekitarnya.
Karakter perlu mengetahui lokasi pemain, hambatan, cover, pintu, resource, musuh, atau titik aman sebelum dapat membuat keputusan yang masuk akal.
Unreal Engine menyediakan Environment Query System atau EQS yang dapat melakukan query terhadap lingkungan untuk mencari pilihan seperti health pickup terdekat, target dengan ancaman tertinggi, atau posisi dengan line of sight yang sesuai.
Navigation system juga menjadi bagian penting.
Unity AI Navigation, misalnya, menyediakan NavMesh, dynamic obstacles, dan link untuk membantu karakter melakukan pathfinding serta beradaptasi terhadap perubahan lingkungan.
Dengan kombinasi decision AI dan spatial awareness, NPC tidak hanya mengetahui “apa yang ingin dilakukan”, tetapi juga “bagaimana mencapainya”.
Gunakan Machine Learning untuk Perilaku Tertentu
Tidak semua perilaku harus ditulis menggunakan aturan manual.
Reinforcement learning dapat digunakan ketika developer ingin agent mempelajari strategi melalui proses percobaan dan reward.
Unity ML-Agents menggambarkan agent sebagai entity yang mengobservasi lingkungan, menentukan tindakan melalui policy, lalu menjalankan tindakan tersebut.
Dalam reinforcement learning, reward digunakan sebagai sinyal untuk membantu agent mempelajari keputusan yang menghasilkan outcome lebih baik.
Contohnya, developer ingin melatih NPC sepak bola untuk mencari ruang, mengoper, dan mengejar bola.
Alih-alih menulis setiap situasi secara manual, agent dapat berlatih ribuan episode hingga menemukan pola yang efektif.
Unity ML-Agents juga mendukung reinforcement learning, imitation learning, dan skenario multi-agent.
Meski menarik, ML sebaiknya digunakan pada masalah yang memang mendapat keuntungan dari pembelajaran. Jangan mengganti aturan sederhana dengan neural network hanya karena terdengar lebih modern.
Buat NPC Belajar dari Pola Pemain
Adaptasi menjadi lebih menarik jika NPC dapat merespons gaya bermain.
Bayangkan boss menghadapi pemain yang terus menggunakan serangan jarak jauh.
Pada fase berikutnya, boss bisa lebih sering menggunakan cover, dash, atau kemampuan untuk memperpendek jarak. Jika pemain selalu menyerang dari arah tertentu, penjaga dapat meningkatkan perhatian pada area tersebut.
Adaptasi seperti ini tidak selalu membutuhkan model machine learning besar.
Developer dapat mencatat beberapa statistik sederhana: weapon favorit, jarak pertarungan, tingkat agresivitas, frekuensi stealth, atau route yang sering digunakan.
AI kemudian mengubah bobot keputusan berdasarkan data tersebut.
Yang penting adalah tidak membuat sistem terasa curang. NPC sebaiknya bereaksi berdasarkan informasi yang secara masuk akal dapat mereka peroleh dalam dunia game, bukan membaca input pemain secara langsung.
Jaga Tingkat Kesulitan agar Tetap Menyenangkan
NPC yang terlalu pintar justru bisa merusak game.
Jika seluruh musuh selalu mengetahui posisi terbaik, melakukan aim sempurna, dan mengantisipasi semua strategi pemain, pengalaman bermain berubah menjadi frustrasi.
AI game bukan kompetisi membuat algoritma yang selalu menang.
Tujuannya adalah menciptakan lawan atau karakter yang terlihat masuk akal sekaligus mendukung pengalaman bermain.
Tambahkan reaction delay, keterbatasan perception, peluang salah mengambil keputsan, atau perbedaan skill antarkarakter.
NPC pemula bisa bereaksi lebih lambat, sementara elite enemy lebih cepat mencari cover dan berkoordinasi.
Dengan cara ini, kecerdasan menjadi bagian dari game balancing.
Ukur Apakah NPC Benar-Benar Terasa Adaptif
Jangan hanya menguji apakah AI berjalan tanpa error.
Perhatikan bagaimana pemain bereaksi.
Apakah mereka merasa musuh terlalu mudah ditebak? Apakah NPC sering mengambil tindakan aneh? Apakah strategi tertentu bisa dieksploitasi terus-menerus?
Developer dapat merekam metrik seperti variasi keputusan, survival time, jumlah pergantian tactic, success rate, dan frekuensi pemain menggunakan strategi yang sama.
Playtesting tetap sangat penting karena NPC yang secara teknis optimal belum tentu terasa menyenangkan.
Gunakan telemetry untuk menemukan pola, lalu kombinasikan dengan feedback manusia. Dari sini, AI bisa terus diperbaiki tanpa kehilangan kontrol terhadap desain permainan.
Strategi Menggunakan AI untuk Menciptakan NPC tidak harus dimulai dari teknologi rumit. Gabungkan Behavior Tree, Utility AI, navigation, environmental awareness, dan machine learning sesuai kebutuhan.
Yang terpenting, NPC harus mampu bereaksi secara logis tanpa menjadi terlalu sempurna. Mulailah dari satu perilaku sederhana, lakukan playtest, lalu tambahkan adaptasi secara bertahap berdasarkan data pemain.