Solo Existe lo que Arde

Códice · El horizonte · III · Ingeniería

La sala de máquinas

Qué corre en el servidor y por qué corre todo allí: un lenguaje, cuatro clases de proceso, zonas e instancias, el tic, el historial y cómo esto llega a millones.

01 — Principio

El cliente solo pinta

El navegador dibuja. Todo lo demás —dónde está tu cuerpo, si ese golpe te alcanzó, cuántos cruzasteis la puerta y qué estaba midiendo— ocurre a mil kilómetros de tu máquina.

La tabla de tecnología lo enuncia en una línea: servidor autoritativo, sin excepción. Este cuaderno es esa línea desarrollada. La frontera se dibuja así: el cliente puede predecir, pero no puede decidir, y cualquier cosa que prediga es corregible sin aviso al tic siguiente.

QuéQuién lo decidePor qué ahí
Posición y colisiónServidorEs la base de todo lo demás. Un cliente que decide dónde está puede estar en cualquier sitio.
Impacto y dañoServidor, con 150 ms de toleranciaLa ventana la abre y la cierra la máquina. El cliente solo dice hacia dónde miraba y cuándo, y ese cuándo vale: la entrada se coloca en el instante en que se dio, hasta 150 ms atrás.
Cruce de UmbralServidorLa puerta cuenta cuerpos. Es el acto que da sentido al juego entero: no puede depender de un navegador.
Cálculo de MétricaServidor, y el resultado no viajaNo es que el cliente no la calcule: es que nunca recibe con qué. Lo que no se manda no se puede leer.
Inventario y DispensaServidorLo que paga la puerta es economía. La economía se escribe en el historial, no en tu memoria RAM.
Predicción del cuerpo propioClientePara que andar no se sienta a 100 ms de distancia. Se reconcilia contra el estado autoritativo en cuanto llega.
Interpolación de los demásClienteLos otros cuerpos se pintan un pelo en el pasado, con un búfer corto. Nadie lo nota; todos lo agradecen.
Luz, sonido y sombraClienteEs pintura. La luz que se ve la calcula tu tarjeta; la luz que importa —quién ve a quién— la resuelve la zona.

La última fila tiene letra pequeña. Que el sonido lo pinte el cliente no significa que lo decida: qué suena sale del mismo estado que baja en el tic, y hay un dato —el que no viaja— que tampoco puede sonar. La música y el sonido se cuentan en su propio cuaderno, porque la frontera se dibuja ahí otra vez y con más filo.

La limitación que se volvió el tema

Un juego de navegador no tiene antitrampas de cliente nativo, así que no puede defenderse detectando. Solo puede defenderse no mandando el dato. Esa es una limitación severa y es la primera decisión de arquitectura del proyecto.

Y resulta que el juego trata exactamente de eso: de deducir, desde fuera, qué está midiendo una máquina que no te enseña sus tripas. La postura defensiva del servidor y la premisa de la ficción son la misma frase escrita dos veces. No hay ninguna decisión importante en este cuaderno donde la restricción técnica y la intención estética se peleen.

02 — Elección

Un solo lenguaje, y aburrido

El servidor se escribe en Go. Entero. Y la razón que decide no es el rendimiento: es quién escribe el código.

Hay tres razones técnicas y una de producción. Las tres primeras bastarían para justificarlo; la cuarta es la que hace que no haya discusión.

  1. La concurrencia calca el problema

    Una gorutina por conexión, un bucle por zona, un canal por frontera. El modelo del lenguaje y el modelo del juego son el mismo dibujo, así que no hay que traducir el diseño a la herramienta: se escribe tal como se piensa. Cien mil gorutinas dormidas cuestan memoria y poco más.

  2. La unidad de despliegue es un fichero

    Un binario estático, sin tiempo de ejecución que instalar ni intérprete que arrastrar. Eso es lo que hace barato encender y apagar zonas, que es la operación más frecuente de este servidor: un mundo que crece con las hogueras enciende procesos todo el rato.

  3. El recolector de basura aquí no molesta

    Lo que descarta a Go para un motor de render es irrelevante con un presupuesto de 50 ms por tic. Con memoria reutilizada por zona y sin asignar en el bucle caliente, las pausas quedan dos órdenes de magnitud por debajo de lo que un jugador puede percibir.

  4. Y la que decide: lo escribe una máquina

    Este proyecto ya declaró que compone con IA generativa y filtra a mano. Con el código pasa lo mismo. Go tiene un corpus enorme y, sobre todo, uniforme —un solo estilo, un solo formateador, una biblioteca estándar que cubre casi todo—, así que la máquina produce código idiomático y el humano lo revisa de un vistazo. El cuello de botella del equipo no es escribir: es revisar. Se elige el lenguaje que hace barata la revisión.

