Hace un tiempo leí un artículo de estrategia que explicaba en detalle cómo se propaga el creep en Starcraft 2, estoy luchando por encontrarlo ahora, pero recuerdo que es bastante simple y funciona un poco así
- El mapa de Starcraft 2 está dividido en mosaicos
- Para cada fuente de fluencia, cada "tick" elige un mosaico aleatorio que sea elegible para que el fluencia se extienda y esparza el fluencia sobre ese mosaico.
- La fluencia puede extenderse a cualquier pieza que sea
- Adyacente a otra loseta con arrastre o adyacente a la fuente del arrastre
- Dentro de un rango dado de la fuente de fluencia
- No es un acantilado
La forma más fácil de rastrear a qué fichas se ha extendido el arrastramiento es probablemente solo una bandera para cada ficha: no intentes volver a calcularla cada turno.
El tiempo entre "ticks" se puede usar para controlar la velocidad de propagación de la fluencia, de forma alternativa, puede permitir que la fluencia se extienda a varias fichas cada "tick", o incluso aleatorizar el tiempo entre ticks.
El algoritmo anterior tiene el efecto de que la fluencia se propaga más rápido si está bloqueada por acantilados a ambos lados, sin embargo, en su lugar, puede elegir una ficha aleatoria dentro del rango de la fuente de la fluencia y luego solo extender la fluencia a esa loseta si no es un acantilado .