Hey,
ich arbeite seit einiger Zeit nebenher immer mal wieder an einem kleinen Framework, welches auf SFML2 basiert, bzw auf dessen .Net-Binding. Es gab verschiedene Gründe dafür und mittlerweile finde ich immer mehr Vorbilder, bei welchen ich mir bestimmte Funktionen bzw Features abgucke, welche ich für mein Framework selbst haben möchte. Zur Zeit geht es mir um die Benutzung des Frameworks. Ich möchte den größten Teil hinterher gern mit C# als Skriptsprache benutzen können. Im Prinzip kommen ein paar Editoren zusammen, welche ich gerne in einem größeren Programm zusammen fassen möchte. Dadurch hat sich mir die Frage gestellt, ob man das Spiel selbst nicht möglicherweise auch in so einem Editor schreiben soll. Für den Codeteil könnte ich mir vorstellen eine externe IDE zu verwenden, so wie es zum Beispiel bei Unity gemacht wird. Schon alleine, da ich nicht mal eben nebenher vergleichbares zu Visual Studio schaffen kann
C# hat für mich jetzt den Vorteil, das ich direkt auf alle Elemente meiner Frameworkklassen zugreifen kann. Durch Python oder LUA würde das alles etwas komplexer werden und um einiges mehr Arbeit kosten. Außerdem gefällt mir die Mächtigkeit von .Net, welche beim entwickeln eines Spiels sicher hilfreich ist.
Nun das zum Hintergrund. Nun zur eigentlichen Sache. Habt ihr C# schon als Skriptsprache in .Net Anwendungen benutzt und wie waren eure Erfahrungen dabei? Wie sollte ich das allgemein angehen. Ein Ansatz, welchen ich aktuell für sinnvoll halte, wäre einfach den Compiler mit den Skripten aufzurufen und daraus eine ausführbare Datei zu generieren. Das Framework selbst würde als Bibliothek eingebunden und meine eigene Software würde das ganze im Prinzip nur verbinden, ein wenig Code generieren und ein paar Details verschleiern.
Ein weiterer Ansatz wäre aus den Skripten eine Bibliothek zu generieren, welche dann vom Spiel geladen wird. Dort drin sind dann die benötigten Codedatein. Teils vom Benutzer geschrieben und teils generiert.
Ein letzter Ansatz wäre die Skripte zur Laufzeit zu laden, zu übersetzen und einzubinden. Das hätte natürlich den Vorteil, dass man an den Skripten rumspielen kann ohne die ganze Anwendung zu kompilieren. Ein wirkliches "muss" wäre das für mich aber eigentlich nicht.
Nun das sind meine Ideen die ich dazu hatte. Vielleicht habt ihr schon mehr Erfahrung damit sammeln können und könnt mir Tips dazu geben. Wichtig wäre für mich auf jeden Fall die Machbarkeit. Es ist natürlich schön eine schöne Lösung zu haben, wenn die aber nicht zeitlich umsetzbar ist habe ich davon nichts
Vielleicht gibts ja auch ein paar andere Anregungen oder Ansätze. Möglicherweise gibts ja auch Lücken in meinen Ideen.