Sunday, October 20, 2013

Arsitektur Game Engine

Arsitektur game engine adalah sistem perangkat lunak yang dirancang untuk menciptakan dan mengembangkan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada konsol permainan video dan sistem operasi dekstop seperti Microsoft Windows, Linux, dan Mac Os.

Tahap-tahap awal pembuatan game :

1Tuangkan Logika permainan anda ke dalam rendering (view)


Konsep
Hal pertama yang harus dilakukan adalah memisahkan render dari logika. Logika permainan tidak mengenal rendering, sehingga pada logika tidak peduli apakah nantinya akan ditampilkan dalam 2D, 3D seni, ASCII atau apapun. 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".

Logic - 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 anda ke dalam model dan controller

Konsep
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 tau tentang model dan dapat memanipulasinya. Misalnya controller memeriksa input pengguna, dan memanipulasi mobil yang sesuai. Controller perlu untuk kode rendering saat menggunakan input mouse untuk memanipulasi objek di layar.

MVC

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 menangani model RaceCar, steer left(). Model ini kemudian menangani aturan dari dunia mobil untuk melakukan manuver ke kiri.

Jadi, kita membagi ke 3 modul berbeda, yaitu: model, view, dan controller.
  • 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.
  • 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.
  • Controller
Controller menangani user input dan memanipulasi model. Pertama memeriksa input pengguna, selanjutnya Controller mungkin bisa meminta View untuk menampilkan 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 (Controller 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/bot

MVC - 2


Sumber:

No comments:

Post a Comment