matemática de tower defense

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

matemática de tower defense

Mensagem por saim em Seg 14 Nov 2011, 21:59

Tenho um tower defense com 3 tipos de torres: tiro, veneno e sorte
A de tiro cria um tiro que acerta o inimigo e tira um pouco da vida dele.
A de veneno cria um tiro que envenena o inimigo por um tempo e, nesse tempo, ele perde um pouco de vida.
A de sorte tem um valor básico e roda um dado. O número de lados desse dado é vida do inimigo+número básico. Se der zero, a torre mata o inimigo instantaneamente e passa um tempo se recuperando antes de poder rodar outro dado.

Cada inimigo morto gera um tanto de créditos ao jogador. Esse tanto de créditos depende da vida com que o inimigo é criado.

Eu gostaria que as torres pudessem receber upgrades. Pra isso, quero aumentar a variável "level" e quero que algo da torre dependa da variável. Quero sugestões de onde usar essa variável. Principalmente na torre de sorte. Pensei em aumentar as chances dela eliminar o inimigo usando "floor(random(numeroBasico+vidaInimigo)/level)", mas aí ela melhoraria MUITO nos primeiros upgrades e quase nada no nível, por exemplo, 30.

Tem mais uma coisa que eu quero sugestões, vou criar outro tópico e linkar.
Edit: eis o link pra outra pergunta.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por Limalokão em Ter 15 Nov 2011, 02:01

E Ae saim blz? Então cara eu não sei se vai servir mas aqui eu tenho uma engine que eu fiz talvez possa te ajudar: http://dl.dropbox.com/u/8556803/Upgrade_Habilidades_Soul_Limaloko.gmk

Limalokão

Ranking : Nota C
Número de Mensagens : 803
Idade : 24
Data de inscrição : 24/11/2009
Notas recebidas : C
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por saim em Ter 15 Nov 2011, 19:58

Obrigado, Soul, mas o que eu quero não é uma engine. São idéias do que pode melhorar nas torres à medida que elas sobem de nível.
Especialmente essa torre de "chance". Em que sentido ou proporção que subir o nível poderia melhorar a torre, entendeu?
Fazer floor(random(qualquercoisa)/nível) até funciona, só que funciona rápido demais no começo e devagar demais, em seguida. Acho que vou ter que limitar o número de upgrades pra cada torre...

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por diego333 em Qua 16 Nov 2011, 00:46

floor(random(qualquercoisa)/(nivel * nivel))

tenta isso .. provavelmente deve dar uma amenisada nesse problema

diego333

Número de Mensagens : 84
Data de inscrição : 06/10/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por saim em Qua 16 Nov 2011, 07:35

Na verdade, piora o problema. Olha isso:
Viu como os primeiros upgrades diminuem imensamente o número de lados dos dados enquanto os últimos não fazem nem cócegas? Isso desestimula o jogador a fazer mais upgrades - e eu quero ele esperando ansiosamente pra poder fazê-lo. Acho que usar algo como "valor-nível" é o mais indicado, só que isso me limita o número de upgrades, pois se o jogador conseguir um upgrade maior que o tal valor, a conta dará resultado negativo.
Eu não queria limitar o número de upgrades, mas pode ser que não exista outra saída.

E quanto às outras torres (tiro comum e tiro envenenado), o que eu devo alterar a cada upgrade? Dano do tiro? Tempo de envenenamento? Alcance da torre? Tudo?

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por PedroX em Qua 16 Nov 2011, 13:56

Tenta isso:
Código:
100-(sqrt(nivel)*1.5)
Isso vai decrescendo.
Código:
sqrt(nivel)*1.5
Isso vai crescendo.

E quanto aos upgrades, deixe que o jogador escolha qual dos três ele quer.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por saim em Qua 16 Nov 2011, 14:24

Ah, melhorou muito! Agora, sim, há uma melhora sensível a cada upgrade. Ainda terei que limitar o número de upgrades, mas isso parece que realmente é inevitável.

Deixar o jogador escolher é uma ótima idéia, mas o jogo fica um tanto complexo de ser jogado (e programado também! ). Apesar de ser um tower defense (ou seja, um jogo de estratégia por natureza) eu estou tentando dar um tom mais casual. Com sorte, conseguirei fazer o tutorial ser apresentado enquanto o jogo corre.
Imagine ter que verificar em que pé está cada uma das suas 20 a 100 torres o status de cada variável, se está de acordo com o necessário ou se deve ser aumentado, tals. Minha idéia é uma relação mais direta. Deu upgrade=melhorou a eficiência da torre. Pode ser com mais de um parâmetro, só não pode fazer uma supertorre sem gastar uma supergrana.

