Thursday, 31 March 2016

Arsitektur Game Engine dan Algoritma Pembuatan Game

ARSITEKTUR GAME ENGINE

1.      Arsitektur
Arsitektur yaitu seni yang dilakukan oleh setiap individual untuk berimajinasi dan ilmu dalam merancang bangunan. Namun dalam arsitektur game engine ini, ilmu arsitektur yang kita imajinasikan bukanlah untuk merancang bangunan, melainkan merancang suatu perangkat lunak.

2.       Game Engine
Game engine adalah salah satu perangkat lunak yang bisa mempresentasikan keadaan dunia nyata kedalam dunia virtual dan dapat digunakan untuk mengembangkan aplikasi 3 dimensi.  Game engine merupakan sebuah sistem perangkat lunak (software) yang dirancang untuk pembuatan dan pengembangan suatu video game. Game engine memberikan kemudahan dalam menciptakan konsep sebuah game yang akan dibuat. Tujuan dari game engine yaitu untuk mempermudah pembuatan bagian-bagian tertentu dalam game, membagi-bagi pengembangan game menjadi modul-modul tertentu, dan memudahkan kolaborasi antar pihak.

Saat ini game engine tidak hanya digunakan untuk pembuatan game saja, tetapi dapat digunakan untuk mengembangkan sebuah augmented reality untuk berbagai macam aplikasi baik peta atau pembelajaran.

Sebuah mesin permainan adalah sebuah sistem perangkat lunak yang dirancang untuk penciptaan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol video games dan sistem operasi desktop seperti Microsoft windows, linux, dan Mac OS X. Fungsional inti biasanya disediakan oleh mesin permainan yang mencakup mesin render (“renderer”) untuk  2D atau 3D grafis, physics engine dan collision detection (dan collision response), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dan scene graph. Proses pengembangan permainan sering dihemat karena sebagian besar permainan menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.

Permainan-permainan yang dibuat dengan game engine umumnya perpaduan antara 3 dimensi, sound, animasi, dan penempatan kamera untuk menambah suasana yang kelihatan seperti nyata.

3.       Abstraksi Hardware
Kebanyakan dari suatu permainan, 3D rendering mesin atau sistem dalam mesin permainan dibangun di atas sebuah API grafis, seperti Direct 3D atau OpenGL yang menyediakan abstraksi perangkat lunak dari GPU atau video card. Sebelum hardware-accelerated 3D grafis, renderers perangkat lunak telah digunakan. Software rendering masih digunakan dibeberapa model tools untuk memberikan gambar bila akurasi visual dinilai lebih real-time performance (frame per-detik), seperti pada kasus Windows Vista, dukungan untuk Direct3D 10.

Threading adalah mengambil sesuatu yang lebih penting karena modern sistem multi-core dan meningkatnya tuntutan dalam realisme. 
Meskipun istilah yang digunakan pertama kali pada 1990-an, ada beberapa sistem sebelumnya pada tahun 1980 yang juga dianggap sebagai mesin game, seperti Sierra’s AGI dan sistem SCI, LucasArts sistem dan insentif SCUMM Software’s Freescape mesin. Namun, tidak seperti mesin permainan modern, mesin permainan ini tidak pernah digunakan dalam produk-produk pihak ketiga.

4.       Trend Terakhir
Sebagai teknologi mesin permainan yang sudah canggih dan menjadi lebih user-friendly, aplikasi mesin permainan telah diperluas dalam ruang lingkup. Dan kini digunakan untuk permainan seperti visualisasi, pelatihan, kesehatan, dan aplikasi simulasi militer. Untuk memfasilitasi aksesibilitas, platform perangkat keras baru kini sedang ditargetkan oleh mesin permainan, termasuk telepon selular dan web browser. Selain itu, kini mesin permainan lebih banyak dibangun atas bahasa tingkat tinggi seperti Java dan C# atau Python.

