Kann ich C als Skriptsprache für meine Engine verwenden?

8

Ich habe gerade eine Spiel-Engine und ich suche eine Skriptsprache dafür. Ich habe versucht, Lua und finde es ziemlich gut, aber ich möchte mein Skript aussehen wie C oder besser C ++ oder sehen aus wie unreal Engine Skript wäre besser.

Ist das überhaupt möglich?

    
Dark 24.05.2011, 10:07
quelle

6 Antworten

6

Sicher kannst du: P Du kannst alles tun, wenn du willst.

Ich sehe derzeit diese drei Möglichkeiten:

  • Entweder schreibst du den Code selbst, um den C / C ++ - Code zu analysieren, was wirklich keine leichte Aufgabe ist
  • Sie verwenden einen Parser, der C-Code analysiert und interpretiert. Ch Standard-Edition sollte den gewünschten Erfolg bringen, da es in eigenen Projekten als Skriptsprache enthalten sein kann.
  • Eine andere Möglichkeit besteht darin, ein Skript zu erstellen, das den vom Benutzer generierten Code dynamisch zu einer gemeinsam genutzten Bibliothek kompiliert, die von Ihrer Engine dynamisch geladen wird. Obwohl dies nicht mehr "Scripting" wäre.
Atmocreations 24.05.2011 10:12
quelle
3

Prüfe AngelScript, GameMonkey, und es gibt viele andere

Ссылка

Oder gehen Sie auf die harte Tour und integrieren Sie den CINT C / C ++ - Interpreter (http://root.cern.ch) in die ROOT-Bibliothek. Die Idee ist, dass Sie alle Ihre .c / .cpp-Dateien interpretieren, an denen Sie aktiv arbeiten, während der Rest kompiliert wird (Ihre Wahl).

Wenn Sie zum Beispiel der Audioprogrammierer sind, möchten Sie, dass der Rest des Nicht-Audio-Codes blitzschnell ist, während die Sachen, die Sie aktiv bearbeiten, nicht so sind, sondern schnelle Iteration - Hot-Loading, Änderung am Fliege, etc.

Darüber hinaus verfügt der CINT-Interpreter über zusätzliche dynamische Sprachfunktionen - Sie können sich Gedanken machen (Reflektion) - damit Sie beispielsweise Serializer für das Packen Ihrer Spielinhalte erstellen können oder was immer Sie benötigen.

Es gibt auch UnderC und Ch (wie erwähnt) und viele viele andere ...

    
malkia 31.05.2011 04:47
quelle
2

Metalua ist ein Sprachimplementierungssystem, das auf der Lua-Codebasis basiert, die verschiedene Sprachinnereien wie den Parser ( gg / mlp ), so dass Sie die Sprache erweitern oder die Syntax komplett ändern können. Denken Sie an eine Kreuzung zwischen yacc und einem lispy metacircular Interpreter.

Es ist mir nicht ganz klar, was Sie mit aussehen wollen, wie C oder besser C ++ , aber ich denke, das klingt in der richtigen Richtung und bietet eine gute Balance zwischen einfacher Implementierung und Flexibilität.

    
Charles Stewart 24.05.2011 12:45
quelle
2

Es gibt eine Reihe von Skriptsprachen mit mehr oder weniger C-ähnlicher Syntax. Andere erwähnten bereits ECMAScript, eine andere Option wäre s-lang , die als Skriptsprache entworfen wurde, einfach einzubetten ist und hat eine Syntax, die ziemlich nahe an C ist.

    
user629132 24.05.2011 20:58
quelle
2

TCC verfügt über eine Bibliothek, die eine dynamische Kompilierung von C-Code ermöglicht, und da es so schnell ist wie ein C-Compiler, kann es sein verwendet, um Sachen (fast) on-the-fly zu kompilieren, gibt es ein wirklich grundlegendes Beispiel hier , jedoch das TCC Dokumentation in der Kopfzeile ist viel besser in Sachen erklären.

es kommt auch mit einem besseren Beispiel , das zeigt, wie man Symbole dem Compiler aussetzt, wenn man libtcc benutzt, dies kann Ihnen erlauben Sandkasten Ihre Skripte, wenn Sie bestimmte Teile des Compilers deaktivieren (hauptsächlich den Import von externen Bibliotheken, die nicht auf einer sicheren Liste stehen), was möglich ist, da es vollständig opensource und nicht too komplex ist und einige grundlegende Eigenschaften aufweist Dokumente über seine interne Struktur.

    
Necrolis 31.05.2011 05:38
quelle
1

Wie es bei @Charles hieß, verwenden Sie Metalua, wenn Sie etwas einfach implementieren möchten und Flexibilität haben. Wenn Sie eine C-ähnliche Skriptsprache verwenden möchten, können Sie ECMAScript oder eine beliebige andere Obermenge (JavaScript, JScript, ActionScript) ausprobieren.

    
Joe Tyman 24.05.2011 16:10
quelle

Tags und Links