Arakis
05-03-2012, 03:23
Hallo,
es ist zwar noch nicht in Stein gemeißelt, aber mit großer Wahrscheinlichkeit wird es bald möglich sein, C# (.NET) als Scriptsprache zu verwenden. Eine Dual-Unterstützung (LarneScript+C#) wird zwar in Erwägung gezogen, wird es aber nur mit sehr geringer Wahrscheinlichkeit geben, da die C# Ausführung und die LarneScript Ausführung einen komplett anderen Weg gehen.
Aus Entwicklersicht gibt es einige viele Vorteile:
- Es kann ein Visual Studio (Express) 2010 gearbeitet werden, oder SharpDevelop(open source).
- IDE-Nutzer können eine Api-Library nutzen.
- Vollständiges Intellisense.
- Nie mehr Laufzeitfehler durch "Syntaxfehler", welche vom LarneScript-Compiler nicht richtig behandelt wurden.
- Das volle Funktionssprektrum von C#, dazu zählen:
* Vererbung für eigene Klassen
* Funktionsüberladung
* Delegates
* Events
* Try-Cahtes
* und vieles mehr
Die API an sich wird nicht erweitert. Sie bleibt (fast) genau gleich. Technisch gesehen wird der vom Spieler hochgeladene Quelltext auf dem Server in Javascript konveriert und in einer Javascript-Engine auf dem Server ausgeführt. Die Konvertierung von C# in Javascript funktioniert sehr gut, die neue GUI von STNE z.B. wird auf dem selben Weg "generiert".
Die Änderung an der ScriptEngine ist allein auch deshalb schon notwendig, weil nur so wäre es möglich in Zukunft Extensions auch für die neue GUI anzubieten. Direkten Javascript-Zugrif wird es jedoch nicht geben. Dies hat technische Hintergrunde (die after-compilation-js-Funktionen(nicht sichtbar in c#) heißen z.B. STNE.app.Callme$String$Integer$Integer$Type etc., also sehr unleserlich), als auch aus Sicherheitsgründen(es wird z.B. kein document, htmlelement-api etc. geben.). Natürlich kann sich jeder per firefox-extension sich beliebige scripts einfügen, aber offizelle STNE-extension sollten gefahrlos von anderen spielern ausgeführt werden wollen, ohne dass gleich die session-cookies "entführt" werden.
Lieben Gruß,
Arakis
es ist zwar noch nicht in Stein gemeißelt, aber mit großer Wahrscheinlichkeit wird es bald möglich sein, C# (.NET) als Scriptsprache zu verwenden. Eine Dual-Unterstützung (LarneScript+C#) wird zwar in Erwägung gezogen, wird es aber nur mit sehr geringer Wahrscheinlichkeit geben, da die C# Ausführung und die LarneScript Ausführung einen komplett anderen Weg gehen.
Aus Entwicklersicht gibt es einige viele Vorteile:
- Es kann ein Visual Studio (Express) 2010 gearbeitet werden, oder SharpDevelop(open source).
- IDE-Nutzer können eine Api-Library nutzen.
- Vollständiges Intellisense.
- Nie mehr Laufzeitfehler durch "Syntaxfehler", welche vom LarneScript-Compiler nicht richtig behandelt wurden.
- Das volle Funktionssprektrum von C#, dazu zählen:
* Vererbung für eigene Klassen
* Funktionsüberladung
* Delegates
* Events
* Try-Cahtes
* und vieles mehr
Die API an sich wird nicht erweitert. Sie bleibt (fast) genau gleich. Technisch gesehen wird der vom Spieler hochgeladene Quelltext auf dem Server in Javascript konveriert und in einer Javascript-Engine auf dem Server ausgeführt. Die Konvertierung von C# in Javascript funktioniert sehr gut, die neue GUI von STNE z.B. wird auf dem selben Weg "generiert".
Die Änderung an der ScriptEngine ist allein auch deshalb schon notwendig, weil nur so wäre es möglich in Zukunft Extensions auch für die neue GUI anzubieten. Direkten Javascript-Zugrif wird es jedoch nicht geben. Dies hat technische Hintergrunde (die after-compilation-js-Funktionen(nicht sichtbar in c#) heißen z.B. STNE.app.Callme$String$Integer$Integer$Type etc., also sehr unleserlich), als auch aus Sicherheitsgründen(es wird z.B. kein document, htmlelement-api etc. geben.). Natürlich kann sich jeder per firefox-extension sich beliebige scripts einfügen, aber offizelle STNE-extension sollten gefahrlos von anderen spielern ausgeführt werden wollen, ohne dass gleich die session-cookies "entführt" werden.
Lieben Gruß,
Arakis