Game Engine
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.
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.
Beberapa contoh game engine :
a.
RealmForge
Merupakan free dan open source game
engine untuk Microsoft .Net Framework dan dikhususkan pada visual3D Game
Engine, merupakan cross platform game engine untuk .NET 2.0 dan Microsoft XNA.
RealmForge dibangun diatas AXIOM 3D
rendering engine. Di tulis dalam bahasa C# keseluruhan. Dibangun untuk
pembuatan game berbasis .NET.
b.
Truevision3D
Merupakan game engine 3D yang
dibangun dengan menggunakan visual basic 6 dan C++ dengan menggunakan Microsoft
Directx API. Mulai versi 6.5, engine ini
menggunakan direct 9 dan shader support, serta ditulis ulang menggunakan C++. Sampai
perkembangan terbaru, belum ada wacana untuk mengembangkannya untuk mendukung
penggunaan directx9 serta Microsoft XNA.
c.
OGRE
OGRE (Object-Oriented
Graphics Rendering Engine) merupakan engine yang mendukung 3D Graphic.
Merupakan game engine yang fleksibel dalam melakukan 3D Rendering, ditulis
dalam bahasa C++ sehingga memudahkan pengembang untuk membangun game yang
mendukung 3D Graphics.
Beberapa contoh game middleware yang sering digunakan :
a.
Gamebryo
Merupakan game engine yang berawal
dari perusahaan Numerical Design Limited (NDL) akan tetapi pada
perkembangannya, perusahaan NDL bergabung dengan Emergent Game Technologies.
Ditulis menggunakan bahasa C++, Gamebryo merupakan 3D Game engine yang
memberikan support kepada beberapa platform sebagai berikut :
-
Windows (baik direct 9 dan 10)
-
Nintendo game cube
-
Nintendo WII
-
PS 2 dan PS 3
-
XBOX serta XBOX360
b.
Renderware
Merupakan salah satu saingan dari
Gamebryo. Bergerak dalam bidang 3D API dan graphic rendering engine. Renderware
digunakan pada computer games, Active Worlds serta beberapa VRML Browser.
Merupakan game engine yang sering digunakan di PS2 sehingga sering disebut
sebagai “Sony’S Directx”.
c.
Unreal Engine
Merupakan salah satu game engine yang
cukup populer. Dikembangkan oleh Epic Games dalam bahasa C++, Unreal engine
menjadi salah satu game engine yang mempunyai kemampuan portability yang baik.
Dapat berjalan pada beberapa platform seperti Windows, Linux, MacOS dan
beberapa video games console seperti Dreamcast, XBOX, XBOX360.
2.
Game Development Tools
Game development tools adalah software yang mempunyai spesialisasi
yang membantu atau memfasilitasi pembuatan computer atau video game. Beberapa
tugas dapat ditangani oleh game development tools termasuk konversi beberapa
kelengkapan dari video game seperti 3D model dan texture ke dalam format yang
diperlukan oleh game, level editing serta script compilation.
Pada saat pengembangannya. Game development seringkali menemui
kendala. Hal berikut ini adalah beberapa alasan kenapa game development tools
dibilang gagal :
a.
Game development yang di design
seiring waktu berjalan
Seringkali dalam merancang sebuah
game tools. Perusahaan game terlalu terburu-buru dalam melakukan design awal
dari game tools tersebut. Karena dituntut untuk selalu memberikan progress,
biasanya para programmer merancang game tools tersebut seiring dengan coding
yang telah dibuat.
Saat game tools menjadi makin komplek
dan perlu di tinjau ulang, seringkali programmer kesulitan untuk merubah code
yang mereka tulis diawal sehingga seringkali muncul opini untuk menulis ulang
semua code daripada memperbaiki atau menambah fitur yg ada.
b.
System model dari design game
development game tersebut
Saat programmer mendesign sebuah
tampilan atau interface, seringkali mereka berusaha untuk memperlihatkan
struktur data secara langsung. Hal ini mungkin akan berguna untuk orang yang
mengerti cara kerja system, tetapi untuk end user, biasanya mereka tidak
memperdulikan detail dari implementasi system, yang diperlukan hanyalah hasil
akhir.
c.
Menerapkan teknologi yang salah
untuk menekan biaya
Pada pengembangan game tools,
seringkali pengembang berusaha menerapkan system yang sudah ada untuk
mempersingkat biaya. Akan tetapi, pada kasus tertentu lebih baik kita membangun
game tools tersebut dari awal sehingga dapat menghemat biaya serta waktu.
d.
Interface yang terlalu kompleks
Penerapan “The simple, The better”
harus selalu dicamkan oleh setiap game tools designer. Semakin kompleks
interface, semakin susah game tools tersebut digunakan oleh end user. Operasi
yang paling umum dipakai harus selalu didesign untuk mudah dipakai dan paling
gampang untuk diakses oleh end user. Sedangkan aplikasi yang jarang digunakan
dapat disembunyikan di dalam menu bar.
e.
Terlalu banyak fitur-fitur
tambahan
Seringkali pengembang membuang waku
untuk mengembangkan fitur-fitur tambahan yang kurang berguna bagi user,
daripada membuang waktu dan tenaga untuk fitur tambahan lebih baik pengembang
lebih memfokuskan pada fungsionalitas fungsionalitas utama yang harus ada pada
game tools.
f.
Merancang untuk user yang sudah
advance
Game development tools seharusnya
ditujukan untuk user bertipe intermediate. Dimana semua fungsionalitas utama
harusnya lebih ditonjolkan dan beberapa fungsionalitas tambahan dapat ditemukan
jika diperlukan.
Beberapa contoh game development tools :
a.
RAD Game tools
b.
Java Game Development Tools
c.
Garage games game development
tools
Sumber : http://gameprogramming.blog.ittelkom.ac.id/blog/files/2009/09/113040265-game-tools-and-game engine.docx
No comments:
Post a Comment