Selasa, 24 April 2018

Game Engine Architecture

game engine architecture / arsitektur mesin permainan

Mesin adalah alat mekanik atau elektrik yang mengirim atau mengubah energi untuk melakukan atau membantu pelaksanaan tugas manusia.

Arsitektur: seni dan ilmu merancang serta membuat konstruksi bangunan, jembatan, dan sebagainya; 2 metode dan gaya rancangan suatu konstruksi bangunan.

Permainan adalah bentuk aktivitas yang menyenangkan yang dilakukan semata-mata untuk aktivitas itu sendiri, bukan karena ingin memperoleh sesuatu yang dihasilkan dari aktivitas tersebut. (Desmita, Psikologi perkembangan, 2005).

menurut pemahaman diatas bahwa game engine architecture adalah perangkat lunak yang dirancang untuk membuat dan mengembangkan video game. game engine ini dapat berjalan diberbagai platform seperti Microsoft Windows, Linux, dan Mac OS X. fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin render ( “renderer”) untuk 2D atau 3D grafis, mesin fisika atau tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen memori, threading, dukungan lokalisasi, dan adegan grafik.

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. contohya pada LISP untuk memasuki entri utama dengan menggunakan pembuatan fungsi utama kemudian memanggilnya contoh:

(defn nama_fungsi(parameter)
 (statemen-statement)
 (statemen-statement))

(nama_fungsi)

Biasanya program utama ini relatif pendek. Game engine adalah program yang ‘memotori’ jalannya suatu program game.  Kalau game diilustrasikan sebagai ‘video’ yang keluar dari mp4 player, maka engine adalah ‘mp4 player’ dan program utama adalah ‘data mp4’ yang dimasukkan ke dalam mp4 player tersebut. Dengan adanya engine, waktu, tenaga dan biaya yang dibutuhkan untuk membuat game software menjadi berkurang secara signifikan.

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 Open Source :


  • 3Dgame Studio
  • Delta 3D
  • UnrealEngine
  • Panda3D
  • Torque
  • Quake Engine





Tidak ada komentar:

Posting Komentar