Assalamu’alaikum Wr.
Wb.
Hai sobat blogger, kali ini saya akan membahas mengenai
AI(Artificial Intelligence) pada game. Namun, sebelum kita lanjutkan apakah ada
yang tau pengertian dari AI sendiri? AI atau biasa disebut kecerdasan buatan
merupakan kecerdasan yang diciptakan dan dimasukkan ke dalam suatu mesin
(komputer) sehingga dapat melakukan pekerjaan seperti yang dapat dilakukan oleh
manusia. Contohnya jika kita bermain game lawannya yaitu komputer, dan
kecerdasan pada komputer biasanya pada game ditentukan oleh level. Lawan kita
itulah yang dinamakan AI, telah dirancang sedemikian rupa sehingga memiliki
kemampuan yang berbeda-beda.
Penggunaan AI pada game sendiri terdapat 2 macam yang
masing-masing memiliki karakteristik yang berbeda-beda diantaranya adalah
seperti dibawah ini:
A. Decision Making
Decision Making merupakan serangkaian algoritma yang dirancang
sedemikian rupa dengan cara memasukkan beberapa kemungkinan langkah yang bisa
diambil oleh suatu aplikasi. Decision Making pada game memberikan kemampuan
suatu karakter untuk menentukan langkah apa yang akan diambil. Cara kerja dari
Decision Making adalah dengan menentukan satu pilihan diantara banyak list yang
telah dibuat pada algoritma yang dirancang.
Decision Making
sendiri terbagi menjadi 3 bagian yakni :
1. Decision Tree
Decision Tree atau biasa disebut pohon keputusan merupakan
metode klasifikasi dan prediksi yang sangat kuat dan terkenal. Metode pohon
keputusan mengubah fakta yang sangat besar menjadi pohon keputusan yang
mempresentasikan aturam. Aturannya dapat dengan mudah dipahami dengan bahasa
yang alami. Aturan ini juga dapat diekspresikan dalam bentuk bahasa basis data
seperti SQL untuk mencari record pada kategori tertentu. Selain itu, pohon
keputusan juga berguna untuk mengeksplorasi data, menemukan hubungan
tersembunyi antara sejumlah calon variabel input dengan sebuah variabel target.
Karena pohon keputusan memadukan antara eksplorasi data dan pemodelan, pohon
keputusan ini sangat bagus sebagai langkah awal dalam proses pemodelan bahkan
ketika dijadikan sebagai model akhir dari beberapa teknik lain (J R Quinlan,
1993).
2. State Machine
FSM(Finite State Machines) merupakan sebuah metodologi
perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja
sistem dengan menggunakan tiga hal berikut :
§ State(Keadaan)
§ Event(Kejadian)
§ Action(Aksi)
Pada suatu saat ketika periode waktu yang cukup signifikan,
sistem akan berada pada salah state yang aktif. Kemudian sistem dapat beralih
atau bertransisi menuju state yang lain jika mendapatkan suatu masukan atau
event tertentu, baik yang berasal dari perangkat luar ataupun komponen dalam
sistemnya itu sendiri. Transisi keadaan ini biasanya disertai oleh aksi yang
dilakukan oleh sistem ketika menanggapi masukan. Aksi yang dilakukan dapat
berupa aksi yang sederhana atau bisa melibatkan rangkaian proses yang relative
kompleks.
3. Rule System
Rule Based System merupakan metode pengambilan keputusan yang
berdasarkan pada aturan-aturan tertentu yang telah ditetapkan. RBS dapat
diterapkan pada agen virtual dalam bentuk kecerdasan buatan sehingga dapat
melakukan tindakan tertentu. Tindakan tersebut dipresentasikan oleh set aturan
yaitu penyebab, proses dan hasil dari tindakan yang dilakukan.
RBS merupakan sistem yang baik jika menjawab pertanyan mengenai
What(Apa), How(Bagaimana), dan Why(Mengapa) dari Rule Base(RB) selama proses
inferensia. Jawaban serta penjelasannya dapat disediakan dengan baik.
B.
Path Finding
Metode Path Finding seringkali
dijumpai pada game yang bergenre strategi,
dimana kita sebagai user menunjuk satu karakter untuk digerakkan ke lokasi
tertentu dengan cara mengklik lokasi yang akan dituju. Maka, si karakter
tersebut akan bergerak ke arah yang telah ditentukan, dan secara “cerdas” dapat
menemukan jaur terpendek ataupun menghindari rintangan yang ada.
Metode pada Path Finding terbagi menjadi 4 bagian yakni:
1. Waypoints
Merupakan titik acuan/kumpulan koordinat yang digunakan untuk
keperluan navigasi. Maksud dari keperluan navigasi disini adalah mengidentifikasi
sebuah titik dipeta. Disetiap koordinat biasanya menyertakan longitude,
latitude, dan terkadang altitude untuk keperluan navigasi di udara.
2. A* Searching
Algoritma A* merupakan yang sering digunakan pada game yang
menggunakan metode pathfinding. Algoritma ini dipilih karena A* sangat mudah
untuk diimplementasikan dan sangat efisien. Dengan menggunakan algoritma A*
kita dapat menentukan jalur terpendek. Pada algotitma ini akan menyeleksi
dengan cara membuang langkah yang tidak perlu dengan mempertimbangkan bahwa
langkah yang dibuang dipastikan tidak mencapai solusi yang diinginkan.
Prinsip dari algoritma ini yaitu dengan cara
mencari jalur terpendek dari sebuah simpul awal (Starting Point)
menuju ke simpul tujuan dengan memperhatikan harga (F) terkecil. Algoritma A*
akan memperhitungkan cost dari current state ke tujuan dengan fungsi heuristic,
selain itu algoritma ini juga mempertimbangkan cost yang
telah ditempuh selama ini dari initial state ke current state. Jadi maksudnya jika jalan yang
telah ditempuh terlalu panjang dan ada jalan lain yang cost nya lebih kecil tetapi memberikan posisi yang
sama jika dilihat dari goal, maka
jalan yang lebih pendeklah yang akan dipilih.
3. Dijkstra
Algoritma Dijkstra yang dinamai penemunya
yakni seorang ilmuwan komputer, Edsger Dijkstra merupakan sebuah algoritma yang
rakus atau biasa dikenal dengan algoritma greedy. Algoritma
ini biasa dipakai dalam memecahkan permasalahan jarak terpendek (shortest path problem) untuk sebuah graf
berarah (directed graph) dengan bobot-bobot sisi (edge weights) yang bernlai positif.
4. Tactical Pathfinding
Tactical Pathfinding merupakan algoritma
pencarian jalur yang bisa melakukan pencarian jalur terpendek dengan menghitung
bobot ancaman. Implementasi algoritma ini dapat memberikan gerakan taktis
pada non-player character. Algoritma ini dilakukan
berdasarkan algoritma pencarian jalur A* yang ditambah dengan perhitungan
bobot.
Sekian dulu penjelasan mengenai Artificial Intelligence pada
Game diatas semoga pembahasan barusan bisa menambah wawasan para blogger maupun
pembaca. Mohon maaf jika terdapat kekurangan dalam pembahasannya karena
sesungguhnya tidak ada yang jauh lebih sempurna dari Allah SWT.
Akhir kata saya ucapkan terimakasih dan Wassalamu’alaikum Wr.
Wb.
Referensi:
§ http://www.elektro.undip.ac.id/iwan/Perancangan%20Software%20Embedded%20System%20Berbasis%20FSM.pdf
Arsitektur Game Engine
Kali ini saya akan
menjelaskan pertanyaan-pertanyaan yang sering muncul dalam pikiran kita yang
baru mengenal dunia game atau pembuatan sebuah game.
Sebelum membuat sebuah
game kita harus dapat memahami dasar pembuatan game, dari segi alur ataupun
rancangan atau sering disebut “Arsitektur Game”.
Disini saya akan
menjelaskan apa itu “Arsitektur game” ?
Sebelum melangkah
lebih lanjut ke dalam arsitektur game kita harus tahu dulu apa itu Game Engine.
Game Engine
Perangkat lunak yang
dapat membuat atau mengembangkan sebuah game yang ingin kita buat dapat disebut
game engine. Game ini dapat berbagai genre game yang dapat Anda buat seperti
Action, shooter, adventura dan sejenisnya.
Game engine
menyediakan seperangkat alat pengembangan visual di samping komponen software
digunakan kembali. Alat-alat ini umumnya diberikan dalam suatu lingkungan
pengembangan terpadu untuk mengaktifkan disederhanakan, perkembangan pesat dari
permainan dengan cara data-driven. Mesin pengembang Game upaya untuk
“pra-menciptakan roda” dengan mengembangkan suite perangkat lunak kuat yang
mencakup banyak unsur pengembang game mungkin perlu untuk membangun sebuah
permainan. Kebanyakan mesin permainan suite menyediakan fasilitas yang
memudahkan pengembangan, seperti grafik, suara, fisika dan fungsi AI. Mesin
permainan ini kadang-kadang disebut “middleware” karena, seperti dengan istilah
naluri bisnis, mereka menyediakan sebuah platform perangkat lunak yang
fleksibel dan dapat digunakan kembali yang menyediakan semua fungsionalitas
inti yang dibutuhkan, langsung dari kotak, untuk mengembangkan sebuah aplikasi
permainan sambil mengurangi biaya , kompleksitas, dan waktu-ke-pasar-semua
faktor penting dalam industri video game yang sangat kompetitif. Gamebryo dan
RenderWare adalah seperti program middleware banyak digunakan.
Arsitektur Game
Adalah rancangan atau
blueprint dari sebuah game. Sedangkan arsitektur mesin game adalah system
perangkat lunak yang dirancang untuk menciptakan dan pengembangan video
game. Dapat dikatakan bahwa arsitektur mesin game itu adalah rancangan
dari sistem perangkat lunak dari game itu sendiri.
Beberapa elemen yang
terdapat dalam game engine, yaitu:
·
Tools/Data
Pada pengembangan game
paling tidak dibutuhkan beberapa tools seperti 3d model editor, level editor
dan graphics programs. Bahkan jika diperlukan, seringkali kita mengembangkan
game engine tersebut dengan menambahkan beberapa code dan fitur yang
diperlukan.
·
System
System adalah bagian
dari game engine yang berfungsi untuk melakukan komunikasi dengan hardware yang
berada di dalam mesin. System adalah bagian yang membutuhkan perubahan yang
cukup banyak apabila dilakukan implementasi pada platform yang berbeda. Di
dalam system sendiri terdapat beberapa sub system seperti graphics, input,
sound, timer, configuration. System bertanggung jawab untuk melakukan
inisialisasi, update dan mematikan sub system yang terdapat di dalamnya.
·
Console
Console dapat merubah
setting game dan setting game engine di dalam game tanpa perlu melakukan
restart pada game tersebut. Console biasa digunakan dalam proses debugging,
seperti misalnya apabila game engine tersebut mengalami error maka kita hanya
mengoutputkan error message tersebut ke dalam console tanpa harus melakukan
restart.
·
Support
Support merupakan
bagian yang sering digunakan pada system di galam game engine. Support
berisikan rumus-rumus matematika yang biasa digunakan, vector, matrix, memory,
file loader. Merupakan dasar dari game engine dan hampir digunakan dalam semua
project game engine.
·
Renderer/Engine Core
Renderer/engine core
terdiri dari beberapa sub yaitu visibility, collision detection dan response,
camera, static geometry, dynamic geometry, particle systems, billboarding,
meshes, skybox, lighting, fogging, vertex shading dan output.
·
Game Interface
Game interface
merupakan layer antara game engine dan game itu sendiri. Berfungsi sebagai
control yang bertuuan untuk memberikan interface apabila di dalam game engine
tersebut terdapat fungsi yang bersifat dinamis sehingga memudahkan untuk
mengembangkan game tersebut.
·
The Game
Game merupakan inti
dari penggunaan game engine sendiri, sehingga ini tergantung bagaimana pengguna
dalam mengembangkannya.
Tipe-Tipe Game Engine
Game engine biasanya
datang dengan macam-macam jenis dan tujuannya. Ada 3 tipe game engine
yaitu sebagai berikut :
1. Roll-your-own game
engine
Banyak perusahaan game
kecil seperti publisher indie biasanya menggunakan engine-nya sendiri. Mereka
menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine
mereka sendiri. Di sisi lain, mereka kadang menggunakan library komersil atau
yang open source. Terkadang mereka juga membuat semuanya mulai dari nol.
Biasanya game engine tipe ini lebih disukai karena selain kemungkinan besar
diberikan secara gratis, juga memperbolehkan mereka (para developer) lebih
fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk
sebagai game engine mereka sendiri. Kelemahannya banyak engine yang dibuat
dengan cara semacam ini malah menyerang balik developernya. Tower Games Studio
membutuhkan satu tahun penuh untuk menyempurnakan game engine-nya, hanya untuk
ditulis ulang semuanya dalam beberapa hari sebelum penggunaannya karena adanya
bug kecil yang sangat mengganggu.
2. Mostly-ready game
engines
Engine ini biasanya
sudah menyediakan semuanya begitu diberikan pada developer/programer. Semuanya
termasuk contoh GUI, physiscs, libraries model, texture dan lain-lain. Banyak
dari mereka yang sudah benar-benar matang, sehingga dapat langsung digunakan
untuk scripting sejak hari pertama. Game engine semacam ini memiliki beberapa
batasan, terutama jika dibandingkan dengan game engine sebelumnya yang
benar-benar terbuka lebar. Hal ini ditujukan agar tidak terjadi banyak error
yang mungkin terjadi setelah sebuah game yang menggunakan engine ini dirilis
dan masih memungkinkan game engine-nya tersebut untuk mengoptimalkan kinerja
game-nya. Contoh tipe game engine seperti ini adalah Unreal Engine, Source
Engine, id Tech Engine dan sebagainya yang sudah sangat optimal dibandingkan
jika harus membuat dari awal. Dengan hal ini dapat menyingkat menghemat waktu
dan biaya dari para developer game.
3. Point-and-click
engines
Engine ini merupakan
engine yang sangat dibatasi, tapi dibuat dengan sangat user friendly. Anda
bahkan bisa mulai membuat game sendiri menggunakan engine seperti GameMaker,
Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, kamu sudah
bisa merilis game point-and-click yang kamu banget. Kekurangannya terletak pada
terbatasnya jenis interaksi yang bisa dilakukan dan biasanya hal ini mencakup
semuanya, mulai dari grafis hingga tata suara. Tapi bukan berarti game engine
jenis ini tidak berguna, bagi developer cerdas dan memiliki kreativitas tinggi,
game engine seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti
Flow. Game engine ini memang ditujukan bagi developer yang ingin menyingkat
waktu pemrogramman dan merilis game-game mereka secepatnya.
Sumber refrensi :
No comments:
Post a Comment
Apabila tidak dimengerti atau salah dalam pengetikan mohon poskan komentar anda Terma Kasih.