Lo hago en mi motor ( fuente disponible , pero probablemente no valga la pena descifrarlo).
En mi caso, una "entidad" es un concepto que existe totalmente dentro de Lua. No hay respaldo de C ++ para "entidades". Como tal, una "entidad" es lo que ese juego específico necesita. A veces es solo una tabla con un poco de datos adjuntos, a veces es un elemento 2D Frame (tenga en cuenta que los marcos también son construcciones completamente Lua, solo tengo una biblioteca de interfaz de usuario estándar), a veces es algo complicado con AI y renderizado y luego es sigue siendo solo una cosa creada en Lua.
Muchas personas usan Lua para guiar sistemas de objetos que tienen respaldo de C ++, de modo que la entidad "vive" en C ++ y llama a Lua por sus secuencias de comandos. Solía hacerlo, pero me encontré cada vez más feliz a medida que movía el código de C ++ a Lua. En este punto, uso C ++ únicamente para manejar las llamadas a la API del sistema operativo, y toda la lógica de diseño / renderización / AI / juego está en Lua 100% puro.
Recomendado.
Siéntase libre de hacer preguntas, estoy dispuesto a responder :)