5.       Middleware
Sebagian besar program middleware menyediakan fasilitas yang mempermudah pembangunan, seperti grafik, suara, fisika dan fungsi AI. Beberapa middleware hanya melakaukan satu hal, tetapi mereka melakukannya dengan lebih efisien daripada mesin tujuan umum.

6.       Game Tools
Suatu alat pengembang permainan adalah aplikasi perangkat lunak khusus yang membantu atau memfasilitasi pembuatan komputer atau video game. Hamper semua alat-alat pengembang permainan dikembangkan oleh pengembang kostum untuk suatu permainan. Meskipun alat pengembang permainan dapat digunakan kembali, mereka hamper selalu mulai sebagai sumber daya untuk satu permainan.


Berikut contoh pembuatan Game menggunakan algoritma Minimax

Permainan Tic Tac Pocoyo merupakan permain tic tac toe yang bertemakan kartun Pocoyo dan mempunyai dimensi 6x6. Permainan ini adalah salah satu dari permainan yang menerapkan konsep kecerdasan buatan. Karena dalam permainan ini, seorang pemain akan berusaha mengalahkan komputer yang dirancang memiliki kecerdasan yang sama dengan manusia (Artificial Intelligence).

Algoritma yang digunakan pada game ini yaitu algoritma Minimax. Keuntungan yang didapat dengan menggunakan algoritma minimax ini yaitu algoritma minimax mampu menganalisis segala kemungkinan posisi permainan untuk menghasilkan keputusan yang terbaik karena algoritma minimax ini bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum.


 




 Gambar 1. Story Board




Rules permainan ini yaitu :
-          User memulai permainannya terlebih dahulu dan dapat menentukan tanda berkarakter Pocoyo di awal mula permainanya dimana pun selama berada di dalam papan permainan
-          Setelah itu komputer (AI) akan bekerja menempatkan tanda berkarakter Gajah untuk jalan melawan user
-          Yang berhasil membuat 6 tanda secara berturut-turut secara horizontal / vertikal / diagonal akan memenangkan permainan ini

Jadi algoritma minimax disini sangatlah berpengaruh untuk berjalannya permainan “Tic Tac Pocoyo” ini. Karena pengecekan akan akan dilakukan untuk seluruh kemungkinan yang ada sampai akhir permainan dilakukan. Pengecekan tersebut akan menghasilkan pohon permainan yang berisi semua kemungkinan tersebut.

Keuntungan yang didapat dengan menggunakan algoritma minimax yaitu algoritma minimax mampu menganalisis segala kemungkinan posisi permainan untuk menghasilkan keputusan yang terbaik karena algoritma minimax ini bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum. Semua strategi lawan akan dihitung dengan algoritma yang sama dan seterusnya. Ini berarti, pada langkah pertama komputer akan menganalisis seluruh pohon permainan. Dan untuk setiap langkahnya, komputer akan memilih langkah yang paling membuat lawan mendapatkan keuntungan minimum, dan yang paling membuat komputer itu sendiri mendapatkan keuntungan maksimum. Dalam penentuan keputusan tersebut dibutuhkan suatu nilai yang merepresentasikan kerugian atau keuntungan yang akan diperoleh jika langkah tersebut dipilih. Untuk itulah disini digunakan sebuah fungsi heurisitic untuk mengevaluasi nilai sebagai nilai yang merepresentasikan hasil permainan yang akan terjadi jika langkah tersebut dipilih. Dari nilai-nilai heuristic inilah komputer akan menentukan simpul mana dari pohon permainan yang akan dipilih, tentunya simpul yang akan dipilih tersebut adalah simpul dengan nilai heuristic yang akan menuntun permainan ke hasil akhir yang menguntungkan bagi komputer.




https://id.wikipedia.org/wiki/Arsitektur

http://sergeantfai.blogspot.co.id/2012/04/arsitektur-game-engine.html

No comments:

Post a Comment