Hello sahabat blogger, pasti udah ga asing lagi dong dengan yang namanya permainan(game) ?? Yapp hampir seluruh manusia di dunia pasti pernah memainkan sebuah game dan tentunya bentuk game pun juga beragam. Yang kita tau sih cuman tinggal maininnya doang, tapi taukah kalian membuat game itu tidak mudah, layaknya sebuah bangunan yang tentu juda ada arsitekturnya. Begitu pula dengan game terdapat beberapa komponen pendukung seperti game engine. Bentuk game engine pun juga beragam. Nah !!! Untuk lebih jelasnya mari simak penjelasan berikut.
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.
Arsitektur
Game Engine
Arsitek adalah pelajaran untuk membuat rancangan dari
bangunan. Sedangkan arsitektur mesin game adalah system perangkat
lunak yang dirancang untuk menciptakan dan pengembangan video game.
Dapat dikatakan bahwa arsitektur mesin game itu adalah rancangan
dari sistem perangkat lunak dari game itu sendiri.
Tahap awal dari merancang suatu game adalah memilih
jenis game yang akan dibuat agar dapat lebih terfokus dalam
mengerjakannya. Selanjutnya adalah mendesaian game yang akan dibuat.
Setelah kita memiliki desain game, langkah berikutnya adalah
mengimplementasikan desain tersebut menjadi source code. Apabila
source telah selesai dirancang, maka game tersebut dapat dimainkan
dan digunakan sesuai yang diinginkan oleh sang pembuat game. Apakah
game tersebut dibuat untuk dikomersilkan atau dikembangkan oleh
orang lain.
Beberapa
elemen yang terdapat dalam game engine, yaitu:
a) Tools/Data
Pada pengembangan game paling tidak dibutuhkan
beberapa tools seperti 3d model editor, level editor dan graphics programs.
Bahkan jika diperlukan, seringkali kita mengembangkan game engine tersebut
dengan menambahkan beberapa code dan fitur yang diperlukan.
b) System
System adalah bagian dari game engine yang berfungsi
untuk melakukan komunikasi dengan hardware yang berada di dalam mesin. System
adalah bagian yang membutuhkan perubahan yang cukup banyak apabila dilakukan
implementasi pada platform yang berbeda. Di dalam system sendiri terdapat
beberapa sub system seperti graphics, input, sound, timer, configuration.
System bertanggung jawab untuk melakukan inisialisasi, update dan mematikan sub
system yang terdapat di dalamnya.
c) Console
Console dapat merubah setting game dan setting game
engine di dalam game tanpa perlu melakukan restart pada game tersebut. Console
biasa digunakan dalam proses debugging, seperti misalnya apabila game engine
tersebut mengalami error maka kita hanya mengoutputkan error message tersebut
ke dalam console tanpa harus melakukan restart.
d) Support
Support merupakan bagian yang sering digunakan pada
system di galam game engine. Support berisikan rumus-rumus matematika yang
biasa digunakan, vector, matrix, memory, file loader. Merupakan dasar dari game
engine dan hampir digunakan dalam semua project game engine.
e) Renderer/Engine
Core
Renderer/engine core terdiri dari beberapa sub yaitu
visibility, collision detection dan response, camera, static geometry, dynamic
geometry, particle systems, billboarding, meshes, skybox, lighting, fogging,
vertex shading dan output.
f) Game
Interface
Game interface merupakan layer antara game engine dan
game itu sendiri. Berfungsi sebagai control yang bertuuan untuk memberikan
interface apabila di dalam game engine tersebut terdapat fungsi yang bersifat
dinamis sehingga memudahkan untuk mengembangkan game tersebut.
g) The
Game
Game merupakan inti dari penggunaan game engine
sendiri, sehingga ini tergantung bagaimana pengguna dalam mengembangkannya.
Tipe-Tipe Game Engine
Game
engine biasanya datang dengan macam-macam jenis dan tujuannya. Ada 3 tipe game engine yaitu sebagai berikut :
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.
0 komentar:
Posting Komentar