Ruby als Skriptsprache (in C++ Programm)
-
Ich wollte bisher immer Lua als Skriptsprache nehmen (ist ja der quasi-Standard).
Allerdings hab ich kürzlich Ruby für mich entdeckt und da die Sprache sehr klein ist braucht man nur eine sehr kurze Einlernphase um damit arbeiten zu können.
Daher hab ich mir überlegt Ruby als Skriptsprache zu verwenden. Bei einer google-Suche nach Ruby C++ Bindings wurde ich allerdings nicht fündig. Gibt es Ruby nicht als Bibliothek wie Lua zum dazulinken und ne komfortable Binding-Library?Und wie sieht es performance-technisch aus? Ruby ist ja jetzt nicht die schnellste Interpretersprache (und ich will sie in einem Spiel einsetzen, von daher sollte die Sprache schon möglichst performant sein, da ich möglichst viel in die Skriptsprache auslagern will).
Gruß Spieleprogger
-
Bin selber auf der Suche nach einem C++ Binding für Ruby. Meine Suche war bisher leider erfolglos.

Ruby würde ich aber nicht für Spiele einsetzen. Es hat schon seinen Grund warum LUA der Quasi-Standard in Games ist. (wie du selber schon festgestellt hast)
-
Dafür kann man python in c++ verwenden.
-
Danke Artchi. Falls du mal ein C++ Binding für Ruby findest, dann denk an den Thread hier (ich schau regelmäßig im Forum vorbei).
@info wenn ich Phyton verwenden wollte, dann hätte ich das erwähnt.
-
Es gibt eine C-Library für Ruby. Das letzte mal, das ich mich mit dem Thema befasst habe (sicher 3 Jahre her), war die API aber ziemlich kaputt und man konnte bei Callbacks keinen Datenpointer übergeben (was bei einem wirklichen Einsatz in C++ eben notwendig wäre). Es gab aber einige C++-Wrapper (die aber alle keinen guten Eindruck hinterlassen haben).
Mittlerweile dürfte sich die Situation auch geändert haben. Ich glaube die C-API wurde kurz nach dem ich meine Versuche aufgegeben habe sogar erweitert um einen Datenpointer.
Ansonsten gibt es ja noch SWIG
-
Artchi schrieb:
Ruby würde ich aber nicht für Spiele einsetzen. Es hat schon seinen Grund warum LUA der Quasi-Standard in Games ist. (wie du selber schon festgestellt hast)
Woah?! Wenns performant sein muss, dann hatts gefälligst in C++ implementiert zu werden. Ich benutze Skripting (bei mir mit Boost.Python) nur für Spiellogik, bei der ists egal, wie schnell sie ist.
-
Bei SWIG kann ich doch nur von C/C++ Bibliotheken nach Ruby exportieren (so wie ich das sehe). Aber ich bräuchte Ruby als Teil des Programms, also den Interpreter in meinem Programm und ne Möglichkeit mit dem und dem Skript zu kommunizieren.
-
Ich bin auf diesen Link aufmerksam gemacht worden, hat jemand von euch davon schonmal gehört (der letzte news eintrag unten ist 4Jahre alt)?