ARSITEKTUR GAME ENGINE
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



