Frage

Ich versuche, einig für spöttisch nach oben aus dem Ogre3D-Rendering-Engine einen nützlichen 3D-Spiel-Engine zu bauen aus den Ideen, die ich mit gekommen bin und habe ein bisschen eine Kreuzung kommen. Es gibt eine Reihe von Skriptsprachen, die verfügbar sind, und ich frage mich, ob es ein oder zwei waren, die überprüft wurden und hatte eine richtige folgenden.

LUA und Eichhörnchen scheinen die mehr geprüft werden, aber ich bin offen für jeden und alle.

Optimal wäre es am besten, wenn es eine kompilierter Form für die Sprache für die Verteilung und die einfachen Beladung ist.

War es hilfreich?

Lösung

Die Syntax Geschmackssache ist, ist Lua wie Javascript, aber mit geschweiften Klammern mit Pascal-ähnlichen Keywords ersetzt. Es hat das schöne syntaktische Merkmal, dass Semikolons nie benötigt werden, aber Leerzeichen sind noch nicht signifikant, so können Sie auch alle Zeilenumbrüche entfernen und hast es immer noch funktionieren. Als jemand, der mit C begann ich würde sagen, Python ist der mit esoterischer Syntax im Vergleich zu allen anderen Sprachen.

luajit ist auch etwa 10-mal so schnell wie Python und Lua-Interpreter ist viel viel kleiner (150kb oder um 15k Zeilen C, die Sie durch tatsächlich lesen und verstehen können). Sie können dem Benutzer Skript Spiel lassen, ohne eine massive Sprache einbetten zu müssen. Auf der anderen Seite, wenn Sie reißen den Parser Teil aus Lua wird es sogar noch kleiner.

Andere Tipps

Eine interessante Option ist stackless-Python . Dies wurde in dem Eve-Online-Spiel verwendet wird.

Der Python / C API Handbuch ist länger als die ganz Lua-Handbuch (einschließlich der Lua / C API).

Ein weiterer Grund für Lua ist die integrierte Unterstützung für Koroutinen (kooperatives Multitasking innerhalb des ein OS-Thread). Es ermöglicht, einen haben, wie 1000 von scheinbar individuellen Skripten nebeneinander sehr schnell ausgeführt wird. Wie ein Skript pro Monster / Waffe oder so.

(Warum schreiben Menschen Lua in Großbuchstaben so viel auf SO? Es ist "Lua" (siehe hier ).)

Eine weitere Stimme für Lua. Klein, schnell, einfach zu integrieren, was für moderne Konsolen wichtig ist -. Sie leicht seine Speicheroperationen steuern

ich mit Lua gehen würde, da Bindungen Schreiben extrem einfach ist, die Lizenz ist sehr freundlich (MIT) und vorhandenen Bibliotheken neigen auch dazu, unter seine die Lizenz. Scheme ist auch schön und einfach zu binden, weshalb es für den Gimp Bildeditor zum Beispiel gewählt wurde. Aber Lua ist einfach toll. World of Warcraft benutzt es, als ein sehr hohes Profil Beispiel. Luajit gibt Ihnen mutter zusammengestellt Leistung. Es ist weniger als eine Größenordnung aus reines C.

Ich würde LUA nicht empfehlen, es hat eine besondere Syntax dauert so etwas Zeit, um sich daran zu gewöhnen. Je nachdem, wer das Scripting tat, kann dies kein Problem sein, aber ich würde versuchen, etwas ziemlich zugänglich zu verwenden.

Ich würde wahrscheinlich Python wählen. Es kompiliert normalerweise Bytecode, so dass Sie den Interpreter einbetten müssten. Wenn Sie jedoch müssen Sie PyPy zu zum Beispiel übersetzen den Code C, und dann kompiliert sie verwenden können.

den Interpreter Einbettung ist kein Problem. Ich bin mehr daran interessiert, Funktionen und Leistung zu diesem Zeitpunkt. LUA und Eichhörnchen sind beide interpretiert, was schön ist, weil eines der Spiele, die ich aus bin Gebäude ist modifizierbar Code enthalten, der einen Editor in Spiel hat.

Ich würde gerne über Python hören, wie ich seine Verwendung in der Schlachtfeld-Serie glaube ich je gesehen habe.

Python ist auch schön, weil es tatsächlich OGRE Bindungen hat, nur für den Fall, dass Sie etwas niedrigeren Ebene on the fly ändern müssen. Ich weiß nicht von irgendwelchen äquivalenten Bindungen für Lua.

Da es sich um eine C ++ Bibliothek ist, würde ich vorschlagen, entweder JavaScript oder Eichhörnchen, das letztere ist mein persönlicher Favorit der beiden noch näher an C ++ zu sein, insbesondere, wie es Tabellen / Strukturen und Klassen behandelt. Es wäre am einfachsten zu für eine C ++ Coder zu gewöhnen, weil alle Ähnlichkeiten.

Wenn Sie jedoch mit JavaScript gehen und eine HTML5-Version von Ogre3D finden, sollten Sie direkt in die Web-Version mit minimal-Port Spiel Code in der Lage sein (falls vorhanden) Änderungen notwendig.

Beide sind eine gute Wahl, und beide haben ihre Vor- und Nachteile, aber beide würden auf jeden Fall am einfachsten zu lernen, da Sie wahrscheinlich in C ++ bereits arbeiten. Wenn Sie mit Java arbeiten, hält das gleiche kann wahr, und wenn es Game Maker ist, würden Sie nicht entweder eine benötigen, es sei denn Sie versuchen, eine ausführbare Datei zu machen, die Leute würden nicht Game Maker selbst ausführen müssen, in denen Fall viel Glück eine Verlängerung der Suche nach einer dieser beiden auszuführen.

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