<a href="http://hilmantan.blogspot.com/">Hilmantan.com - Tempat Kumpulnya Manusia-Manusia Kesepian</a> <a href="http://example.com">The Amazing World of Gumball: Tontonan yang Cocok Buat Para Jomblo!</a> <a href="http://hilmantan.blogspot.com/2014/03/visiting-jogja-part-1.html">Visiting Jogja! - Field Report Si Mantan Waktu ke Jogja</a> <a href="http://example.com">Kairosoft: Game Addictive Untuk Smartphone</a>

Arsitektur Game Engine, Logika Hingga Kecerdasan Buatan

Unknown | 21:07 | | | | | |


Halo semua, kali ini postingan yang saya buat akan membahas tentang arsitektur pada game engine. Di zaman yang serba canggih ini teknologi game merupakan hal yang digadang-gadangkan akan berkembang sangat pesat bukan hanya untuk kalangan tertentu saja tetapi untuk semua orang. Untuk membuat sebuah game di era ini sangatlah mudah dengan disediakannya sebuah alat yang bernama game engine, dalam game engine ini kita dapat merangcang sebuah game dari bentuk yang paling sederhana hingga yang komplek, tetapi game engine bukanlah sebuah aplikasi yang berdiri sendiri tetapi memiliki arsitektur yang menopang game engine dalam membantu pembuatan game yang diinginkan, oleh karena itu untuk memenuhi tugas mata kuliah softskill Pengantar Teknologi Game, saya akan mengulasnya pada postingan kali ini, selamat membaca.

Arsitektur mesin game adalah system perangkat lunak yang dirancang untuk menciptakan dan pengembangan video game. Simplenya dari arsitektur mesin game itu adalah rancangan dari sistem perangkat lunak dari game itu sendiri. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi desktop seperti Microsoft Windows, Linux, dan Mac OS X. 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

1. Tuangkan Logika Permainan ke Dalam Rendering (View) 


Hal pertama yang harus kita lakukan adalah memisahkan render dari logika. Dan ini masuk akal. Intinya logika game bisa berjalan pada kecepatan yang berbeda dari rendering. Logika permainan tidak mengenal tentang rendering, sehingga pada logika tidak peduli apakah nantinya akan ditampilkan dalam 2D, 3D seni, ASCII atau apa pun. Namun rendering tergantung pada logika, karena itu perlu info tentang cara / dimana untuk menampilkan segala logika kita. Gambar berikut menunjukkan 2 modul dengan dependensi. Rendering yang terjadi di dalam modul “View”.


Contoh: Kita akan membuat kelas RaceCarView pada objek RaceCar. RaceCar menangani logika dan input pengguna tetapi tidak tahu tentang cara menampilkannya, dan RaceCarView menampilkan mobil balap pada layar, dengan menggunakan informasi dari RaceCar.

2. Tuangkan Logika Permainan ke Dalam Model dan Controller


Hal kedua yang bisa kita lakukan adalah menuangkan logika menjadi model dan controller. Model ini pada dasarnya adalah dunia permainannya, ia akan mengetahui apa-apa tentang cara menampilkan, input pengguna, dll. Model hanya mengimplementasikan aturan dunia permainan Anda, dan bagaimana entitas berinteraksi satu sama lain. Controller tahu tentang model dan dapat memanipulasinya. Misalnya controller memeriksa input pengguna, dan memanipulasi mobil yang sesuai. Controller perlu untuk kode renderinf (view) saat menggunakan input mouse untuk memanipulasi objek di layar.

Contoh: Dalam contoh balapan mobil (RaceCar), ketika ada input dari pengguna pertama yang akan menangani adalah RaceCarController. Ketika pengguna menekan tombol kiri, controller melihat ini dan akan memanggil model RaceCar.steer_left(). Model ini kemudian menangani aturan dari dunia mobil untuk melakukan manuver ke kiri.

Dimana penempatan AI-nya?

