Eu gostaria de criar um simulador (basicamente para fins de teste) para um jogo (League of Legends).
O básico do jogo:
você tem um herói com algumas estatísticas:
- Ponto de Saúde
- Dano de ataque
- Velocidade de ataque
- armaduras
- Penetração de armadura
- Velocidade de movimento
O herói pode ter 4 habilidades (você recebe um ponto de habilidade em cada nível) (elas são ativadas manualmente, na maioria das vezes, têm tempo de recarga, dano, taxa de poder de ataque / escala de dano de ataque e nível de habilidade) + uma habilidade passiva
Você pode matar heróis inimigos ou monstros neutros, eles têm as mesmas estatísticas:
- Ponto de Saúde
- Dano de ataque
- Velocidade de ataque
- armaduras
O que eu gostaria de fazer:
Crie uma ferramenta para testar se um item em particular ou um aumento de estatística específico aceleraria seu poder / velocidade de extermínio.
map: http://evtron.com/Evtron-Alpha/wp-content/uploads/2011/02/Summoners-Rift.jpg
Exemplos de estatísticas:
- Hp: 420
- Anúncio: 55
- Velocidade de ataque: 0,613 (ataques / s -> todo ataque a 1 / 0,613 s)
- penetração de armadura: 25
O personagem atacará automaticamente o inimigo com a velocidade 1 / ataques e danificará com o dano de ataque (existe uma fórmula para calcular o dano, mas isso não é importante nesta fase, eu acho), uma vez que eles estejam mortos, passando para o próximo com velocidade de movimento ( você pode ver os acampamentos no mapa, os crânios amarelos)
Eu estava pensando sobre o algoritmo:
Eu pensei que se eu fizer um for de i = 0 a i = 30000 (contando ms), para que eu possa verificar o hp inimigo e o meu hp também em todos os ms que foram tão ruins (muito cpu pesado, e eu gostaria para colocar algo aleatório nele, então eu devo ser capaz de resumir a iteração 1k, o que é impossível)
Em segundo lugar, pensei que eu deveria fazer um for de i = 1 a 30 e verificar a cada segundo, e verificar o que aconteceu no último segundo, mas alguns dos monstros neutros estão em um grande acampamento (até 4 monstros), e Dessa forma, o código estava ficando complicado e complicado.
Vou criar tópicos para cada jogador / monstro e, uma vez que eles terminem, olhem para cima quando morrerem e reduzam o HP do jogador.
Minha pergunta, este é o caminho certo a seguir?
TLDR: Eu gostaria de criar uma ferramenta para criar análises (iterar 1k e calcular a média) sobre um jogo cujo aumento de estatísticas tornaria o personagem matando monstros neutros mais rápidos.
Eu preferiria java, mas atm estou preso no algoritmo.
@Karoly S: Sim, é ruim, .com -> .eu
Eu tenho trabalhado nisso:
Estou verificando o tempo restante em cada objeto (habilidade do jogador, ataque automático, buffs) e sempre escolho o menor tempo, armazene o last_time e adiciono o tempo, na próxima rodada, calculo o tempo por (time- última vez)
Se o objeto tiver tempo restante 0, ele fará o que for necessário.
Não sei se é eficaz ou não, mas é o melhor que posso fazer.
Respostas:
Alternativas à simulação quadro a quadro:
Você pode obter uma aproximação razoável para simulação por uma fórmula como
Você também pode manter uma fila de movimentação, para simular por movimentação, não por tick:
fonte