Por favor ayúdenos a clasificar las formas de organizar el código del juego C++/Lua y separar sus tareas. ¿Cuáles son las formas más convenientes, cuál usas?Lua y C++: separación de funciones
Por ejemplo, Lua se puede utilizar para inicializar objetos de C++ solo o en cada iteración de bucle de juego. También se puede utilizar para la lógica del juego o para gráficos. ¡Algunos motores de juego proporcionan un control total a todos los subsistemas desde los scripts! Realmente no me gusta este enfoque (no hay separación en absoluto).
¿Es una buena idea implementar todos los objetos del juego (npc, ubicaciones) como tablas Lua sin objetos C++? ¿O es mejor reflejarlos (tablas Lua para controlar objetos C++)? ¿O algo mas?
Gracias.
Editar. Mi clasificación: Lua and C++: separation of duties.
la continuación del tema: Lua, game state and game loop
Gracias, me gusta mucho su respuesta. Entonces, usas Lua principalmente como archivo de configuración y repositorio de función de devolución de llamada. Y cada objeto del juego se implementa como objeto C++ y objeto Lua. ¿Es eso correcto? ¿Cómo sincronizas sus estados? ¿Cómo se guarda el juego? ¿Se genera un nuevo archivo de configuración de Lua? –
Los objetos Lua son realmente solo interfaces que se asignan a objetos en c a través de un único campo lightuserdata que resuelve lo que es "self". En cuanto al ahorro, generalmente solo guardo el nivel en el que se encuentra un jugador, pero podría implementar una función que recrea el estado del juego completo en Lua simplemente obteniendo el estado de cada objeto y luego escribiendo un guión para establecerlos a todos, quizás no muy optimizado y probablemente miraría la serialización en este caso. –