Come posso creare una raccolta di mini-giochi in XNA in cui l'utente può scaricare pacchetti di minigiochi e il file .exe principale può eseguirli senza essere modificato?


12

Attualmente sto realizzando un gioco per PC in XNA. In realtà è una raccolta di mini-giochi (al momento ci sono 3 mini-giochi), tuttavia ho intenzione di crearne e aggiungerne altri, in "pacchetti" scaricabili.

La mia domanda è: qual è il modo migliore per raggiungere questo obiettivo?

Attualmente i miei pensieri sono:

  • Crea un'interfaccia "di gioco"
  • Costruisci giochi su questa interfaccia ma creali come .dlls
  • Chiedi al file .exe principale di scansionare una directory e caricarlo in .dlls in fase di esecuzione.

Non ho fatto molta confusione con l'idea, ma so che ci sono almeno applicazioni che usano questo approccio plug-in (sembra Notepad ++), ma non sono sicuro di alcun gioco che lo faccia (anche se sono sicuro devono esistere). Tuttavia sembra che questo sia un problema che è stato risolto in precedenza, quindi mi chiedo se esiste qualche forma di best practice consolidata.

Risposte:


5

Su Windows, puoi semplicemente aprire un assembly (dll) e importare tipi ed eseguire metodi. Vedere la documentazione relativa alla classe di assemblaggio .

Su Xbox 360 non hai accesso a System.Reflection. Qui devi fare affidamento sull'API del negozio XBLA. Non sono sicuro di quanta di questa funzionalità sia disponibile per le applicazioni XBLIG.


Sì, lo so che posso semplicemente caricare i .dlls (dal momento che è un gioco per PC) tuttavia mi chiedo se questo è il modo migliore per farlo, o se questo va contro alcune best practice consolidate
Andrew Thorpe,

+1 Questo è il modo standard di caricare plugin. Cerca l'architettura del plugin; Cordiali saluti, questa è un'ottima soluzione.
ashes999,

1

Dato che stai costruendo un gioco per Windows, puoi accedere al framework completo come affermato da @Ranieri. La tua architettura sembra solida; tuttavia, potresti voler controllare in MEF , il Managed Extensibility Framework. Potrebbe rendere più snello quel flusso di lavoro delineato. Non l'ho usato da solo, ma ho letto cose positive al riguardo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.