Nama: Bobby Kho Ricardo
NPM: 52414207
Kelas: 3IA22
Mata Kuliah: Pengantar Teknologi Game
Nama Dosen: Rifki Amalia
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:
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.
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.
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.
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.
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.
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.
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 :
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.
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.
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.
sumber:
http://vanillabluse.blogspot.co.id/2016/04/arsitektur-game-engine.html
sumber:
http://vanillabluse.blogspot.co.id/2016/04/arsitektur-game-engine.html
0 comments:
Post a Comment