IMPLEMENTASI ADAPTIVE AI UNTUK UNIT BEHAVIOUR DALAM
TURN BASED STRATEGY BATTLE SYSTEM PADA MMORPG
MALING HUNTER
Fitra Raditya Saputra
1, Imam Kuswardayan, S.Kom, M.T.
2Jurusan Teknik Informatika, Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember, Surabaya
Email: [email protected]
1ABSTRAK
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
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).
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.
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.
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.
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. 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 2 Model Game AI
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 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 benar-benar 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.
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.
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 kebiasaan-kebiasaan yang dilakukan pada saat battle atau battle statistic dari lawannya.
C. Battle Statistic
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.
Tabel 1 Model Game AI
Atribut Keterangan
Count jumlah battle yang terjadi antar karakter
OwnerPlayer human player RefferencedEnemy AI player
AtkHit jumlah attack sukses AtkMiss jumlah attack gagal AtkHitRate prosentase attack sukses AtkMissRate prosentase attack gagal NormalHit jumlah attack sukses yang
normal
CriticalHit jumlah attack sukses yang critical
NormalHitRate prosentase attack sukses yang normal
CriticalHitRate prosentase attack sukses yang critical
SingleAtk jumlah serangan dengan target tunggal
AreaAtk jumlah serangan dengan target banyak
SingleAtkRate prosentase serangan target
tunggal
AreaAtkRate prosentase serangan target banyak
FleeSuccess jumlah flee sukses FleeFail jumlah flee gagal FleeSuccessRate prosentase flee sukses FleeFailRate prosentase flee gagal MeleeAtk jumlah serangan jarak
dekat
RangeAtk jumlah serangan jarak jauh MeleeAtkRate prosentase serangan jarak
dekat
RangeAtkRate prosentase serangan jarak jauh
DamageOut jumlah damage yang dibuat
DamageIn jumlah damage yang
diterima
DamageOutRate prosentase damage yang dibuat
DamageInRate prosentase damage yang diterima
OffSkill jumlah penggunaan offense skill
DefSkill jumlah penggunaan defense skill
OffSkillRate prosentase penggunaan offense skill
DefSkillRate prosentase penggunaan defense skill
D. 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 :
ܵሺݔ, ݕሻ = βሺ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)
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.
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 :
Keterangan :
• gs : global score untuk semua tile yang bisa dituju
• b : bonus value hasil perbedaan job dan kalkulasi battle statistic yang diperlukan
• DS : perbandingan player stats • DHP : perbandingan health poin • DF : perbandingan player fitness • ps : position score untuk tiap tile
• dr : nilai untuk arah serangan
• DDMG : perbandingan damage score
yang mungkin bisa dihasilkan
• C : hasil kalkulasi battle statistic yang diperlukan
• ds : jarak dari tile ke enemy yang menjadi target
• ES : enemy score untuk sebuah tile yang sekaligus menjadi output dari enemy function
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 :
Keterangan :
• AS : ally score untuk sebuah tile yang sekaligus menjadi output dari ally function.
• variable lain sama dengan yang ada di enemy function
E. 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 :
ܧሺݔ, ݕሻ = ܵூሺx, yሻ − Σ௧∈்Nܵூ Keterangan :
• E(x, y) : evenness score untuk tile(x, y)
• SAI(x, y) : AI score jika bergerak ke tile
(x, y)
• SOP : skor yang dihasilkan oleh tim
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 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.
gs = 10 * ((0.2 * DS) + (0.6 * DHP) + (0.2 * DF)) ps = 1 / ds AS = gs * ps gs = 10 * b * ((0.2 * DS) + (0.6 * DHP) + (0.2 * DF)) ps = dr * DDMG * C / ds ES = gs * ps
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.
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.
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 :
• Bergerak menuju suatu titik dalam arena pertarungan yang menggunakan tile based map. (Move). Pencarian rute yang ditempuh menggunakan A* pathfinding.
• 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.
Flowchart pada gambar 5 menunjukkan urutan aksi yang bisa dilakukan tiap pemain ketika gilirannya.
Mulai
Pilih aksi yang akan dilakukan Jika giliran AI player Kalkulasi AI untuk memilih aksi-aksi yang akan dilakukan Daftar aksi yang akan dilakukan Eksekusi semua aksi dalam list
Update skor AI dan battle statistic dari aksi yang dilakukan
Selesai
Tidak Ya
Aksi move
Aksi dengan target (attack, using skill, using item) Aksi flee Berjalan ke node tujuan Kalkulasi untuk melarikan diri Flee sukses Meninggalkan arena battle Lakukan aksi terhadap target Tentukan direction yang baru Tidak Ya Ya Tidak Tidak Tidak Ya Ya
Jika belum aksi dengan target Jika belum aksi move Ya Tidak Ya Tidak
Aksi Set direction
Simpan semua aksi ke dalam list Battle system
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.
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
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.
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.
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 non-fungsional 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
ID UJI-BS-08
Nama Uji coba proses Kalkulasi Adaptive AI
Tujuan uji coba
Menguji proses kalkulasi adaptive AI yang dilakukan oleh sistem untuk menghasilkan aksi-aksi yang dilakukan oleh AI player.
Precondition
Sistem mendapatkan input berupa daftar node dalam movement area, kondisi AI player, kondisi teman, kondisi lawan, statistik pertarungan, dan skor AI lawan untuk melakukan kalkulasi.
Skenario 1
Sistem melakukan kalkulasi movement area, menentukan state yang digunakan, menentukan node tujuan, menentukan aksi lain yang dilakukan dan targetnya,
menyimpan semua aksi ke dalam list, menyampaikan list ke AI player.
Input
Daftar node yang ada di movement area, kondisi AI player, kondisi terbaru lawan, kondisi terbaru teman, statistik pertarungan antara AI player dengan human player, dan skor AI dari pergerakan tim lawan
Output yang diharapkan
List berisi aksi-aksi hasil kalkulasi AI
yang akan dilakukan oleh AI player
Hasil uji coba
Kalkulasi selalu menghasilkan list yang berisi aksi-aksi yang akan dilakukan AI player. Setelah itu AI
player mengeksekusi aksi yang
diberikan dalam bentuk gerak animasi sesuai dengan aksi yang sedang dieksekusi. (Berhasil).
Postcondition Pemain melakukan semua aksi yang ada di dalam list.
Pada gambar 7 ditunjukkan
melakukan pergerakan pindah ke belakang target yang akan diserang lalu melakukan serangan dari belakang, sebab peluang untuk critical hit besar dan peluang untuk miss lebih kecil daripada langsung menyerang dari depan.
Gambar 7 AI player menyerang dari belakang Pada gambar 8 AI player melakukan serangan dengan menggunakan skill.
mengetahui ada pemain dari tim lawan yang bergerombol. Dengan menyerang menggunakan skill maka pemain bisa menyerang beberapa target dalam satu kali serangan, 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 dilakukan juga akan berubah.
Gambar 8 AI player menyerang menggunakan Hasil uji coba non-fungsionalitas untuk pathfinding waktu yang ditempuh kurang dari satu milidetik. Sedangkan untuk kalkulasi
membutuhkan waktu antara 10 milidet 100 milidetik untuk menghasilkan sebuah
berisi aksi-aksi yang akan dilakukan oleh AI player.
Gambar 9 Flowchart untuk Adaptive AI Besar kecilnya angka tersebut tergantung dari movement area AI player dan kalkulasi aksi yang akan dilakukan. Contoh waktu hasil eksekusi untuk kedua proses tersebut ditunjukkan pada gambar 9
ditunjukkan AI player melakukan pergerakan pindah ke belakang target yang akan diserang lalu melakukan serangan dari critical hit lebih lebih kecil daripada
enyerang dari belakang melakukan serangan
Sebab sistem mengetahui ada pemain dari tim lawan yang bergerombol. Dengan menyerang menggunakan maka pemain bisa menyerang beberapa target erangan, maksimal lima target, dan bisa dilakukan dari jarak jauh, sehingga bisa yang lebih besar. Dengan sudah bisa melakukan aksi sesuai dengan kemampuannya dan keadaan arena Jika keadaan berubah, maka aksi yang
menyerang menggunakan skill fungsionalitas untuk waktu yang ditempuh kurang dari satu milidetik. Sedangkan untuk kalkulasi adaptive AI membutuhkan waktu antara 10 milidetik sampai 100 milidetik untuk menghasilkan sebuah list yang aksi yang akan dilakukan oleh AI
untuk Adaptive AI Besar kecilnya angka tersebut tergantung dari
dan kalkulasi aksi yang kukan. Contoh waktu hasil eksekusi untuk
sebut ditunjukkan pada gambar 9.
Untuk pengintegrasian
game Maling Hunter telah berhasil dilakukan. Proses perpindahan dari scene
ke scene arena battle berjalan lancar.
Gambar 10 Counter sebelum masuk ke battle untuk random battle
Gambar 10 menunjukkan hitungan mundur yang terjadi di dunia Maling Hunter untuk memulai random battle. Jika angkanya sampai nol maka pemain akan pindah scene
melawan enemy yang dibuat secara acak dengan jumlah maksimal tiga enemy
maksimal dua ally. Ada tiga cara untuk memasuki scene arena battle. Cara pertama seperti telah disebutkan pada gambar 10
mengundang pemain lain untuk melakukan versus player battle, dan cara ketiga dengan berbicara ke NPC tertentu untuk melakukan mission battle.
V. KESIMPULAN
Sistem Artificial Intelligence dalam Maling Hunter sudah mene Game AI sehingga membuat AI
mengimbangi strategi permainan yang dilakukan oleh pemain dan bisa menyesuaikan diri dengan keadaan arena battle. Battle
Hunter menggunakan Turn-Based Strategy dan bisa dimainkan secara multiplayer
untuk mission battle dan battle. Sedangkan untuk
melawan AI player dan dibantu oleh AI juga. Proses pathfinding dalam
menghasilkan sebuah rute, sebab tujuan selalu berada di dalam Semua aksi yang tersedia dalam
bekerja dengan baik sesuai dengan fungsinya diintegrasikan ke dalam game
DAFTAR PUSTAKA [1] Millington, Ian, Artificial Intellige
Games, 2006, Morgan Kaufmann Publishers USA
[2] M. Bourg, D., Seeman, G.,
Developers, 2004, O’Reilly Media Inc., USA [3] Potisartra, Kittisak, Kotrajaras, Vishnu,
‘Towards an Evenly Match Opponent AI in Turn-based Strategy Games
University, Thailand
Untuk pengintegrasian battle system ke dalam Maling Hunter telah berhasil dilakukan. scene dunia Maling Hunter
alan lancar.
sebelum masuk ke scene arena random battle
menunjukkan hitungan mundur yang terjadi di dunia Maling Hunter untuk memulai Jika angkanya sampai nol maka scene menuju arena battle yang dibuat secara acak dengan enemy dan ditemani . Ada tiga cara untuk memasuki Cara pertama seperti telah 10, cara kedua dengan mengundang pemain lain untuk melakukan player dan cara ketiga dengan berbicara ke NPC tertentu untuk melakukan
KESIMPULAN
Artificial Intelligence yang digunakan sudah menerapkan Adaptive sehingga membuat AI player bisa mengimbangi strategi permainan yang dilakukan oleh pemain dan bisa menyesuaikan diri dengan Battle system dalam Maling Based Strategy dan bisa multiplayer bersama pemain lain dan player versus player . Sedangkan untuk random battle hanya dan dibantu oleh AI player dalam battle system pasti menghasilkan sebuah rute, sebab node asal dan selalu berada di dalam movement area. Semua aksi yang tersedia dalam battle system bisa bekerja dengan baik sesuai dengan fungsinya ketika
game Maling Hunter. DAFTAR PUSTAKA
Artificial Intelligence For Morgan Kaufmann Publishers,
, Seeman, G., AI for Game O’Reilly Media Inc., USA Potisartra, Kittisak, Kotrajaras, Vishnu,
Towards an Evenly Match Opponent AI in based Strategy Games”, Chulalongkorn