Sunday, 17 April 2016

Game Engine

GAME ENGINE

Game engine adalah 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 di buat. Mulai dari sistem rendering, physics, arsitektur suara scripting, A.I, dan bahkan sistem networking. Game engine dapat dikatakan sebagai jiwa dari seluruh aspek sebuah game.
Ada banyak game engine yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. Fungsionalitas inti biasanya disediakan oleh game engine mencakup mesin render (“renderer”) untuk 2D atau 3D grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi, dan adegan grafik. Proses pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali mesin permainan yang sama untuk menciptakan permainan yang berbeda.

Berikut adalah beberapa jenis-jenis software game engine :
1.    Unity

Unity merupakan suatu aplikasi yang digunakan untuk mengembangkan game multi-platform yang didesain agar mudah digunakan. Editor pada unity dibuat dengan user interface yang sederhana. Grafis pada unity dibuat dengan grafis tingkat tinggi untuk OpenGL dan directX. Unity mendukung semua format file, terutama format umum seperti semua format art applications.

Unity secara rinci digunakan untuk membuat video game 3D, real time animasi 3D, dan visualisasi arsitektur dan isi serupa yang interaktif lainnya. Editor unity dapat menggunakan plugin untuk web player dan menghasilkan game browser yang didukung oleh Windows dan Mac. Plugin web player dapat juga dipakai untuk widgets Mac.

Kelebihan Unity :
- Gratis
- Multiplatform
- Mempercepat desain level / layout di game dengan adanya editor WYSIWYG

Kekurangan Unity :
- Memori yang digunakan banyak
- Butuh penyesuaian yang agak kompleks pada saat develop game 2D tanpa bantuan plugin
- Perlu penyesuaian mengikuti gaya component based

2. Blender


Blender merupakan OSS (Open Source Software) atau istilah lainnya software yang dapat diunakan di berbagai macam OS (Operating System) untuk membuat konten multimedia khusunya 3D. 

Blender dapat digunakan untuk membuat visualisasi 3D, stills, sera siaran dan video berkualitas bioskop. Sedangkan penggabungan mesin 3D real-time, memungkinkan penciptaan konten 3D interaktif untuk pemutaran yang berdiri sendiri. Blender memiliki berbagai macam kegunaan termasuk pemodelan, rendering, texturing, rigging, pembobotan, editing non-linear, scripting, composite, post-produksi dan banyak lagi.

Kelebihan Blender :
- Open source
- Multiplatform
- Update
- Free
- Lengkap
- Ringan
- Komunitas terbuka

3. Ogre

Ogre merupakan singkatan dari Object-Oriented Graphics Rendering Engine yang merupakan game engine fleksibel yang berbabsis scene ditulis dengan bahasa C++ didesain agar lebih mudah dipakai oleh para developer untuk memproduksi game dan demo yang menggunakan hardware 3D. Library kelas menggambarkan semua rincian dari penggunaan sistem library seperti Direct3D dan OpenGL yang menyediakan sebuah antarmuka berbasis pada objek dunia dan kelas intuitif lainnya.

Kelebihan Ogre :
- Freeware
- Open source
- Dapat memilih render yang diinginkan (OpenGL atau DirectX)
- Kemungkinan kinerja Ogre dalam scene culling lebih baik
- Dapat dirender dengan baik meskipun dengan kartu grafis bawaan intel
- Mempunyai komunitas yang besar

Kekurangan Ogre :
- Hanya sebuah rendering engine dilengkai engan tool jarongan, suara dan lain sebagainya.

4. Crystal Space
U

Crystal Space adalah suatu kerangka kerja untuk mengembangkan 3D aplikasi yang ditulis dalam C++ oleh Jorrit Tyberghein dan lain-lain. Rilis publik pertama adalah pada 26 Agustus 1997. Crystal space biasanya digunakan sebagai game engine tetapi kerangka lebih umum dan dapat digunakan untuk setiap jenis visualisasi 3D. Crystal space sangat portabel dan berjalan pada Microsoft Windows, GNU/Linux, Unix dan Mac OS X. Crystal space merupakan freeware, dilisensikan di bawah GNU Lesser General Public License, dan SourceForge.net ‘s Project of the Month untuk Februari 2003. Opsional dapat menggunakan OpenGL (di semua platform), SDL (semua SDL platform), X11 (Unix atau GNU / Linux) dan SVGAlib (GNU / Linux). Ini dapat juga secara opsional menggunakan rutin assembler menggunakan NASM dan MMX.

5. Esenthel Engine

Esenthel Engine merupakan salah satu contoh game engine berbayar. Torque Game Engine Lanjutan (sebelumnya dikenal sebagai torsi Shader Engine) adalah versi yang diperluas dari Torque Game Engine yang dibuat untuk mendukung teknologi canggih termasuk shader, lighting per-pixel, dan medan besar. Versi mesin telah porting ke Xbox dan Xbox 360 konsol sistem Microsoft. Beberapa Xbox Live Arcade game telah dirilis menggunakan mesin Torque, terutama Marble Blast Ultra. Meskipun TGEA mendukung ada Torque Legacy Medan, TGEA dimasukkan mesin medan render yang sama sekali baru, Medan Engine Atlas, yang merupakan perbaikan atas medan dicampur TGE. Atlas digunakan hardware GPU untuk membuat blok medan besar dan tekstur nya. Hal ini memungkinkan Atlas untuk skala dengan sistem yang lebih cepat dari masa depan. Sebuah sistem render air berbayang dilaksanakan dengan refleksi penuh, refraksi, dan refleksi Fresnel. TGEA dimasukkan sistem pencahayaan berdasarkan Torque Pencahayaan Kit, termasuk alat cahaya manajer.


Sumber :


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