Estoy pensando en probar una de mis antiguas ideas para un juego. El punto central de este juego sería el posible nivel de personalización funcional del entorno y los objetos del juego (como modificar el comportamiento de un armamento de nave espacial). Para esto, el juego debería ser programable. Además, no pretendo comercializarlo, es simplemente un desafío de programación interesante para mí.
Como soy principalmente un tipo .NET, usaré XNA / C # para el juego en sí. Para las secuencias de comandos, pienso en ir con Python o Lua. Tengo experiencia previa con Python y no tengo nada en contra como lenguaje. Lua, por otro lado, es casi completamente nuevo para mí, además de algunas modificaciones menores de complementos de World of Warcraft que hice aquí y allá, y parece prometedor. Ésta es mi pregunta:
¿Cuáles son los pros y los contras de Lua vs. Python como lenguaje de script para la plataforma XNA / C #?
¿Es uno de ellos considerablemente más fácil de usar con XNA / C #? ¿Tiene alguna de ellas algunas ventajas o desventajas específicas cuando se usa con XNA / C #? ¿Por qué recomendaría uno sobre el otro para XNA / C #?
Respuestas:
No puedo comparar los dos, ya que hasta ahora solo he tenido experiencia incorporando IronPython en un juego de C #. Esto es lo que me gusta al respecto:
1) ¡Es fácil! Descargue las DLL de IronPython, agregue referencias en el proyecto,
2) Como puede ver en el ejemplo anterior, IronPython en realidad se convierte en clases BCL donde puede. el resultado del script es un System.Numerics.BigInteger en lugar de un PyObject
3) La
dynamic
palabra clave en C # se creó para situaciones de interoperabilidad en las que no tiene el tipo estático disponible:fuente
IronPython y C # van bien juntos, IronPython se puede agregar a C # para aumentar el rendimiento. Entonces, si sus juegos de escritura, las llamadas Python dentro de C # son una ventaja. Python en sí no puede hacer uso de XNA pero puede hacer uso de Directx, algo que C # no puede hacer directamente.
fuente