Estou trabalhando no meu primeiro jogo (C ++) e quero usar um design baseado em componentes. Eu li muito sobre isso ultimamente e ontem decidi que queria armazenar dados de objetos em arquivos JSON externos, para permitir mais flexibilidade e facilidade de acesso.
Então me dei conta de que deixar esses arquivos na árvore de diretórios do jogo permitiria aos jogadores modificar o que quisessem com muita facilidade.
Não estou preocupado em mostrar o código aos desenvolvedores, porque o jogo será de código aberto, mas receio que um jogador inexperiente possa interromper o jogo ou pelo menos arruinar a diversão.
Estou esquecendo de algo? Qual é a política sobre como ocultar dados de jogos (em jogos de código aberto)? É normal deixar tudo claramente acessível a alguém?
Caso contrário, qual é uma boa maneira de ocultar os dados?
Respostas:
Se os jogadores mexerem e estragarem a diversão, eu diria que é problema deles. Para os funileiros, metade da diversão é ver o que quebra.
É como se preocupar com o fato de os jogadores usarem um código de truque no modo deus e se preocupar com o fato de o jogador não ser desafiado.
Eu não faria nada além de colocar esses arquivos de configuração em um arquivo zip (o que você provavelmente deve fazer de qualquer maneira para carregar os tempos) e garantir que seu código possa manipular dados corrompidos normalmente.
fonte
Se eles estão se intrometendo nos dados do jogo, é isso que eles consideram "divertido". Você não precisa protegê-los disso. Afinal, os dados do componente da entidade não são um spoiler. Talvez se você tivesse dados de diálogos ou missões, seria um problema, mas provavelmente não. A maioria dos jogadores nem sabe onde procurar esse tipo de coisa, não importa pesquisar ou editar deliberadamente.
Meu conselho é compactar e renomear a extensão do arquivo. Isso manterá a aparência casual, mas não será difícil para você trabalhar. Você pode usar algo como PhysicsFS para trabalhar com os arquivos.
fonte
txt
extensão padrão . Depois de jogar bastante, decidi que tornaria o jogo mais difícil ajustando esses parâmetros. Mais tarde, compartilhei essas configurações com os amigos. Foi divertido ...Você pode armazenar os dados criptografados usando um esquema de criptografia simétrica (AES), mas isso não faz sentido: o software é de código aberto , para que todos possam ler a chave e, portanto, descriptografar os dados. Isso apenas "impedia" o jogador casual de trapacear.
E seria meio inútil, mesmo em projetos de código fechado, já que é muito fácil encontrar a chave do binário do jogo.
Então, você tem duas possibilidades:
fonte
Eu deixaria. Existe uma enorme comunidade de mods e jogadores gostam de jogos de modificação / modificação. Se eles quebram algo, é sobre eles. Eles sempre poderiam reinstalar.
Também facilita o trabalho de outros desenvolvedores.
fonte