Game engine adalah perangkat
lunak yang dirancang untuk membuat dan mengembangkan video game. Fungsi utama yang diberikan
oleh game engine meliputi rendering untuk 2D atau
3D
graphic, collision detection, sound, scripting, animasi, artificial
intelligence, networking, memory
management, threading dan scene graph. Game engines memberikan perangkat untuk visual development dengan tambahan
komponen perangkat lunak yang dapat dipakai berulang kali. Perangkat ini pada umumnya
memberikan integrated development environment yang dapat mempermudah, serta mempercepat
pengembangan game.
Game engine juga sering
disebut juga “Game Middleware”. Game Middleware adalah software yang didalamnya sudah terdapat
elemen-elemen yang dibutuhkan oleh seorang game
developer, kebanyakan dari game middleware memberikan fasilitas guna menunjang pengembangan game dengan mudah seperti
graphics, sound dan Artificial intelligence.
Tujuan Pembuatan Game engine
Di masa lalu, hampir semua perusahaan
game memiliki game engine mereka sendiri, menggunakannya untuk membuat game
mereka, dan menyimpannya untuk diri sendiri. Semakin lama kebutuhan untuk game
engine yang makin modern semakin bertambah. Waktu demi waktu, game engine yang
mereka kembangkan sendiri mulai dirasa terlalu mahal untuk dikembangkan lebih
lanjut. Hal ini memicu beberapa developer untuk menciptakan game engine yang
terbuka untuk di franchise kan. Sebagai contoh adalah id Tech dan Unreal
Engine. Game Engine yang dijual dan di franchisekan secara umum semacam ini
disebut dengan middleware. Middleware menawarkan harga yang relatif lebih
murah, dan bagi kebanyakan studio game, menggunakan middleware merupakan solusi
cepat dan ekonomis ketimbang harus membangun sendiri engine game mereka.
Konsep dari game engine sebenernya
cukup gampang, yaitu bahan dasar yang diperlukan sebuah game untuk menjalankan
tugasnya, merender pixel demi pixel, menghitung physiscs, memperkirakan input
tombol, dan lain hal, yang memungkinkan developer kreatif dapat membuat sebuah
game dengan engine yang sama menjadi unik satu sama lain. Di analogikan sebagai
sebuah mobil, game engine sudah merupakan bagian mobil, sekitar 50% jadi. Mesin
dan rangkaian sistem pengapian, sampai pembuangan. Kurang body dan aksesoris.
Sebuah game engine memungkinkan
penggunaan kembali komponen komponen yang dapat mempercepat hadirnya game
menjadi nyata di layar monitor mu. Beberapa diantara nya yang termasuk dengan
itu adalah deteksi tubrukan, tampilan grafis, setting dalam game, artificial
intelligence dan lain lain. Semua komponen tadi disatukan dalam satu pake game
engine. Artist dan Developer, dapat menambahkan pustaka texture dan model
sendiri untuk dijadikan tokoh utama atau setting dunia dalam sebuah engine.
Sekali lagi dalam analogi game, model dan texture dalam game engine bisa
dibilang sebagai body dan aksesoris mobil.
Sebuah game engine dibagi lagi menjadi
dua bagian besar. Yaitu API dan SDK. API ( Applicaiton Programming Interfaces )
adalah bagian operating system, services dan libraries yang diperlukan untuk
memanfaatkan beberapa feature yang diperlukan. Dalam hal ini contohnya DirectX.
Sementara SDK adalah kumpulan dari libraries dan API yang sudah siap digunakan
untuk memodifikasi program yang menggunakan operating system dan services yang
sama. Biasanya, game engine menyertakan keduanya.
Contohnya dalam Unreal Engine,
menyiapkan antarmuka baku bagi programmer untuk menciptakan game nya dengan
mudah, melalui scripting engine, yang disebut UnrealScript, dan juga libraries,
yang berisi model standar dan texture standar dan juga world editor yang
disebut sebagai UnrealED.
Beberapa elemen yang ada di dalam game engine
adalah :
A.
Tools/Data
Dalam
pengembangan game, dibutuhkan data yang tidak semudah menuliskan text files. Dalam 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
sendiri adalah bagian dari game engine yang berfungsi untuk melakukan
komunikasi dengan hardware yang
berada di dalam mesin. Jika game engine sudah dibuat dengan baik maka system ini adalah satu-satunya bagian
yang membutuhkan perubahan yang cukup banyak
apabila dilakukan implementasi pada platform yang berbeda. Di dalam system sendiri terdapat beberapa sub system yaitu
graphics, input, sound, timer, configuration.
System
sendiri bertanggung jawab untuk melakukan inisialisasi, update dan mematikan
sub system yang terdapat di dalamnya.
C.
Console
Dengan
menambahkan console, kita dapat merubah setting game dan setting game engine di dalam game tanpa perlu melakukan
restart pada game tersebut. Console sendiri lebih
sering
digunakan dalam proses debugging. Apabila game engine tersebut mengalami error kita tinggal mengoutputkan error
message tersebut ke dalam console tanpa harus
melakukan
restart. Console sendiri dapat dihidupkan dan dimatikan sesuai keinginan.
D.
Support
Support
adalah bagian yang paling sering digunakan oleh system di dalam game engine. Support sendiri berisi rumus-rumus
matematika yang biasa digunakan, vector, matrix,
memory
manager, file loader. Merupakan dasar dari game engine dan hampir digunakan semua projek game engine.
E.
Renderer/Engine Core
Pada
game engine, engine core / renderer 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 sendiri merupakan layer diantara game engine dan game itu sendiri. Berfungsi sebagai control yang bertujuan
untuk memberikan interface apabila di dalam game
engine tersebut terdapat fungsi fungsi yang bersifat dinamis sehingga
memudahkan untuk mengembangkan
game tersebut.
G.
The Game
Merupakan
inti dari penggunaan game engine sendiri, sehingga terserah kita bagaimana mengembangkan game tersebut.
sumber: http://putrikero.wordpress.com/2010/03/17/game-engine/
http://en.wikipedia.org/wiki/Game_engine
Tidak ada komentar:
Posting Komentar