Saya sedang merenungkan desain sebuah game (menerjemahkan boardgame ke komputer, khususnya, yang menurut saya relevan dalam kasus ini) dan terlintas dalam benak saya bahwa mungkin membangun 'permainan' terpisah dari 'tampilan'.
Itu akan memungkinkan saya untuk membuat prototipe sesuatu dengan cepat dengan antarmuka teks sederhana, dan kemudian cukup melakukannya nanti. Itu juga akan membuat saya port game ke media lain lebih mudah.
Apakah kompartementalisasi semacam ini biasa dalam permainan? Haruskah saya mencoba memecah hal-hal lebih lanjut? Apakah ada komplikasi yang mungkin saya lewatkan?
sumber
Pandangan saya:
Bunyinya antrian acara masukan, dan memodifikasi kondisi permainan sesuai.
Kemudian memproses hal-hal seperti fisika dan komponen inti lainnya yang juga memperbarui status permainan.
Loop. Itu saja.
Tujuannya adalah untuk membuat model independen: tidak memiliki ketergantungan pada tampilan atau hal-hal pengontrol: Anda harus dapat membuat program yang hanya menjalankan model.
Itu tidak pernah menulis apa pun pada model, ini adalah proses read-only, kecuali mungkin pendaftaran beberapa event handler (seperti "Hey Mister Model, ketika Anda mendeteksi tabrakan antara dua objek, silakan hubungi event handler saya yang memainkan suara! ").
Dengan begitu Anda bisa mencolokkan pengontrol palsu yang membaca file yang berisi peristiwa input pra-rekaman.
Juga buat tampilan sederhana yang hanya mencatat sesuatu pada file.
Sangat berguna untuk pengujian dan debugging.
Ingat untuk membuat pembaruan model pada kecepatan konstan (langkah waktu tetap), dan tampilan dan pengontrol secepat mungkin (tetapi tidak terlalu banyak variabel).
sumber
Kompartementalisasi semacam itu adalah pemisahan antara Engine dan gamecode, dan cukup umum. Ada banyak ruang untuk abstraksi di sepanjang jalan.
Mesin Anda dan data grafis spesifik gim Anda dapat berupa View, gamecode Anda Model, dan controller akan menjadi lem apa pun yang Anda gunakan untuk memberi tahu engine Anda tekstur mana yang harus diterapkan pada entitas mana dalam gamecode Anda.
sumber