Ich mache ein Programmierspiel in C++ und Qt, habe aber eine einzigartige Einschränkung, was meine Auswahl an Engines angeht; Da es möglich ist, dass der Player Code schreibt, der sich endlos wiederholt oder lange zum Ausführen braucht, muss ich in der Lage sein, die Ausführung einer Skript-Engine jederzeit zu beenden. Ich habe gestern bei StackOverflow eine Frage dazu gestellt , und leider gibt es keine Möglichkeit, einen Thread in C++ zu beenden, ohne potenziell Ressourcenprobleme zu verursachen (Sperren werden nicht freigegeben, Speicherlecks usw.).
Mir wurde gesagt, dass ich eine Skript-Engine benötige, die es mir erlaubt, Skripte nach Belieben zu beenden, ohne die Sitzung des Spielers zu gefährden. Welche Möglichkeiten habe ich unter diesen Voraussetzungen?
Vielleicht möchten Sie Lua ausprobieren .
Es ist in C oder C++ einbettbar
Es ist portabel (funktioniert auf allen Plattformen, die einen C-Compiler haben)
Es ist eine ziemlich einfache Sprache
Sie können Lua von C++ aufrufen und umgekehrt (sogar mehrfach verschachtelt)
Sie haben die volle Kontrolle darüber, welche Funktionalität/Objekte/... den Skripten zur Verfügung gestellt werden
Nach meinem Verständnis sollte es möglich sein, eine laufende Lua-Engine in einer Multithread-Umgebung zu beenden
Wenn Sie vollständig in C++ bleiben möchten, könnten Sie an luabind interessiert sein .
einpoklum
einpoklum