← Registro de cambios
A diario2026-05-09

Inicio del proyecto

El primer día se vierte la parte más difícil de la base: una canalización de sombreado de WebGPU que funcione, la capa del dispositivo de renderizado asumida de extremo a extremo, una revisión del ciclo de vida de la memoria de GPU entre entornos y un agente de chat que es seguro para la concurrencia con entradas más sólidas. Todo lo alto comienza con iluminar correctamente el primer píxel en un navegador.

¿Por qué el primer día comienza desde la base del renderizado?

Este es el primer día del registro público de la plataforma. Para una plataforma donde "chateas y aparece un juego", una cosa debe ser cierta en el fondo: el navegador tiene que representar 3D, de manera genuina y estable. Así que el primer día no se trató de acumular una interfaz llamativa; Puso todo el esfuerzo en la parte más difícil, la base de renderizado: construir un canal de renderizado directamente en la capacidad de gráficos de próxima generación (WebGPU) del navegador internamente, en lugar de empaquetar una biblioteca general lista para usar. Ese camino es más difícil y lento al principio: muchos detalles que otros han ocultado debemos recorrerlos nosotros mismos y superar los obstáculos uno por uno. Pero decide si la calidad de la imagen, el rendimiento y las características permanecen en nuestras manos más adelante, en lugar de verse limitados por las compensaciones de una biblioteca anterior. Los resultados de hoy son en realidad caras diferentes de una gran cosa: "iluminar correctamente el primer píxel en un navegador". Conseguir que esta cosa más subestimada y menos comprometida sea sólida primero es lo que le da a cada sueño posterior de "generar juegos mediante la conversación" un lugar en el que apoyarse.

Un proceso de sombreado funcional: WGSL + un shim de compilación de sombreador + PBR simplificado

El núcleo del renderizado es el sombreador, el pequeño programa que le dice a la GPU "de qué color debe ser cada píxel". Este día conectó todo un proceso de sombreado: escrito en el lenguaje de sombreado del estándar de gráficos del navegador (WGSL), combinado con una corrección de compilación que convierte la fuente del sombreador en un formato ejecutable por GPU, además de una implementación simplificada de sombreado basado físicamente (PBR). "Con base física" significa que los materiales reaccionan a la luz según reglas del mundo real: el metal parece metal, el plástico como plástico, no un recorte de papel de colores. Este PBR simplificado utiliza deliberadamente una estructura sencilla de vinculación de recursos (solo tres grupos de vinculación) para mantenerse liviano y al mismo tiempo mantener la imagen creíble: fácil de entender y fácil de ampliar. La corrección de compilación es especialmente importante: WebGPU no consume directamente la fuente del sombreador de alto nivel, por lo que se necesita un paso de traducción a un formato de nivel inferior en el medio, y resolverlo en el navegador es lo que hace posible "escribir un sombreador y ver inmediatamente el resultado". A partir de ese día, el motor ya no se limita a teñir triángulos; representa objetos que están iluminados y tienen material: el primer paso clave desde "saber dibujar" hasta "dibujar correctamente" y el punto de partida correcto para que sigan todos los materiales e iluminación más ricos.

La capa del dispositivo de renderizado se hace cargo de un extremo a otro.

Para que se ejecuten los sombreadores, debe haber una "capa de dispositivo de renderizado" debajo que se encargue de todo: solicitar recursos de la GPU, administrar la superficie del lienzo, organizar los comandos de dibujo de cada cuadro y enviarlos a la GPU. Este día se hizo cargo de esa capa por completo, de principio a fin, verificando toda la cadena etapa por etapa, desde la configuración inicial hasta la producción estable cuadro tras cuadro, se cumplieron una serie de hitos. Los jugadores nunca ven esta capa, pero es la administradora de todo el renderizado: cuando es sólida, los juegos que están encima de ella son sólidos; cuando tiene agujeros, incluso los efectos más bonitos se apagan o fallan aleatoriamente. Muchos problemas de renderizado parecen un efecto roto en la superficie, pero la raíz es en realidad que esta capa no está resuelta. Hacerlo organizado y verificable también tiene una recompensa a largo plazo: cuando un cuadro futuro sale mal, puedes rastrear estos hitos para identificar qué enlace se rompió, en lugar de mirar impotente una pantalla negra. Hacerlo resistente primero establece una pista confiable para cada característica de renderizado futura.

El primer obstáculo entre entornos: una revisión del ciclo de vida de la memoria de la GPU

