IMPLEMENTASI ADAPTIVE AI UNTUK UNIT BEHAVIOUR DALAM TURN BASED STRATEGY BATTLE SYSTEM PADA MMORPG MALING HUNTER Fitra Raditya Saputra1, Imam Kuswardayan, S.Kom, M.T. 2 Jurusan Teknik Informatika, Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember, Surabaya Email:
[email protected] ABSTRAK Dalam MMORPG (Massively Multiplayer Online Role Playing Game), umumnya terdapat sistem untuk melakukan pertarungan. Salah satu jenis pertarungan yang digunakan adalah Turn-Based Strategy (TBS). Dalam pertarungan tersebut selalu ada metode pencarian rute yang bisa dilewati oleh karakter ketika berjalan, dan metode yang umum digunakan adalah A* Pathfinding. Dalam sebuah pertarungan pasti ada kondisi melawan karakter yang dikendalikan oleh Artificial Intelligence (AI). Umumnya AI yang dibuat untuk game dengan genre ini tidak harus selalu menang agar pemain tetap bermain. AI yang dibuat harus bisa mengimbangi permainan yang dilakukan oleh pemain. Oleh karena itu aplikasi ini mengimplementasikan metode Adaptive Game AI untuk mengatur pergerakan karakter AI saat pertarungan sehingga bisa menyesuaikan diri dan mengimbangi aksi pemain. Metode adaptif yang digunakan adalah kalkulasi Evaluation Function dan Difficulty Adjusment. Dengan penggunaan metode adaptif AI, maka sistem AI bisa melakukan penyesuaian dengan arena pertarungan dan bisa memperkirakan seberapa besar tingkat keseimbangan permainan antara pemain dengan karakter AI ketika akan melakukan sebuah aksi. Sehingga aksi-aksi yang dilakukan karakter AI dalam sistem pertarungan yang menggunakan TBS bisa berjalan seimbang. Kata kunci
: Turn-Based Strategy Games, Artificial Intelligence, Pathfinding, Evaluation Function, Difficulty Adjusment I.
PENDAHULUAN
Pembahasan dalam paper ini dibagi menjadi lima bab. Bab 1 adalah pendahuluan, yang telah dijelaskan di atas. Bab 2 adalah tinjauan pustaka yang mencakup Turn-Based Strategy Game, Game AI, Battle Statistic, Evaluation Function, dan Difficultty Adjusment. Bab 3 adalah penjelasan mengenai Gameplay dalam battle system Maling Hunter beserta penggunaan game AI di dalamnya. Bab 4 adalah uji coba fungsionalitas semua proses dalam battle system serta adaptive game AI yang diterapkan untuk pergerakan AI player dan uji coba non-fungsional. Terakhir bab 5 adalah kesimpulan yang diperoleh setelah melakukan uji coba.
Perkembangan teknologi yang pesat telah membawa perubahan pada pengembangan game yang ada, terutama game online. Salah satu jenis game yang banyak digemari adalah yang berjenis RPG (Role Playing Game), karena dimainkan secara online oleh orang banyak maka namanya menjadi MMORPG (Massively Multiplayer Online RPG). Dalam game dengan jenis tersebut pasti ada Artificial Intelligence (AI) yang dibuat untuk mengendalikan semua skenario dalam game, mulai skenario untuk pembuatan misi, jual-beli barang sampai pertarungan antar pemain. Salah satu jenis pertarungan yang bisa digunakan dalam game seperti ini adalah dengan cara Turn-Based Strategy (TBS). Pertarungan dilakukan secara bergantian dimana lawan yang dihadapi bisa sesama pemain atau karakter yang dikendalikan oleh AI (AI player).
II. TINJAUAN PUSTAKA A.
Turn-Based Strategy Game
Turn-Based Strategy Game merupakan strategy game yang mengharuskan pemainnya hanya bisa berjalan pada saat gilirannya saja. Ketika gilirannya selesai maka pemain tersebut harus menunggu pemain lain atau AI player menyelesaikan gilirannya masing-masing, setelah itu pemain tersebut bisa menjalankan gilirannya lagi. Hal tersebut diulang terus-menerus sampai ada suatu kondisi yang telah terpenuhi, misalnya telah ada satu orang atau satu tim yang menang, atau permainan berakhir imbang.
Salah satu AI yang digunakan adalah dengan adaptive AI. Dengan adanya AI tersebut maka AI player bisa menyesuaikan diri dengan keadaan battle sehingga bisa mengatur strategi untuk melakukan pertarungan yang seimbang melawan pemain. Metode adaptive AI yang digunakan dalam battle system game Maling Hunter ini adalah dengan kalkulasi Evaluation Function dan Difficulty Adjusment. 1
Game AI menggunakan teknik-teknik kecerdasan buatan namun dengan penerapan yang lebih sederhana dikarenakan keterbatasan komputasi dan kemampuan penyimpanan data pada game. Secara sederhana umumnya game AI dapat digambarkan seperti model gambar 2. Pathfinding merupakan salah satu jenis game AI. Dalam model game AI proses pathfinding terletak di perbatasan antara decision making dan movement, seperti ditunjukkan pada gambar 3. Mayoritas pathfinding dalam game menggunakan algoritma A*. Gambar 1 Arsitektur AI Turn-Based Strategy Game
Dalam tiap gilirannya pemain bisa melakukan satu atau lebih action yang disediakan dalam game tersebut. Umumnya tidak ada batasan waktu dalam tiap giliran sehingga pemain bisa memikirkan strategi yang digunakan dengan matang, tetapi ada beberapa game di genre ini yang menggunakan batasan waktu. Seperti pada game Maling Hunter ini yang menggunakan batasan waktu di setiap giliran pemainnya, agar tidak merugikan pemain lainnya, sebab game ini dimainkan secara online dengan orang banyak. Pada gambar 1 ditunjukkan arsitektur AI untuk Turn-Based Strategy Game yang terdiri dari tiga bagian utama yaitu movement, decision making, dan strategy. B.
Gambar 3 Letak pathfinding dalam game AI model
A* didesain untuk pathfinding dari suatu titik ke titik lain dan tidak untuk mengatasi masalah shortest path pada graph, tetapi algoritma A* pasti menghasilkan sebuah rute dari titik awal ke titik tujuan, dengan asumsi titik tujuan tersebut benarbenar ada dan memang ada rute dari titik asal ke titik tujuan tersebut. A* menggunakan konsep graph dimana terdapat kumpulan node, yang merepresentasikan titik asal, tujuan, serta area untuk pencarian, dan edge, yang merepresentasikan jalan penghubung antar node. Flowchart pada gambar 4 menunjukkan alur proses A* pathfinding.
Game AI
Artificial Intelligence (AI) atau kecerdasan buatan merupakan suatu program komputer yang bertindak dan berpikir seperti manusia dan juga bertindak dan berpikir secara rasional pada saat yang bersamaan. AI banyak digunakan di berbagai bidang, dan salah satunya digunakan dalam sebuah game yang biasa disebut Game AI. Game Artificial Intelligence (Game AI) merupakan suatu kecerdasan buatan yang digunakan dalam game untuk membuat unit-unit yang ada pada game dapat mengambil keputusan yang cerdas ketika pada game tersedia banyak pilihan untuk situasi tersebut, dan menghasilkan perilaku yang relevan, efektif dan berguna. Sehingga membuat game tersebut menjadi lebih seimbang dan sesuai dengan gameplay yang dirancang.
Gambar 4 Flowchart A* pathfinding Gambar 2 Model Game AI
2
Proses A* pathfinding dimulai sistem dengan menerima input berupa node asal dan node tujuan setelah itu dilakukan pencarian rute dengan algoritma A*. Output yang dihasilkan ada dua kemungkinan yaitu ada rute atau tidak ada rute dari node asal ke node tujuan.
AreaAtkRate FleeSuccess FleeFail FleeSuccessRate FleeFailRate
Adaptive game AI adalah salah satu game AI yang mempunyai kemampuan untuk self-correction dan kreatifitas untuk menyesuaikan diri dengan keadaan sekitar sesuai dengan perubahan yang terjadi pada saat game berjalan. Dengan menggunakan adaptive game AI bisa menyebabkan banyak keadaan yang tidak terduga dan banyak faktor acak dalam gameplay, selain itu juga membuat gameplay menjadi lebih dinamis. Penggunaan adaptive game AI yang dibahas disini adalah yang menggunakan Evaluation Function dan Difficulty Adjusment. Sisi adaptif dari metode ini adalah kemampuan pemain yang dikontrol oleh AI untuk menyesuaikan level permainan dengan pemain yang dikontrol oleh manusia. Untuk melakukan penyesuaian, karakter AI perlu mengetahui skor yang diperoleh lawannya pada saat terakhir melakukan aksi dan kebiasaankebiasaan yang dilakukan pada saat battle atau battle statistic dari lawannya. C.
MeleeAtk RangeAtk MeleeAtkRate RangeAtkRate DamageOut DamageIn DamageOutRate DamageInRate OffSkill DefSkill
Battle Statistic
OffSkillRate
Battle statistic merupakan komponen pendukung dalam adaptive game AI yang digunakan dalam battle system Maling Hunter ini. Battle statistic digunakan untuk menyimpan statistik battle yang dilakukan pemain dengan AI player. Atribut battle statistic pemain yang disimpan ada beberapa poin seperti ditunjukkan pada tabel 1.
DefSkillRate
D.
Count OwnerPlayer RefferencedEnemy AtkHit AtkMiss AtkHitRate AtkMissRate NormalHit CriticalHit NormalHitRate CriticalHitRate SingleAtk AreaAtk SingleAtkRate
Evaluation Function
Evaluation function adalah fungsi yang digunakan untuk melakukan kalkulasi dalam game AI. Evaluation function dalam adaptive game AI disini digunakan untuk menghitung skor yang dihasilkan oleh karakter di tiap gilirannya. Fungsinya adalah sebagai berikut :
Tabel 1 Model Game AI
Atribut
tunggal prosentase serangan target banyak jumlah flee sukses jumlah flee gagal prosentase flee sukses prosentase flee gagal jumlah serangan jarak dekat jumlah serangan jarak jauh prosentase serangan jarak dekat prosentase serangan jarak jauh jumlah damage yang dibuat jumlah damage yang diterima prosentase damage yang dibuat prosentase damage yang diterima jumlah penggunaan offense skill jumlah penggunaan defense skill prosentase penggunaan offense skill prosentase penggunaan defense skill
Keterangan jumlah battle yang terjadi antar karakter human player AI player jumlah attack sukses jumlah attack gagal prosentase attack sukses prosentase attack gagal jumlah attack sukses yang normal jumlah attack sukses yang critical prosentase attack sukses yang normal prosentase attack sukses yang critical jumlah serangan dengan target tunggal jumlah serangan dengan target banyak prosentase serangan target
ܵሺݔ, ݕሻ = βሺEN, DS, δሺc, x, yሻሻ + γሺEN, δሺc, x, yሻሻ ∈ಶ
∈ಲ
Keterangan : • CA : representasi set semua ally • CE : representasi set semua enemy • c : pemain (ally / enemy) dalam sebuah set • β(EN, DS, d) : fungsi untuk menghitung skor terhadap set enemy o EN : informasi tentang keadaan enemy o DS : damage score yang dihasilkan o d : jarak dari karakter d ke enemy • γ (EN, d) : fungsi untuk menghitung skor terhadap set ally o EN : informasi tentang keadaan ally o d : jarak dari karakter d ke ally • σ(c, x, y) : jarak dari karakter c ke tile(x, y) • S(x, y) : skor yang dihasilkan jika bergerak ke tile(x, y)
3
Secara garis besar dapat disimpulkan bahwa evaluation function di atas berguna untuk menghitung prediksi skor yang dihasilkan jika karakter bergerak ke tile(x, y) dengan menggunakan informasi yang diperoleh dari set enemy dan set ally serta jarak ke tiap karakter yang ada dalam satu battle scene. Informasi tersebut berisi keadaan enemy atau ally saat karakter akan menjalankan gilirannya. Dalam evaluation function di atas terdapat dua fungsi utama untuk menghasilkan skor, yaitu fungsi untuk kalkulasi terhadap enemy (enemy function) dan fungsi untuk kalkulasi terhadap ally (ally function). Untuk kedua fungsi tersebut, baik untuk enemy maupun untuk ally, bisa dibagi lagi menjadi dua bagian yaitu global score dan position score. Global score adalah skor yang diperoleh akan bernilai sama untuk semua tile yang hendak dituju. Sedangkan position score adalah skor yang dipengaruhi dengan letak tile yang hendak dituju, sehingga nilainya bisa berbeda-beda tergantung letak tile.
Ally function merupakan bagian dari evaluation function yang berguna untuk melakukan kalkulasi terhadap set ally jika karakter bergerak ke sebuah tile. Fungsinya adalah sebagai berikut : γሺEN, δሺc, x, yሻሻ
∈ಲ
Rumus untuk menghasilkan ally score di tiap tile adalah : gs = 10 * ((0.2 * DS) + (0.6 * DHP) + (0.2 * DF)) ps = 1 / ds AS = gs * ps
Keterangan : • AS
• E.
Enemy function merupakan bagian dari evaluation function yang berguna untuk melakukan kalkulasi terhadap set enemy jika karakter bergerak ke sebuah tile. Fungsinya adalah sebagai berikut : βሺEN, DS, δሺc, x, yሻሻ
Rumus untuk menghasilkan enemy score di tiap tile adalah :
ܧሺݔ, ݕሻ = ܵூ ሺx, yሻ −
b
• • • • • •
DS DHP DF ps dr DDMG
•
C
•
ds
•
ES
Σ௧∈் ܵூ N
Keterangan : • E(x, y) : evenness score untuk tile(x, y) • SAI(x, y) : AI score jika bergerak ke tile (x, y) : skor yang dihasilkan oleh tim • SOP lain setelah giliran terakhir pemain yang satu tim dengan pemain yang sedang mendapat giliran. Harus dijumlahkan karena ada kemungkinan bisa lebih dari satu giliran dari tim lain tersebut. • T : set dari giliran tim lain • N : jumlah anggota dalam T
gs = 10 * b * ((0.2 * DS) + (0.6 * DHP) + (0.2 * DF)) ps = dr * DDMG * C / ds ES = gs * ps
•
Difficulty Adjusment
Difficulty Adjusment merupakan fungsi untuk menentukan seberapa bagus pergerakan yang akan dilakukan berdasarkan skor evaluation function untuk tile yang dipilih. Dengan menganalisa skor pemain yang bukan satu tim pada giliran sebelumnya, sistem ini bisa membuat pergerakan yang seimbang. Fungsinya adalah sebagai berikut :
∈ಶ
Keterangan : • gs
: ally score untuk sebuah tile yang sekaligus menjadi output dari ally function. variable lain sama dengan yang ada di enemy function
: global score untuk semua tile yang bisa dituju : bonus value hasil perbedaan job dan kalkulasi battle statistic yang diperlukan : perbandingan player stats : perbandingan health poin : perbandingan player fitness : position score untuk tiap tile : nilai untuk arah serangan : perbandingan damage score yang mungkin bisa dihasilkan : hasil kalkulasi battle statistic yang diperlukan : jarak dari tile ke enemy yang menjadi target : enemy score untuk sebuah tile yang sekaligus menjadi output dari enemy function
Secara garis besar dapat disimpulkan bahwa rumus untuk menghitung evenness score di atas digunakan untuk menghitung seberapa besar tingkat keseimbangan jika karakter bergerak menuju sebuah tile/node yang dibandingkan dengan skor rata-rata dari pergerakan yang telah dilakukan oleh tim lain setelah pergerakan terakhir karakter yang satu tim. Nilai E positif berarti berada dalam posisi yang lebih bagus, begitu juga sebaliknya jika E negatif berarti berada dalam posisi yang lebih jelek. Jika nilainya nol berarti telah melakukan pergerakan yang seimbang.
4
III. GAMEPLAY Maling Hunter merupakan sebuah MMORPG yang dikembangkan untuk menyelesaikan tugas akhir. Dalam Maling hunter terdapat empat modul yang menjadi komponen penyusun. Empat modul tersebut adalah Gameplay engine, Battle system, Mission generator, dan Networking. Dari keempat modul tersebut, Battle system dan penggunaan adaptive AI dalam battle merupakan modul yang menjadi pembahasan di paper ini. Modul ini merupakan komponen untuk menangani proses battle yang terjadi dalam Maling Hunter. Segala aturan mengenai battle dan penggunaan adaptive AI dikendalikan oleh modul ini. Jenis battle dalam Maling Hunter ada tiga jenis yaitu random battle, mission battle, dan player versus player battle.
•
•
•
•
Random battle adalah pertarungan yang terjadi secara acak antara pemain dibantu dengan dua karakter AI melawan tiga karakter AI sehingga jumlahnya berimbang. Penentuan karakter AI dalam random battle dilakukan secara acak juga. Yang kedua adalah mission battle yaitu pertarungan yang terjadi di akhir misi yang berjenis battle, dimana seorang pemain bisa dibantu oleh pemain lain dalam dunia Maling Hunter untuk melawan karakter AI yang jumlahnya tergantung dengan misi yang diambil. Pemain lain yang bisa ikut battle mission adalah pemain yang sedang online, tidak sedang melakukan battle lain dan pemain tersebut sudah diajak oleh pemain yang mengambill misi. Penentuan karakter AI dalam mission battle sudah diatur dalam misi yang diambil, jadi tidak dilakukan secara acak. Dan yang terakhir adalah player versus player dimana pemain bisa menantang pemain lain yang sedang online dalam dunia Maling Hunter untuk melakukan battle satu lawan satu.
Flowchart pada gambar 5 menunjukkan urutan aksi yang bisa dilakukan tiap pemain ketika gilirannya. Battle system Mulai
Jika giliran AI player
Tidak
Pilih aksi yang akan dilakukan
Aksi flee
Ya
Kalkulasi AI untuk memilih aksi-aksi yang akan dilakukan
Tidak
Ya Ya
Aksi move
Ya
Berjalan ke node tujuan
Kalkulasi untuk melarikan diri
Simpan semua aksi ke dalam list
Tidak Jika belum aksi move Aksi dengan target (attack, using skill, using item)
Flee sukses
Ya
Daftar aksi yang akan dilakukan
Ya
Ya
Jika belum aksi dengan target
Lakukan aksi terhadap target
Eksekusi semua aksi dalam list
Tidak Meninggalkan arena battle
Tidak
Tidak
Aksi Set direction
Tidak
Untuk game AI dalam battle digunakan metode adaptive AI yang bisa membuat karakter AI melakukan pembelajaran terhadap kebiasaan lawannya sehingga membuat pertarungan menjadi seimbang, sebab sisi adaptive yang diangkat adalah sebisa mungkin membuat level pertarungan antara karakter AI dengan pemain menjadi seimbang. Semua itu dirangkum dalam sebuah battle system yang berbasis Turn-Based Strategy Game, dan diimplementasikan dalam bentuk 3D menggunakan game engine Unity3D.
Tentukan direction yang baru
Update skor AI dan battle statistic dari aksi yang dilakukan
Selesai
Gambar 5 Flowchart Battle System
Dari flowchart tersebut bisa dilihat bahwa tiap pemain hanya bisa melakukan satu kali move dan satu kali attack, using item, atau using skill. Setelah itu pemain harus melakukan set direction untuk mengakhiri giliran dan berganti giliran ke pemain selanjutnya. Untuk melakukan flee pemain hanya bisa melakukannya pada saat awal gilirannya, jika sukses maka pemain akan meninggalkan arena battle, tetapi jika gagal maka gilirannya habis dan ganti giliran ke pemain selanjutnya. Jika giliran AI player maka sistem yang akan melakukan kalkulasi untuk menentukan daftar aksi yang akan dilakukan. Semua aksi disimpan ke dalam list untuk kemudian dieksekusi oleh AI player.
Setiap pemain, baik itu human player maupun AI player, dalam battle system mempunyai aksi yang sama dalam setiap gilirannya. Aksi – aksi yang bisa dilakukan oleh pemain adalah : •
Menyerang pemain lain, baik itu teman maupun lawan, menggunakan serangan default berdasarkan job pemain. (Attack). Menggunakan item yang dimiliki untuk diri sendiri atau pemain lain, bisa teman atau lawan. (Using item). Menggunakan jurus lain yang dimiliki untuk menyerang atau menolong pemain lain, bisa teman atau lawan. (Using skill). Menentukan arah pandangan ke salah satu arah dari empat arah yang disediakan. (Set direction). Melarikan diri dari arena pertarungan (Flee). Aksi ini hanya bisa dilakukan oleh human player, dan itupun terbatas hanya pada saat random battle. Selain itu aksi flee tidak diperbolehkan.
•
Bergerak menuju suatu titik dalam arena pertarungan yang menggunakan tile based map. (Move). Pencarian rute yang ditempuh menggunakan A* pathfinding.
Pada gambar 6 flowchart proses penentuan aksi-aksi apa saja yang akan dilakukan oleh AI player dimulai dengan pengambilan data-data mengenai informasi keadaan tim enemy, informasi 5
keadaan tim ally, skor terakhir hasil aksi yang dilakukan tim enemy, dan battle statistic antara AI player dengan human player. Setelah memperoleh semua data maka AI akan melakukan kalkulasi untuk memilih healing state atau adaptive state. Jika memilih healing state maka AI player akan mencari player yang akan disembuhkan. Jika memilih adaptive state maka AI player harus melakukan kalkulasi skor untuk semua node yang ada di dalam movement area dengan menggunakan Evaluation Function dan Difficulty Adjusment. Setelah tahap state di atas selesai maka AI player harus melakukan aksi set direction untuk menentukan direction yang baru dan mengakhiri giliran dan berganti giliran ke pemain selanjutnya.
Selain update action score, AI player juga melakukan update battle statistic antara dirinya sendiri dengan karakter lawan dimana semua itu akan digunakan oleh tim lawan dalam melakukan kalkulasi AI jika lawannya AI player juga. IV. UJI COBA Uji coba dibagi menjadi dua macam yaitu uji coba fungsionalitas dan non-fungsionali. Uji coba fungsionalitas dilakukan untuk melihat apakah fungsi-fungsi dasar aplikasi berjalan sebagaimana mestinya. Uji coba fungsionalitas meliputi semua use case yang dibuat. Sedangkan uji coba nonfungsional digunakan untuk memeriksa waktu eksekusi yang dibutuhkan ketika melakukan kalkulasi AI dan pathfinding, serta proses integrasi battle system ke dalam game Maling Hunter. Uji coba fungsionalitas meliputi uji coba proses move, attack, using skill, using item, set direction, flee, pathfinding, dan kalkulasi adaptive AI. Semua proses yang telah diuji coba berjalan lancar dan menghasilkan aksi sesuai yang diharapkan. Tabel 2 menunjukkan hasil uji coba untuk proses kalkulasi adaptive AI pada battle system. Untuk proses yang lain telah berhasil juga. Tabel 2 Hasil uji coba kalkulasi adaptive AI UJI-BS-08 Uji coba proses Kalkulasi Adaptive Nama AI Menguji proses kalkulasi adaptive AI Tujuan uji yang dilakukan oleh sistem untuk coba menghasilkan aksi-aksi yang dilakukan oleh AI player. Sistem mendapatkan input berupa daftar node dalam movement area, kondisi AI player, kondisi teman, Precondition kondisi lawan, statistik pertarungan, dan skor AI lawan untuk melakukan kalkulasi. Sistem melakukan kalkulasi movement area, menentukan state yang digunakan, menentukan node Skenario 1 tujuan, menentukan aksi lain yang dilakukan dan targetnya, menyimpan semua aksi ke dalam list, menyampaikan list ke AI player. Daftar node yang ada di movement area, kondisi AI player, kondisi terbaru lawan, kondisi terbaru teman, Input statistik pertarungan antara AI player dengan human player, dan skor AI dari pergerakan tim lawan Output yang List berisi aksi-aksi hasil kalkulasi AI diharapkan yang akan dilakukan oleh AI player Kalkulasi selalu menghasilkan list yang berisi aksi-aksi yang akan dilakukan AI player. Setelah itu AI Hasil uji coba player mengeksekusi aksi yang diberikan dalam bentuk gerak animasi sesuai dengan aksi yang sedang dieksekusi. (Berhasil). Pemain melakukan semua aksi yang Postcondition ada di dalam list. ID
Gambar 6 Flowchart untuk Adaptive AI
Setelah kalkulasi AI selesai, semua aksi tersebut disimpan ke dalam sebuah list yang selanjutnya akan dieksekusi. Selama proses eksekusi sudah tidak ada lagi kalkulasi, sebab semua aksi dan efek dari aksi tersebut sudah disimpan di dalam list. Yang terjadi saat eksekusi hanya animasi dari karakter yang menunjukkan aksi yang ada di dalam list. Jadi selama kalkulasi AI tidak ada pergerakan sama sekali dari karakter, semuanya masih berupa perkiraan bergerak ke node mana, target mana yang diserang, atau target mana yang disembuhkan. Semua pergerakan baru dilakukan semua di akhir kalkulasi. Setelah semua aksi selesai dilakukan maka AI player akan melakukan update action score untuk timnya. 6
Pada gambar 7 ditunjukkan AI player melakukan pergerakan pindah ke belakang target yang akan diserang lalu melakukan serangan dari belakang, sebab peluang untuk critical hit lebih besar dan peluang untuk miss lebih kecil daripada langsung menyerang dari depan.
Untuk pengintegrasian battle system ke dalam game Maling Hunter telah berhasil dilakukan. Proses perpindahan dari scene dunia Maling Hunter ke scene arena battle berjalan alan lancar.
Gambar 10 Counter sebelum masuk ke scene arena battle untuk random battle Gambar 7 AI player menyerang enyerang dari belakang
Gambar 10 menunjukkan hitungan mundur yang terjadi di dunia Maling Hunter untuk memulai random battle. Jika angkanya sampai nol maka pemain akan pindah scene menuju arena battle melawan enemy yang dibuat secara acak dengan jumlah maksimal tiga enemy dan ditemani maksimal dua ally.. Ada tiga cara untuk memasuki scene arena battle. Cara pertama seperti telah disebutkan pada gambar 10, 10 cara kedua dengan mengundang pemain lain untuk melakukan player versus player battle, dan cara ketiga dengan berbicara ke NPC tertentu untuk melakukan mission battle.
Pada gambar 8 AI player melakukan serangan dengan menggunakan skill. Sebab sistem mengetahui ada pemain dari tim lawan yang bergerombol. Dengan menyerang menggunakan skill maka pemain bisa menyerang beberapa target dalam satu kali serangan, erangan, maksimal lima target, dan bisa dilakukan dari jarak jauh, sehingga bisa menghasilkan damage yang lebih besar. Dengan demikian AI player sudah bisa melakukan aksi sesuai dengan kemampuannya dan keadaan arena battle. Jika keadaan berubah, maka aksi yang dilakukan juga akan berubah.
V. KESIMPULAN Sistem Artificial Intelligence yang digunakan dalam Maling Hunter sudah menerapkan mene Adaptive Game AI sehingga membuat AI player bisa mengimbangi strategi permainan yang dilakukan oleh pemain dan bisa menyesuaikan diri dengan keadaan arena battle. Battle system dalam Maling Hunter menggunakan Turn-Based Based Strategy dan bisa dimainkan secara multiplayer bersama pemain lain untuk mission battle dan player versus player battle.. Sedangkan untuk random battle hanya melawan AI player dan dibantu oleh AI player juga. Proses pathfinding dalam battle system pasti menghasilkan sebuah rute, sebab node asal dan tujuan selalu berada di dalam movement area. Semua aksi yang tersedia dalam battle system bisa bekerja dengan baik sesuai dengan fungsinya ketika diintegrasikan ke dalam game Maling Hunter.
Gambar 8 AI player menyerang menggunakan skill
Hasil uji coba non-fungsionalitas fungsionalitas untuk pathfinding waktu yang ditempuh kurang dari satu milidetik. Sedangkan untuk kalkulasi adaptive AI membutuhkan waktu antara 10 milidetik milidet sampai 100 milidetik untuk menghasilkan sebuah list yang berisi aksi-aksi aksi yang akan dilakukan oleh AI player.
DAFTAR PUSTAKA [1] Millington, Ian, Artificial Intelligence Intellige For Games, 2006, Morgan Kaufmann Publishers, Publishers USA [2] M. Bourg, D.,, Seeman, G., AI for Game Developers, 2004, O’Reilly Media Inc., USA
Gambar 9 Flowchart untuk Adaptive AI
[3] Potisartra, Kittisak, Kotrajaras, Vishnu, ‘Towards Towards an Evenly Match Opponent AI in Turn-based based Strategy Games”, Games Chulalongkorn University, Thailand
Besar kecilnya angka tersebut tergantung dari movement area AI player dan kalkulasi aksi yang akan dilakukan. kukan. Contoh waktu hasil eksekusi untuk kedua proses tersebut sebut ditunjukkan pada gambar 9. 9 7