Si prega di aiutare a classificare i modi di organizzare il codice di gioco C++/Lua e di separare i loro compiti. Quali sono i modi più convenienti, quale usi?Lua e C++: separazione dei compiti
Ad esempio, Lua può essere utilizzato per inizializzare solo oggetti C++ o ad ogni iterazione del ciclo di gioco. Può essere utilizzato solo per la logica di gioco o per la grafica. Alcuni motori di gioco offrono il controllo completo di tutti i sottosistemi dagli script! Non mi piace davvero questo approccio (nessuna separazione).
È una buona idea implementare tutti gli oggetti di gioco (npc, posizioni) come tabelle Lua senza oggetti C++? O è meglio specchiarli (tabelle Lua per controllare oggetti C++)? O qualcos'altro?
Grazie.
Modifica. La mia classificazione: Lua and C++: separation of duties.
continuazione del Topic: Lua, game state and game loop
Grazie, la tua risposta mi piace molto. Quindi, tu usi Lua principalmente come file di configurazione e repository di funzioni di callback. E ogni oggetto di gioco è implementato come oggetto C++ e oggetto Lua. È corretto? Come sincronizzi i loro stati? Come si salva il gioco? Generare un nuovo file di configurazione Lua? –
Gli oggetti Lua sono in realtà solo interfacce che si associano agli oggetti in c attraverso un singolo campo lightuserdata che risolve il "sé". Per quanto riguarda il salvataggio, in genere, salvo solo il livello di un giocatore, ma posso implementare una funzione che ricrea l'intero stato del gioco interamente in Lua semplicemente ottenendo lo stato di ogni oggetto e quindi scrivendo uno script per impostarli tutti - forse no molto ottimizzato e probabilmente guarderei la serializzazione in questo caso. –