Esquema
El lenguaje se elige por el revisor, no por el procesador
Las dos columnas no miden lo mismo a propósito: la izquierda es rendimiento bruto, la derecha es cuánto código puede mirar una persona en una tarde.
DescartadoLo que ofrecíaPor qué no
RustLo más rápido y lo más seguro en memoria, sin recolector.El préstamo y la asincronía son justo donde la iteración asistida va más despacio y donde el revisor humano rinde peor. Queda como puerta abierta para una sola ruta caliente, si algún día una medición la pide. No como punto de partida.
Node y TypeScriptUn solo lenguaje en cliente y servidor, y el equipo ya lo escribe.Un hilo por proceso y pausas impredecibles justo donde hay densidad. La tentación de compartir código con el cliente es además el camino más corto a mover lógica al navegador.
C++El estándar histórico del género.Todo lo que tiene de rápido lo tiene de irrevisable. Con un equipo pequeño y código asistido, es la peor combinación posible.
Elixir sobre BEAMEl mejor encaje conceptual que existe: un proceso por jugador, aislamiento real, supervisión por árbol y millones de conexiones como caso de uso de fábrica.La máquina virtual ya hace lo que aquí hay que construir a mano, y aun así se descarta: corpus pequeño, la IA acierta mucho menos y contratar es más difícil. Es la decisión que más duele.
Dos lenguajes en todo el proyecto

Go en el servidor, TypeScript en el navegador, y pocas dependencias en ambos lados. No es minimalismo de manual: cada dependencia es código que nadie del equipo ha revisado nunca, y este proyecto ha decidido que lo que no se puede revisar no entra al mundo. Vale para una lámina generada y vale para una biblioteca de terceros.

03 — Topología

Cuatro clases de proceso

Cuatro clases de proceso y una sola regla para entenderlas: solo una de las cuatro tiene autoridad, y solo una de las cuatro guarda algo que duela perder.

Pasarela

Termina la conexión —WebTransport sobre HTTP/3, con retroceso a WebSocket donde no llegue—, autentica, comprime y encamina hacia la zona que toque. No sabe nada del juego. Se escala poniendo más detrás de un balanceador, y se puede tirar una entera sin que nadie muera: el cliente reconecta y sigue.

Zona

Un bucle de un solo hilo, dueño de unos cientos de cuerpos y de todo lo que les pasa. Toda mutación entra por un canal, así que no hay cerrojos y no hay carreras: el estado del mundo lo toca un hilo y nada más. Un asentamiento, un tramo de borde o un ancla de dominio (definición: Región gobernada por una IA; antiguo territorio operativo de una megacorporación. Hay siete.).

Instancia

Una zona de usar y tirar con la puerta cerrada por dentro. Nace cuando un grupo cruza un Umbral (definición: La condición de entrada de una Prueba. Objetiva, comprobable y siempre honesta: la puerta no miente sobre lo que pide.) y muere cuando sale el último que la puerta contó: con la Dispensa (definición: La recompensa que otorga una Prueba. Se calcula siempre desde la Métrica, no desde lo que creías estar haciendo.) casi siempre, y si alguien se queda dentro, cuando otro grupo cumple el Umbral o el ciclo (definición: El periodo de reposición de un motor de ración: entre cuarenta y ciento veinte horas, constante hasta el minuto. Aquí no se cuentan días, se cuentan repartos.) le abre la puerta. Es la clase más numerosa y la más barata de repartir.

