Frage

  

Das ingame Skript steuern NPC / KI-Logik.

Wenn ich im Spiel Scripting-Funktion implementieren waren, welche Sprache sollte es unterstützen?

Halten Sie meine Implementierung im Auge auf mehreren Plattformen wie .net, Flash laufen, JavaScript und Java.

Was sind die Vor-und Nachteile der angeführten Möglichkeiten? Wie lange dauert es, bis der Dolmetscher zu implementieren?

Welche Funktionen sind im Spiel scripters suchen? Was implementieren andere Spiele?

Ich denke für Javascript stimmen aufgrund der Tatsache, dass jeder lesen und schreiben kann es.

Was denken Sie?

War es hilfreich?

Lösung

Ich würde Lua verwenden, weil es furchtbar einfach zu integrieren. Embedding Python erschienen kompliziert zu sein, und ich habe nicht wirklich verfolgt.

Das Link rel="nofollow kann weiterer Nutzen sein wenn Sie mehr wissen wollen über das Einbetten Lua und seine Vorteile / Nachteile.

Andere Tipps

Mit Lua. Es ist eine schöne Sprache, weit verbreitet in der Spiele-Industrie angenommen.

Es gibt Lua-Bindungen für die meisten Ihrer Plattformen:

Es gibt auch llvm-lua Projekt , die Lua für die Portierung kann hilfreich sein auf anderen Plattformen.

Wie für JavaScript als Host-Plattform ... Dieses Thema erscheint wiederkehrend in der Lua-Mailingliste , aber keine ernsthafte Lösung wurde noch nicht veröffentlicht. Wenn Sie wirklich müssen Lua in JS hosten, fragen Sie bitte in der Lua-Mailing-Liste, vielleicht einige Leute ihre Erfahrungen zum Thema teilen.

Ich würde Python bevorzugen für ihre Bindungen in vielen Sprachen.

Ich glaube, Sie meinen den Interpreter „integrieren“, und nicht „implementieren“ es. Je nach Ihren Fähigkeiten, einen Interpreter für eine Skriptsprache zu schaffen könnte eine Menge Zeit in Anspruch nehmen.

ich sicher wissen, dass Python und Lua haben Bindungen für .NET und Java - Sie können die Dolmetscher einbetten können. Sie wissen nicht, ob es irgendwelche Bindungen für Javascript und Flash.

Das Problem mit Python ist, dass es drei Varianten alle von verschiedenen Personen gemacht.

  • Ironpython für .NET
  • Jython für Java
  • und die regelmäßige CPython

habe ich nicht auf Jython gearbeitet, damit ich nicht kommentieren. Aber es gibt bestimmte Portabilitätsprobleme zwischen Ironpython und CPython. Zum Beispiel: Ironpython nicht unterstützt native C-Erweiterungen. Wenn es Skripte in CPython geschrieben, die diese verwenden, werden Sie eine harte Zeit haben, sie zu Ironpython zu portieren. Auch wenn der Ironpython-Skripte alle .NET-Bibliotheken verwendet, haben Sie eine harte Zeit, sie zu CPython portieren.

Implementationen von Lua, auf der anderen Seite, kommt aus einem einzigen Ort und ich erwarte nicht solche Probleme.

Das hängt davon ab, wie komplex Ihr Code sein (wie kompliziert das Verhalten von NPCs werden kann). Tcl, Lua und JavaScript sind für einfache Aufgaben. Schreiben große Teile des Codes in dieser Sprache neigt dazu, schnell wartbaren zu werden (vor allem für gelegentliche Nutzer).

Eichhörnchen verwendet eine C-ähnliche Syntax, die die meisten Menschen mit bequem sein, aber wie wäre es Tooling-Unterstützung? Wenn Sie alles mit Notepad schreiben, das wird Sie stark einschränken, auch.

Python ist eine ausgereifte Sprache, die leicht zu erlernen ist (vergleiche nur die Lua „Tutorial“ auf die eine, die mit Python kommt). Während die verschiedenen Python-Versionen scheinen einschüchternd könnte (siehe Rohit Antwort ), wird der Python-Code in Ihrem Spiel das gleiche sein für alle. Es kommt mit einem IDE (IDLE) und es gibt auch andere IDEs, die Python unterstützen, gibt Ihnen Code-Vervollständigung, Debugging, Testfälle laufen, etc.

Wenn Sie Python verwenden, prüfen, mit Stackless , wie es ist eher besser auf Threading als Lager CPython. Es ist in mancher MMORPGs (EVE Online, IIRC) verwendet, so es einige Erfolge in Spielen bekommt. Plus, es ist sehr gut für Fortsetzungen (Teil des Grundes, warum es in erster Linie entwickelt wurde), die für ‚Simulation‘ Typ-Logik, dass man die Verwendung in Spielen durchaus ein gutes Modell ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top