Ich habe ein kleines Spiel in C # geschrieben. Es verwendet eine Datenbank als Backend. Es ist ein Sammelkartenspiel , und ich wollte die Funktion der Karten als Skript implementieren.
Was ich damit meine ist, dass ich im Wesentlichen eine Schnittstelle habe, ICard
die eine Kartenklasse implementiert ( public class Card056: ICard
) und die eine Funktion enthält, die vom Spiel aufgerufen wird.
Um das Ding wartbar / modifizierbar zu machen, möchte ich die Klasse für jede Karte als Quellcode in der Datenbank haben und sie im Wesentlichen bei der ersten Verwendung kompilieren. Wenn ich also eine Karte hinzufügen / ändern muss, füge ich sie einfach der Datenbank hinzu und fordere meine Anwendung auf, eine Aktualisierung durchzuführen, ohne dass eine Assembly-Bereitstellung erforderlich ist (insbesondere, da es sich um eine Assembly pro Karte handelt, was Hunderte von Assemblys bedeutet). .
Ist das möglich? Registrieren Sie eine Klasse aus einer Quelldatei und instanziieren Sie sie dann usw.
ICard Cards[current] = new MyGame.CardLibrary.Card056();
Cards[current].OnEnterPlay(ref currentGameState);
Die Sprache ist C #, aber ein zusätzlicher Bonus, wenn das Skript in einer beliebigen .NET-Sprache geschrieben werden kann.