A. Arsitektur 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. Beberapa elemen yang ada di dalam game engine adalah:
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. Beberapa elemen yang ada di dalam game engine adalah:
1. 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.
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. The Game Merupakan
inti dari penggunaan game engine sendiri, sehingga terserah kita bagaimana
mengembangkan game tersebut. Beberapa Contoh Game Engine Open Source: 3Dgame
Studio Delta 3D UnrealEngine Panda3D Torque Quake Engine
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 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.
Tidak ada komentar:
Write komentar