Talvez uma passada de olhos na explicação do engine, no início do outro tópico, dê uma idéia melhor do que já existe e do que deve ser melhorado.


Última edição por saim em Qua 16 Nov 2011, 14:30, editado 1 vez(es)

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por PedroX em Qua 16 Nov 2011, 14:29

Por que vai limitar os upgrades?
Não entendi isso.

Quanto ao que vai ser alterado, faça uma lista de prioridade então. No começo do jogo, o jogador escolhe suas prioridades e pode trocá-las de tanto em tanto tempo (após vários upgrades). Assim ele vai vendo qual prioridade é melhor.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por saim em Qua 16 Nov 2011, 17:21

Pedrø escreveu:Por que vai limitar os upgrades?
Porque eu preciso de números positivos. Lembre-se, eu estou usando "if floor(random(algo))==0". Se "algo" for negativo, então o teste sempre dará false. Agora imagine que "algo" seja 100-sqrt(nivel)*1.5 e que o nivel seja 10 (não que seja fácil chegar no nível 10, mas possível). Entendeu?

Com relação ao que vai ser alterado, não quero que o jogador sequer se lembre que existem alternativas. Já joguei alguns TDs e realmente é muita coisa acontecendo pra ficar pensando no que eu (jogador) quero melhorar. Algumas torres melhoravam a cadência, outras melhoravam a força do tiro, outras melhoravam a distância e muitas melhoravam nesses 3 aspectos, mas nunca joguei um TD que me oferecesse escolher que aspecto da torre melhorar. Eu acho - tenho quase certeza - que isso foi pra simplificar a jogabilidade, pra deixar o jogo mais fluido.
Eu já acho pouco provável que alguém fique fazendo conta pra ver se 10% a mais de velocidade de tiro nessa torre possibilita matar um inimigo de força 30, imagina o cara parar pra pensar se é mais interessante investir na força de cada tiro ou na área de abrangência da torre, levando em consideração os paths desenhados pelo caminho livre, velocidade e força médias atuais dos inimigos e tempo de exposição à torre de cada um.

Eu posso fazer o que você sugeriu durante um período de testes do jogo. O que for mais LEGAL de evoluir, eu ponho pra evoluir mais, o que for menos bacana, eu ponho pra evoluir menos. Mas isso é pra dezembro, quando pretendo ter algo pra postar na galeria de projetos e chamar uma equipe pra dar o acabamento no jogo.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por PedroX em Qua 16 Nov 2011, 17:48

Se "algo" for negativo, então o teste sempre dará false. Agora imagine que "algo" seja 100-sqrt(nivel)*1.5 e que o nivel seja 10 (não que seja fácil chegar no nível 10, mas possível). Entendeu?
Na verdade, você deveria chegar num nivel maior que 4000 para dar um numero negativo. Não acho que seja possivel e mesmo que fosse, dificilmente alguem iria ficar tanto tempo jogando.

Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por diego333 em Qua 16 Nov 2011, 18:10

olha ... de qualquer jeito vc teria que limitar os leveis , ( no caso 4000 )

se vc quer fazer algo meio que igual .. cada level da a mesma porcentagem tenta assim

floor( (level / level_max) *100 )

diego333

Número de Mensagens : 84
Data de inscrição : 06/10/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por saim em Qua 16 Nov 2011, 21:13

Pedrø escreveu:
Se "algo" for negativo, então o teste sempre dará false. Agora imagine que "algo" seja 100-sqrt(nivel)*1.5 e que o nivel seja 10 (não que seja fácil chegar no nível 10, mas possível). Entendeu?
Na verdade, você deveria chegar num nivel maior que 4000 para dar um numero negativo. Não acho que seja possivel e mesmo que fosse, dificilmente alguem iria ficar tanto tempo jogando.

Até mais!
Sabe quando a burrice da gente é tanta que chega a doer :oops: ? Eu COPIEI sqrt (digitei mesmo, não foi só ctrl+c, ctrl+v) e continuei pensando em sqr. Só me liguei agora, com essa sua resposta de 4000 níveis.
MAS gostei mais foi do sqr, mesmo, ainda que com a limitação de níveis. Cada nível dá uma diferença maior que o upgrade anterior, dá pra notar a melhora.
Foi mal pela raiva que te fiz passar.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: matemática de tower defense

Mensagem por Conteúdo patrocinado Hoje à(s) 14:17


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum