Senin, 11 April 2016

Pengenalan Arsitektur Game Engine

Arsitektur Game Engine

Engine bukanlah executable program, artinya engine tidak bisa dijalankan sebagai program yang berdiri sendiri. Diperlukan sebuah program utama sebagai entry point atau titik awal jalannya program. Pada C++, entry point-nya adalah fungsi ‘main().’ Biasanya program utama ini relatif pendek, jadi Game engine adalah program yang ‘memotori’ jalannya suatu program game. Kalau game diilustrasikan sebagai ‘musik’ yang keluar dari mp3 player, maka engine adalah ‘mp3 player’ dan program utama adalah ‘data mp3’ yang dimasukkan ke dalam mp3 player tersebut.  



Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render (“renderer”) untuk 2D atau 3D.

Di dalam game engine, terdapat fungsi-fungsi atau modul-modul, antara lain :
ü   Rendering engine
ü   Physical engine (collision detection)
ü   Sound script
ü   Animation
ü   Artificial intelegenct
ü   Network
ü   Streaming
ü   Memory management
ü   Scene graph

Tipe Game Engine

Game engine biasanya datang dengan berbagai macam jenis dan ditujukan untuk berbagai kemampuan pemrograman. 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. 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.

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.

Contoh-contoh Game Engine

1. Freeware game engine/open source game engine:

§  Blender
§  Golden T Game Engine (GTGE)
§  DXFramework
§  Ogre
§  Aleph One
§  Axiom Engine
§  Allegro Library
§  Box2D
§  Build Engine
§  Cube
§  Cube 2
§  DarkPlaces
§  jMonkeyEngine (jME)
§  Panda3D
§  Sphere
§  Unreal Engine

2. Commercial engines/game engine berbayar (komersial):

§  Alamo
§  A.L.I.V.E
§  BigWorld
§  DXStudio
§  Dunia Engine
§  Euphoria
§  GameStudio
§  Jade Engine
§  Jedi
§  Medusa
§  RPG Maker VX
§  RPG Maker XP
§  RPG Maker 2003
§  RPG Maker 95
§  Vision Engine

Contoh aplikasi dari game engine

Berikut ini merupakan contoh open source game engine :


Cafu merupakan software yang tidak hanya open source tetapi juga 100% free software, dengan lisensi GNU General Public License (GPLv3). Ditulis dalam bahasa C++, Cafu tidak hanya bisa digunakan untuk membuat game 3D, tetapi juga bisa digunakan untuk membuat aplikasi 3D lainnya.



Delta3D merupakan suatu game engine yang bersifat open source, yang tidak hanya cocok untuk membuat game 3D tetapi juga cocok untuk pembuatan training 3D, simulasi, visualisasi, edukasi, entertainment dan sebagainya. Hal ini dikarenakan Delta3D memiliki fitur-fitur yang bisa digunakan untuk pemodelan dan juga simulasi, seperti After Action Review (AAR), High Level Architecture (HLA), dan SCORM Learning Management System.



Panda3D merupakan game engine yang open source, dan bebas digunakan untuk tujuan apa saja, termasuk untuk proyek komersial. Dipelopori oleh kerjasama Universitas Carnegie Mellon dan Disney, game engine ini ditulis menggunakan bahasa pemrograman Python dan C++.



jMonkeyEngine merupakan open source game engine berlisensi BSD license, yang bisa digunakan untuk membuat game 3D. Game engine ini dibuat menggunakan bahasa pemrograman Java. Sudah mendukung OpenGL versi 2.0 ke atas, game engine ini sudah mencapai versi stabil jMonkeyEngine 3.0 saat ini.



Sauerbraten itu sendiri merupakan game First Person Shooter (FPS). Dan Cube 2 merupakan game enginenya. Game engine ini digunakan untuk membuat peta/geometri sendiri untuk digunakan dalam games. Bahkan, ada fitur untuk menambahkan bagian peta atau bentuk geometri secara dinamis saat masih di dalam games. Tentu saja, game engine ini berbasis open source.

Sumber Referensi:

Tidak ada komentar:

Posting Komentar