Pergunta

O script ingame irá controlar NPC / AI lógica.

Se eu fosse para implementar o recurso de script ingame qual idioma ele deve suportar?

Tenha em mente minha implementação será executado em várias plataformas como .NET, flash, javascript e java.

Quais são os prós e contras das possibilidades listadas? Quanto tempo vai demorar para implementar o intérprete?

Que recursos são scripters ingame procurando? Quais são os outros jogos implementação?

Estou pensando em votar em javascript devido ao fato de que todos podem ler e escrevê-lo.

Quais são seus pensamentos?

Foi útil?

Solução

Eu usaria Lua, porque é terrivelmente fácil de incorporar. Embedding Python parecia ser complicado e eu realmente não tenho exercido essa.

Este ligação pode ser de mais uso se você quiser saber mais sobre a incorporação de Lua e suas vantagens / desvantagens.

Outras dicas

Use Lua. É uma língua bonita, amplamente adotado na indústria de jogos .

Existem ligações Lua para a maioria de suas plataformas:

Há também llvm-lua projeto , o que pode ser útil para portar Lua para outras plataformas.

Quanto JavaScript como uma plataforma de acolhimento ... Este assunto recorrentemente aparece na lista de discussão Lua , mas nenhuma solução séria foram publicados ainda. Se você realmente necessidade de acolhimento Lua em JS, por favor, pergunte na lista de discussão Lua, talvez algumas pessoas poderiam compartilhar suas experiências sobre o assunto.

Eu preferiria Python por suas ligações em vários idiomas.

Eu acho que você quer dizer "integrar" o intérprete, e não "implementar"-lo. Dependendo das suas habilidades, criando um intérprete para uma linguagem de script poderia ter um monte de tempo.

Eu sei com certeza que Python e Lua têm ligações para .NET e Java - você pode incorporar os intérpretes. Não sei se existem ligações para Javascript e Flash.

O problema com Python é que existem três variantes todos feitos por pessoas diferentes.

  • IronPython para .NET
  • Jython para Java
  • e o CPython regulares

Eu não tenho trabalhado em Jython por isso não vou comentar sobre isso. Mas há certos problemas de portabilidade entre IronPython e CPython. Por exemplo: IronPython não suporta extensões C nativas. Se houver scripts escritos em CPython que usá-los, você terá um tempo difícil portar para IronPython. Além disso, se os scripts IronPython usar quaisquer bibliotecas .NET, você terá um tempo difícil portar para CPython.

Implementações da Lua, por outro lado, vêm de um único lugar e eu não espero que tais problemas.

Isso depende de quão complexo o seu código será (como é complicado o comportamento dos NPCs pode se tornar). Tcl, Lua e JavaScript são para tarefas simples. Escrevendo grandes pedaços de código em línguas rapidamente tende a tornar-se insustentável (especialmente para usuários casuais).

Squirrel utiliza uma sintaxe C-like que a maioria das pessoas vai se sentir confortável com mas como sobre suporte de ferramentas? Se você tem que escrever tudo com o bloco de notas, que vai limitá-lo severamente, também.

Python é uma linguagem madura, que é fácil de aprender (basta comparar o "tutorial" Lua ao que vem com Python). Enquanto as várias versões do Python pode parecer intimidador (ver resposta de Rohit ), o código Python em seu jogo será o mesmo para todos eles. Ele vem com um IDE (IDLE) e existem outros IDEs que suportam Python que lhe dá a conclusão de código, depuração, executar casos de teste, etc.

Se você quiser usar Python considerar o uso Stackless como é bastante melhor na segmentação do que o estoque CPython. É usado em alguns MMORPGs (EVE Online, IIRC) por isso tem algum historial de jogos. Além disso, ele é muito bom para continuações (parte da razão foi desenvolvido em primeiro lugar), o que é um bom modelo para 'simulação' tipo de lógica que um uso em jogos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top