GAME ENGINE
Adalah sebuah mesin permainan adalah sebuah
sistem perangkat lunak yang dirancang untuk penciptaan dan pengembangan video
game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol video
games dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS
X. Fungsional inti biasanya disediakan oleh mesin permainan yang mencakup mesin
render ("renderer") untuk 2D atau 3D grafis, physics engine dan
collision detection (dan collision response), suara, script, animasi,
kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dan scene
graph. Proses pengembangan permainan sering dihemat karena sebagian besar
permainan menggunakan kembali mesin permainan yang sama untuk menciptakan
permainan yang berbeda.
Game engine menyediakan tool pengembangan
visual dengan tujuan komponen- komponen perangkat lunak tersebut dapat
digunakan kembali. Alat-alat ini umumnya diberikan dalam sebuah lingkungan
pengembangan terintegrasi untuk memungkinkan disederhanakan, perkembangan pesat
game di data-cara didorong. Mesin permainan ini kadang-kadang disebut
"permainan middleware" karena, seperti bisnis dengan pengertian,
mereka menyediakan fleksibel dan dapat digunakan kembali platform perangkat
lunak yang menyediakan semua fungsionalitas inti yang diperlukan, langsung dari
kotak, untuk mengembangkan suatu aplikasi permainan sambil mengurangi biaya,
kompleksitas, dan waktu-ke-pasar-semua faktor-faktor kritis yang sangat
kompetitif industri permainan video.
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 :
·
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.
·
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.
·
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 :
Ø 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
Ø 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”.
Ø 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.
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.
sumber :
Tidak ada komentar:
Posting Komentar