Volver a artículos
AIMC — Juegos Sin Final: IA crea aventuras infinitas en Minecraft

Juegos Sin Final: Cómo la IA Crea Aventuras Infinitas en Minecraft para Mis Hijos

· Mayo 2026 · Jacint Gauxachs Marin

"Papa, els NPCs em parlen en català i em coneixen pel nom. Això és màgia?" — No, fill. Són 4 contenedores Docker, un LLM y 279 líneas de diálogo generadas a las 3 de la madrugada.

Hace tres meses empecé a construir un servidor de Minecraft para mis hijos. La idea era simple: un mundo medieval donde pudieran jugar juntos. Pero en algún punto entre configurar el primer NPC y verles la cara cuando ese NPC les habló en catalán, el proyecto se convirtió en otra cosa. Se convirtió en un juego que no tiene final —literalmente— porque cada noche, mientras duermen, una IA revisa qué han hecho, genera nuevas aventuras, nuevos diálogos, nuevas misiones, y cuando se levantan por la mañana el mundo ha cambiado.

Este artículo es el recorrido técnico completo de AIMC (AI Minecraft): la arquitectura, las decisiones, los fracasos, y por qué creo que este tipo de proyectos representan algo más grande que un servidor de Minecraft. Es la demostración de que la IA generativa no es solo para dashboards corporativos —es para hacer que tu hijo de ocho años practique lectura comprensiva en su lengua materna sin darse cuenta de que está aprendiendo.

La visión: un juego que evoluciona mientras duermes

El Minecraft vanilla tiene un problema que todo padre conoce: después de dos semanas, los niños lo dejan. No porque el juego sea malo, sino porque es estático. Construyes una casa, matas al Ender Dragon, y ya. No hay narrativa emergente. No hay sorpresas. El mundo no te necesita.

La pregunta que me hice fue: ¿y si el mundo te necesitara? ¿Y si cada vez que entraras hubiera algo nuevo? Un mercader que ha llegado con un encargo urgente. Un rumor sobre una cueva al norte donde un mago oscuro está acumulando poder. Un herrero que necesita materiales raros y te ofrece una espada encantada a cambio. No un evento aleatorio generado por dados —una historia coherente, que recuerda lo que hiciste ayer, que reacciona a tus decisiones.

Esa es la visión de AIMC. Y no es teórica: lleva funcionando varias semanas.

Vista aérea de la ciudad medieval de Apex, generada con schematics y FAWE
Vista aérea de Apex: la ciudad medieval donde transcurre la aventura. Murallas, castillo, catedral, plaza central, establos — todo construido con schematics reales pegados via FAWE.

La arquitectura: cuatro servicios, un cerebro

AIMC corre como un stack Docker Compose con cuatro servicios que se hablan entre sí:

services:
  postgres:       # Estado persistente — aventuras, misiones, jugadores
  ai-director:    # Cerebro — FastAPI + Claude + TTS pipeline
  paper:          # Servidor Minecraft — Paper 1.21.4 + bridge plugin
  cdn:            # nginx — resource packs + audio para clientes

El flujo es deliberadamente simple. El jugador interactúa con un NPC en el juego. El bridge plugin (Java, Javalin HTTP embebido) intercepta ese clic y lo envía al AI Director (Python, FastAPI). El Director consulta el estado del jugador en PostgreSQL, decide qué diálogo mostrar, genera la respuesta si es necesario via Claude, sintetiza audio via Edge TTS, y devuelve al bridge el texto + el comando de sonido. El bridge muestra el diálogo en el chat del juego y reproduce la voz del NPC. Todo en menos de dos segundos.

Paper 1.21.4

Servidor Minecraft optimizado. Build 232 pinneado (Citizens se rompe en builds posteriores). Puerto 25566 juego + 8765 HTTP bridge.

AI Director (FastAPI)

Python con uv. Anthropic SDK, edge-tts, ffmpeg, SQLAlchemy 2 async, httpx. Puerto 8000. El cerebro del sistema.

PostgreSQL 16

7 migraciones Alembic. Tablas: adventures, world_bibles, deployments, player_quest_status, dialogue_trees.

CDN (nginx)

Sirve resource packs + schematics desde el volumen compartido aimc-audio. Los clientes descargan audio de aquí.

El bridge plugin: Java que habla HTTP

El puente entre Minecraft y la IA es un plugin Java con Javalin 6.3 embebido que expone una API REST. No es un mod del cliente —es servidor puro. Los endpoints cubren todo lo que la IA necesita para operar sobre el mundo:

