Ho una libreria C++ che ha funzionalità esposte a Lua e sto cercando opinioni sui modi migliori per organizzare il mio codice lua.Quale strategia deve essere usata quando si espone C++ a Lua
La libreria è un motore di gioco, con un sistema di oggetti di gioco basato su componenti. Voglio essere in grado di scrivere alcuni di questi componenti come classi in Lua. Sto usando LuaBind, quindi posso farlo ma ci sono alcune scelte di implementazione che devo fare e vorrei sapere come gli altri l'hanno fatto.
Dovrei avere solo un lua_State globale, o uno per oggetto, uno per scena, ecc.? Questo suona come un sacco di memoria in testa, ma manterrà tutto bello e separato.
Devo avere una tabella GLOBALS o una per oggetto, che può essere messa in atto prima di una chiamata a un membro? Ciò sembrerebbe ridurre al minimo le possibilità che alcune classi decidano di utilizzare i globali e un'altra sovrascriverla accidentalmente, con un sovraccarico di memoria inferiore rispetto a molti lua_States.
Oppure dovrei semplicemente mettere tutto nella tabella globale?
Un'altra domanda riguarda il codice lua stesso. Due strategie si verificano ... Spingendo dapprima tutte le definizioni di classe in un unico posto, caricandole all'avvio dell'applicazione, in secondo luogo inserendo una definizione di classe per file e semplicemente assicurandosi che il file sia caricato quando ho bisogno di istanziarlo.
Gradirei i pensieri di qualcuno su questo, grazie.
Buon punto (+1), anche se il threading della logica di gioco non è qualcosa che sto considerando solo ora. – DaedalusFall