hrxdev
Español

Cómo se construye

Un desarrollador, un asistente de programación con IA y muchas reglas comprobadas por máquinas.

Por Nick

Prison Life lo escribo yo junto con Claude Code (el agente de programación de Anthropic). Yo decido qué es el juego y qué opciones tomamos; el asistente hace la mayor parte de la escritura. Como nadie revisa el código salvo yo y un agente de IA de revisión, me apoyo en la automatización: las reglas las hacen cumplir comprobaciones automáticas y la compilación, no las buenas intenciones.

Delegación

La sesión principal de Claude Code planifica el trabajo y lleva el gestor de tareas, el registro escrito de las decisiones de diseño y el historial de cambios. No escribe código: cada cambio, por pequeño que sea, lo delega en un agente de IA especializado. Cada uno tiene su propia definición escrita que fija su rol y su modelo.

RolNivel de modeloTrabajo
ArquitecturaOpusmodelo de datos, tick, hilos, búsqueda de caminos, decisiones
Código de simulaciónOpussistemas de simulación, IA de personajes, bucles críticos
RendimientoOpusperfilado, regresiones del benchmark
Revisión (solo lectura)Opusrevisa un diff; no puede editar archivos
Cliente y herramientasSonnetcliente de Godot, interfaz, herramientas
PruebasSonnetpruebas a partir de criterios de aceptación
Datos de contenidoSonnetdefiniciones JSON a partir de un esquema
Búsqueda, ejecución de comprobacionesHaikubúsqueda en el código; ejecutar comprobaciones y resumir los fallos

El trabajo difícil va al modelo más potente, y el rutinario a los más baratos. Si un agente de IA más barato falla las comprobaciones dos veces, la tarea sube un nivel; si falla dos veces el nivel superior, se detiene y me pregunta.

Hooks que dicen no

Los hooks de Claude Code son scripts que se ejecutan alrededor de las acciones del asistente. Los míos hacen cumplir tres reglas:

Estas medidas protegen de errores, no de una elusión deliberada: un truco de shell decidido puede saltárselas, y uno de los hooks detecta una comprobación en rojo en un agente de IA pero no puede impedir que continúe (el hook de parada de la sesión principal sigue atrapándolo). Prefiero decirlo claramente.

Decisiones y comprobaciones por escrito

El núcleo determinista

La simulación vive en una biblioteca .NET sin referencias a Godot; el cliente de Godot solo lee su estado y envía comandos. El núcleo sigue reglas fijas: el mundo cambia solo mediante comandos, el tiempo son ticks enteros y la aleatoriedad proviene únicamente de los generadores con semilla del mundo. La misma semilla y el mismo registro de comandos deben dar el mismo mundo. Estas reglas las comprueban el compilador y las pruebas, no solo la revisión; consulta el devlog #1 para ver cómo, y el devlog #2 para el mundo, las partidas guardadas y las repeticiones.

Arquitectura del núcleo de la simulaciónLos comandos entran en una cola. Cada tick ejecuta la fase 0 (comandos, escritos en el registro de comandos), la fase 1 (sistemas en un orden fijo) y la fase 2 (fin del tick). El registro de comandos y el estado del mundo, con su mapa de baldosas y sus flujos aleatorios con semilla, alimentan el hash del estado. Entrada de comandos jugador, pruebas, escenarios Cola de comandos Encolar es seguro entre hilos Tick T (un hilo, tiempo entero) Fase 0: comandos serializar, sellar (tick, sec.) Validar, escribir en el registro, aplicar los comandos rechazados también se registran Fase 1: sistemas orden fijo definido en el código (aún no hay ninguno registrado) Fase 2: fin del tick cambios estructurales (aún sin uso) luego contador de ticks + 1 Registro de comandos cada comando, con su resultado bytes de red + resumen replay = semilla + registro Estado del mundo semilla, tick mapa de baldosas (niveles) 4 flujos RNG a partir de la semilla: Commands, Needs, Ai, Events Hash del estado semilla, tick, mapa, flujos RNG, resumen del registro
El núcleo de la simulación tal como existe hoy. Todavía no hay sistemas ni personajes; el mundo contiene un mapa de baldosas con niveles, y el hash cubre el mapa además de lo que se dibuja.

El objetivo de diseño es hasta 1.000 reclusos y empleados a 20 ticks por segundo. Es un objetivo: todavía no hay personajes, así que el ejecutor de benchmarks existe pero no se ha medido nada a esa escala.