¿Cuál es la biblioteca recomendada para usar Lua de C ++? [cerrado]

13

Actualmente estoy planeando cómo integrar las secuencias de comandos Lua en mi motor de juegos 2D, y me gustaría ir directamente a la solución más adecuada para tener las clases y objetos de C ++ expuestos.

He leído esto (si te ayuda a ayudar): http://lua-users.org/wiki/BindingCodeToLua

Si tiene un mejor lenguaje de scripts para recomendar, hágalo; D

Toda ayuda es bienvenida, necesito elegir la mejor solución para comenzar a implementar Gracias

Grimshaw
fuente

Respuestas:

4

Si la calidad principal de su lenguaje de scripting es fácil, intente AngelScript . Puede invocar funciones registradas directamente sin la necesidad de escribir funciones proxy, y admite convenciones de llamada de una amplia variedad de compiladores. El lenguaje en sí es similar a c / c ++, que puede ser bueno o malo, dependiendo.

Jari Komppa
fuente
7

He escuchado cosas buenas sobre LuaPlus . Envuelve la API C de bajo nivel en una C ++ de nivel superior.

El pato comunista
fuente
4

Siempre que esté haciendo un enlace razonablemente convencional, LuaBind hará todo lo que necesite. Las clases y funciones vinculantes tienden a ser un acuerdo de una línea por función. Si desea un ejemplo, aquí está el archivo correspondiente del motor de juego en el que he estado trabajando (busque el módulo (L) para el inicio de la interfaz LuaBind, DontKillMeBro <> es un pequeño sistema que preparé para permitirme más precisamente tiempo de destrucción de objetos para ciertos objetos sensibles).

Si quieres algo más complejo, probablemente necesites usar la API de Lua real. Afortunadamente, la API de Lua es razonablemente simple.

ZorbaTHut
fuente
1

Estamos usando OOLua para Pioneer . Proporciona una pila de macros que utiliza para vincular las "clases" de Lua a las clases de C ++. Tiene bastante poder pero es bastante sencillo. No he usado ningún otro, así que no puedo comentar cómo se compara. Aquí hay un ejemplo .

Rob N
fuente
1

Iría con las librerías precompiladas de Nuclex e incluiría archivos para LuaBind. (es decir, si está trabajando con VS2008)

Dado que LuaBind requiere que lo construyas con algunas librerías y herramientas de Boost, este paquete te ahorrará un tiempo valioso (y tal vez un poco de dolor de cabeza, quién sabe). Diría que sería capaz de hacer que Lua funcione en menos de una hora si sabe lo que está haciendo.

También puede considerar cambiar la dll de Lua predeterminada a una dll de LuaJIT si está buscando una pequeña ganancia de rendimiento . Es solo una cuestión de compilar la biblioteca y reemplazar el lib / dll con el que se vincula en su proyecto principal, por lo que es bastante fácil.

Con eso, ¡buena suerte!

tomzx
fuente