Saya telah membaca tentang cara mendesain kode untuk sebuah game. Satu hal yang belum dapat saya pahami adalah - bagaimana Anda mengelola menulis editor level di luar game (bukan 'editor level dalam game') tanpa 'menyalin' kode dari game? Misalnya, Anda mungkin harus menyalin semua kode tentang berbagai jenis entitas yang dapat Anda miliki. Anda harus menambahkan kode rendering game.
Dugaan saya adalah ini dapat dilakukan dengan membuat DLL dari bagian 'mesin' dari permainan. Kemudian, bagikan antara game aktual dan editor level.
Atau ada cara yang lebih baik / lebih mudah untuk melakukan ini?
sumber
Pisahkan rendering logic sebaik mungkin dari logika game aktual saat mendesain mesin game Anda. Salah satu cara untuk melakukan ini adalah dengan menggunakan pola Komponen saat membangun mesin gim Anda. Misalnya, XNA menggunakan pola ini di tingkat kerangka kerja untuk fleksibilitas. Gunakan basis kode yang sama untuk rendering dengan editor level Anda; tulis pembungkus jika Anda harus.
Demikian pula, pola lain yang agak populer adalah MVC (Model-View-Controller) yang juga bisa membantu. Kode mesin Anda menggunakan MVC secara normal. Anda kemudian dapat menggunakan kode yang sama untuk Tampilan dan Model, tetapi menyuntikkan Pengendali kustom untuk mengedit Model untuk editor tingkat Anda, bukan Pengendali mesin gim yang memperbarui menurut masukan gim. Terapkan serialisasi untuk Model game untuk memuat / menyimpannya dari editor atau game.
Menyimpan komponen dalam rakitan terpisah tentu saja akan mendorong pemisahan ...
sumber