Control

Asignación de zonas, censo de presencia, arbitraje de traspasos y matrícula de mundos. Redis para lo que hay que consultar en un milisegundo, NATS para hablar entre procesos. No simula nada: dice quién simula qué.

Esquema
Solo una franja tiene autoridad, y no es la que toca el jugador
Las dos etiquetas del margen derecho marcan los extremos: arriba lo que se quiere, abajo lo que consta. El ámbar solo aparece en la franja de arriba, y ninguna franja habla con otra que no sea su vecina.

Queda el punto delicado: pasar de una zona a la vecina sin que se note. El traspaso continuo que el mapa como servidor daba por hecho se hace en cuatro tiempos, y el jugador no ve ninguno.

TiempoQué ocurreQué ve el jugador
AproximaciónEl cuerpo entra en el perímetro solapado de dos zonas. La destino recibe una copia de solo lectura.Nada. Empieza a ver cuerpos de la zona vecina antes de estar en ella.
ReservaLa zona destino confirma plaza. Si no la hay, no se suelta la origen: no existe el limbo entre zonas.Nada.
EntregaLa origen congela el cuerpo un tic, lo firma y lo manda. La autoridad cambia de proceso.Un tic de 50 ms que la predicción del cliente tapa entera.
SueltaLa origen olvida el cuerpo. El grafo del mundo anota la arista recorrida.Nada, y esa es la medida del éxito.
La vida en el servidor · IVEl grafo de zonas no lo dibuja un diseñador: lo enciende la comunidad, hoguera a hoguera, y eso se cuenta entero en El Borde →
04 — Instancias

Un reto es un mundo de usar y tirar

Un reto no ocurre en el mundo: ocurre en una copia del mundo hecha para ese grupo, que dura lo que dura el reto y después no existe.

Es la pieza que hace barato todo lo demás. Una Prueba (definición: Estructura-experimento dejada por una IA para medir a quien entra. La unidad fundamental de contenido del juego.) con ocho personas dentro no necesita saber nada de las otras cuatro mil que hay en el servidor, y no lo sabe.

  1. Convocatoria

    Un grupo se planta ante una puerta. El control comprueba el censo —quién entra, con qué cuerpo, con qué deudas— y reserva una instancia en la máquina más desahogada del mundo.

  2. Nacimiento

    Se arranca un bucle nuevo con la semilla de esa Prueba (definición: Estructura-experimento dejada por una IA para medir a quien entra. La unidad fundamental de contenido del juego.): su recinto, su Protocolo (definición: Las reglas internas de una Prueba, a menudo crueles por diseño.), su Métrica (definición: Lo que la Prueba mide en realidad. Oculta. El gran objeto de estudio del juego.) enterrada, su censo cerrado y su reloj propio. Tarda milisegundos, porque es un proceso, no una máquina.

  3. Vida

    Aislada del todo. Nadie de fuera entra, nada de dentro sale hasta la Dispensa (definición: La recompensa que otorga una Prueba. Se calcula siempre desde la Métrica, no desde lo que creías estar haciendo.). Eso es lo que la hace trivialmente paralela: una instancia no habla con ninguna otra, así que diez mil instancias son diez mil problemas pequeños y no un problema grande.

  4. Cierre

    La Métrica (definición: Lo que la Prueba mide en realidad. Oculta. El gran objeto de estudio del juego.) se resuelve en el servidor y no se anuncia. La Dispensa se paga, se escribe el suceso en el historial del mundo y los cuerpos vuelven a la zona de la que salieron —vivos, o no—.

  5. Muerte

    El proceso desaparece con todo dentro. Lo único que sobrevive es lo anotado en el registro, y lo que la gente se llevó en la cabeza. De ahí sale, más tarde, lo que se escribe en un Cuaderno (definición: Objeto físico donde se registran entradas e hipótesis sobre una Prueba. La moneda del saber. Lo que cabe en él depende de la Letra de quien lo lleva: croquis, hechos, hipótesis o el cruce de dos manos.) y lo que se vende como página.

La parte fácil y la parte cara

