Motor de juego con buena creación / gestión de entidades Lua [cerrado]

11

Estoy buscando un motor que construya sus entidades usando Lua u otro lenguaje de script. Esto es para encontrar inspiración y hacerlo también en mi propio motor.

Sé que CryEngine usa Lua para crear sus entidades, pero quería saber si hay otras alternativas que pueda buscar.

¡Gracias!

Mr.Gando
fuente

Respuestas:

7

Recomiendo echar un vistazo a LÖVE "un marco increíble que puedes usar para hacer juegos 2D en Lua. Es gratis, de código abierto y funciona en Windows, Mac OS X y Linux". Es claramente no una alternativa a CryENGINE, pero sin duda debería demostrar cómo utilizar eficazmente el potencial de Lua para la creación de la entidad y la lógica del juego. Combine ese conocimiento con la forma en que Cryengine / otros motores AAA utilizan backends de secuencia de comandos, y debería tener toda la inspiración que necesita para crear su propio motor con capacidades robustas de secuencias de comandos. :)

Ari Patrick
fuente
4

Que yo sepa, Relic's Essence Engine Series (como se usa en Company of Heroes y Dawn of War II ) usa Lua o un dialecto de él para las estadísticas de la unidad y las secuencias de comandos de la misión. No hay fuentes web reales para ello, pero siempre puede consultar algunos de los mods en RelicNews.com para preguntar si está interesado.

El Spark Engine de Unknown Worlds como se usa en su próximo juego Natural Selection 2 permite que la mayor parte del código del juego esté en Lua hasta donde yo sé. El SDK viene con el pedido anticipado del juego y actualmente está en versión beta, al igual que el juego.

Otro juego que una vez fue promovido en gran medida confiando en Lua sería Eufloria (anteriormente Dyson ). También hay una referencia de modificación de Lua en sus foros.

El juego cooperativo gratuito de Valve, Alien Swarm, utiliza en gran medida un lenguaje de secuencias de comandos llamado "Squirrel" que ha sido influenciado por Lua. El Alien Swarm SDK debería estar disponible para descargar en Steam. ( Wiki de desarrollo )

EDITAR: ¡Cómo podría haberme olvidado de World in Conflict ! El juego hace muchas cosas en Python como se hace obvio cuando se observan modificaciones como Modern Warfare Mod que implementan mecánicas completamente nuevas.

Koarl
fuente
Agregó sus enlaces para usted.
El pato comunista
¡Gracias! // Eliminado el comentario que contiene enlaces sin formato ...
Koarl
Gran respuesta, espero que más personas puedan agregar a esta pregunta, ya que en el futuro estoy absolutamente seguro de que habrá más respuestas. Muchas gracias Koarl (soy un gran fanático de la reliquia por cierto)
Mr.Gando
2

Estos son algunos ejemplos de juegos (de código abierto) que utilizan secuencias de comandos para implementar el comportamiento de la entidad:

Frogato implementa entidades usando un lenguaje de script personalizado. Battle for Wesnoth implementa entidades que utilizan un lenguaje de descripción personalizado en el que se pueden incrustar los scripts de Lua. KQ implementa el comportamiento de la entidad utilizando scripts Lua.

Editar: enlaces publicados ahora que se me permite ...

hmn
fuente
Frogato se parece mucho a lo que estoy buscando, aunque es un poco detallado, pero sigue siendo muy interesante. Un ejemplo equivalente en Lua sería
genial
2

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 :)

ZorbaTHut
fuente
¿Cómo se compara glorp con love2d?
deft_code
Según tengo entendido, love2d tiene una ruta de representación significativamente incrustada. glorp no lo hace: tiene enlaces OpenGL, y solo renderiza lo que quieras (aunque tiene funciones auxiliares para cosas estándar). glorp tiene un sistema incorporado de "menú principal / pausa / regreso al menú", y hace control remoto error al informar sobre bloqueos, y generará automáticamente instaladores para cualquier sistema operativo en el que lo esté construyendo. glorp no está realmente diseñado como una API, sin embargo, es un marco que se modifica constantemente para lo que necesite. No es tan compatible en absoluto :)
ZorbaTHut