Al ejecutar WebGPU en diferentes entornos, los buffers de memoria de la GPU siguen reglas estrictas de ciclo de vida sobre "cuándo se pueden utilizar y cuándo devolver"; una vez que el tiempo está desalineado, se obtienen datos sucios a medio leer o se produce un bloqueo total. Este día corrigió el ciclo de vida del búfer durante la etapa de "lectura/escritura mapeada", haciéndolo seguir las reglas en dos entornos bastante diferentes: uno donde, sin GPU discreta, la renderización se simula exclusivamente en software, y otro donde el navegador llama directamente a los gráficos nativos de la máquina. Para que el mismo código sea correcto en ambas rutas, cada asignación y devolución de memoria de la GPU debe realizarse en el momento exacto. Estas correcciones no incluyen ninguna "característica nueva visible", pero son exactamente lo que decide si el motor es "un juguete que a veces funciona en mi máquina" o "una base que se ejecuta en otra máquina y también en otro entorno". Una gran parte del costo de un renderizador interno se destina a esta tarea de tapar la incertidumbre entre entornos, un agujero a la vez; cada uno conectado amplía la gama de dispositivos que la plataforma puede cubrir de manera confiable.

Concurrencia segura: un bloqueo del ciclo de vida por agente

La otra cara de la plataforma son los agentes que chatean contigo y hacen el trabajo. Desde el principio, esta plataforma prevé "un equipo de agentes trabajando a la vez": un líder que reparte tareas y cada subagente toma una porción, en lugar de hablar con un asistente a la vez. Pero en el momento en que varios agentes se ejecutan simultáneamente, aparece la clásica "condición de carrera": dos acciones tocan el estado del mismo agente casi en el mismo instante sin ningún orden garantizado, lo que produce corrupción intermitente o bloqueos. Este día extrajo la gestión del ciclo de vida de cada agente en un componente dedicado de "bloqueo asíncrono": las operaciones en el mismo agente (iniciar, detener, cambiar) se serializan a través de ese bloqueo en una cola, lo que garantiza que solo una acción toque su estado en cualquier momento. Con eso, ejecutar muchos agentes ya no significa pisarse unos a otros y el comportamiento se vuelve predecible. Para una plataforma que trata la "colaboración entre múltiples agentes" como una promesa central, este candado es una pieza clave que permite que el proyecto realmente aterrice en lugar de vivir sólo en una demostración.

Un terminal más resistente: pegar no falla + guía de colaboración

Más allá de la seguridad de la concurrencia, el agente de chat obtuvo dos correcciones de "sensación cotidiana". Primero, entrada de terminal: se corrigió un antiguo error de "el segundo pegado se congela", lo que hace que pegar texto de requisito largo en la línea de comando sea más resistente: pegue un bloque completo de configuración o una especificación larga y no se bloqueará. En segundo lugar, la comunicación colaborativa: la herramienta que los agentes utilizan para enviarse mensajes entre sí tiene escenarios de uso desarrollados y orientación de respuesta, por lo que "quién debe enviar mensajes a quién, cuándo y cómo" tiene estructura, y la comunicación durante la colaboración entre múltiples agentes deja de ser ad hoc. Estos son los detalles clave para "no resultar incómodo de usar": no se puede confiar en un asistente que falla cuando pegas tus requisitos, o que se convierte en un balbuceo cuando colaboras, no importa cuán inteligente sea. Sólo suavizando estas asperezas una por una se convertirá en algo a lo que le darías un verdadero trabajo.

Sin desperdicio de caché: los recordatorios dinámicos añaden un nuevo mensaje

Cuando se habla con un modelo grande, el contexto estable inicial se puede "almacenar en caché" para ahorrar tiempo y dinero; pero reescribir el frente cada vez invalida ese caché y obliga a un nuevo cálculo completo. Este día cambió los "recordatorios dinámicos" (la información temporal que cambia la conversación entregada al modelo) de "reescribir el frente" a "añadir un nuevo mensaje al final", preservando el caché de prefijos. La sensación directa para usted: respuestas más rápidas y menor costo en conversaciones largas. Una optimización de este tipo parece pequeña por sí sola, pero en una plataforma construida en torno a una larga colaboración de ida y vuelta con la IA, suma diferencias reales en fluidez y gasto, y cuanto más crece la conversación, más vale la pena esta decisión temprana. También revela una postura que recorre todo el proyecto: tratar "cómo hablamos con el modelo" como ingeniería que vale la pena pulir, no como un mensaje creado por capricho.

que significa este dia

Al observar las piezas del primer día juntas, se nota que ninguna de ellas es deliberadamente una "característica para mostrar": ni una página de inicio bonita, ni una demostración llamativa. Son la primera piedra angular de cada una de las cuatro líneas principales: renderizado, motor, simultaneidad y conversación. Detrás de eso hay un juicio claro: si "generar un juego mediante el chat" funciona en última instancia no depende de si el primer día se puede demostrar un truco, sino de si la base es lo suficientemente sólida: dibujable en el navegador, estable en todos los entornos, agentes que no pelean, largas conversaciones que no queman dinero. Verter estos cuatro cimientos a la vez es lo que permite que cada día posterior se acumule de manera constante sobre ellos. También es el primer modelo que este registro de cambios quiere dejar para el desarrollo futuro: hacer bien primero las cosas más difíciles, menos glamorosas y menos comprometidas.

← Todas las actualizaciones diarias