# Rutas principales del bridge (AIMC v0.6.0)
/health              # Heartbeat
/cmd                 # Ejecuta comandos MC (allowlist configurable)
/state               # Posición + inventario del jugador
/npc/spawn           # Crea NPC con skin, rol, posición
/structure/paste-schematic  # Pega .schematic vía FAWE
/world/fill-region   # Rellena región con bloque
/world/prepare-stage # Prepara canvas plano para construcción
/adventure/deploy    # Despliega aventura completa (NPCs + diálogos + quests)
/chest/place         # Coloca cofre con loot
/mob/spawn           # Genera mobs con NBT (profesión de aldeano, etc.)

La decisión de hacer un bridge HTTP en lugar de un plugin monolítico fue deliberada: el AI Director es Python, y quiero poder iterar en la lógica de IA sin recompilar Java. El bridge es un thin adapter que traduce intenciones de alto nivel ("coloca un NPC herrero aquí") a comandos de Bukkit. La inteligencia vive fuera del juego.

113 NPCs que hablan catalán

Mis hijos hablan catalán. El catalán es su lengua materna, la que usan en la escuela, la que hablan con sus amigos. Pero casi todo el contenido digital que consumen —juegos, YouTube, series— está en castellano o inglés. El catalán queda relegado a los deberes.

AIMC invierte esa ecuación. Todos los NPCs hablan catalán. Cada línea de diálogo, cada misión, cada descripción de objeto está en catalán. Y no solo texto: los NPCs tienen voz.

El pipeline TTS

El pipeline es: Story Bible (Claude genera narrativa) → Dialogue Tree (se estructura en nodos con condiciones) → Edge TTS (sintetiza audio) → Resource Pack (empaqueta OGG Vorbis) → CDN (sirve al cliente).

Las voces son ca-ES-EnricNeural para personajes masculinos y ca-ES-JoanaNeural para femeninos —las voces catalanas de Microsoft Edge TTS, gratuitas y sorprendentemente naturales. El audio se convierte a OGG Vorbis mono 44.1kHz con ffmpeg (formato nativo de Minecraft) y se empaqueta en un resource pack que el cliente descarga automáticamente al conectarse.

El resultado es que cuando un niño hace clic en "Mossèn Llorenç" en la iglesia de Apex, el sacerdote le dice en voz alta, en catalán: "Benvingut, aventurer. L'església guarda secrets antics que potser podrien ajudar-te en la teva missió." Y el texto aparece en el chat para que lo lean.

Escucha a los NPCs

Cada NPC tiene voz propia generada por Edge TTS en catalán. Estos son algunos saludos reales del juego — 599 archivos de audio en total:

Lord d'Apex

El señor feudal de la ciudad

Pare Bernat

El sacerdote de la iglesia

Mestre Pere

El erudito de la torre

Joan el Ferrer

El herrero del pueblo

Adela del Mercat

La vendedora del mercado

Marc l'Aprenent

El joven estudiante

El ángulo educativo. Cada quest obliga a leer texto en catalán para avanzar. El "Diari de Missions" (journal) es un libro escrito dentro del juego que el jugador debe consultar. Las misiones incluyen pistas que requieren comprensión lectora real. Y como el AI Director genera contenido via Claude, puedo inyectar contenido pedagógico —puzzles matemáticos, hechos históricos sobre la Cataluña medieval, vocabulario nuevo— simplemente ajustando el prompt del Director. Sin tocar código.

Personajes con personalidad

Los NPCs no son maniquíes estáticos. Cada uno tiene un rol (lord, herrero, maga, tabernera, guardia), un skin asignado del pool de Hermitcraft (Grian para el Lord, Etho para los eruditos, Technoblade para los herreros), una posición calibrada al bloque —verificada con un protocolo de 6 pasos que incluye comprobación de suelo, pies, cabeza y esquinas— y un árbol de diálogo que cambia según el estado del jugador.

El herrero Joan, por ejemplo, empieza presentándose. Si el jugador ha aceptado la quest principal, Joan menciona que ha oído rumores sobre la reliquia perdida. Si el jugador ya ha completado la quest, Joan lo felicita y le ofrece un descuento en su tienda. Son 279 líneas de diálogo solo para la aventura principal, y cada NPC sabe en qué punto de la historia está el jugador.

La ciudad de Apex tiene 61 NPCs activos con nombre, rol y personalidad. Más allá de la narrativa, 13 de ellos son vendedores con tiendas funcionales —6 paradas de mercado (verdura, carne, pescado, pan, lana, herramientas), 2 tiendas generales, una herrería, una armería, una posada, una taberna, y un mercado de lujo— cada uno con su inventario propio a través de la Bukkit Merchant API. El jugador hace clic derecho y se abre la interfaz de comercio nativa de Minecraft. Cero comandos de chat. Todo pensado para que un niño de seis años lo pueda usar.

