Tengo una biblioteca C++ que tiene una funcionalidad expuesta a Lua, y estoy buscando opiniones sobre la mejor manera de organizar mi código lua.¿Qué estrategia se debe utilizar al exponer C++ a Lua
La biblioteca es un motor de juegos, con un sistema de Objetos de juego basado en componentes. Quiero poder escribir algunos de estos componentes como clases en Lua. Estoy usando LuaBind, así que puedo hacerlo, pero debo hacer algunas elecciones de implementación y me gustaría saber cómo lo han hecho otros.
¿Debo tener solo un lua_State global, o uno por objeto, uno por escena, etc.? Esto suena como una gran cantidad de memoria, pero mantendrá todo bien y separado.
¿Debo tener una tabla GLOBALS, o una por objeto, que se pueda colocar antes de llamar a un miembro? Esto parecería minimizar las posibilidades de que una clase decida usar globales, y otra sobreescribirlo accidentalmente, con menos memoria que tener muchos lua_States.
¿O debería tapar todo en una tabla global?
Otra pregunta involucra el código lua en sí. Se producen dos estrategias ... En primer lugar, empujar todas las definiciones de clase en un lugar, cargarlas cuando se inicia la aplicación, en segundo lugar poner una definición de clase por archivo y simplemente asegurarme de que el archivo se cargue cuando lo necesite.
Agradecería cualquier idea sobre esto, gracias.
Buen punto (+1), aunque enhebrar la lógica del juego no es algo que esté considerando en este momento. – DaedalusFall