Ao criar scripts aqui, quero dizer não apenas colocar dados de configuração em um script, mas criar partes do projeto como alguns métodos de classe, testar loop de jogo específico etc. Isso não seria apenas para acelerar o desenvolvimento, mas também permitir que os jogadores vissem alguns deles. scripts para ajustar alguns aspectos do jogo.
Alguma linguagem como Lua tem alguns wrappers como luabind, mas quando eu a usei no passado, ela teve problemas porque não suportava a redefinição de método em um contexto de herança.
Quais são as suas sugestões de idioma / wrappers para usar ou não?
fonte
Eu gosto de Chaiscript ; Não uso há muito tempo, mas parece bastante sólido até agora.
Ao contrário do Python ou lua, ele é construído desde o início para ser usado com C ++. O processo de ligação parece muito mais limpo do que com o luabind / etc.
Aqui está o resumo do site:
fonte
Eu recomendaria Lua .
Python também é muito popular. Muitos mecanismos de jogos em destaque (Blender, por exemplo) o usam.
C ++ :: Boost tem uma biblioteca para trabalhar com Python.
Eu li sobre o esquilo , mas não o usei.
Você pode ler esta visão geral do Game Engine . Existe uma
Scripting
coluna. Você pode ver que Lua e Python são as linguagens de script mais populares.fonte
Por que não construir o seu próprio?
Se você tiver tempo, paciência e vontade de aprender, poderá sempre tentar desenvolver seu próprio mecanismo de script com todos os recursos e sintaxe necessários.
Vantagens
Desvantagens
Tempo. Muitas pessoas não têm. Se você precisar de algo AGORA, tente um mecanismo já existente (como um dos já sugeridos).
Rapidez. Muitos mecanismos de script existentes são muito rápidos - uma solução personalizada pode não ser tão rápida.
Tamanho da equipe. Muitos mecanismos de script existentes têm equipes maiores de pessoas trabalhando na base de código, sejam equipes privadas ou voluntários globais, há algo a ser dito para o código que é verificado e verificado novamente por muitas outras pessoas.
Um mecanismo de script requer uma certa quantidade de planejamento inicial para executar com eficácia. Há muitas bases que precisariam ser implementadas também que talvez não tenham a ver com o mecanismo de script real.
Esta não é de maneira alguma uma lista exaustiva. Se você precisar fazer uma grande quantidade de alterações no back-end de uma linguagem de script existente para obter a funcionalidade desejada, IMO, provavelmente deverá procurar outro mecanismo que atenda melhor aos seus requisitos ou apenas crie o seu.
Percebo que as pessoas gostam de brincar com "preguiça" e "não reinventar a roda", mas acho que há algo a ser dito sobre como aprender como essas coisas são feitas. E uma implementação específica provavelmente será melhor para o seu projeto do que uma implementação genérica.
"Criando sistemas de script em C ++" parece ser o (s) artigo (s) preferido (s) que as pessoas compartilham ao discutir o tópico: http://www.gamedev.net/reference/list.asp?categoryid=76
fonte
Eu tentei Lua, Python, Scheme e Squirrel. Lua trabalhou melhor; possui uma comunidade maior e melhor suporte que o Squirrel, e características de memória e desempenho muito melhores que o Python. O esquema funcionou muito bem também e tem um intérprete muito pequeno, mas era difícil para os designers entenderem uma linguagem funcional.
fonte
Aqui estão os links para luabind e tolua, wrappers para lua / c ++
http://luabind.sourceforge.net/
http://www.tecgraf.puc-rio.br/~celes/tolua/
fonte