ARSITEKTUR GAME ENGINE
Pengertian Game Engine
Teknologi game memiliki perkembangan yang cukup pesat, selain dari segi cerita, grafis, visual dan suara. Untuk dapat menghasilkan sebuah game yang dapat dimainkan tentunya membutuhkan suatu perangkat seperti game Engine.
“Engine” bukanlah sebuah executable program, dimana artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri. Untuk itu diperlukan suatu program utama yang menjadi entry point atau titik awal jalannya program. Contohnya pada C++, yang merupakan entry point-nya adalah fungsi ‘main()’. Umunya program ini relatif pendek, maka game engine adalah program atau sistem perangkat lunak yang menjalankan pembuatan dan pengembangan suatu program game.
Dengan adanya Game Engine dapat memberikan kemudahan untuk menciptakan konsep dari sebuah game yang akan dibuat. Dimulai dari sistem rendering, physics, arsitektur suara, scripting, AI serta bahkan sistem jaringan dari game tersebut.
Hal ini dapat dikatakan bahwa Game Engine merupakan jiwa dari game itu sendiri. Misalnya, sebuah game yang diilustrasikan dengan ‘musik’ yang hasil keluaran dari mp3 player, maka engine yang dimiliki adalah ‘mp3 player’ dan program utamanya adalah ‘data mp3’ yang menjadi input didalam mp3 player tersebut. Dengan menggunakan engine, waktu, tenaga serta biaya yang dikeluarkan akan berkurang secara signifikan.
Arsitektur Game Engine
‘Arsitek’ adalah salah satu ilmu yang digunakan untuk membuat rancangan dari bangunan. Sedangkan arsitektur mesin game adalah suatu sistem perangkat lunak yang dirancang untuk dapat menciptakan dan mengembangkan pembuatan video game. Dengan kata lain, arsitektur mesin game merupakan rancangan dari sistem perangkat lunak game itu sendiri.
Tahapan awal dari merancang suatu game adalah dengan memilih jenis game yang akan dibuat, sehingga dalam mengerjakannya akan lebih terfokus. Selanjutnya mendesain game yang akan dibuat, lalu mengimplementasikan desai tersebut menjadi source code. Jika source code telah selesai dirancang, maka game tersebut dapat dimainkan dan digunakan sesuai dengan keinginan sang pembuat game.
Berikut beberapa elemen yang ada di dalam Game Engine, antara lain :
a. Tools/Data
Dalam sebuah pengembangan game, dibutuhkan adanya data yang tidak semudah menuliskan text file. Hal ini, paling tidak membutuhkan beberapa tools seperti 3D Model Editor, Level Editor dan Graphics Program
Dalam sebuah pengembangan game, dibutuhkan adanya data yang tidak semudah menuliskan text file. Hal ini, paling tidak membutuhkan beberapa tools seperti 3D Model Editor, Level Editor dan Graphics Program
b. System
System adalah bagian dari game engine yang berfungsi untuk melakukan komunikasi dengan hardware yang berada di dalam mesin. Jika game engine telah dapat berjalan dengan baik, maka system inilah bagian yang membutuhkan satu-satunya perubahan yang cukup banyak jika akan dilakukan implementasi pada platform yang berbeda. Di dalam system terdapat beberapa subsistem yaitu graphics, input, sound, timer dan configuration. System bertanggung jawab untuk melakukan inisialisasi, update dan mematikan subsistem yang terdapat didalamnya.
System adalah bagian dari game engine yang berfungsi untuk melakukan komunikasi dengan hardware yang berada di dalam mesin. Jika game engine telah dapat berjalan dengan baik, maka system inilah bagian yang membutuhkan satu-satunya perubahan yang cukup banyak jika akan dilakukan implementasi pada platform yang berbeda. Di dalam system terdapat beberapa subsistem yaitu graphics, input, sound, timer dan configuration. System bertanggung jawab untuk melakukan inisialisasi, update dan mematikan subsistem yang terdapat didalamnya.
c. Console
Dengan adanya console, kita dapat mengubah setting game dan setting game engine di dalam game tanpa harus melakukan restart pada game tersebut. Console lebih sering digunakan dalam proses debugging. Jika game engine tersebut mengalami error kita hanya perlu mengeluarkan pesan error tersebut ke dalam console tanpa harus melakukan restart. Console dapat dihidupkan dan dimatikan sesuai dengan keinginan kita.
Dengan adanya console, kita dapat mengubah setting game dan setting game engine di dalam game tanpa harus melakukan restart pada game tersebut. Console lebih sering digunakan dalam proses debugging. Jika game engine tersebut mengalami error kita hanya perlu mengeluarkan pesan error tersebut ke dalam console tanpa harus melakukan restart. Console dapat dihidupkan dan dimatikan sesuai dengan keinginan kita.
d. Support
Support adalah bagian yang paling sering digunakan oleh system di dalam game engine. Support berisikan rumus-rumus matematika yang biasa digunakan seperti, matriks, vektor, manajer memori, file loader. Support juga merupakan dasar dari game engine dan hampir digunakan pada semua projek game engine.
Support adalah bagian yang paling sering digunakan oleh system di dalam game engine. Support berisikan rumus-rumus matematika yang biasa digunakan seperti, matriks, vektor, manajer memori, file loader. Support juga merupakan dasar dari game engine dan hampir digunakan pada 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.
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
The Game merupakan inti dari penggunaan game engine, sehingga terserah sesuai keinginan kita bagaimana mengembangkan game tersebut.
The Game merupakan inti dari penggunaan game engine, sehingga terserah sesuai keinginan kita bagaimana mengembangkan game tersebut.
Tujuan Penggunaan Game Engine
Fungsi atau tujuan dari terciptanya Game Engine adalah untuk mempermudah dalam pembuatan bagian-bagian tertentu yang terdapat dari game tersebut, dengan membagi-bagi pengembangan game menjadi modul-modul tertentu dan memudahkan kolaborasi antar pihak.
Tipe Game Engine
Berdasarkan kemampuan pemrograman, Game engine memiliki 3 tipe game engine, antara lain:
1. Roll-your-own Game Engine
Pada perusahaan kecil seperti Publisher Indie pada umumnya menggunakan engine-nya sendiri. Mereka menggunakan API seperti XNA, DirectX atau OpenGL untuk membuat game engine milik mereka sendiri. Selain itu, mereka juga terkadang menggunakan library komersil atau yang open source. Biasanya game engine tipe ini lebih disukai karena sekain kemungkinan besar diberikan secara free atau gratis, juga memperbolehkan para developer lebih fleksibel dalam mengintegrasikan komponen yang diinginkan untuk dibentuk sebagai game engine mereka sendiri. Kelemahan yang dimiliki tipe engine ini yaitu banyak engine yang dibuat dengan cara semacam ini akan menyerang balik developernya.
2. Mostly-ready Game Engine
Tipe engine ini telah menyediakan semua yang dibutuhkan developer/programmer. Diantaranya termasuk contoh GUI, Physics, Library model, Texture dan lain-lain. Banyak dari komponen tersebut yang telah jadi sehingga dapat langsung digunakan untuk scripting sejak hari pertama. Game engine semacam ini memiliki beberapa batasan, dibanding dengan tipe engine yang sebelumnya yang memberikan banyak kebebasan. Hal ini ditujukan agar tidak terjadi banyak kemungkinan error yang terjadi setelah sebuah game yang menggunakan engine ini dirilis dan memberikan kemungkinan untuk dapat mengoptimalkan kinerja dari game tersebut. Contoh tipe game engine ini adalah Unreal Engine, Source Engine, id Tech Engine dan sebagainya yang sudah sangat optimal dibanding dengan harus membuat game dari awal. Sehingga hal ini dapat mempersingkat waktu dan menghemat biaya dari pawa developer game.
3. Point-and-Click Engines
Tipe engine ini merupakan tipe engine yang sangat dibatasi, namun dibuat dengan sangat mendukung user friendly. Anda dapat mulai membuat game sendiri menggunakan engine seperti GameMaker, Torque Game Builder dan Unity3D. Dengan sedikit memanfaatkan coding, anda sudah dapat merilis game point-and-click sesuai dengan keinginanmu. Namun, kekurangan yang ada pada tipe engine ini terletak pada terbatasnya jenis interaksi yang bisa dilakukan dan biasanya hal ini mencakup mulai dari grafis hingga tat suara. Tapi bukan berarti game ini menjadi tidak berguna, ditangan developer yang memiliki kreatifitas tinggi dan cerdas, game engine seperti ini dapat menjadi game yang menyenangkan, seperti Flow. Game engine ini memang diperuntukan bagi developer yang ingin mempersingkat waktu pemrograman agar dapat merilis game mereka secepatnya.
Contoh Game Engine Open Source :
- Delta 3D
- Unreal Engine
- Panda3D
- Torque
Komentar
Posting Komentar