A maioria das empresas possui um editor ou um sistema de controle variável para ajustar coisas nos jogos, mas existem soluções de middleware para esse problema? Eu escrevi dois desses sistemas no passado e trabalhei com cinco, talvez seis diferentes, mas nenhum deles estava disponível.
Cada uma dessas soluções domésticas apresentava problemas, desde a necessidade de manter a busca de valores até a impossibilidade de salvar o estado atual das variáveis.
Existem bibliotecas / aplicativos maduros de controle de variável de configuração / tempo de execução?
Geralmente codifico em C ++, mas acho que um editor maduro de configurações / variáveis provavelmente seria baseado em soquete (e, portanto, até certo ponto independente da linguagem), pois todo o hardware de desenvolvimento atual, exceto o material da Nintendo, fornece um mecanismo para conversar com os servidores. A implementação do código também precisaria ser bastante simples (gosto do artigo hot_var / TweakableConstants compartilhado por Oskar, mas não é um pacote)
Talvez a idéia de constantes ajustáveis atenda às suas necessidades. É tão útil que você acha que precisaria de uma solução complexa para ter um controle eficaz das variáveis em tempo de execução, mas, na realidade, a implementação é quase simples demais. A discussão original dessa técnica também é uma leitura interessante.
Exemplo:
A
H
macro se expande para algo parecidoHotValue(x, __FILE__, __LINE__, __COUNTER__)
. Isso registra o valor em algum registro global. Em seguida, tenha uma função comoRefreshHotValues()
essa que você chama em intervalos regulares. A função pesquisa cada entrada no registro, analisa o arquivo de origem específico e recarrega o valor ativo.Conforme você modifica o código fonte real, você tem persistência ali.
Obviamente, isso não funcionará onde
H()
não for avaliado todos os quadros, mas existem maneiras de resolver isso, conforme discutido aqui .Você pode expandir essa idéia para uma solução baseada em soquete, talvez. Pode haver uma sobrecarga significativa de desempenho para chamar
HotValue()
todos os quadros, mas como você pode facilmente compilar a macro, substituindo-a completamente pela constante, isso não é um problema.fonte
H(int, myvar, 5)
alterar e quando o arquivo for substituído, substitua amyvar
memória. Veja mollyrocket.com/forums/viewtopic.php?p=5395#5395O AntTweakBar é realmente útil para o que você deseja fazer, no entanto, na maioria das vezes, você deseja ter métodos que 'compilem' na versão com algumas macros ou similares.
fonte
De uma pergunta sobre depuração em tempo real , vem a resposta de David McGraw sobre os desenvolvedores do AsyncSocket para iOS. Veja a resposta dele para mais informações.
fonte
O gerenciamento de configurações parece ser uma daquelas coisas refeitas do zero para todos os jogos, provavelmente devido à sua simplicidade e à alta variabilidade nos tipos de configurações necessárias. Supondo que você tenha uma configuração de back-end de armazenamento decente (SQL / qualquer que seja), você pode codificar uma solução robusta para o gerenciamento de configurações em um dia ou dois, para que não pareça haver muita necessidade comercial real de uma solução de middleware. Prendê-lo em cima do que você usa para armazenar informações de jogadores é, na minha opinião, o melhor caminho a seguir.
fonte
Ultimamente, tenho pensado nisso, e acho que seria um ótimo candidato para um aplicativo Android associado a uma pequena biblioteca no idioma que você quiser . O aplicativo seria um conjunto personalizável de botões, alternâncias, listas suspensas etc. (qualquer widget que você quiser) e enviaria as ações via WLAN (ou USB, se você quisesse complicar as coisas) para a biblioteca. A biblioteca geraria um segmento separado da jogabilidade e saberia quais controles no telefone Android correspondem a quais variáveis no jogo (você as definiria no código de inicialização) e teriam uma conexão com o aplicativo Android.
Em seguida, mexer com o seu jogo é tão fácil quanto tocar nas coisas do seu telefone. Você pode até ter algumas caixas de texto no telefone que mostram valores de variáveis em tempo real do jogo ou a biblioteca para a frente
stdin
oustderr
para uma área de rolagem no telefone. As opções são ilimitadas!A única preocupação real é com velocidade. Se a velocidade e o tempo de reação forem cruciais, basta conectar o telefone via USB e o adb (depurador android) suporta portas de encaminhamento via USB para o telefone. Mas, caso contrário, a WLAN teria apenas um atraso muito pequeno, o que eu acho que seria bastante aceitável para esse fim.
Eu não acho que algo como o acima foi escrito, mas eu tenho pensado fortemente em escrevê-lo.(Eu ainda não cheguei o suficiente no desenvolvimento de meus próprios jogos para precisar ainda)
Obviamente, aqueles que são usuários da Apple provavelmente podem fazer o mesmo com seus iDevices. Pessoalmente, acho que o desenvolvimento do iOS é uma ordem de magnitude mais difícil que o desenvolvimento do Android, e é claro que o aplicativo acima poderia ser facilmente publicado no mercado Android para facilitar a distribuição, enquanto a Apple provavelmente não permitiria uma ferramenta de desenvolvedor na loja de aplicativos, então eu sinta que a plataforma Android se adapta melhor a essa ferramenta.
fonte