Minggu, 28 April 2013

GAME ENGINE

Masih membahas tentang Game, pada postingan sebelumnya sudah dibahas apa itu game, komponen-komponen pada game dan jenis-jenis game itu sendiri. Kali ini yang akan dibahas adalah software pembuat game atau Game Engine.

Apa itu Game Engine??
Game Engine merupakan sebuah sistem perangkat lunak yang digunakan untuk menciptakan dan mengembangan video game. Proses pengembangan game sering dihemat oleh sebagian besar menggunakan  game engine yang sama untuk menciptakan permainan yang berbeda. Ada banyak game engine yang dirancang untuk bekerja pada game konsol dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. Fungsionalitas inti biasanya disediakan oleh game engine 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. 

Beberapa elemen yang ada di dalam game engine adalah :
  • Tools/Data
Untuk mengembangkan sebuah 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.

  • System
Sistem berfungsi untuk melakukan komunikasi dengan hardware yang berada di dalam mesin dan bertanggung jawab untuk melakukan inisialisasi, update dan mematikan sub system yang terdapat di dalamnya. 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. 

  • Console
Console dibutuhkan untuk 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.
  • Support
Merupakan dasar dari game engine dan hampir digunakan semua projek game engine. Support adalah bagian yang paling sering digunakan oleh sistem di dalam game engine. Support sendiri berisi rumus-rumus matematika yang biasa digunakan, vector, matrix, memory manager, file loader.

  • 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.

  • 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.

  • The Game
Merupakan inti dari penggunaan game engine sendiri, sehingga terserah kita bagaimana mengembangkan game tersebut.


Contoh game engine yang saya gunakan adalah Strawberry Prolog. Strawberry Prolog adalah dialek dari bahasa pemrograman Prolog. Sintaksnya sangat dekat dengan ISO-Prolog tetapi memiliki banyak ekstensi yang bukan bagian dari standar. Gagasan utama dari Strawberry Prolog sangat mudah digunakan dan oleh karena itu beberapa universitas menggunakan prolog untuk kursus .

   Nama Prolog diambil dari bahasa Perancis programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer.

       Prolog adalah bahasa pemrograman logika atau disebut juga bahasa non prosedural.  Prolog disebut sebagai object oriented language atau declarative language. Dalam prolog tidak terdapat prosedur, tetapi hanya tampilan data-data object (fakta) yang akan diolah dengan relasi antar object yang membentuk suatu aturan. Aturan-aturan ini disebut heuristik dan diperlukan dalam mencari suatu jawaban, dengan kata lain, prolog dalam prolog adalah database.

MATCHESBERRY 
 

Matchesberry merupakan pengembangan dari permainan Matches yang ada pada Strawbery Prolog yang berkonsep AI (Artificial Intelligence). Pada awalnya, permainan ini menggunkan korek api yang terdiri dari 15 batang korek api. Namun pada Matchesberry , korek api digantikan dengan buah strawberry. Itu sebabnya game ini diberi nama Matchesberry.

Matchesberry dimainkan oleh 2 pemain dalam hal ini user dan computer (AI). Initial state yang terlebih dahulu dibuat adalah pembuatan background. Background yang digunakan dalam Matchesberry adalah adalah gambar kartun dengan format bitmap. Matchesberry terdiri dari 31 buah strawberry yang disusun berurutan sebanyak 7,5,3,1,3,5,7.
Permainan Matchesberry terdiri dari lima buah menu dengan satu menu check box pada option. Menu New Game adalah menu untuk perintah memulai permainan baru. Menu Option berisi menu Check Box yang terdiri dari Computer Is The First dan Take The Last. Menu Help berisi bantuan cara bermain. Menu About Me keterangan identitas pengembang game. Terakhir adalah Menu Exit digunakan untuk keluar dari permainan.




Referensi :