Me gustaría crear un simulador (básicamente con fines de prueba) para un juego (League of legends).
Los fundamentos del juego:
tienes un héroe que tiene algunas estadísticas:
- Punto de Salud
- Daño de ataque
- Velocidad de ataque
- Armadura
- Penetración de armadura
- Velocidad de movimiento
El héroe puede tener 4 habilidades (obtienes un punto de habilidad en cada nivel) (se activan manualmente, la mayoría de las veces, tiene enfriamiento, daño, relación de escala de potencia de ataque / daño de ataque y nivel de habilidad) + una habilidad pasiva
Puedes matar héroes enemigos o monstruos neutrales, tienen las mismas estadísticas:
- Punto de Salud
- Daño de ataque
- Velocidad de ataque
- Armadura
Lo que me gustaría hacer:
Crea una herramienta para probar si un elemento en particular o un aumento de estadísticas en particular aceleraría tu poder / velocidad de matar.
mapa: http://evtron.com/Evtron-Alpha/wp-content/uploads/2011/02/Summoners-Rift.jpg
Ejemplos de estadísticas:
- Hp: 420
- Anuncio: 55
- AttackSpeed: 0.613 (ataques / s -> cada ataque a 1 / 0.613 s)
- penetración de armadura: 25
El personaje atacará automáticamente al enemigo con la velocidad 1 / ataque y lo dañará con daño de ataque (hay una fórmula para calcular el daño, pero eso no es importante en esta fase, supongo), una vez que estén muertos, pasarán a la siguiente con velocidad de movimiento ( puedes ver los campamentos en el mapa, las calaveras amarillas)
Estaba pensando en el algoritmo:
Pensé que si solo hago un for de i = 0 a i = 30000 (contando ms), entonces podría verificar el HP enemigo y mi HP también en cada ms resultó tan malo (CPU bastante pesada, y me gustaría poner algo al azar en él, por lo que debería poder resumir 1k iteración, lo que es imposible)
En segundo lugar, pensé que debería hacer un for de i = 1 a 30, y verificar cada segundo, y verificar qué sucedió en el último segundo, pero algunos de los monstruos neutrales están en un gran campamento (hasta 4 monstruos), y De esta manera, el código se estaba volviendo cada vez más complicado.
Voy a crear hilos para cada jugador / monstruos, y una vez que terminen de buscar cuando murieron, y reducir el HP del jugador.
Mi pregunta, ¿es este el camino correcto?
TLDR: Me gustaría crear una herramienta para crear análisis (iterar 1k y calcular el promedio) sobre un juego cuyo aumento de estadísticas haría que el personaje matara monstruos neutrales más rápidos.
Preferiría Java, pero atm estoy atrapado en el algoritmo.
@Karoly S: Sí, es 'mi mal, .com -> .eu
He estado trabajando en esto:
Estoy comprobando el tiempo restante en cada objeto (habilidad del jugador, autoataque, mejoras), y siempre elijo el tiempo más corto y almaceno el último tiempo, y agrego el tiempo al tiempo, en la siguiente ronda calculo el tiempo por (tiempo- ultima vez)
Si el objeto tiene tiempo restante 0, hará lo que sea necesario.
No sé si es eficiente o no, pero eso es lo mejor que puedo hacer.
Respuestas:
Alternativas a la simulación cuadro por cuadro:
Puede obtener una aproximación razonable para la simulación mediante una fórmula como
También puede mantener una cola de movimiento, para simular por movimiento, no por tic:
fuente