Estou pensando em tentar uma das minhas idéias antigas para um jogo. O ponto principal deste jogo seria o possível nível de personalização funcional do ambiente e dos objetos do jogo (como modificar o comportamento de um armamento de uma nave espacial). Para isso, o jogo precisaria ser scriptável. Também não pretendo comercializá-lo, é apenas um desafio de programação interessante para mim.
Como eu sou principalmente um cara do .NET, usarei o XNA / C # para o próprio jogo. Para os scripts, penso em usar Python ou Lua. Eu tenho experiência anterior com Python e não tenho nada contra isso como uma linguagem. Lua, por outro lado, é quase completamente novo para mim, além de algumas modificações menores nos addons de World of Warcraft que eu fiz aqui e ali, e parece promissor. Então aqui está a minha pergunta:
Quais são os prós e os contras de Lua vs. Python como uma linguagem de script para a plataforma XNA / C #?
Um deles é consideravelmente mais fácil de usar com o XNA / C #? Um deles tem algumas vantagens ou desvantagens específicas quando usado com XNA / C #? Por que você recomendaria um sobre o outro para XNA / C #?
Respostas:
Não posso comparar os dois, pois só tive experiência em incorporar o IronPython em um jogo C # até agora. Aqui está o que eu gosto sobre isso:
1) é fácil! Faça o download das DLLs do IronPython, adicione referência no projeto,
2) Como você pode ver no exemplo acima, o IronPython realmente converte em classes BCL onde pode. o resultado do script é um System.Numerics.BigInteger em vez de um PyObject
3) A
dynamic
palavra-chave em C # foi criada para situações de interoperabilidade em que você não tem o tipo estático disponível:fonte
IronPython e C # combinam bem, IronPython pode ser adicionado ao C # para aumentar o desempenho. Portanto, se seus jogos de escrita, as chamadas de Python no C # são uma vantagem. O próprio Python não pode usar o XNA, mas pode usar o Directx, algo que o C # não pode fazer diretamente.
fonte