Pengertian Game Engine (Mesin Game)
Game Engine adalah system perangkat lunak yang
dirancang untuk menciptakan dan pengembangan video game. Ada banyak mesin
permainan 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 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. Proses
pengembangan permainan sering dihemat oleh sebagian besar menggunakan kembali
mesin permainan yang sama untuk menciptakan permainan yang berbeda.
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().’ Biasanya program utama ini relatif
pendek. Game engine adalah program yang ‘memotori’ jalannya suatu program game.
Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka
engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan
ke dalam mp3 player tersebut. Dengan adanya engine, waktu, tenaga dan biaya
yang dibutuhkan untuk membuat game software menjadi berkurang secara
signifikan. Beberapa game dengan jenis dan gameplay yang hampir sama bisa
dibuat dengan sedikit usaha bila terlebih dulu dibuat engine-nya. Setelah
engine diselesaikan, programmer hanya perlu menambahkan program utama, memakai
resources (objek 3D, musik, efek suara) yang baru, dan, jika benar-benar
dibutuhkan, sedikit memodifikasi engine sesuai kebutuhan spesifk dari game yang
bersangkutan. Program game engine seluruhnya berorientasi objek. Dia lebih
bersifat reaktif daripada prosedural. Sulit untuk menggambarkan engine secara
keseluruhan dalam flow-chart, karena alur program bisa diatur sesuai dengan
keinginan pemakai engine, yaitu game programmer.
Tujuan Penggunaan Game Engine
Game engine menyediakan seperangkat alat pengembangan
visual di samping komponen software digunakan kembali. Alat-alat ini umumnya
diberikan dalam suatu lingkungan pengembangan terpadu untuk mengaktifkan
disederhanakan, perkembangan pesat dari permainan dengan cara data-driven.
Mesin pengembang Game upaya untuk “pra-menciptakan roda” dengan mengembangkan
suite perangkat lunak kuat yang mencakup banyak unsur pengembang game mungkin
perlu untuk membangun sebuah permainan. Kebanyakan mesin permainan suite
menyediakan fasilitas yang memudahkan pengembangan, seperti grafik, suara,
fisika dan fungsi AI. Mesin permainan ini kadang-kadang disebut “middleware”
karena, seperti dengan istilah naluri bisnis, mereka menyediakan sebuah
platform perangkat lunak yang fleksibel dan dapat digunakan kembali yang
menyediakan semua fungsionalitas inti yang dibutuhkan, langsung dari kotak,
untuk mengembangkan sebuah aplikasi permainan sambil mengurangi biaya ,
kompleksitas, dan waktu-ke-pasar-semua faktor penting dalam industri video game
yang sangat kompetitif. Gamebryo dan RenderWare adalah seperti program
middleware banyak digunakan.
Seperti solusi middleware lainnya, mesin permainan
biasanya menyediakan abstraksi platform, yang memungkinkan permainan yang sama
untuk dijalankan pada berbagai platform termasuk game konsol dan komputer
pribadi dengan sedikit, jika ada, perubahan yang dibuat ke kode sumber
permainan. Seringkali, mesin permainan dirancang dengan arsitektur berbasis
komponen yang memungkinkan sistem tertentu dalam mesin yang akan diganti atau
diperpanjang dengan lebih khusus (dan sering kali lebih mahal) komponen
middleware game seperti Havok untuk fisika, Miles Sound System untuk suara,
atau Bink untuk Video. Beberapa mesin permainan seperti RenderWare bahkan
dirancang sebagai rangkaian dihubungkan secara longgar komponen middleware
permainan yang bisa selektif dikombinasikan untuk membuat mesin khusus, bukan
pendekatan yang lebih umum dari memperluas atau menyesuaikan solusi
terintegrasi yang fleksibel. Namun diperpanjang tercapai, hal itu tetap menjadi
prioritas tinggi dalam mesin game karena berbagai kegunaan yang mereka
diterapkan. Meskipun kekhususan nama, mesin permainan yang sering digunakan
untuk jenis lain aplikasi interaktif dengan kebutuhan grafis real-time seperti
demo pemasaran, visualisasi arsitektur, simulasi pelatihan, dan lingkungan
pemodelan.
Beberapa mesin permainan hanya menyediakan 3D
real-time rendering kemampuan bukan berbagai fungsi yang dibutuhkan oleh game.
Mesin ini mengandalkan pengembang game untuk melaksanakan seluruh fungsi ini
atau merakit dari komponen middleware permainan lainnya. Jenis mesin umumnya
disebut sebagai “mesin grafis,” “mesin render,” atau “mesin 3D” bukan meliputi
lebih istilah “mesin permainan.” Terminologi ini tidak konsisten banyak
digunakan sebagai fitur lengkap mesin permainan 3D disebut hanya sebagai “mesin
3D.” Beberapa contoh mesin grafis adalah: Crystal Space, Genesis3D, Irrlicht,
JMonkey Engine, OGRE, RealmForge, Truevision3D, dan Visi Engine. Modern
permainan atau mesin grafis umumnya memberikan grafik adegan, yang merupakan
representasi berorientasi objek dari dunia permainan 3D yang sering
menyederhanakan desain game dan dapat digunakan untuk rendering yang lebih
efisien dari dunia maya yang luas.
Tipe Game Engine
Game engine biasanya datang dengan berbagai macam
jenis dan ditujukan untuk berbagai kemampuan pemrograman. Ada 3 tipe game
engine yang ada saat ini, diantaranya :
1. Roll-your-own game engine
Banyak perusahaan game kecil seperti publisher
indie biasanya menggunakan engine-nya sendiri. Mereka menggunakan API seperti
XNA, DirectX atau OpenGL untuk membuat game engine mereka sendiri. Di sisi
lain, mereka kadang menggunakan library komersil atau yang open source.
Terkadang mereka juga membuat semuanya mulai dari nol. Biasanya game engine
tipe ini lebih disukai karena selain kemungkinan besar diberikan secara gratis,
juga memperbolehkan mereka (para developer) lebih fleksibel dalam
mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine
mereka sendiri. Kelemahannya banyak engine yang dibuat dengan cara semacam ini
malah menyerang balik developernya. Tower Games Studio membutuhkan satu tahun
penuh untuk menyempurnakan game engine-nya, hanya untuk ditulis ulang semuanya
dalam beberapa hari sebelum penggunaannya karena adanya bug kecil yang sangat
mengganggu.
2. Mostly-ready game engines
Engine ini biasanya sudah menyediakan semuanya
begitu diberikan pada developer/programer. Semuanya termasuk contoh GUI,
physiscs, libraries model, texture dan lain-lain. Banyak dari mereka yang sudah
benar-benar matang, sehingga dapat langsung digunakan untuk scripting sejak
hari pertama. Game engine semacam ini memiliki beberapa batasan, terutama jika
dibandingkan dengan game engine sebelumnya yang benar-benar terbuka lebar. Hal
ini ditujukan agar tidak terjadi banyak error yang mungkin terjadi setelah
sebuah game yang menggunakan engine ini dirilis dan masih memungkinkan game
engine-nya tersebut untuk mengoptimalkan kinerja game-nya. Contoh tipe game
engine seperti ini adalah Unreal Engine, Source Engine, id Tech Engine dan
sebagainya yang sudah sangat optimal dibandingkan jika harus membuat dari awal.
Dengan hal ini dapat menyingkat menghemat waktu dan biaya dari para developer
game.
3. Point-and-click engines
Engine ini merupakan engine yang sangat dibatasi,
tapi dibuat dengan sangat user friendly. Anda bahkan bisa mulai membuat game
sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D.
Dengan sedikit memanfaatkan coding, kamu sudah bisa merilis game
point-and-click yang kamu banget. Kekurangannya terletak pada terbatasnya jenis
interaksi yang bisa dilakukan dan biasanya hal ini mencakup semuanya, mulai
dari grafis hingga tata suara. Tapi bukan berarti game engine jenis ini tidak
berguna, bagi developer cerdas dan memiliki kreativitas tinggi, game engine
seperti ini bisa dirubah menjadi sebuah game menyenangkan, seperti Flow. Game
engine ini memang ditujukan bagi developer yang ingin menyingkat waktu
pemrogramman dan merilis game-game mereka secepatnya.
Beberapa Contoh Game Engine Open Source :
- 3Dgame Studio
- Delta 3D
- UnrealEngine
- Panda3D
- Torque
- Quake Engine