Rabu, 25 April 2012

Game Engine

Kali ini saya akan menuliskan artikel mengenai Game Engine yang menjelaskan latar belakang dari Game Engine beseta tujuannya 

Game Engine 

Game Engine adalah software system yang dirancang untuk menciptakan dan pengembangan video game. Beberapa mesin permainan hanya menyediakan waktu-nyata (real-time), bukan kemampuan render 3D dari beragam fungsi yang diperlukan oleh permainan. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. Mesin ini mengandalkan permainan pengembang untuk melaksanakan seluruh fungsi ini atau merakit dari komponen middleware permainan lainnya. Mesin jenis ini umumnya disebut sebagai “mesin grafis,” “mesin rendering,” atau “mesin 3D” bukannya yang lebih mencakup istilah “mesin permainan.” Namun, terminologi ini tidak konsisten digunakan sebagai banyak fitur lengkap mesin game 3D disebut hanya sebagai “mesin 3D.” Beberapa contoh dari mesin grafis adalah: RealmForge, Truevision3D, ogre, Crystal Space, Genesis3D, Irrlicht dan JMonkey Engine.

 Permainan modern atau mesin grafis umumnya memberikan adegan grafik, yang merupakan berorientasi objek representasi dari dunia permainan 3D yang sering menyederhanakan desain permainan dan dapat digunakan untuk rendering lebih efisien dari dunia maya yang luas.. Fungsionalitas inti biasanya disediakan oleh mesin permainan 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. Engine bukanlah executable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri. Diperlukan sebuah program utama sebagai entry point atau titik awal jalannya program. Pada C++, entry point-nya adalah fungsi ‘main(). 

Latar Belakang Game Engine 
Game engine pertama kali muncul pada pertengahan tahun 1990, yang berkaitan dengan game 3D misalnya First Person Shooter ( FPS ). Setelah game– game 3D Quake dan Doom ( id software ) dipasarkan, para developer cenderung memberikan lisensi game engine dan memfokuskan ke pembuatan grafik, suara, gameplay, dan design game. Pemikiran ini berdasarkan perbandingan jika harus memula membuat game dari nol lagi. Game generasi berikutnya seperti misalnya Quake 3 dan Unreal Tournament, sejak awal didesain, game ini memisahkan antara code game dengan asset game ( gambar, suara, model 3 dimensi ) dengan tujuan agar developer – developer game lainnya dapat membuat game sebanyak mungkin dengan hanya mengganti – ganti asset tanpa harus mengubah struktur dasar engine tersebut sehingga produktivitas akan lebih meningkat, mengurangi biaya untuk operasional dan sangat membantu untuk mendukung kemajuan industri game. 

Tujuan Game Engine 
Sekarang hampir semua perusahaan game memiliki game engine mereka sendiri, menggunakannya untuk membuat game mereka, dan menyimpannya untuk diri sendiri. Semakin lama kebutuhan untuk game engine yang makin modern semakin bertambah. Kebutuhan akan game engine tersebut mendasari tujuan dari game engine. Berikut ini adalah tujuan penggunaan game engine beserta alasannya :  

Mempermudah pembuatan bagian-bagian tertentu dalam game  
Pada setiap game, biasanya ada fungsi-fungsi yang mirip antara satu dengan yang lainnya. Contohnya fungsi collision detection, fungsi rendering, fungsi artifical intelligence. Karena dasar dari fungsi-fungsi tersebut sama, maka untuk mempermudah programmer, dasar-dasar semua fungsi tersebut langsung dibuat dalam game engine, dan programmer hanya tinggal menggunakan saja. Jika perlu memodifikasi lebih lanjut, setidaknya fungsi dasar sudah diterapkan dan akan mengurangi waktu yang digunakan untuk pengembangan secara keseluruhan.    

Membagi-bagi pengembangan game menjadi modul-modul tertentu 
Karena pengembangan game harus dilakukan oleh pihak-pihak yang mungkin berbeda pekerjaannya, maka tugas game engine adalah membagi-bagikan tugas kepada pihak-pihak yang terlibat sesuai dengan modul-modul dasar yang umum ada pada pengembangan game. Dan modul-modul dasar ini biasanya dibuat agar mudah untuk diperluas atau ditambahkan (extensible), agar bisa mengakomodasi semua pihak yang terlibat di dalamnya.    

Memudahkan kolaborasi antar pihak 
Banyaknya pihak yang terlibat di dalam pengembangan game, membuat komunikasi antar pihak menjadi sesuatu hal yang penting untuk menjaga kualitas dan laju pengembangan game tersebut. Game engine yang bagus biasanya memiliki fungsi agar komunikasi antar pihak yang terlibat juga diakomodasi di dalamnya. Banyak orang yang mengira bahwa game engine yang harganya mahal. Tetapi kenyataannya tidak harus demikian. Memang banyak game yang sukses menggunakan game engine yang commercial dengan harga yang mahal seperti Assasin’s Creed dengan game engine-nya Anvil. Tetapi, saat ini juga banyak game engine yang bersifat open source dan bisa digunakan untuk membuat game dengan kualitas yang tinggi. 

Demikian yang dapat saya jelaskan mengenai Game Engine. Terimakasih :) 


Sumber Referensi :
http://thesis.binus.ac.id/Doc/Bab2/2006-2-01291-MTIF-Bab%202.pdf 
http://ekobudiarso33.wordpress.com/2011/03/24/game-engine-bag-1/

Tidak ada komentar:

Posting Komentar