Detectando Espacios Cerrados Eficientemente en un Juego de Navegador

2025-02-07
Detectando Espacios Cerrados Eficientemente en un Juego de Navegador

En un juego de navegador, los jugadores colocan obstáculos para dificultar a los enemigos. Para evitar que los jugadores hagan trampa encerrándose a sí mismos o a los enemigos, el autor diseñó un algoritmo eficiente para detectar espacios cerrados. El enfoque inicial de fuerza bruta —llenado de inundación de cada celda— resultó demasiado lento. El autor ideó un algoritmo mejorado que aprovecha una caché de celdas "de cara abierta" (celdas no rodeadas por obstáculos) para podar el espacio de búsqueda del llenado de inundación. Cuando se agregan o eliminan obstáculos, el algoritmo actualiza el conjunto de celdas de cara abierta y recalcula las ubicaciones de colocación legales. Si bien la complejidad temporal del peor caso sigue siendo la misma que el llenado de inundación de fuerza bruta, en la práctica, este algoritmo reduce significativamente el retraso. El autor también analiza otras técnicas de optimización, como actualizaciones iterativas y la verificación solo de celdas adyacentes a múltiples obstáculos. Finalmente, el autor menciona otra posible solución: un algoritmo basado en la detección de ciclos.

Leer más

Búsqueda de ruta para un objetivo móvil en terreno en evolución

2025-01-11
Búsqueda de ruta para un objetivo móvil en terreno en evolución

Esta publicación de blog describe una solución novedosa de búsqueda de ruta para un juego de navegador Unity, 'Build + Brawl', donde cientos de enemigos navegan hacia un jugador en movimiento en un entorno que cambia dinámicamente. En lugar de A*, el autor implementó un enfoque de campo de dirección. Esto precalcula las direcciones y distancias de movimiento óptimas para cada celda de la cuadrícula, minimizando las actualizaciones al cambiar el jugador o los obstáculos. Esto mejora drásticamente el rendimiento, evitando retrasos en el navegador. La publicación se divide en dos partes, explicando la construcción del algoritmo y el manejo de obstáculos, ilustrado con diagramas claros. Es un gran estudio de caso para desarrolladores de juegos.

Leer más