Volver al devlog
ARTE2026·05·23

Bitácora #009 — La Fase 2 arranca: bioma, tiempo y agua

De una colonia con cuatro edificios eléctricos y un único recurso genérico (mineral), se pasa a una colonia con bioma propio, ciclo día/noche con cuatro fases iluminadas, tres recursos brutos diferenciados, agua como cuarto recurso almacenable en tanques, y un sistema de conex…

  • Fecha: Sábado, 23 de mayo de 2026 (segunda sesión de código del día). - Objetivo: arrancar la Fase 2 implementando sus cuatro primeros hitos (2.0 a 2.3) en una sola sesión: bioma, ciclo día/noche, refactor a la Capa 1 de recursos, y la columna del agua con su red propia. - Resultado: éxito. Cuatro hitos cerrados con commits independientes. La colonia tiene ahora una dimensión temporal, una identidad climática y el primer recurso consumible más allá de la energía.

Hito 2.0 — Modelo de bioma (Desértico)

Nació BiomaData como Resource con las constantes del GDD §9.3 (multiplicadores de día/noche, temperatura nocturna, fuerza y periodicidad del viento). Una instancia desertico.tres con los valores provisionales. El BiomaManager (autoload) lo carga al arrancar y lo expone al resto del proyecto.

Hito 2.1 — Reloj global y ciclo día/noche

El TimeManager (autoload) avanza el tiempo del ciclo cada frame, calcula la fase (amanecer, día, atardecer, noche) según las duraciones que dicta el bioma activo y emite fase_changed y tick. DayNightLighting, como hijo del World, escucha al TimeManager y modula la luz solar y el ambiente: el sol arquea de este a oeste; las noches oscurecen el mundo a tonos azules y los colonos desaparecen en penumbra. El HUD muestra fase y hora ("Día — 14:30").

Hito 2.2 — Recursos brutos en Capa 1

El mineral genérico se rompió en mena_metalica, regolito y biomasa (slot reservado). Las vetas ganaron un enum Tipo y se distinguen visualmente: las metálicas son grises y brillantes; las de regolito, marrones y mates. Como hilo aparte, el BuildingData.costs pasó de campos @export individuales a un único Dictionary {recurso → cantidad} — una corrección de modelo que Gus introdujo durante el hito y que escala a Capas 2 y 3 sin tocar el schema. Se afinó también el vocabulario: materias primas (Capa 1) ≠ materiales (Capa 2) ≠ componentes (Capa 3). Los costes de edificios actuales son placeholder en Capa 1 hasta que la Capa 2 exista en código (deuda registrada para Fase 3).

Hito 2.3 — El agua y la red hidráulica

Nació el recurso agua y el Extractor de H2O, una caja azul que consume 5 energía/s y produce 2 agua/s. Pero el extractor sin tope llenaba el contador para siempre, así que en mitad del hito se generalizó el modelo: el sistema de cables sirve ahora para dos redes en paralelo (eléctrica e hidráulica) sobre el mismo grafo. PowerManager hace un solo union-find y evalúa ambas redes de forma independiente. Cada PowerBuilding declara papel en las dos (Extractor = CONSUMER eléctrico + PRODUCER hidráulico). Se incorporó el Tanque de Agua —cilindro azul, water_role=STORAGE, capacidad 100— y se hizo que la capacidad agregada de tanques en redes vivas defina el tope del agua en el ResourceManager: sin tanques, el extractor produce en vano. Los cables, además, se bajaron al ras del suelo (cinta plana a Y=0.1, perfil 0.5 × 0.1 × longitud).

Documentación paralela. Esta sesión es la segunda del día en código, sobre la primera de documentación (bitácora #008). Memorias añadidas: vocabulario de la economía, costes como diccionario, arquitectura de redes con un solo grafo de cables universales. El GDD incorpora el "Kit del módulo de aterrizaje" (§4) y los nuevos edificios en §11.1.

Resumen

De una colonia con cuatro edificios eléctricos y un único recurso genérico (mineral), se pasa a una colonia con bioma propio, ciclo día/noche con cuatro fases iluminadas, tres recursos brutos diferenciados, agua como cuarto recurso almacenable en tanques, y un sistema de conexiones que da pie a futuras redes (comida, oxígeno...) sin duplicar infraestructura.

Próxima sesión: Hito 2.4 — La atmósfera (Atmos Core y zonas presurizadas). 🌬️