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 :
1.
Tuangkan 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".
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.
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
Sumber:


Tidak ada komentar:
Posting Komentar