1. Kecerdasan Buatan
vs. Game AI
Kecerdasan Buatan atau kecerdasan yang ditambahkan
kepada suatu sistem yang bisa diatur dalam konteks ilmiah atau Intelegensi
Artifisial (bahasa Inggris: Artificial Intelligence atau hanya disingkat AI)
didefinisikan sebagai kecerdasan entitas ilmiah. Sistem seperti ini umumnya
dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin
(komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia.
Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem
pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan
robotika.
Game adalah permainan komputer yang dibuat dengan
teknik dan metode animasi. Permainan game merupakan bidang AI yang sangat
populer berupa permainan antara manusia melawan mesin yang mempunyai
intelektual untuk berpikir. Komputer dapat bereaksi dan menjawab
tindakan-tindakan yang diberikan oleh lawan mainnya.
Salah satu komputer yang ditanamkan AI untuk game
bernama Deep Blue. Deep Blue adalah sebuah komputer catur buatan IBM pertama
yang memenangkan sebuah permainan catur melawan seorang juara dunia (Garry
Kasparov) dalam waktu standar sebuah turnamen catur. Kemenangan pertamanya
(dalam pertandingan atau babak pertama) terjadi pada 10 Februari 1996 dan
merupakan permainan yang sangat terkenal.
Kini telah banyak berkembang game AI yang semakin
menarik, interaktif, dan dengan grafis yang sangat bagus. Ditambah dengan
kemajuan teknologi jaringan komputer yang semakin cepat, sudah banyak terdapat
game-game AI yang berbasiskan online. Tidak sedikit orang yang tertarik dengan
game saat ini. Mereka memainkan game untuk mengisi kekosongan waktu mereka atau
pun melatih skill mereka dalam berpikir.
2. Mode Game AI
Salah satu unsur yang berperan penting dalam sebuah
game adalah kecerdasan buatan. Dengan kecerdasan buatan, elemen-elemen dalam
game dapat berperilaku sealami mungkin layaknya manusia.
Game AI adalah aplikasi untuk memodelkan karakter yang
terlibat dalam permainan baik sebagai lawan, ataupun karakter pendukung yang
merupakan bagian dari permainan tetapi tidak ikut bermain (NPC = Non Playable
Character). Peranan kecerdasan buatan dalam hal interaksi pemain dengan
permainan adalah pada penggunaan interaksi yang bersifat alami yaitu yang biasa
digunakan menusia untuk berinteraksi dengan sesama manusia. Contoh media
interaksi ialah:
·
Penglihatan (vision)
· Suara
(voice), ucapan (speech)
·
Gerakan anggota badan ( gesture)
Untuk pembentukan Artificial Intelligence pada game
ternyata digunakan pula algoritma, yaitu jenis pohon n-ary untuk suatu
struktur. Implementasi pohon (tree) ini biasa disebut game tree. Berdasarkan
game tree inilah sebuah game disusun algoritma kecerdasan buatannya. Artificial
intellegence yang disematkan dalam sebuah game yang membentuk analisis game
tree biasanya merepresentasikan kondisi atau posisi permainan dari game sebagai
suatu node, dan merepresentasikan langkah yang mungkin dilakukan sebagai sisi
berarah yang menghubungkan node kondisi tersebut ke anak (child) sebagaimana
representasi suatu pohon (tree).
Namun, biasanya representasi langsung tersebut
mempunyai kelemahan, yaitu representasi data pohon akan menjadi sangat lebar
dan banyak. Mungkin bagi sebuah mesin komputer mampu melakukan kalkulasi
sebanyak apapun masalah, namun game tree yang lebar dan besar memberikan
beberapa masalah, antara lain konsumsi proses memori, kapasitas penyimpanan
yang cukup besar dan kinerja yang kurang pada konsol game berspesifikasi
rendah. Karena itu dibentuklah beberapa algoritma dan penyederhanaan bagi
sebuah game tree.
Pada salah satu contoh game klasik, yaitu tic tac toe,
penyederhanaan dapat dilakukan dengan berbagai metode. Salah satu diantaranya
adalah minimax. Metode ini berhasil diterapkan dan memberikan nilai reduksi
yang cukup signifikan. Dan tidak hanya bisa digunakan secara monoton, minimax
juga bisa digunakan untuk game-game yang lebih rumit seperti catur, tentunya
dengan algoritma dan representasi berbeda.
Minimax yang merupakan salah satu metode penerapan
(implementasi) pohon n-ary pada suatu game, menandakan bahwa implementasi
struktur (pohon khusunya) sangatlah diperlukan pada pembuatan dan penerapan
Artificial Intelligence, dan tidak menutup kemungkinan ilmu dan metode baru
yang lebih canggih akan ditemukan di masa depan.
3. Algoritma,
Struktur data dan Representasi
A. Decision
tree
Decision Tree adalah salah satu metode klasifikasi
yang paling populer karena mudah untuk diinterpretasi oleh manusia. Decision
tree adalah model prediksi menggunakan struktur pohon atau struktur berhirarki.
Konsep dari decision tree adalah mengubah data menjadi pohon keputusan dan
aturan-aturan keputusan. Manfaat utama dari penggunaan decision tree adalah
kemampuannya untuk mem-break down proses pengambilan keputusan yang kompleks
menjadi lebih simpel sehingga pengambil keputusan akan lebih
menginterpretasikan solusi dari permasalahan.
- Kelebihan
Daerah pengambilan keputusan yang sbelumnya kompleks
dan sangat global, dapat diubah menjadi lebih simpel dan spesifik.
Eliminasi perhitungan-perhitungan yang tidak
diperlukan, karena ketika menggunakan metode decision tree maka sample diuji
hanya berdasarkan criteria atau kelas tertentu.
Fleksibel untuk memilih features dari internal nodes
yang berbeda, feature yang terpilih akan membedakan suatu criteria dibandingkan
criteria yang lain dalam node yang sama. Kefleksibelan metode decision tree ini
meningkatkan kualitas keputusan yang dihasilkan jika dibandingkan ketika
menggunakan metode penghitungan satu tahap yang lebih konvensional.
Dalam analisis multivariat, dengan kriteria dan kelas
yang jumlahnya sangat banyak, seorang penguji biasanya perlu untuk
mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu
dari distribusi kelas tersebut. Metode decision tree dapat menghindari
munculnya permasalahan ini dengan menggunakan criteria yang jumlahnya lebih
sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan
yang dihasilkan.
- Kekurangan
Terjadi overlap terutama ketika kelas-kelas dan
criteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat
menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memory yang
diperlukan.
Pengakumulasian jumlah error dari setiap level dalam
sebuah pohon keputusan yang besar.
Kesulitan dalam mendesain decision tree yang optimal.
Hasil kualitas keputusan yang didapatkan dari metode decision tree sangat
tergantung pada bagaimana pohon tersebut didesain.
B. Finite
State Machines (FSM)
FSM adalah sebuah metodologi perancangan sistem
kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan
menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan Action
(aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan
berada pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi
menuju state lain jika mendapatkan masukan atau event tertentu, baik yang
berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri (misal
interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang
dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang
dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian
proses yang relative kompleks. Berdasarkan sifatnya, metode FSM ini sangat
cocok digunakan sebagai basis perancangan perangkat lunak pengendalian yang
bersifat reaktif dan real time. Salah satu keuntungan nyata penggunaan FSM
adalah kemampuannya dalam mendekomposisi aplikasi yang relative besar dengan
hanya menggunakan sejumlah kecil item state. Selain untuk bidang kontrol,
Penggunaan metode ini pada kenyataannya juga umum digunakan sebagai basis untuk
perancangan protokol-protokol komunikasi, perancangan perangkat lunak game,
aplikasi WEB dan sebagainya.
Finite State Machine(FSM) ini memiliki kelebihan dan
kekurangan,antara lain :
- Kelebihan
Implementasinya mudah dan cepat
Memudahkan proses debugging. Karena telah dipecah
menjadi kepingan yang lebih kecil, proses debugging kalau terjadi behavoiur
yang tidak semestinya, menjadi lebih mudah
Proses komputasi yg minimal, karena sejatinya FSM
hanyalah conditional statement yang dikemas dalam bentuk yang lebih elegan.
Fleksibel, dapat dikombinasikan dengan teknik AI lain
misalnya fuzzy logic dan neural network.
- Kekurangan
Behaviour dari agen mudah diprediksi, karena tidak ada
searching dan atau learning di dalam agen tersebut
Karena mudah diimplementasi, kadang programmer
langsung tembak di eksekusi tanpa melakukan desain FSM terlbih dahulu. Biasanya
akan terjadi FSM yang terfragmentasi
Timbul apa yang dinamakan dengan State Oscillation
yaitu ketika batasan antara dua buah state terlalu tipis
C. Sistem
berbasis aturan (Rule Based System)
adalah suatu program komputer yang memproses informasi
yang terdapat di dalam working memory dengan sekumpulan aturan yang terdapat di
dalam basis pengetahuan menggunakan mesin inferensi untuk menghasilkan
informasi baru.
Sebuah Rule-Based System dapat dibentuk dengan
menggunakan sebuah assertions set, yang secara kolektif membentuk working
memory, dan sebuah rule set yang menentukan aksi pada assertions set. RBS secara relatif adalah model sederhana
yang bisa diadaptasi ke banyak masalah. Namun, jika ada terlalu banyak
peraturan, pemeliharaan sistem akan rumit dan terdapat banyak failure dalam
kerjanya.
- Kelebihan
Availability-bertambah, intelligent tutor, intelligent
dB, danger-reduced, performance
multiple expertise, reability-bertambah, explanation
steady, unemotional and complete response§
- Kekurangan
Jika terlalu banyak aturan, sistem menjadi sulit dalam
me-maintain performance dan Keterbatasan dalam memutuskan teknik yang digunakan
untuk suatu masalah.
D. Algoritma
A*
Menyelesaikan masalah yang menggunakan graf untuk
perluasan ruang statusnya. Dengan menerapkan suatu heuristik, algoritma ini
membuang langkah-langkah yang tidak perlu dengan pertimbangan bahwa
langkah-langkah yang dibuang sudah pasti merupakan langkah yang tidak akan
mencapai solusi yang diinginkan. Algoritma A* membangkitkan simpul yang paling
mendekati solusi. Simpul ini kemudian disimpan suksesornya ke dalam list sesuai
dengan urutan yang paling mendekati solusi terbaik. Kemudian, simpul pertama
pada list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan
ke dalam list sesuai dengan urutan yang terbaik untuk solusi.
Algoritma ini akan mengunjungi secara mendalam (mirip
DFS) selama simpul tersebut merupakan simpul yang terbaik. Jika simpul yang
sedang dikunjungi ternyata tidak mengarah kepada solusi yang diinginkan, maka
akan melakukan runut balik ke arah simpul akar untuk mencari simpul anak
lainnya yang lebih menjanjikan dari pada simpul yang terakhir dikunjungi. Bila
tidak ada juga, maka akan terus mengulang mencari ke arah simpul akar sampai
ditemukan simpul yang lebih baik untuk dibangkitkan suksesornya. Strategi ini
berkebalikan dengan algoritma DFS yang mencari sampai kedalaman yang terdalam
sampai tidak ada lagi suksesor yang bisa dibangkitkan sebelum melakukan runut
balik, dan BFS yang tidak akan melakukan pencarian secara mendalam sebelum
pencarian secara melebar selesai. A* baru berhenti ketika mendapatkan solusi
yang dianggap solusi terbaik.
Algoritma A* menggabungkan jarak estimasi/heuristik
[h(n)] dan jarak sesungguhnya/cost [g(n)] dalam membantu penyelesaian
persoalan. Heuristik adalah nilai yang memberi harga pada tiap simpul yang
memandu A* mendapatkan solusi yang diinginkan. Dengan heuristik, maka A* pasti
akan mendapatkan solusi (jika memang ada solusinya). Dengan kata lain,
heuristik adalah fungsi optimasi yang menjadikan algoritma A* lebih baik dari
pada algoritma lainnya. Namun heuristik masih merupakan estimasi/perkiraan
biasa saja. Sama sekali tidak ada rumus khususnya. Artinya, setiap kasus
memiliki fungsi heuristik yang berbeda-beda.
E. Algoritma
Dijkstra
Algoritma Dijkstra adalah sebuah algoritma rakus
(greedy algorithm) yang dipakai dalam memecahkan permasalahan jarak terpendek
(shortest path problem) untuk sebuah graf berarah (directed graph) dengan
bobot-bobot sisi (edge weights) yang bernilai tak negatif.
Misalnya, bila vertices dari sebuah graf melambangkan
kota-kota dan bobot sisi (edge weights) melambangkan jarak antara kota-kota tersebut,
maka algoritma Dijkstra dapat digunakan untuk menemukan jarak terpendek antara
dua kota. Input algoritma ini adalah sebuah graf berarah yang berbobot
(weighted directed graph)
Tujuan Algoritma Dijkstra yaitu untuk menemukan jalur
terpendek berdasarkan bobot terkecil dari satu titik ke titik lainnya.
Kelemahan algoritma ini adalah semakin banyak titik
akan semakin memakan waktu proses.
Jumlah titik menentukan tingkat efektifitas dari
algoritma djikstra.
- Urutan Logika Algoritma Dijkstra
1. Beri
nilai bobot (jarak) untuk setiap titik ke titik lainnya, lalu set nilai 0 pada
node awal dan nilai tak hingga terhadap node lain (yang belum terisi).
2. Set
semua node “Belum terjamah” dan set node awal sebagai “Node keberangkatan”.
3. Dari
node keberangkatan, pertimbangkan node tetangga yang belum terjamah dan hitung
jaraknya dari titik keberangkatan.
4. Setelah
selesai mempertimbangkan setiap jarak terhadap node tetangga, tandai node yang
telah terjamah sebagai “Node terjamah”. Node terjamah tidak akan pernah di cek
kembali, jarak yang disimpan adalah jarak terakhir dan yang paling minimal
bobotnya.
5. Set
“Node belum terjamah” dengan jarak terkecil (dari node keberangkatan) sebagai
“Node Keberangkatan” selanjutnya dan lanjutkan dengan kembali ke step 3.
4. Kompleksitas Kesalahan
Dalam konteks kecerdasan buatan dalam permainan video,
kecurangan mengacu pada programmer agen memberikan akses ke informasi yang
tersedia kepada pemain. Dalam sebuah contoh sederhana, jika agen ingin tahu
apakah pemain dekatnya mereka dapat menjadi diberikan kompleks, manusia seperti
sensor (melihat, mendengar, dll), atau mereka bisa menipu dengan hanya meminta
mesin permainan untuk posisi pemain. Penggunaan kecurangan dalam AI menunjukkan
keterbatasan “kecerdasan” dicapai artifisial, secara umum, dalam permainan di
mana kreativitas strategis sangat penting, manusia dengan mudah bisa
mengalahkan AI setelah minimal trial and error jika bukan untuk keuntungan ini.
Kecurangan sering diimplementasikan untuk alasan kinerja di mana dalam banyak
kasus mungkin dianggap dapat diterima sepanjang pengaruhnya tidak jelas bagi
pemain. Sedangkan kecurangan hanya merujuk hak istimewa yang diberikan secara
khusus untuk AI itu tidak termasuk kecepatan tidak manusiawi dan presisi alami
untuk pemain-komputer mungkin panggilan keuntungan yang melekat komputer
“kecurangan” jika mereka menghasilkan agen bertindak tidak seperti pemain
manusia.
Kecurangan AI adalah aspek yang terkenal dari seri
Peradaban Sid Meyer, dalam pertandingan tersebut, pemain harus membangun kerajaan
dari awal, sedangkan kerajaan komputer menerima unit tambahan tanpa biaya dan
dibebaskan dari pembatasan sumber daya.
5. Jenis Game AI
a. RTS (Real Time Strategy)
Game ini biasanya
bersifat turn based ataupun bisa dimainkan secara bersamaan, identik dengan
bermain melawan human intelegent (manusia vs manusia) yang biasanya menggunakan
LAN ataupun Internet. Game ini bisa dikatakan game perang-perangan. Contoh game
RTS adalah (DOTA, StarCraft, Civilization).
b. RPG (Role Playing Game)
Game ini memiliki
unsur yang unik, karena biasanya tidak ada tamat dalam game seperti ini
(Kalaupun tamat, hanya ceritanya saja, dan kalian masih bisa leveling atau
grinding sesuka hati). Kalian akan menjalankan sebuah main character yang bisa
kalian costumize, mencari uang, membangun koneksi dengan NPC (non playable
player) dan sebagainya. Contoh dari game RPG adalah (KOA, Skyrim, The Witcher,Ragnarok).
c. FPS (First Person Shooter)
FPS adalah game
Tembak-tembakan, pukul-pukulan, tusuk-tusukan yang menggunakan sudut pandang
orang pertama. Biasanya kita hanya bisa melihat tangan dari character kita.
Contoh game ini FPS adalah (Call of Duty, Counter Strike, Far Cry 3,Point Blank).
d. TPS (Third Person Shooter)
TPS sama definisinya
dengan FPS. Hanya saja sudut pandangnya yang berbeda. Di TPS kita memakai sudut
pandang orang ketiga. Kita bisa melihat keseluruhan character dari belakang
(punggung). Contoh game TPS adalah (Dark Souls, Dark Siders, Assassins Creed,PUBG).
e. Sand Box
Game yang bersetting
disuatu daerah, jadi kita bertualang pada suatu map yang sudah disediakan, dan
kita bebas menjelajahinya tanpa harus loading ketika berpindah kesuatu daerah,
biasanya game-game yang seperti ini game yang paling banyak peminatnya apalagi
kita biasanya disuguhkan dengan “kebebasan” didalam game seperti ini. Contoh
game Sand Box (GTA, Saints Row, Sleeping Dogs).
6. Kecepatan dan Memori
Kebanyakan program AI
menuntut memori yang besar dan kecepatan yang tinggi.
Sumber :
