Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Idéia pra evitar trapaça em um jogo em desenvolvimento
Aldeia RPG :: Centro de aprendizagem :: Programação :: Web
Página 1 de 1
Idéia pra evitar trapaça em um jogo em desenvolvimento
Eu vi que existem muitas maneiras de localizar itens dentro da memória de um jogo em tempo real pra adicionar dinheiro ou munição apenas alterando o valor, mas existem jogos que isto é impossível no jogo sem modificações.
Com isso eu percebi que jogos que permitem uso de Console pra poder modificar ou softwares que peguem as informações em tempo real seriam vulneráveis, assim como a maioria do jogos simples ou antigos feitos pra Android, navegador com HTML5 ou Javascript puro.
Então eu pensei em uma maneira, mas coloquei em pratica hoje, tornar o dinheiro do jogo uma array que através de uma função criada pro jogo pra adicionar e outra pra remover através de um loop.
No exemplo que eu criei usando como base Javascript eu criei dois itens, gold e diamond me baseando na maioria dos joguinhos de Android, Gold e Diamond, ambas funções afetam ambos itens.
Veja funcionando:
http://jsfiddle.net/DevWithCoffee/xunz7gm1/4/
Função - Adicionar item:
Função - Remover item:
Então seguindo as variáveis de exemplo que eu criei, para torna-las Arrays já faço isso ao declarar cada uma, de preferência no inicio do jogo:
Para mostrar o valor ou comparar (Quando for fazer uma compra durante o jogo) use a propriedade length, veja o exemplo se eu quiser retornar a quantidade de "golds" no console que o jogador tem no momento:
Agora se eu quiser permitir uma compra de um item de 120 golds:
Aqui o que deixei foi a ideia, dessa mesma base também estou criando aquele sistema de Loot Box, mas que ao invés de ser uma Array seria um Vetor, ou seja, os itens recebidos seriam randômicos na hora que recebesse, mas se o jogador não abrir eles não mudariam mesmo com o passar do tempo.
Mas por que teria que ser diferente do dinheiro do jogo? Digamos que o jogador não possa receber certos itens com um nível muito baixo ou que nunca tenha visto ou que não seja da região onde conseguiu o Loot Box, então se ele abrir a primeira caixa que recebeu somente após muitos niveis ainda receberia itens simples dela pois foi pega no começo do jogo.
A ideia pode ser aplicada em outras linguagens de programação, como C# que é a mais usada em jogos criados com Unity.
Com isso eu percebi que jogos que permitem uso de Console pra poder modificar ou softwares que peguem as informações em tempo real seriam vulneráveis, assim como a maioria do jogos simples ou antigos feitos pra Android, navegador com HTML5 ou Javascript puro.
Então eu pensei em uma maneira, mas coloquei em pratica hoje, tornar o dinheiro do jogo uma array que através de uma função criada pro jogo pra adicionar e outra pra remover através de um loop.
No exemplo que eu criei usando como base Javascript eu criei dois itens, gold e diamond me baseando na maioria dos joguinhos de Android, Gold e Diamond, ambas funções afetam ambos itens.
Veja funcionando:
http://jsfiddle.net/DevWithCoffee/xunz7gm1/4/
Função - Adicionar item:
- Código:
function moneyAdd(target, amount){
/*
* Sintaxe:
* moneyAdd(Variável alvo criada no jogo, Valor à ser adicionado);
* Exemplo:
* moneyAdd(money, 1500);
*/
for(i=0;i<amount;i++){
var d = new Date();
var nYYYY = d.getFullYear();
var nMM = d.getMonth();
nMM = nMM+1;
if(nMM < 10){nMM = "0"+nMM;}
var nDD = d.getDate();
if(nDD < 10){nDD = "0"+nDD;}
var nHH = d.getHours();
if(nHH < 10){nHH = "0"+nHH;}
var nMi = d.getMinutes();
if(nMi < 10){nMi = "0"+nMi;}
var nSS = d.getSeconds();
if(nSS < 10){nSS = "0"+nSS;}
var k=i+""+nYYYY+""+nMM+""+nDD+""+nHH+""+nMi+""+nSS;
target.push(k);
}
}
Função - Remover item:
- Código:
function moneyDrop(target, amount){
/*
* Sintaxe:
* moneyDrop(Variável alvo criada no jogo, Valor à ser subtraído);
* Exemplo:
* moneyDrop(money, 1500);
*/
for(i=0;i<amount;i++){
target.shift();
}
}
Então seguindo as variáveis de exemplo que eu criei, para torna-las Arrays já faço isso ao declarar cada uma, de preferência no inicio do jogo:
- Código:
var gold=[];
var diamond=[];
Para mostrar o valor ou comparar (Quando for fazer uma compra durante o jogo) use a propriedade length, veja o exemplo se eu quiser retornar a quantidade de "golds" no console que o jogador tem no momento:
- Código:
console.log(gold.length)
Agora se eu quiser permitir uma compra de um item de 120 golds:
- Código:
if(gold.length < 120){
alert(Você não possuí ouro suficiente);
}else{
moneyDrop(gold, 120); //retira 120 do jogador
}
Aqui o que deixei foi a ideia, dessa mesma base também estou criando aquele sistema de Loot Box, mas que ao invés de ser uma Array seria um Vetor, ou seja, os itens recebidos seriam randômicos na hora que recebesse, mas se o jogador não abrir eles não mudariam mesmo com o passar do tempo.
Mas por que teria que ser diferente do dinheiro do jogo? Digamos que o jogador não possa receber certos itens com um nível muito baixo ou que nunca tenha visto ou que não seja da região onde conseguiu o Loot Box, então se ele abrir a primeira caixa que recebeu somente após muitos niveis ainda receberia itens simples dela pois foi pega no começo do jogo.
A ideia pode ser aplicada em outras linguagens de programação, como C# que é a mais usada em jogos criados com Unity.
DevWithCoffee- Membro Ativo
- Mensagens : 295
Créditos : 54
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Valentine, DevWithCoffee, jonathanjua e WillMaiaBR gostam desta mensagem
Tópicos semelhantes
» Ideia de jogo.
» Ideia de Um Jogo
» Idéia de um jogo
» [JOGO EM DESENVOLVIMENTO]
» Meu Jogo (RushMiMa) Em Desenvolvimento
» Ideia de Um Jogo
» Idéia de um jogo
» [JOGO EM DESENVOLVIMENTO]
» Meu Jogo (RushMiMa) Em Desenvolvimento
Aldeia RPG :: Centro de aprendizagem :: Programação :: Web
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos