Brumacosta, la primera aldea de mi juego: un pueblo entero hecho por código en Godot 4
Seis casas, mercado, molino, hoguera y vecinos con rutinas, todo generado por código. Así nació Brumacosta, la aldea que luego sirvió de molde para los demás pueblos de Gotic.

Al salir de la playa de Gotic hay un sendero. Unos 240 m más allá acaba en Brumacosta: seis casas con tejados sólidos (con la escoba se puede aterrizar encima), mercado, pozo, un molino con las aspas girando, la hoguera y cinco vecinos. Al cruzar el arco sale el aviso «Has descubierto Brumacosta» e Ivo, el vigía, te cuenta qué hay en la isla. Lía, la herborista del puesto verde, tiene encargos si su mod está encendido.

Cómo está hecho
Brumacosta nació con su propio código, en la ronda en la que quise que la isla estuviera habitada. Cuando pedí más pueblos, «completos como el que ya tenemos», saqué su construcción a game/village.gd: un pueblo entero (casas con colisión, mercado, pozo, hoguera, vallado, arco, vecinos y un hito) a partir de un diccionario. Para asegurarme de que la aldea no cambiaba, comparé capturas de antes y después: difieren en 6 y 374 píxeles de 921 600, y es porque los vecinos andan.
Desde entonces, el mod aldea solo guarda lo suyo: los vecinos con nombre, sus conversaciones y el sendero desde la playa.
village = Village.new({"name": "BRUMACOSTA", "center": Vector2(center.x, center.z)})
add_child(village)
village.build()
village.attach(self)
houses = village.houses
villagers = village.villagers
sails = village.sails
world.terrain.set_exclusion(module_id, center, village.radius())
marker("aldea", center, WorldArt.GOLD, "Brumacosta · aldea")
WorldArt.path(self, Island.spawn_point() + Vector3(0, 0, -8), center, 3.0)
set_exclusion abre un claro en el terreno: quita árboles y rocas sin tocar el relieve. Más tarde le di vida: los vecinos sin nombre van de puerta en puerta, al pozo, a los puestos y a la hoguera por unos carriles a ±3 m de la calle, y se paran un rato. Los que tienen nombre se quedan quietos porque su conversación está anclada a un sitio. Hay tres gallinas junto al arco que se apartan si pasas corriendo y un gato en un escalón al que se puede acariciar.
Lo que salió mal
- Media aldea bajo el agua. Di por hecho que avanzar desde la playa llevaba a tierra firme, pero la costa procedural tiene ensenadas y la primera ubicación cruzaba una. Ahora el pueblo usa un punto ancla en terreno seco, y las pruebas comprueban las cuatro esquinas de cada casa y que el sendero desde la playa no cruza el agua.
- Gallinas dentro de una casa. Al principio picoteaban junto a la hoguera y acababan atravesando una pared. Lo cazó una prueba que simula dos minutos y medio de rutinas (nadie puede salir del claro, pisar agua ni entrar en una casa). Las mudé junto al arco.
- Un pueblo quieto en el menú inicial. Los pueblos solo se animan cerca del jugador, y con un límite de 220 m Brumacosta no se movía detrás del menú: la salida está a 240 m. Subí el límite a 300 m.
- El diario desbordado. Con una sola aldea, una línea fija «BRUMACOSTA · 224 m» guiaba bien. Con cuatro pueblos eran cuatro líneas en un diario de cinco. Ahora, una vez visitada, Brumacosta solo escribe cuando estás a menos de 60 m.
Lo que falta por comprobar
En la ronda de la aldea pasaron 429 comprobaciones y el paquete de PC arrancó con sus cinco mods, pero el APK de Android no se pudo exportar. No hay FPS medidos en el móvil. Esta captura de la calle costó 546 llamadas de dibujo y unos 213 000 triángulos en el PC. Los cacareos y el ronroneo están generados por código y medidos, pero todavía no los he escuchado.