El sistema RPG: clases, habilidades y partidas

Un mundo con historia necesita mecánicas. La última fase del proyecto (Phase 44) ha añadido un sistema RPG completo:

ClaseArquetipoTrees primariosHabilidad activa
PaladíTankheavy_armor + heavy_weaponsCrit de Guerra (taunt 8s)
MagDPSenchanting + archeryBola de Foc (projectile)
DruidaHealerfarming + alchemyAura de Curació (5 bloques)

Detrás de esto hay ValhallaMMO, un plugin de skill trees con perks ramificados que avanza por XP en acciones relevantes (el herrero mejora forjando, el mago encantando). Las clases se definen en un fichero Python (class_config.py) que el AI Director lee para asignar items iniciales, puntos de habilidad y etiquetas de clase al jugador. El bridge traduce eso a comandos de ValhallaMMO.

Para juego cooperativo, AlessioDP Parties (con backend PostgreSQL compartido) permite crear grupos. Y en el cliente, Xaero's Minimap muestra aliados, NPCs y objetivos en un minimapa que se sincroniza con el servidor via MapModCompanion.

Todo se opera desde la hotbar del juego. Nada de /party create en el chat. Un item en el slot 9 abre un menú de inventario con botones clickeables. Si un niño sabe hacer clic, sabe jugar.

La aventura: misiones que importan

La aventura principal de Apex —"L'Enigma d'Apex"— es una cadena de 8 pasos con un arco narrativo completo: una reliquia perdida, un mago oscuro, pistas distribuidas por la ciudad, una mazmorra final, y un enfrentamiento con boss. La genera Claude a partir de un Story Bible que define el tono, los personajes y los hilos argumentales. El AI Director la estructura como un grafo de nodos con condiciones de avance y la despliega en el servidor.

Qué contiene una aventura desplegada

Y cuando el jugador completa todo esto, la pregunta es: ¿y ahora qué?

El juego infinito: el cron que lo cambia todo

Aquí está el corazón del proyecto. La respuesta a "¿y ahora qué?" es: mañana hay más.

La idea es un cron job nocturno que ejecuta un ciclo completo de generación:

  1. Análisis — el AI Director lee player_quest_status de PostgreSQL. ¿Qué quests ha completado el jugador? ¿Con qué NPCs ha hablado? ¿Qué nivel tiene? ¿Qué items lleva?
  2. Generación narrativa — Claude recibe el estado del jugador + el Story Bible actual y genera nuevas ramas argumentales. Un mercader llega con noticias del norte. La hija del herrero ha desaparecido. Se rumorea que hay una fortaleza abandonada más allá del río.
  3. Producción de contenido — el Director genera diálogos para los nuevos NPCs, condiciones de quest, items de recompensa, posiciones de spawn.
  4. TTS batch — Edge TTS sintetiza todas las nuevas líneas de voz. ffmpeg las convierte a OGG Vorbis.
  5. Resource pack rebuild — el builder empaqueta el nuevo audio, actualiza el manifest, lo sirve via CDN.
  6. World building — si la narrativa requiere una nueva estructura (una tienda, un campamento, una mazmorra), el Director puede colocarla via FAWE usando schematics del catálogo curado.
  7. Deploy — el endpoint /adventure/deploy del bridge recibe el paquete completo y lo aplica al mundo en caliente.

Cuando mis hijos se conectan por la mañana, hay una quest nueva esperándoles. Un NPC que ayer no estaba les saluda por su nombre. El mundo ha evolucionado. Y lo único que yo he hecho es dormir.

El juego infinito no es una promesa de marketing. Es un cron job, un LLM y una base de datos.

La ciudad: schematics, no procedural

Uno de los fracasos más formativos del proyecto fue intentar generar ciudades de forma procedural. Pasé 9 iteraciones —layout engines, zone bitmasks, density tuning, vegetation passes— y el resultado era siempre el mismo: casas que se solapaban, interiores vacíos, calles que no llevaban a ningún sitio. Mis hijos lo miraban con la educación de quien sabe que papá ha trabajado mucho, pero la primera vez que les enseñé un screenshot procedural, el mayor dijo: "Está bien, pero no parece de verdad."

El pivote fue radical: dejar de generar y empezar a curar. La comunidad de Minecraft lleva 15 años construyendo ciudades medievales espectaculares. Apex Medieval, un schematic de 186x167 bloques descargado de mcbuild.org, tiene calles empedradas, una catedral gótica, un castillo con biblioteca y sala del trono, una posada de tres plantas, una plaza de mercado con paradas, una herrería con yunque funcional, y casas con interiores decorados hasta el detalle de las cortinas.