Las instancias son la parte fácil del escalado. Se pican en trozos perfectos, se reparten por máquinas sin coordinación y desaparecen sin dejar deuda. Si el juego fuera solo Pruebas, esto escalaría sin arquitectura.

La parte cara es el asentamiento: trescientos cuerpos en una plaza que se ven, se oyen y se estorban entre sí, y donde el coste crece con los pares que se perciben, no con la gente que hay. Por eso el diseño concentra la densidad en un solo sitio y deja el resto del mundo disperso por decisión, no por pobreza. La geografía del juego es el plan de capacidad.

La Puerta que Cuenta. Ocho entran en fila por la boca abierta en el muro de máquina. En el jambaje, una columna de cuatro luces frías se enciende una por una según pasan los cuerpos; la cuarta acaba de prender. Los dos últimos esperan fuera, uno con la vela de sebo en la mano. Detrás de la fila no hay nada y al otro lado del umbral tampoco: en todo el cuadro, lo único iluminado es la puerta.
05 — Ritmo

El tic y lo que viaja

El servidor piensa veinte veces por segundo y habla diez. Todo el diseño de combate cabe en ese desajuste.

PiezaRitmoMotivo
Simulación de zona20 Hz · 50 ms por ticSuficiente para un combate de ventanas largas y demasiado poco para que se note. Duplicarlo dobla el coste y no mejora nada que un jugador perciba.
Instantánea al cliente10 Hz, delta contra lo último reconocidoSe manda lo que cambió, no lo que hay. El cliente interpola entre dos instantáneas y nadie ve escalones.
Entrada del clienteA tasa de fotogramas, agrupadaLo que sube es intención —hacia dónde, con qué, cuándo—, nunca resultado.
Ventana de golpe300–500 ms telegrafiadosLo que hace que 150 ms de latencia sean tolerables sin rebobinar los cuerpos. Está en la doctrina de combate desde antes que en el servidor.
ReconciliaciónEn cada instantáneaEl cliente rebobina su predicción y la vuelve a aplicar desde el estado autoritativo. Si acertó, no se ve nada; si falló, se corrige en un fotograma.

Hay una tolerancia y hay una cosa que no se hace, y conviene no confundirlas. La entrada sube con su marca de tiempo y el servidor la juzga en el instante en que se dio, hasta 150 ms atrás: por eso la parada perfecta puede ser de un octavo de segundo a rango bajo y seguir siendo posible con red normal. Lo que el servidor no hace es rebobinar los cuerpos: dónde estaba cada cual se decide una vez, en el tic, y no se reabre. Pasado el margen la entrada se coloca 150 ms atrás y no más, y la ventana se le estrecha sola al que llega tarde; ninguna otra pieza del combate castiga la red.

Esquema
El servidor piensa veinte veces por segundo y habla diez
Las marcas altas de la línea son las veces que el servidor abre la boca; las bajas, las que solo piensa. La fila de abajo, sin ritmo, es lo que suben las manos del jugador.

El presupuesto de red no lo resuelve la compresión: lo resuelve el mundo. A un jugador solo se le manda lo que su luz alcanza. En un juego donde se ve a seis metros con una lámpara de sebo, la gestión de interés —la parte que en otros MMO es un problema difícil— sale casi gratis: la instantánea de un jugador en la Escarcha (definición: La primera de las dos franjas frías del mundo: se cruza, con hogueras y prisa. La segunda es el Vidrio, y esa mata.) contiene, muchas veces, a nadie.

Esquema
Lo que se manda es siempre mucho menos que lo que existe
El anillo exterior es el mundo; el punto del centro, la instantánea de un jugador. La proporción está dibujada a escala.
La oscuridad es el presupuesto

Un MMO iluminado tiene que decidir a quién le manda qué, y esa decisión es cara y siempre está mal. Aquí la decide la ficción: si no lo ves, no te llega, y no lo ves casi nunca.

El ancho de banda de este juego escala con la luz encendida, no con el tamaño del mundo ni con la gente que hay dentro. El tema del juego y su factura de red son la misma variable.

El juego · IIPor qué el combate se diseñó desde la latencia y no a pesar de ella, en Doctrina de combate →
06 — Escala

De ocho personas a un millón

La pregunta no es cómo se sostiene un millón de jugadores a la vez. Es cómo se sostienen cuarenta mundos de veinticinco mil, que es una pregunta que sí tiene respuesta.

La ficción ya tomó la decisión de arquitectura más importante, y hace mucho: el mundo es la clave de partición. Los Vestigios (definición: Fragmento de ciencia humana recuperada; nodo del árbol tecnológico que comparte todo el servidor.) son de servidor, el año de servidor (definición: Un año de reloj del servidor, no de la ficción. Es la única unidad con la que se puede decir cuán raro es algo —un puñado de semidioses, tres o cuatro emisiones del Callado—, porque dentro del mundo nadie sabe qué año es.) es de servidor, los estados finales son de servidor. Ninguna consulta cruza mundos, nunca. Eso es lo que hace que la curva de coste sea una recta.

PiezaCómo creceQué la limita
PasarelasSe replican sin coordinarse. Cada una lleva decenas de miles de conexiones dormidas.Ancho de banda y descriptores de fichero. Es el problema más aburrido de la lista, y por eso se resuelve con dinero.
InstanciasParalelismo puro: una máquina más son cien retos más.CPU total y nada más. No hay coordinación que rompa.
Zonas de bordeCon el perímetro de calor. La Escarcha exterior no se simula.Baratas por definición: la oscuridad entre casas es hardware apagado.
AsentamientoMal: el coste va con los pares que se perciben, no con los cuerpos.Es la única zona densa del juego. Se subdivide por hoguera y se acota la percepción a la luz. Si algo revienta, revienta aquí.
HistorialSin parar, para siempre.Almacenamiento, no cómputo. Se compacta por temporada y se archiva en frío.
MundosSe siembra uno nuevo con una Reapertura.Nada técnico. Lo limita cuánta gente hace falta para que un mundo tenga vida propia.
El cómputo sigue a las hogueras

Un MMO clásico paga su mundo entero desde el primer día. Aquí un mundo dormido —una casa muerta, una región que nadie ha reabierto— cuesta almacenamiento y nada más: cero procesos, cero tics, cero red.

La factura de infraestructura tiene la forma del mapa nocturno del juego: manchas encendidas sobre negro. Cuando un servidor prospera, la factura crece con él; cuando un servidor se apaga, se apaga también la factura, y lo que queda es un archivo que se puede volver a encender años después tal como quedó.

07 — Persistencia

Historia, no estado

El estado del mundo no es el dato. El dato es todo lo que ha pasado en él, por orden, y el estado es solo el resumen más reciente.

La tabla de tecnología pedía «historia, no solo estado» y no explicaba cómo. Así: un registro de sucesos de solo-añadido, particionado por mundo, es la fuente de verdad. Quién cruzó, qué pagó la puerta, quién encendió esa hoguera, qué clan se partió y en qué fecha. El estado jugable es una proyección de ese registro, y se puede tirar y reconstruir.

AlmacénQué guardaQué pasa si se pierde
Memoria de zonaEl mundo vivo del tic actual: cuerpos, luces, cargas, lo que está pasando ahora mismo.Se reconstruye desde el último punto de guardado y el registro. Se pierden segundos, nunca historia.
Base relacionalCuentas, personajes, inventario, clanes, deudas. Lo que hay que consultar por clave y cambia poco.Es lo único que no se puede perder. Postgres, replicado, particionado por mundo.
Registro de sucesosTodo lo que ocurrió, íntegro y en orden. Solo se añade; nunca se corrige.Se pierde el Osario, el árbol de Vestigios y el mapa de quién encendió qué. Es decir: se pierde el juego largo.
Objeto fríoCasas muertas, instancias terminadas, temporadas cerradas.Se pierde el pasado profundo. Se replica en almacenamiento de objetos y se rehidrata bajo demanda.
Lámina
El estrato más grueso es el que nadie consulta a diario
El grosor es permanencia, no tamaño. Solo la banda de arriba se pierde sin consecuencias, y solo la de abajo no se borra nunca.
El Osario es una consulta

