Jumat, 26 Maret 2010

Mengenal Game Engine

Jika Anda adalah gamer sejati yang menghabiskan ribuan jam di depan computer untuk bermain game, kemungkinan besar Anda akan sering mendengar istilah Game Engine. Entah itu di forum paragamer yang melempar thread game engine atau di game balap motor/mobil yang pada saat awal permainan sering terdengar, “Start your engine…”.

Game engine mempunyai cara kerja yang sama seperti engine (mesin) pada motor atau mobil. Tanpa ada game engine, sebuah game tidak dapat dijalankan. Di dalam game engine terdapat fungsi-fungsi yang mendukung jalannya program, seperti berkomunikasi dengan graphics adapter, melakukan render 2D atau 3D, memodelkan suatu bentuk tertentu, dan memformulasikan animasi hingga gamer dapat mengontrol gerakan tokoh di layar monitor dengan nyaman. Kenapa harus ada game engine? Karena programmer game akan kehabisan waktu jika “keep re-inventing the wheel” – atau harus membuat semuanya dari awal. Beberapa rutin akan selalu sama dalam setiap game, seperti bagaimana membuat sebuah objek yang bergerak dengan kecepatan dan percepatan tertentu, bagaimana mendeteksi adanya tabrakan antarobjek, bagaimana menngani input dari user, bagaimana melakukan rendering atau pencahayaan, dan bagaimana merancang kecerdasan buatan untuk sebuah game. Rutin yang sama ini dirangkum menjadi sebuah engine yang dapat digunakan untuk berbagai macam game.

Kelahiran Game Engine

Selama bertahun-tahun, para perusahaan pengembang game membuat sendiri game engine untuk game-game produksinya. Sebut saja LucasArts dengan engine-nya yang diberi nama Script Creation Utility for Maniac Mansion (SCUMM) telah menjadi tulang punggung untuk game-game klasik era akhir 1980-an (menjelang 1990), seperti Maniac Mansion (game pertama untuk Commodore 64 yang menggunakan SCUMM), Indiana Jones and The Last Crusader: The Graphic Adventure (1988), dan The Secret of Monkey Island (1990). Ada juga Sierra’s Creative Interpreter (SCI) dari Sierra, sebuah engine untuk game-game berjenis petualangan, seperti King’s Quest series (1988), Police Quest series, dan Quest for Glory series (1988).

Bahkan engine yang menghasilkan game-game ppuler seperti idTech (engine yang menjadi tulang punggung game Quake series), dan Unreal Engine (engine yang menjadi tulang punggung untuk game seperti BioShock, Tactical Ops: Assault on Terror, Mirror’s Edge, Batman : Arkham Asylum, dan Section 8) dari EpicGames juga dimulai dari teknologi in-house yang tidak disebarkan ke public.

Beberapa tahun terakhir, baiay untuk pembuatan teknologi game engine secara in-house menjadi semakin meningkat. Hal ini disebabkan banyaknya platform yang harus dicakup. Beberapa pengembang kemudian focus secara khusus membuat game engine atau komponen game engine untuk dijual kepada perusahaan pengembang game (para pembuat game engine ini diistilahkan dengan Middleware providers). Engine buatan Middleware providers ini tentunya tidak disia-siakan oleh pengembang game. Kenapa harus menggaji beberapa programmer dengan menghabiskan anggaran ratusan rubu dollar kalau perusahaan dapat membeli sebuah game engine dengan harga ribuan dolar saja, dan dapat digunakan langsung saat itu juga? Walaupun tidak semua fitur game engine dapat digunakan, setidaknya game engine ini sangat membantu, baik dari waktu maupun biaya pembuatan game. Muncullah bisnis baru game, yaitu game engine. Seperti halnya software, beberapa game engine adalah game engine yang bersifat proprietary (berbayar), seperti SCUMM, Unreal Engine, id Tech 4, id tech 5, Jedi Engine (dipakai pada geme Star Wars : Dark Forces), Big World Technology (dipakai pada game Stargate Worlds), dan sebagainya. Namun ada juga game engine yang bersifat open source yang dapat digunakan dan dikembangkan bersama-sama. Misalnya Build Engine (yang digunakan pada game Duke Nukem 3D, dan Panda 3D yang dibuat oleh Carnegie Mellon University, dan digunakan pada game Disney’s Toon Town).

Jenis-Jenis Game Engine
Game engine muncul dalam berbagai jenis, dan untuk level permrograman yang berbeda-beda, setidaknya ada 3 level dari game engine yang umum digunakan saat ini, yaitu:

Game Engine Level Rendah

Yang dimaksud game engine level rendah adalah game engine di mana pengembang akan membuat engine-nya dengan menggunakan antarmuka aplikasi (API) yang telah ada, seperti Microsoft XNA, DirectX, OpenGL, Windows atau Linux API, dan SDL. Selain itu, mereka juga membutuhkan library (baik yang komersial maupun open source) untukmendukung game engine buatan mereka. Library yang dibutuhkan seperti library untuk perhitungan formula fisika/matematika, seperti Havok (yang digunakan di game Diablo III dan Open Dynamic Engine (yang digunakan untuk menggambar dinamika dari tubuh atau material yang lain), library grafis seperti OpenSceneGraph (yang digunakan pada game Pirates of the XXI century, serta library GUI seperti AntTweakBar).

Secara umum, game engine level rendah ini menawarkan fleksibilitas dan kebebasan dalam memilih komponen yang diinginkan dalam pengembangan game. Namun, tahap pengembangannya paling lama dibandingkan kedua level yang lain karena pengembang harus memulai hamper semuanya dari nol. Hal ini menyebabkan game engine pada level rendah ini jarang digemari oleh para game developer.

Game Engine Level Menengah

Game engine pada level menengah mempunyai fasilitas jauh lebih lengkap dibadingkan game engine pada level rendah. Rutin seperti input, GUI, rendering, perhitungan matematika hamper semua ada pada game engine ini. Beberapa engine yang masuk dalam kategori ini adalah Object-Oriented Graphics Rendering Engine atau biasa disebut OGRE. Beberapa game yang didukung oleh game engine OGRE ini adalah MotorM4X, dan Jack keane.

Selain itu, game engine open source seperti Genesis 3D, yang berbayar seperti Torque, idTech, Unreal, dan GameBryo juga merupakan game engine level menengah. Kesemua engine tersebut membutuhkan level pemrograman untuk dapat dikembangkan menjadi game yang utuh.

Game Engine Level Tinggi

Level ini merupakan level game engine termudah, yaitu hanya dengan point-and-click game telah dapat dibuat. Beberapa game engine level tinggi ini adalah GameMaker, Torque game Builder, dan Unity3D. Game engine ini didesain agar menjadi game engine yang user friendly dengan level pemrograman seminimal mungkin. Masalah yang muncul dari game engine ini adalah keterbatasannya, misalnya untuk membuat game dari jenis tertentu atau mode grafik yang tertentu. Namun bukan berarti bahwa game engine ini tidak berguna. Bahkan dengan berbagai macam batasan yang ada, masih memungkinkan untuk membuat game-game yang kreatif, cepat, tanpa perlu banyak tenaga. Game engine ini cocok bagi mereka yang pemula dalam game development.

Sumber : PC Mild Edisi 19/2009

0 comments: