Game Engine

Pada seri ketiga ini saya ingin berbagi resep. Resepnya adalah dua kata berikut: game engine. Apanya yg resep? Bahkan makhluk apa itu game engine? Ikuti pembahasan saya sampai bawah ;).

Coba bayangkan game Counter Strike. Kalau anda pernah belajar programming pasti bisa membayangkan betapa menggunung pekerjaan yg harus dilakukan untuk membuatnya. Bagaimana membuat program yang “bermain” dalam ruang 3 dimensi, bagaimana agar jika objek hero digerakkan pemain lalu menabrak tembok maka harus ditahan, ndak lucu khan kalau tembus tembok. Belum lagi menyulap baris-baris code C# atau Java kita menjadi grafis dan efek memukau nan menawan… Jangankan membuatnya, belajar membuatnya saja makan waktu tahunan!

Di sinilah game engine menjadi resep. Game engine adalah strategi akselerasi plus kemudahan. Dengan game engine, Anda yang belum pernah belajar programming bisa membuat game selevel Counter Strike dalam 1 bulan. How come? Karena sebagian besar pekerjaan Anda sudah dikerjakan orang lain, si pembuat game engine.

Game engine adalah framework atau tool. Ia ibarat WordPress, dengan WordPress kita tak perlu mengerti PHP dan MySQL utk dapat membuat web yg dinamis, tertata, indah pula. Jadi Anda tinggal install, pelajari menggunakannya, drag-and-drop objek-objek bangunan dan tentara, definisikan propertinya dan jadilah Counter Strike J

Game engine adalah software khusus untuk membuat game. Banyak sekali tersedia berbagai game engine untuk berbagai kebutuhan. Untuk membuat game desktop/PC maupun console (PS, Nintendo, dsb), untuk membuat First Person Shooter (seperti Counter Strike) maupun Real Time Strategy (seperti Empire Earth), bahkan untuk membuat mobile game maupun Massive Multiplayer Online Game (MMOG).

Game Engine menyediakan fitur-fitur yang acapkali ada pada game namun sulit membuatnya. Bagaimana agar karakter kita tidak menembus tembok sebenarnya adalah hal yang sangat sulit programming-nya. Namun di game engine fitur tersebut automatis terpakai. Untuk game FPS, fitur yang tinggal pakai lain misalnya membuat dunia permainan 3D, menaruh objek-objek ke dalam dunia tersebut, animasi, kecerdasan musuh, dsb. Dengan demikian, waktu pembuatan game bisa dipangkas sangat signifikan. Namun, karena game engine berfungsi sebagai middleware, kekurangannya adalah kustomisasi kita menjadi terbatas. Anda tidak dapat membuat website seperti facebook menggunakan wordpress khan… J

Game engine memberikan kita editor visual untuk memakai komponen-komponen sebuah game. Berbagai tool tersebut biasanya berupa Integrated Development Environment (IDE) sehingga nyaman sekali kita pakai. Biasanya komponen-komponen tersebut juga tidak kaku harus diterima apa adanya, dapat pula dikembangkan lagi sendiri atau diganti dengan komponen lain yang lebih sesuai dengan keinginan kita.

Mari kita bahas sebuah study case. Ada sebuah game engine bernama Neoaxis. Game engine ini menyediakan berbagai editor (map editor, resources editor, dsb) plus integrasi dari 3 engine utama yaitu rendering engine, physics engine dan sound engine. Rendering engine bertanggung jawab untuk membuat tampilan yg indah menawan namun tetap efisien prosesnya. Default-nya Neoaxis memakai OGRE (Open Graphic Rendering Engine). Kita bisa memilih apakah mau menggunakan Direct X. Physics engine membawa hukum-hukum fisika di dunia nyata kita ke dalam game. Collision detection, gravitasi, dsb tinggal dipakai, kita terhindar dari membuat code perhitungan fisika yang rumit itu. Di Neoaxis, kita dapat memilih antara library Nvidia PhysX atau ODE (Open Dinamic Engine). Subengine terakhir  adalah sound engine. Kita tinggal browse file suara yang kita inginkan, dibenamkan ke objek yang mana dan pada event apa maka jadilah kita memiliki fitur suara 3 dimensi surround sound pada game kita. Ketiga engine ini sudah umum ada pada game engine lain yang sejenis. Jadi, bahkan game engine juga menerapkan strategi reusability J. Kunjungi website neoaxis www.neoaxis.com untuk mempelajari lebih jauh kira-kira seperti apa makhluk bernama game engine.

Selain Neoaxis, masih banyak game engine lainnya. Beberapa yang terkenal adalah unity 3D (http://unity3d.com) yang merupakan freeware namun handal dengan dukungan cross platform yang baik, Albinary Open Platform yang berbasis Java, Build Engine yang digunakan untuk membuat game Duke Nukem, dsb. Adapula game engine yang ditelurkan dari sebuah game, misalnya CryENGINE2 yang digunakan untuk membuat game legendaris Crysis.

2 comments found

Leave comment

Your email address will not be published. Required fields are marked with *.

This site uses Akismet to reduce spam. Learn how your comment data is processed.