FastAsyncWorldEdit (FAWE) permite pegar estos schematics en el mundo del servidor de forma asíncrona, sin lag. El pipeline es: descarga el schematic → pega via API del bridge → captura POIs caminando por el mapa (una inversión de 20 minutos por sitio que se reutiliza en cada wipe) → despliega NPCs en las posiciones capturadas → verifica visualmente con un renderer top-down que lee los archivos de región directamente.

El resultado es un mundo que parece construido a mano, porque lo fue —por otro humano, hace años, con una dedicación que ningún LLM puede igualar hoy. La IA aporta la vida (NPCs, diálogos, quests, voz), no la arquitectura. Es una combinación que funciona mucho mejor que cualquiera de las dos por separado.

Vista lateral de la Porta Sud de Apex con gatehouse y almenas
Porta Sud de Apex: muralla de 14 bloques de alto con gatehouse, almenas y paso central. Construida, destruida y reconstruida tres veces hasta acertar.

Los números

MétricaValor
NPCs activos (Apex)61 con nombre + rol + skin + diálogo
NPCs totales desplegados113
Líneas de diálogo (aventura principal)279
Vendedores con tienda funcional13
Items en venta50+
POIs capturados30
Voices TTS generadas279+ archivos OGG
Quests activas1 principal (8 pasos) + 9 secundarias
Clases RPG3 (Paladí, Mag, Druida)
Migraciones Alembic (DB)7
Endpoints del bridge15+
Coste de hosting0 (bare metal propio)
Coste de TTS0 (Edge TTS gratuito)
Coste de LLMSuscripción Claude existente

Lo que aprendí (y lo que salió mal)

Fracasos instructivos

Decisiones que funcionaron

El ángulo que nadie te cuenta: paternidad + ingeniería + IA

La mayoría de artículos sobre IA aplicada hablan de enterprise, de productividad, de transformación digital. Y está bien. Pero hay una dimensión que se menciona poco: la IA como herramienta de paternidad.

Yo no estoy construyendo AIMC para publicar un paper ni para monetizarlo. Lo construyo porque quiero pasar tiempo con mis hijos haciendo algo que les fascina, y quiero que ese tiempo tenga valor más allá del entretenimiento. Quiero que lean catalán sin que sea una obligación. Quiero que aprendan a colaborar en equipo (el Paladí tanquea mientras el Druida cura —eso es coordinación). Quiero que experimenten un mundo que responde a sus decisiones, que les enseña que las acciones tienen consecuencias narrativas.

Y quiero que vean que su padre puede construir algo así. Que la tecnología no es una caja negra: es una herramienta que se puede moldear para crear experiencias que no existen en ningún marketplace.

La IA me permite hacerlo porque elimina las dos barreras que antes lo hacían impracticable: el contenido y la escala. Antes, crear 279 líneas de diálogo coherentes, con arcos narrativos, en catalán, habría sido un trabajo de semanas. Claude lo hace en minutos. Antes, sintetizar voz en catalán requería licencias caras o voces robóticas. Edge TTS lo resuelve gratis. Antes, diseñar un sistema de quests con estado persistente y diálogos condicionales era un proyecto de ingeniería de meses. Con un LLM que genera configuraciones de quest a partir de una narrativa en lenguaje natural, es una tarde.

No estoy diciendo que sea fácil. Son 44 fases, cientos de horas, y el proyecto está lejos de terminado. Pero el ratio entre esfuerzo y resultado ha cambiado fundamentalmente. Un padre con conocimientos de ingeniería y acceso a un LLM puede construir experiencias que antes requerían un estudio indie con presupuesto.

Qué viene después

El cron nocturno es la pieza que falta para cerrar el bucle. Hoy las aventuras se generan cuando yo las pido; mañana se generarán solas. El pipeline está preparado —cada pieza (análisis de estado, generación narrativa, TTS, deploy) funciona de forma independiente— y solo queda orquestarlas en un job programado.

Más allá de eso:

Conclusión

AIMC no es un producto. Es un proyecto de padre ingeniero que quiere que sus hijos vivan algo que no se puede comprar en ninguna tienda: un mundo que les conoce, les habla en su lengua, y crece con ellos. Es también una demostración técnica de que el stack actual de IA generativa —LLMs, TTS, orquestación agéntica— es lo suficientemente maduro como para construir experiencias interactivas ricas sin presupuesto enterprise.

Cuatro contenedores Docker. Una suscripción a Claude. Voces catalanas gratuitas. Y un niño que esta mañana me ha dicho: "Papa, el Mossèn Llorenç m'ha dit que la reliquia és a la cova del nord. Puc anar-hi?"

Sí, hijo. Puedes ir. Y mañana habrá algo nuevo esperándote.


Volver a artículos