↓
iaen.es Diario de desarrollo Read in English

Gotic · 3 min de lectura

Ovejas que siguen tus pasos: pastoreo con migas de pan en Godot 4

Tres ovejas perdidas, dos lobos y un silbato. Para que el rebaño rodee árboles y vallas sin calcular rutas, las ovejas pisan exactamente por donde has pasado tú.

#animales#misiones#mods#godot#procedural

Ovejas que siguen tus pasos: pastoreo con migas de pan en Godot 4

En el corral del noroeste espera Nara, la pastora. Ha perdido a Nube, Mora y Trufa por el prado y te da un silbato para recuperarlas. Con V (o SILBAR en el móvil) llamas a las ovejas que estén a menos de 14 m y empiezan a seguirte. Tienes que llevarlas despacio hasta el corral y meterlas por la puerta norte o la sur. Por el brezal rondan dos lobos que intentan asustarlas; silbar las calma y ahuyenta a los lobos unos segundos.

Al terminar, Nara te da unas botas de caminante (+10 % de velocidad a pie) y a Brizna, una perrita que te acompaña desde entonces. Es El rebaño perdido, otro mod independiente: no necesita la aldea ni la escoba.

Las tres ovejas en sus camas de heno
Misión cumplida: Nube, Mora y Trufa a salvo en el corral

Cómo está hecho

Lo más difícil era que las ovejas no se quedaran atascadas contra un árbol o contra la valla del corral. Podría haber calculado rutas, pero hay una solución más barata: que pisen por donde has pisado tú. Cada oveja guarda un rastro de migas, un punto nuevo cada vez que te alejas 1,2 m del último (como mucho 96), y camina hacia la miga más antigua; al llegar a menos de 0,85 m la borra y pasa a la siguiente. Si tú has rodeado un tronco, ella también.

if trail.is_empty() or trail.back().distance_to(player.global_position) > 1.2:
	trail.append(player.global_position)
if trail.size() > 96:
	trail.pop_front()
while not trail.is_empty() and _flat_distance(trail[0]) < 0.85:
	trail.pop_front()

Las ovejas, los lobos y Brizna son CharacterBody3D con física de verdad: chocan con el terreno y con las vallas. Para que no se monten unas sobre otras, cada oveja se aparta un poco de las que tiene a menos de 1 m. Andan a 4,8 m/s y, si te alejas más de 24 m, nadas o vuelas en la escoba, se paran a esperarte. Con R junto a una puedes pedirle que espere o que vuelva a seguirte, así que se pueden traer juntas o de una en una.

Los lobos avisan antes de lanzarse, como las sombras del farol. Una oveja asustada huye unos segundos y luego se queda quieta, esperando a que vuelvas a silbar cerca. Ningún animal se pierde para siempre: las que llegan al corral quedan a salvo en su cama de heno y ya no se asustan, y las que faltan vuelven a su sitio de búsqueda al cargar la partida.

Lo medido en el PC: 541 comprobaciones sin fallos ni avisos, 63 de ellas del rebaño. La misión entera se recorre con la física del motor y lobos activos, con una embestida real, el silbato pulsado con el segundo dedo, la velocidad de las botas, Brizna siguiéndote y volviendo, y partidas a medias y completas. También se comprueba que al apagar el mod desaparecen los animales, las vallas, el silbato, las botas y su bonificación. La captura más cercana de Brizna costó 421 llamadas de dibujo y 177 393 primitivas.

Lo que salió mal

Nada se rompió en el juego, pero el rebaño me enseñó algo sobre las pruebas: cada partida de prueba carga todos los mods, así que la suite crece aunque las pruebas de un mod no cambien. Con 16 mods, las del rebaño pasaron de 14 a 31 s sin tocar una línea. Desde entonces mido el total después de cada mod nuevo.

Lo que falta por comprobar

No se ha probado en un móvil físico. Tampoco sé si guiar a tres ovejas a la vez es divertido o desesperante: eso lo dirán jugadores de verdad, no las pruebas.

Más de Gotic →