El objeto más literario de este juego —el Osario (definición: Donde un dominio deja a sus muertos. Territorio neutral por acuerdo universal.), la pared donde se lee lo que fue un servidor: quién murió, quién mintió, qué casa aguantó— es, por debajo, un informe sobre el registro de sucesos. No hay un sistema de Osario. Hay un registro que no se borra y una consulta que lo lee.

Pasa lo mismo con el árbol de Vestigios (definición: Fragmento de ciencia humana recuperada; nodo del árbol tecnológico que comparte todo el servidor.), con la procedencia de una página y con las seis señales de que esto funciona. La ficción no se apoyó en el esquema de datos: la ficción y el esquema de datos se decidieron a la vez, y por eso encajan sin adaptadores.

08 — Trampas

Lo que no se le manda al cliente

Aquí no se detectan trampas. Se hace que la mayoría no tengan nada que leer.

Sin cliente nativo no hay antitrampas de cliente, así que la defensa entera es una decisión de qué información sale del servidor. Es más aburrido de construir y mucho más difícil de romper.

Trampa clásicaQué la haría posiblePor qué aquí no existe
Ver a través de la paredRecibir las posiciones de quien no ves.No se mandan. La gestión de interés recorta la instantánea a lo que la luz alcanza, así que no hay nada que revelar en el cliente.
Leer la Métrica en memoriaQue el cliente conozca la condición de la puerta.La Métrica no viaja, ni siquiera cifrada. El cliente ni la calcula ni la recibe: se entera del resultado, como todo el mundo, por la Dispensa.
Falsear el cruce del UmbralQue el cuerpo diga «he entrado».Cuenta la puerta, no el cuerpo. El cliente no tiene forma de afirmar nada sobre sí mismo que la zona no verifique.
Teletransporte y velocidadAutoridad de posición en el cliente.La zona valida cada entrada contra el tic anterior. Lo imposible se descarta y se anota; lo dudoso se corrige en silencio.
Inundar el servidorMandar mil entradas por segundo.Límite por conexión en la pasarela, antes de tocar la zona. Una pasarela saturada no arrastra a nadie más.

Queda la voz, que es el único sistema del juego donde el dato no pasa por el servidor. El audio abierto entre pares es barato y suena bien, pero la conexión directa entre navegadores expone direcciones IP entre desconocidos. Por eso el reenvío selectivo desde servidor, cuando una sala crece, no es solo una decisión de escala: es la decisión de privacidad. En expedición pequeña, malla; en el asentamiento, servidor. Y como en la malla el servidor no oye, el nivel de cada boca no lo afirma quien habla sino quienes lo oyen, y la zona se queda con la mediana: es la única medida del juego que nace en el cliente, avalada por los clientes de al lado, y por eso ninguna Métrica paga más por ella que por las demás.

Mentir sí; mentirle al servidor no

Este es un juego donde falsificar una página de Cuaderno es contenido, donde acusar a un clan de inventarse una Métrica es la capa política y donde una refutación pública puede hundir a una casa. Engañar a otros jugadores es el metajuego.

La distinción es limpia y no admite matiz: se puede mentir a cualquiera sobre lo que la puerta midió. No se puede mentirle a la puerta.

09 — Operación

Desplegar sin apagar la noche

Un mundo persistente es un servicio que nunca se apaga, y aun así hay que cambiarle piezas todas las semanas.

