Pergunta

Estou desenvolvendo jogos simples como um hobby. Para o meu novo projeto, quero que algumas partes sejam scripts. Estou familiarizado com o Python, mas não me importo de aprender novos idiomas. Aqui está a pergunta:

Estou planejando implementar a descoberta de caminho, o campo de visão, a detecção de colisão etc. em C ++, mas quero usar scripts para máquinas de estado de IA, eventos com roteiro. Que tipo de estrutura é usada para esse tipo de trabalho? Eu imagino que posso fazer um programa C ++ executar um processo Python que, por sua vez, chama os métodos C ++, mas parece ineficiente. Outra idéia é desenvolver uma biblioteca a ser chamada do Python, o que também não parece muito atraente. Qual é a maneira regular de fazer isso (exceto para escrever meu próprio idioma e analisador?) Ouvi dizer que Lua é popular para incorporar os programas C.

Foi útil?

Solução

Da minha experiência pessoal, ambos Lua e tcl Tenha APIs C fantásticas para incorporar. Ambos os idiomas são muito simples. Se você está escrevendo uma interface de comando, eu provavelmente diria que vá com o TCL, mas se você estiver apenas usando um intérprete incorporado, eu recomendaria Lua. Dado que você está usando C ++, você também pode querer olhar para o Luabind API, ouvi coisas boas sobre isso.

Para scripts de IA, ou outras coisas do tipo de máquina do estado, esta postagem do blog Por Zed Shaw é uma boa leitura. O código de AI baseado em coroutine pode parecer muito melhor para scripts complexos, em vez de gerenciar uma enorme pilha de estados e suas transições.

Se você está usando Python, pode estar melhor estendendo -se ao invés de incorporar.

Outras dicas

Executar um processo python? Nããão ....

Embutir.

Da experiência pessoal, posso recomendar o JavaScript Engine V8 do Google. É muito performante, escrito em C ++, é trivialmente fácil de incorporar, não possui outras dependências e uma interface nativa realmente bonita.

http://code.google.com/p/v8/

Concordo que o TCL e o LUA são um dos mais fáceis de incorporar no aplicativo AC/C ++. Principalmente porque essa foi uma decisão de design desde o início. Outro idioma que foi projetado para incorporação é Astúcia.

Se você estiver interessado em incorporar uma linguagem de script no seu aplicativo C ++, dê uma olhada Gole. O SWIG pode criar automaticamente o código de cola para várias linguagens de script, incluindo o Python, que você já conhece. A principal vantagem é que ele lida com muitos idiomas diferentes de script.

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