Eu faço isso no meu mecanismo ( fonte disponível , mas provavelmente não vale a pena decifrar).
No meu caso, uma "entidade" é um conceito que existe totalmente dentro de Lua. Não há suporte em C ++ para "entidades". Como tal, uma "entidade" é o que esse jogo específico precisa. Às vezes, é apenas uma tabela com poucos dados anexados, às vezes é um elemento de quadro 2D (observe que os quadros também são construções inteiramente Lua, eu só tenho uma biblioteca de interface do usuário padrão), às vezes é algo complicado com AI e renderização e, em seguida, é ainda é apenas uma coisa criada em Lua.
Muitas pessoas usam Lua para criar scripts para sistemas de objetos com suporte a C ++, de modo que a entidade "viva" em C ++ e chame Lua para seus scripts. Eu costumava fazer isso, mas me senti cada vez mais feliz ao mudar o código do C ++ para o Lua. Neste ponto, eu uso o C ++ apenas para lidar com as chamadas da API do SO, e toda a lógica de layout / renderização / IA / jogo está em Lua 100% pura.
Recomendado.
Sinta-se livre para fazer perguntas, estou bastante disposto a responder :)