Bagaimana saya bisa membuat koleksi mini-game di XNA di mana pengguna dapat mengunduh paket-paket mini game dan .exe utama dapat menjalankannya tanpa diubah?


12

Saat ini saya sedang membuat game PC di XNA. Ini sebenarnya kumpulan mini-game (ada 3 mini-game saat ini) namun saya berencana untuk membuat dan menambahkan lebih banyak, dalam 'paket' yang dapat diunduh.

Pertanyaan saya adalah, apa cara terbaik untuk mencapai ini?

Saat ini pikiran saya adalah:

  • Buat antarmuka 'permainan'
  • Bangun game ke antarmuka ini tetapi buatlah sebagai .dlls
  • Minta file .exe utama memindai direktori dan memuatnya .dlls saat runtime.

Saya tidak terlalu mengotak-atik ide ini, tapi saya tahu ada beberapa aplikasi yang setidaknya menggunakan pendekatan plug-in ini (Notepad ++ tampaknya), tapi saya tidak yakin dengan permainan yang dilakukan (walaupun saya yakin mereka harus ada). Namun sepertinya ini adalah masalah yang telah dipecahkan sebelumnya, jadi saya bertanya-tanya apakah ada bentuk praktik terbaik yang ada.

Jawaban:


5

Di windows, Anda bisa membuka saja rakitan (dll) dan mengimpor jenis dan menjalankan metode. Lihat dokumentasi Kelas Perakitan .

Di Xbox 360 Anda tidak memiliki akses ke System.Reflection. Di sini Anda harus mengandalkan API toko XBLA. Saya tidak yakin berapa banyak fungsi ini tersedia untuk aplikasi XBLIG.


Ya, saya tahu saya bisa memuat .dlls (karena ini adalah game PC) namun saya bertanya-tanya apakah ini cara terbaik untuk melakukannya, atau apakah ini bertentangan dengan beberapa praktik terbaik yang sudah ada
Andrew Thorpe

+1 Ini adalah cara standar memuat plugin. Cari arsitektur plugin; FYI, ini adalah solusi yang sangat bagus.
ashes999

1

Karena Anda membuat game untuk Windows, Anda dapat mengakses kerangka penuh seperti yang dikatakan @Ranieri. Arsitektur Anda terdengar solid; namun, Anda mungkin ingin memeriksa MEF , Kerangka Kerja Yang Dapat Dikelola yang Dikelola. Mungkin membuat alur kerja yang Anda buat lebih ramping. Saya belum menggunakannya sendiri, tetapi saya sudah membaca hal-hal baik tentang itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.