Kebanyakan permainan menggunakan AI untuk mengendalikan objek permainan tertentu, jadi pertanyaannya adalah dimana tempat untuk menaruh AI-nya, dalam model atau controller? Jawabannya cukup sederhana: jika AI mengontrol objek yang sama dengan cara yang sama sebagai pengguna tidak (yaitu ‘bot’), maka sebaiknya kita menerapkannya dalam controller. Dalam kasus lain, AI adalah bagian dari dunia permainan sehingga Anda harus menerapkannya dalam model. Dalam contoh ini, AI mobil harus dilaksanakan di controller, karena mereka pada dasarnya bot. Jika kita sebagai pejalan kaki yang tidak berada pada “jalan”, maka akan diimplementasikan dalam model, karena pejalan kaki adalah bagian dari dunia juga.

Ringkasan

 


Jadi, kita membagi ke 3 modul berbeda yaitu : model, view dan controller.
  1. Model: Semua aturan dunia permainan diimplementasikan dalam model, dan juga berisi data negara atau level dari setiap objek permainan atau entitas. Ini adalah simulasi permainan dari dunia nyata, sehingga model tidak tahu apa-apa tentang input pengguna atau menampilkan ke layar.
  2. View: Rendering ke layar ditangani oleh view. View menggunakan model untuk tahu di mana saja si view harus menampilkan sesuatu. View tidak memiliki fungsi lain selain untuk menampilkan saja.
  3. Controller: Controller menangani user input dan memanipulasi model. Pertama memeriksa input pengguna, selanjutnya Controller mungkin bisa meminta View untuk menampilakn objek ke layar saat mouse di klik, dan akhirnya memanipulasi data pada Model. Beberapa Controller dapat diterapkan bersamaan, misalnya keyboard controller, controller joypad, dan bahkan Controller ‘bot’ AI. Disini, Model berdiri sendiri dan tidak perlu tahu apa-apa tentang yang lain (Contoller dan View). View hanya bergantung pada model untuk membuat segala sesuatu di layar. Controller menerima input, dapat memperoleh informasi tambahan dengan memanggil View, dan pada akhirnya memanipulasi Model. 
Keuntungan dari arsitektur ini:
  • ·   Desain yang bagus, karena menggunakan modul-modul
  • ·   Dunia permainannya dibundel dalam Model
  • ·   Perubahan render tidak mempengaruhi permainan inti
  • ·   Mendukung input Controller yang berbeda, user dan / atau bot

Contoh-Contoh Game Engine

 

Cry Engine


Cry Engine adalah salah satu Game Engine yang dikeluarkan oleh German, Crytek. Game engine ini juga sempat menghebohkan dunia game pada tahun 2004. Beberapa contoh game yang dibuat dengan menggunakan software ini adalah Crysis, Crysis War Head, Crysis 2, FarCry, Alion : Tower of Eternity, dan masih banyak lagi.

Unreal Engine


Generasi pertama Game Engine ini menunjukkan dunia yang gelap dan kelam. Beruntunglah kita para PCGamer, karena dapat merasakan game-game dari Unreal Engine  dengan Framerate yang lebih stabil dibandingkan di console. Tetapi, Unreal Engine 3 mengalami revolusi yang membuatnya menjadi GE yang menghasilkan Framerate stabil, Kualitas Grafis yang mantap, Dynamic Shadows, HDRR (High Dynamic Range Rendering), Depth of Field, dan penggunaan DX 11 secara maksimal.



ID Tech Engine


Engine ini adalah kakek dari segala game bergenre FPS. Sebenarnya, GE ini dibuat untuk game HoverTank 3d. Lalu berlanjut menghasilkan game FPS pertama Catacomb 3d, tapi karena kurang terkenal, dibuatlah Wolfenstein 3d.  id Tech juga menghasilkan Game-game FPS Old School Quake series dan Doom Series, dengan Engine yang telah dimodifikasi. GE ini memiliki 5 generasi, dengan adanya FPS hebat hasil GE ini di setiap jamannya. Generasi terakhirnya adalah id Tech 5, yang menghasilkan game open-world post-apocalyptic bergenre FPS-Racing, RAGE.

Source
http://alievaliev.blogspot.com/2012/04/arsitektur-mesin-game.html
http://safemode.web.id/artikel/teknologi/arsitektur-mesin-game
http://tiattack.blogspot.co.id/2012/04/arsitektur-game-engine.html
http://www.babastudio.com/blog/10-game-engine-terbaik-saat-ini/