Scriptsprachen für Games



  • Okay, ich will hier mal eine Sammlung starten, welche Skriptsprachen für Games geeignet sind bzw überhaupt integrieren gehen. Ich will einfach auch persönlich mal einen Überblick.

    * AngelScript http://www.angelcode.com/angelscript/
    * Lua http://lua.org
    * Python http://python.org
    * Javascript Link? Spontan fällt mir nur Flusspferd ein hier ausm Forum
    * Stackless Python http://www.stackless.com/

    Bitte jetzt keine Diskussion warum alles ausser lua stinkt oder so, sondern wirklich nur mal ne Sammlung. Wenn ihr noch was kennt, her damit :).

    Meine Erfahrungen bisher:

    * AngelScript ist sehr leicht und bequem zu integrieren. Hat eine nette C++/Java/Python like Syntax. Unterstützt Klassen out of the box. Vor allem war es wirklich verdammt einfach die Klassen dem Script bekannt zu machen.

    * Python war eine Qual zu integrieren. Hab ich einmal geschafft und wills nie wieder tun^^. Einfach wegen dem schwer zu verstehenden C-Interface. Jedenfalls für mich.

    * Lua - ganz nett, aber leider kein OOP zum laufen gebracht.

    Die Erfahrungen sind natürlich rein persönlicher Natur und spiegeln nicht die Qualität des Produktes wieder und können auf Unwissen und Dummheit basieren. Nichtsdestotrotz evtl ein Anhaltspunkt für andere nicht studierte User.


  • Mod

    ich mag
    - js - spidermonkey http://www.mozilla.org/js/spidermonkey/
    - pawn - pawn script http://www.compuphase.com/pawn/

    beides nah an c++ syntax und recht schnell.

    weiter wird auch
    - c#/VB .net verwendet, weil die integration wohl recht einfach ist
    - java vm weil ebenfalls wohl leicht zu integrieren, es gibt sogar eine vm portierung die auf spu laeuft, was auf ps3 somit 8threads erlaubt 🙂



  • Wenn man's mag, kann man auch Scheme nehmen, das ist semantisch recht nahe an den anderen Sprachen. Ich stosse immer wieder mal auf Scheme in One Defun, aber bis jetzt nicht in Spielen. Für Scheme gibt es recht viele Interpreter und Compiler, das könnte man als Vorteil ansehen.


  • Mod

    passt vielleicht ein wenig hier rein, kennt jemand vielleicht einen lightweit interpreter fuer (object) pascal?



  • manches Spiel/Engine hat ja auch seine eigene Scriptsprache zB:
    http://de.wikipedia.org/wiki/QuakeC
    http://de.wikipedia.org/wiki/UnrealScript
    die Einheiten Scripts von Total Annihilation
    die AI von http://necrobones.com/atrobots/

    Ist jetzt nicht immer sinnvoll aber ich denke in einen Überblick gehört das rein.



  • Scorcher24 schrieb:

    * Lua - ganz nett, aber leider kein OOP zum laufen gebracht.

    Aus Interesse: meinst du das Zusammenspiel von Lua mit C++-Objekten oder OOP in Lua?



  • Habe bisher immer LUA verwendet, weils unproblematisch und schön schnell ist. "OOP" soll ja zu einem gewissen Grad möglich sein, aber hinter das Geheimnis bin ich bisher auch noch nicht gekommen. Ich persönlich verfolge da einen C ähnlichen Ansatz, indem ich C++ Objekte meiner Anwendung mittels "Handles" und einem kleinen Objektmanager von LUA aus manipuliere. AngelScript sieht ja auch klasse aus. Endlich mal eine schöne C Syntax und nicht so ein Pascal/Basic Mutant 😃



  • Ich würde Lua dann nehmen, wenn ich weiß, das Nicht-Programmierer (also der normale Büroangestellte) Scripte schreiben können soll. Wenn ich weiß, das Programmierer bzw. Leute mit Programmier-Affinität Scripte schreiben können sollen, würde ich zu AngelScript greifen.



  • Scorcher24 schrieb:

    * Python war eine Qual zu integrieren. Hab ich einmal geschafft und wills nie wieder tun^^. Einfach wegen dem schwer zu verstehenden C-Interface. Jedenfalls für mich.

    ich halte es eh für deutlich sinnvoller, nicht python in das Spiel zu integrieren, sondern das Spiel in Python. Bzw alles was schnell sein soll in C++ schreiben und dies dann in Python integrieren. sollte eigentlich deutlich einfacher zu bewerstelligen sein als der umgekehrte Weg.



  • mngbd schrieb:

    Scorcher24 schrieb:

    * Lua - ganz nett, aber leider kein OOP zum laufen gebracht.

    Aus Interesse: meinst du das Zusammenspiel von Lua mit C++-Objekten oder OOP in Lua?

    OOP in Lua selbst.
    Ich weiss nicht, aber irgendwie habe ich das Gefühl, dass AngelScript die einzige Sprache ist mit die man elegant mit C++ verwenden kann, wegen dem guten Zusammenspiel und dem einfachen Export.



  • Kein Wunder, Lua wurde ja für C entwickelt. Und AngelScript speziell für C++. Da muß man nicht groß rum lamentieren.



  • Scorcher24 schrieb:

    OOP in Lua selbst.

    Hast du das hier gelesen?
    http://www.lua.org/pil/16.html

    Solche Sachen mag ich an Lua recht gerne.

    Nachtrag:
    Das was ich recht gerne mag, kommt eigentlich erst in 16.1 ff.


Anmelden zum Antworten