Nama :
Muhammad Taufiq Kurniawan
NPM :
57414565
Kelas :
3IA22
Mata Kuliah :
Pengantar Teknologi Game #
Nama Dosen :
Rifki Amalia
Tugas :
Penulisan 4
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
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 Engine
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 :
- 3D Game Studio
- Delta 3D
- Unreal Engine
- Panda 3D
- Torque
- Quake Engine
Sumber :
https://raflyjuninton93.wordpress.com/2015/05/06/arsitektur-game-engine/
Tidak ada komentar:
Posting Komentar