Desplegar
Una zona no se reinicia: se drena. Se levanta la versión nueva, se traspasan los cuerpos uno a uno por el mismo camino que usa un jugador al cruzar de zona, y la vieja se apaga vacía. Para el jugador es un tic.
Instancias en vuelo
No se tocan. Una instancia vive lo que dure la entrada —un puzle de dos minutos, una mazmorra de varias rondas largas (definición: La unidad de tiempo del Vivero: unos veinte minutos de recinto, lo que tarda en reponer una cría hecha. Es lo que hay detrás de la regla de bolsillo del mundo — «una, y espera».), y hasta un ciclo (definición: El periodo de reposición de un motor de ración: entre cuarenta y ciento veinte horas, constante hasta el minuto. Aquí no se cuentan días, se cuentan repartos.) entero si alguien se quedó dentro—: se la deja terminar en su versión y muere sola. Por eso un despliegue no es un instante sino una marea: las zonas se drenan en horas y las instancias viejas se apagan por su pie a lo largo de un ciclo, cada una con la versión que la parió, y dos versiones conviven ese tiempo sin hablarse porque una instancia no habla con nadie. Nunca se corta un reto por un despliegue.
Pasarelas
Se rotan sin ceremonia. El cliente reconecta y retoma la sesión donde estaba, porque la pasarela no guardaba nada.
Observabilidad
Sale del mismo registro de sucesos que el juego. No hay una tubería de analítica aparte: las señales que dicen si esto funciona son consultas sobre lo que ya se está guardando por razones de ficción.
Coste
Se mide por mundo y por hoguera encendida, no por servidor físico. Un mundo dormido aparece en la factura como almacenamiento y en ningún otro sitio.
El código pasa el mismo filtro que el arte

El pipeline de arte de este proyecto tiene un paso humano que no se salta nunca. El del código, también, y por la misma razón: la máquina compone bien y no decide qué merece existir.

De ahí salen las reglas de ingeniería, que no son higiene sino consecuencia: servicios pequeños, porque lo que no cabe en una cabeza no se revisa; un solo lenguaje, porque la atención del revisor es el recurso escaso; pocas dependencias, porque cada una es código sin revisar; y pruebas exhaustivas, porque son la única forma de que revisar sea leer y no adivinar.

Lo que no se puede revisar, no entra. Vale para una lámina y vale para un fichero .go.

10 — Riesgo

Dónde se rompe esto

Los cinco sitios por donde se rompe una arquitectura así. Ninguno se resuelve del todo, y el primero es el único donde el diseño y la máquina se pelean de verdad.

RiesgoPor qué es serioMitigación
La densidad del asentamientoEs el único sitio donde el juego quiere trescientos cuerpos juntos, y el coste crece con los pares que se perciben.Subdivisión por hoguera, percepción acotada a la luz, y voz por reenvío selectivo cuando la sala se llena. Si aun así no aguanta, se recorta el aforo de la plaza antes que la calidad del tic.
La costura del traspasoUn salto visible al cambiar de zona rompe la inmersión más que cualquier tirón de latencia.Perímetros solapados, reserva antes de soltar y traspaso en un solo tic. Se mide como métrica de producto, no de infraestructura.
El historial que no para de crecerLa fuente de verdad es lo único que nunca se borra, y eso es una bomba de relojería de almacenamiento.Compactación por temporada, archivo en frío de lo cerrado y proyecciones materializadas para lo que se consulta a diario. El Osario lee un resumen, no el registro entero.
Concurrencia mal escritaEs el riesgo propio de Go: escribir una carrera es fácil, y en un servidor de estado compartido es catastrófico.Ninguna zona comparte memoria con otra, toda mutación entra por un canal y el detector de carreras corre en integración continua. La arquitectura hace difícil la clase de error que el lenguaje hace fácil.
Mover lógica al clienteLa tentación llega siempre, y siempre con un buen argumento: «así el combate se siente mejor».No hay mitigación técnica, solo una regla escrita: el cliente predice, el cliente nunca decide. Es la línea que, si se cruza, convierte el juego en otro juego.

«El cliente puede predecir.
El cliente nunca decide.»

La regla que resume el cuaderno
Solo Existe lo que Arde. Tomado desde la costilla, mirando hacia abajo. La casa entera cabe en el círculo de la hoguera grande: los tejados, las cuerdas, la gente yendo de un fuego a otro. Justo donde acaba la luz acaba también el suelo — no hay páramo oscuro, no hay nada, y a la derecha tres rosarios de ascuas se meten en esa nada y se cortan a medio camino. Quien haya dibujado esto no ha dibujado la noche: ha dibujado lo que todavía no se ha encendido.

Códice · El horizonte · III — La sala de máquinas