Ich möchte meiner C++ Gameengine Skriptfunktionen hinzufügen.Racket als Skriptsprache in einer Spielengine
Ich habe Engine.exe
, Physics.dll
, Audio.dll
und ich hinzufüge Scripting.dll
, die einen High-Level-Racket-Wrapper ist.
Engine.exe
Lasten Physics.dll
und richtet Physik Welt, lädt Audio.dll
und richtet Audio-Welt ein. Es soll geladen werden Scripting.dll
, um Bindungen zu Physics.dll
, Audio.dll
einzurichten und Spiel-Skripte zu laden.
AFAIK gibt es zwei mögliche Wege Racket in ein C++ Programm einzubetten:
Foreign Interface Mit bizarren scheint aufgrund Notwendigkeit Physics.dll
, Audio.dll
zweimal zu laden: zuerst aus Engine.exe
und dann aus dem Spiel-Skript.
Das Schreiben Extensions sieht ansprechender aus, weil es Skriptbindungen auf C++ - Seite ermöglicht. Auf der anderen Seite müssen Sie Ihre Erweiterung mit raco ctool
erstellen, verknüpfen Sie es mit mzdyn
Objektdatei - die auch peinlich aussieht: Warum nicht mzdyn
eine statische Bibliothek machen?
Ich möchte ein einzelnes Verfahren, z. setupScriptBindings()
, sowohl in Physics.dll
als auch in Audio.dll
, und beim Start von Engine.exe
anrufen.
Gibt es einen einfachen Weg, es zu tun?
Hm, vielleicht [diese] (http://docs.racket-lang.org/inside/embbedding.html) Beschreibung hilft. –
Hm ... die Links, die Sie zur Verfügung stellen, sprechen über das Einbetten von C/anderen Code ** in ** ein Racket-Programm. Von Ihrer Beschreibung, ich denke, Sie wollen es umgekehrt, z. Einbetten von Racket in Ihre C++ - Anwendung: http://docs.racket-lang.org/inside/embbedding.html Obwohl die einfachste und wahrscheinlich sauberste Lösung wäre, eine Art Protokoll für die Kontrolle Ihrer Spieleinheiten zu definieren, und dann Schläger zu starten als ein neuer Prozess, Kommunikation mit Sockets oder einem anderen IPC-Mechanismus. –
Offtopic: Racket wurde erfolgreich in der Videospiel-Produktion von Naughty Dog verwendet. Siehe [«Racket auf der Playstation 3»] (http://www.youtube.com/watch?v=oSmqbnhHp1c) und [«State-Based Scripting in Uncharted 2: Unter Dieben»] (http: //www.gameenginebook .com/resources/gdc09-staatscripting-uncharted2.pdf). –