Skriptsprachen: LUA / Python



  • Hat hier jemand schon eine solche Skriptsprache für seine Games oder Tools als Erweiterungsmechanismus benutzt?
    Wenn ja, wie sind die Erfahrungen? Ging die Einarbeitung schnell? Wie gut sind Skripte vom C++-Code aufzurufen und wie gut ist C++-Code vom Skript aufzurufen?
    Oder benutzt ihr nur "eigene Skript"sprachen"", d.h. lediglich für Config-Dateien?

    Gibt's kommerzielle Beispiele für die Verwendung? Für LUA fällt mir jetzt spontan nur Far Cry ein. Gibt's auch für Python Beispiele?

    Wie sieht's mit weiteren Sprachen aus, TCL, etc.?

    Thx! 🤡 👍



  • Oder benutzt ihr nur "eigene Skript"sprachen"", d.h. lediglich für Config-Dateien?

    Ja. Soll aber irgendwann auch mal was anderes kommen, angeblich LUA.

    Bye, TGGC \-/



  • TGGC schrieb:

    Oder benutzt ihr nur "eigene Skript"sprachen"", d.h. lediglich für Config-Dateien?

    Ja. Soll aber irgendwann auch mal was anderes kommen, angeblich LUA.

    Also echt nur für Config ja, á la "SCREENWIDTH = 800"?
    Ihr macht damit keine interaktive Levelgestaltung?!!



  • Meine Art von "Scripts" sollte im letzten "Interessante Themen" Thread zu finden sein.
    Falls net:

    Ich compile für jeden Level ne shared Library um bestmögliche Performance und Anbing an die Engine zu haben.



  • Was sind eigentlich die Vorteile von Lua gegenüber Python? Was macht Lua für Spieleentwickler so toll?

    Sgt. Nukem: Wie das bei Lua aussieht weiß ich nicht, aber Python und C bzw C++ harmonieren extrem gut.



  • nman schrieb:

    Was sind eigentlich die Vorteile von Lua gegenüber Python? Was macht Lua für Spieleentwickler so toll?

    Soweit ich das aus anderen Diskussionen ableiten konnte:

    + LUA : Schneller.
    + LUA : Weniger Memory Overhead.

    + Python : Große Library mit allen-möglichen-Funktionen
    + Python : Exceptions und bessere interne Typen (in LUA gibt's z.B. nicht direkt Arrays)

    nman schrieb:

    Sgt. Nukem: Wie das bei Lua aussieht weiß ich nicht, aber Python und C bzw C++ harmonieren extrem gut.

    Ich würde z.Z. auch Python bevorzugen.
    Kannst Du mal ein kurzes Beispiel posten, wie das genau aussieht, wenn man von Python bzw. nach Python was aufrufen will?



  • In 'ner alten Ecopoeisis Version gab es schon 'ne C-like Scriptengine. Aber im Moment wird das (noch) nicht benötigt und liegt daher brach. Stattdessen soll dann ja eben gleich LUA benutzt werden.

    Bye, TGGC \-/



  • Beispiel für Python: Severance: Blade of Darknes von Rebel Act, ist ein extrem cooles spiel, bei dem man die Hälfte ummodeln kann, nur indem man an des Skripten fummelt. Der Hersteller ist leider inzwischen pleite, weil BOD (fast) keinen Kopierschutz hatte und es ein sehr beliebtes spiel in der warez szene war.

    Über Lua weiss ich nichts, bin jedoch starker Python verfechter. Die Sprache ist genial und geht so schnell von der Hand wie VB, bei (IMHO) besser Sprachstruktur und Syntax. Hat ne umfassende, gute Dokumentation und ist ua von Haus aus auch dafür gemacht in C++ eingebettet zu werden.

    Extra goodie: Es gibt ein Modul namens Psyco (steht für Python Compiler). Ein Aufruf in der Main funktion genügt und das Skript wird zu Laufzeit kompiliert und damit um bis zu 100 % (manchmal auch mehr) beschleunigt. Wenn das mal nix ist.

    Die Objektorientierung unterstützt fast den vollen Umfang, den man von C++ gewohnt ist, alle Fehler sind exceptions, die selbstständig auskunft über Zeilennummer und art geben (ein Traum zum debuggen). Ich könnte noch fortfahren, muss aber essen gehn. CU



  • ChockoCookie schrieb:

    weil BOD (fast) keinen Kopierschutz hatte

    Wenn ich das richtig im Kopf hab', hatte BOD einen (für damalige Verhältnisse) _mega_ Kopierschutz. Das wurde doch von Codemasters publisht? Die hatten da doch gerade diesen neuen "FADE" Kopierschutz eingeführt... 😕

    Naja, is' ja eh OT.

    Aber danke für das Beispiel, das wußte ich noch nicht.

    TGGC schrieb:

    In 'ner alten Ecopoeisis Version gab es schon 'ne C-like Scriptengine. Aber im Moment wird das (noch) nicht benötigt und liegt daher brach. Stattdessen soll dann ja eben gleich LUA benutzt werden.

    Achso. Gut. _WARUM_ gerade LUA weißt Du aber auch nicht, was? 😕



  • Sgt. Nukem schrieb:

    Wenn ich das richtig im Kopf hab', hatte BOD einen (für damalige Verhältnisse) _mega_ Kopierschutz. Das wurde doch von Codemasters publisht? Die hatten da doch gerade diesen neuen "FADE" Kopierschutz eingeführt... 😕

    Kann sein, ich weis das nicht genau (habs ja gekauft). Ich weis nur, das es eines der Meistkopierten Spiele des Jahres 2000(??) ist. Und: ja es wurde von Codemasters gepublisht.
    Wie auch immer, ich denke die Qualität des Spieles spricht für sich.



  • ChockoCookie schrieb:

    Kann sein, ich weis das nicht genau (habs ja gekauft). Ich weis nur, das es eines der Meistkopierten Spiele des Jahres 2000(??) ist. Und: ja es wurde von Codemasters gepublisht.
    Wie auch immer, ich denke die Qualität des Spieles spricht für sich.

    Hab's net gekauft, sondern 'ne lange Zeit geliehen gehabt, und das mit FADE weiß ich auch nur von PDFs aus'm Netz von "Quo vadis" und Co.
    Kann aber auch sein, daß das mit Operation Flashpoint kam.

    Die _spielerische_ Quali war geil, ja. Auch die Schatten damals schon krass. 👍

    Technisch war's aber net so pralle (oft abgeschmiert, tlw. beschissenes Ruckeln, doofes Interface)... 👎



  • Also mit Abstürzen oder Ruckeln hab ich nie Probleme gehabt. Über das Interface kann man sich streiten, mich hats nie gestört. Und vor allem das Kampfsystem ist Beispielhaft. Auf jeden Fall gibts ne rohe Menge kleinerer und grösserer Mods auf Skriptbasis und eine (AFAIK) immer noch aktive Community.



  • Wiggles benutzt TCL. Die ganzen Skripte liegen im Textformat in den Ordnern rum und sind zum Beispiel zuständig für Animationsabläufe bei der Produktion, Materialverbrauch oder auch die Gespräche zwischen den Zwergen.



  • Ich hab fuer mein Classic-Adventure eine eigene Skriptsprache entwickelt. Die Sprache basiert wie Lua/Python auf Hashtables, hat aber eine JavaScript-Optik.

    Lua: Grim Fandango, Baldurs Gate (Debugger)



  • Sgt. Nukem schrieb:

    Achso. Gut. _WARUM_ gerade LUA weißt Du aber auch nicht, was? 😕

    Nein. Habe mich auch noch nicht damit beschäftigt.

    Bye, TGGC \-/



  • Sgt. Nukem schrieb:

    + LUA : Schneller.
    + LUA : Weniger Memory Overhead.

    + Python : Große Library mit allen-möglichen-Funktionen
    + Python : Exceptions und bessere interne Typen (in LUA gibt's z.B. nicht direkt Arrays)

    Naja, wenn man bedenkt wie wenig LUA verglichen mit Python eigentlich kann dann finde ich das nicht soo beachtlich, vor allem wird der Flaschenhals bei Spielen sowieso in den seltensten Fällen die verwendet Scriptingsprache sein...

    Ich würde z.Z. auch Python bevorzugen.
    Kannst Du mal ein kurzes Beispiel posten, wie das genau aussieht, wenn man von Python bzw. nach Python was aufrufen will?

    Momentan hab ich relativ wenig Zeit, ich bastel Dir nach dem Forumstreffen was. (Bzw. schau einfach mal auf http://www.python.org , da gibts sicher was Passendes!)



  • nman schrieb:

    Naja, wenn man bedenkt wie wenig LUA verglichen mit Python eigentlich kann dann finde ich das nicht soo beachtlich, vor allem wird der Flaschenhals bei Spielen sowieso in den seltensten Fällen die verwendet Scriptingsprache sein...

    Was kann LUA denn deutlich weniger??

    Eben, (nicht nur) deswegen tendiere ich ja auch zu Python! 🤡

    [EDIT: Wiederholung wegeditiert]



  • Weswegen noch?


Anmelden zum Antworten