Selasa, 08 Mei 2012

Game Engine

Apa Itu Game Engine ?
Game engine adalah sebuah sistem software yang dirancang untuk pembuatan dan pengembangan suatu video game.

Tujuan Game Engine?
Game engine adalah dasar untuk membuat sebuah game karena dalam game engine ini terdapat konsep permainan dan aturan aturan sebuah permainan. Dengan adanya game engine sebagai dasarnya maka untuk melakukan pengembangan terhadap game tersebut cukup melakukan perubahan terhadap design permainan.
Umumnya sebuah game engine dibuat untuk menangani rendering dan beberapa teknologi penting lainnya, namun  game engine juga dapat menangani tugas seperti  game AI, collision detection antara  game object, sound dan lainnya. Beberapa engine game pada umumnya menyediakan fasilitas graphics rendering(2D atau 3D). Engine yang menyediakan fasilitas real time 3D rendering biasanya dinamakan engine 3D.
Ada banyak sekali game engine yang dirancang untuk bekerja pada beberapa konsol video game dan sistem operasi desktop seperti Microsoft Windows, Linux dan Mac OS X. Fungsi utama yang secara khusus disediakan oleh game engine meliputi mesin render (renderer) untuk grafik 2D atau 3D, mesin fisika, deteksi tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, manajemen momori, threading, dukungan lokalisasi dan layar grafik. Proses pembuatan game seringkali dihemat oleh sebagian besar developer dengan menggunakan kembali game engine yang sama untuk membuat game yang berbeda.
Ada Berapa 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 :
·         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.
·         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.
·         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.
                                           
Pada perkembanganya, game engine ini ada yang berbayar dan ada juga yang gratis alias open source. Berikut adalah contoh-contoh game engine yang open source dan berbayar .
Contoh game engine open source :
  1. OGRE
  2. Panda 3D
  3. crystal space
  4. blender game engine
  5. jME
  6. openSceneGraph
  7. Panda 3D *)
  8. OGRE *)
  9. Esenthel for non­commercial
  10. Unity Free Edition
  11. G3D *)
  12. Genesis3D *)
  13. FPS Creator Free Edition
  14. DarkBASIC Pro Free Edition
  15. Cube 2 (Sauerbraten) *)
  16. Unreal Development Kit
  17. Platinum Arts Sandbox *)
  18. CAST II *)
  19. 3D RAD Pro
  20. DX Studio
  21. Blender *)
  22. Angel ( ini engine­nya Nusantara Online) *) **)
  23. Irrlicht *)
  24. id Tech (a.k.a Doom Engine, yang dipakai membuat Doom 2) *)
  25. Quake Engine (yang dipakai menggarap Quake dan Half­Life) *)
Contoh game engine berbayar :
  1. c4 Engine
  2. torque game engine
  3. 3DGamestudio
  4. DXStudio
  5. neoExis engine
  6. esenthel engine,
  7. 3D Game Maker
  8. 3D Game Studio
  9. DarkBASIC
  10. TrueVision
  11. FPS Creator
  12. Blade 3D
  13. Source
  14. Esenthel for commercial
  15. Torque 3D
  16. Shiva 3D
  17. CryEngine








Referensi :
http://rizkiekasatria.wordpress.com/2011/04/12/pengertian-game-engine/

Komponen – Komponen Game Engine


Pada umumnya sebuah game mempunyai beberapa komponen yang bisa dibagi dalam jenis
1 .    Komponen Grafik
2 .    Komponen Physic Engine
3 .    Komponen Musik
4 .    Skeletal system
Membangun sebuah modul sendiri kalau boleh saya katakan adalah suatu hal yang sia-sia, mengapa harus buat sendiri kalau ada yang menyediakan secara gratis. Membangun komponen game bukanlah suatu ide bagus kecuali jika anda dibayar untuk itu, dan anda telah memutuskan untuk membaktikan diri untuk membuat salah satu komponen diatas.

Untunglah, kalau anda rajin memeriksa di internet dan bertanya-tanya, anda akan menemukan bahwa 4 komponen diatas sudah disediakan secara cuma-cuma bahkan anda bisa menggunakannya dalam game komersial anda. Tapi tentunya kalau anda mempunyai keuntungan yang cukup banyak, rasanya tidak etis kalau anda tidak memberikan mereka sesuatu untuk kerja keras mereka.

Komponen Grafik.
Komponen ini adalah komponen yang paling penting dalam sebuah game. Seperti yang bisa anda lihat komponen ini adalah komponen yang paling dirasakan oleh para gamers berpengaruh sangat besar, visualisasi. Tanpa sebuah visualisasi, sebuah game akan tampak sangat membosankan, bahkan sebuah game dengan permainan yang bagus pun akan mendapat celaan gara-gara tidak menampilkan grafik yang bagus. Tugas dari komponen ini adalah menampilkan visualisasi dalam bentuk gambar dan melakukan hitungan untuk hal-hal rumit seperti kamera.

Komponen Physic Engine
Komponen ini bertugas untuk menghitung apakah sebuah benda bersinggungan dengan benda lain, atau berapa kecepatan sebuah benda dengan massa tertentu ketika dilemparkan dari ketinggian tertentu. Komponen ini bertugas untuk melakukan perhitungan untuk simulasi yang ada di bumi.

Komponen music
Komponen ini bertugas untuk melakukan pengolahan sebuah musik untuk game. Bahkan beberapa penyedia komponen ini sanggup untuk mensimulasikan sebuah suara berdasarkan jarak antara pendengar dan objek.

Komponen Skeletal system
Komponen ini bertugas untuk melakukan pengolahan sebuah objek manusia atau benda lain supaya bisa bergerak berdasarkan rangka yang telah dibuat sebelumnya, semisal gerakan untuk robot atau gerakan untuk manusia.
Penyederhanaan.

Seperti yang telah di sebutkan di atas, membuat sendiri komponen tersebut bukanlah ide yang bijak untuk membuat sebuah game, dan sekali lagi, kecuali anda di bayar untuk itu. Dan sekali lagi, komponen-komponen tersebut sudah tersedia gratis bahkan dalam game komersil pun anda tidak akan di tagih untuk membayar. 

Namun basicnya komponen-komponen game terdiri dari :
Tools/Data
Dalam pengembangan game, dibutuhkan data untuk 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.

System
System 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.
Console
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.

Support
Support adalah bagian yang paling sering digunakan oleh system di dalam game engine. Support sendiri berisi rumus-rumus matematika yang biasa digunakan seperti : vector, matrix, memory manager, file loader merupakan dasar dari game engine dan hampir digunakan semua projek game engine.

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 user dapat mengembangkan game tersebut sesuai dengan yang diinginkan.



Referensi :