Jacquard e mundos tipados para jogos criados por IA
The demo is the easy part
The first Jacquard demo is deliberately seductive. An agent opens a browser-native engine, calls a typed tool, creates a scene, sculpts terrain, places objects, wires behaviour, saves the bundle, and hands the world back to a human who can press play. No multi-gigabyte editor. No desktop-engine ceremony. No ritual of installing a native toolchain before the first idea can move.
If that were the whole story, Jacquard would be easy to explain: faster prototypes, cheaper training sims, and small interactive worlds made from plain language. The source material supports some of that shape: Jacquard is a Dweve research project, written as strict TypeScript, and designed to run in a browser tab. The route metadata describes a web-native game engine where AI agents build complete games through a typed API, with visual editor, physics, and NPC behaviour included.
But a good demo can hide the real problem. Making an agent produce a plausible game scene is not the hard part anymore. The hard part is making the generated world constrained enough to inspect, editable enough for a designer, physical enough to play, behavioural enough to matter, and safe enough that generation does not become a new way to create unreviewable state.
That is the interesting question: can a game engine expose every meaningful operation as a typed surface shared by agents and humans, while preserving replay, authorship, safety, and the texture of design?
Why the question is still open
A normal packaged tool tries to freeze its promise. Here is what it does. Here is the support model. Here is the boundary. Here is the failure mode. Jacquard is more interesting before those sentences become too smooth, because the hard questions are still connected to each other.
The current source describes an agent-first engine, an MCP surface, deterministic replay, Rapier3D in WASM, WebGPU with WebGL2 fallback, glTF 2.0 assets, and a browser-only path. Those are concrete engineering choices. They are also only the beginning of the social contract around AI-authored games.
Games are not documents with collision boxes. A game world is a live arrangement of geometry, timing, physics, inputs, state transitions, player expectation, and authored surprise. If an AI system generates a report, a reader can mark a paragraph wrong. If an AI system generates a game world, the error may appear as a door that cannot be reached, a non-player character that lies about the quest state, a physics impulse that breaks replay, or an editor operation the agent performed but the designer cannot understand later.
The uncomfortable questions are the point. What should an agent be allowed to mutate directly? Which editor affordances must be first-class typed operations? Which generated assets are safe to package? Which behaviours must be inspectable before they run? Which world state belongs in an event log rather than a hidden engine heap? These are not cosmetic backlog items. They are the engine.
The engine is an argument about reach
Most game engines are excellent tools for humans at a desk. That does not make them good substrates for agents. Their power often lives behind menus, panels, engine-specific scripting languages, proprietary asset pipelines, and UI flows that assume a person can visually search for the next control. An agent can learn to click, but clicking through an editor is not the same as having a programmatic contract.
Jacquard assume a posição contrária. Se o editor consegue fazê-lo, uma chamada de ferramenta também deve conseguir. Uma funcionalidade a que um agente não chega através de código não existe verdadeiramente para esta questão de investigação. Essa regra parece severa até vermos um agente a tentar construir um mundo num motor que só tem interface gráfica. O agente vê-se forçado a aproximações: inferir o menu, esperar que o painel selecionado esteja ativo, extrair uma mensagem de erro e continuar com um estado que não consegue provar.
A fonte nomeia o atrito com clareza: funcionalidades só de interface gráfica, instaladores pesados, DSLs específicas do motor, pipelines fechados. Jacquard responde com um separador de navegador, formatos abertos, ativos glTF, mundos serializáveis, parâmetros validados por esquema, erros tipados e uma superfície tipada partilhada pelo editor visual e pelo agente. É por isso que o motor não é apenas um motor. É uma experiência sobre alcance.
Alcance não é conveniência. É segurança. Quando cada operação é uma chamada, cada operação pode ser nomeada, limitada, registada, rejeitada, reproduzida e explicada. Quando a capacidade está escondida atrás de um menu, o agente tem de contrabandear a intenção através de uma superfície que nunca foi desenhada para isso. A diferença é a diferença entre um engenheiro a ler um trace de API e um humano a tentar lembrar-se de que painel estava aberto quando a cena mudou.
Um mundo não é uma imagem
A geração de imagens por IA habituou as pessoas a aceitar um acordo estranho: pedir uma imagem, receber uma imagem, perdoar a estrutura se a superfície parecer certa. Os jogos não sobrevivem a esse acordo. Um nível de jogo não é avaliado apenas pelo que parece a partir de um ângulo de câmara. É avaliado por saber se um jogador consegue mover-se nele, se a física se mantém estável, se os objetivos se resolvem, se o comportamento dos NPCs respeita o mundo e se o estado pode ser reproduzido quando algo corre mal.
É aqui que as restrições tipadas se tornam centrais. Uma ferramenta de terreno não pode simplesmente pintar colinas. Tem de saber onde estão as superfícies transitáveis, como os declives interagem com os controladores de personagem, como a vegetação e a iluminação afetam a visibilidade e como a geração com semente reproduzirá o mesmo resultado mais tarde. Uma ferramenta de cena não pode simplesmente colocar coisas. Tem de criar entidades endereçáveis, anexar componentes, versionar o grafo e tornar o resultado suficientemente diferenciável para revisão.
A paleta de ferramentas Jacquard torna isso visível. A página nomeia quinze categorias: cena, entidade, componente, asset, material, física, terreno, iluminação, áudio, interface, missão, NPC, build, depuração e playtest. Também nomeia recursos só de leitura, como metadados do projeto, grafo de cena, catálogo de assets, métricas de desempenho e registo de erros. Isso não é um menu arbitrário. É uma taxonomia daquilo que um mundo de jogo tem de expor antes de um agente poder ser mais do que um gravador de macros inteligente.
O problema de investigação não é se as quinze categorias podem existir. Já existem como afirmação da fonte. O problema é quão expressiva, segura e composável cada uma tem de ser antes de os mundos gerados deixarem de ser artefactos frágeis e passarem a comportar-se como sistemas autoriais. A resposta não será encontrada com prompts mais insistentes. Será encontrada ao tornar a representação mais difícil de enganar.
O editor não é uma decoração
Uma leitura fraca das ferramentas centradas no agente trata o editor como um visualizador. O agente cria coisas; o humano observa. Esse é o modelo errado para o Jacquard. O texto-fonte é cuidadoso: o editor visual usa a mesma API que os agentes. É um cliente sem privilégios da mesma superfície. Esse único facto impede que uma divisão profunda se forme dentro do projeto.
Se o agente tem uma via privada para o mundo e o editor tem outra, o humano acaba por perder. O estado gerado torna-se tecnicamente válido, mas praticamente ineditável. O designer consegue ver o castelo, mas não consegue descobrir por que razão o sinalizador de missão está anexado àquela entidade, por que o terreno tem um bloqueador invisível ou por que o horário do NPC muda após a segunda noite. O resultado parece produtividade e comporta-se como dívida.
Uma API partilhada significa que o editor tem de oferecer affordances para os mesmos conceitos que o agente manipula. Tem de mostrar grafo de cena, componentes, comportamentos, recursos, erros e desempenho de formas que um humano consiga compreender. Tem de permitir que o designer corrija o mundo sem sair do contrato do qual a reprodução depende. O editor é, portanto, parte do instrumento de investigação.
Este é um requisito desconfortável porque abranda a fantasia. É mais fácil deixar o agente gerar cablagem oculta e esperar que a demo continue a funcionar. O Jacquard pede que a cablagem oculta se torne suficientemente visível para que um designer possa assumir a posse. Os jogos construídos por IA só se tornam sérios quando o humano os pode herdar sem arqueologia forense.
A física é onde o charme se torna responsabilidade
A física tem uma forma brutal de transformar geração vaga em falha visível. Uma história tolera algum improviso narrativo. Um mundo 3D com corpos, colisões, terreno e input do jogador não tolera. Se o passo muda com a taxa de fotogramas, a reprodução desvia-se. Se o controlo da personagem depende de um impulso não registado, um relatório de bug torna-se um rumor. Se a mesma semente produz posições corporais diferentes noutra máquina, o mundo não é evidência reproduzível.
A Jacquard ancora isto com Rapier3D em WASM e um passo de tempo fixo de 60Hz. O material de origem descreve física determinística, aleatoriedade com semente, entrada gravada e reprodução mecânica a partir de um registo de eventos tipado. Mesma semente, mesmo registo, mesmos fotogramas. Um relatório de erro é o registo anexado; reproduza-o e veja o que o jogador viu. Isso é uma afirmação mais forte do que uma gravação de ecrã, porque preserva as causas interativas, não apenas os píxeis.
A questão de investigação é o que acontece quando a geração entra nesse ciclo. Um agente pode criar uma ponte, mas a ponte tem de obedecer a restrições de massa, colisão, alcançabilidade e playtest. Pode gerar um NPC, mas o NPC tem de navegar num mundo cuja geometria pode mudar. Pode ajustar o terreno, mas as inclinações resultantes têm de permanecer jogáveis. Pode adicionar um evento com script, mas esse evento tem de ser registado de uma forma que a reprodução consiga dobrar.
A física não é, portanto, um subsistema no fundo da pilha. É um dos juízes da geração. Um mundo de jogo gerado não é bom porque parece plausível. É bom quando o jogador o pode habitar, quando as regras se mantêm e quando um revisor posterior pode reproduzir a mesma falha em vez de perguntar ao modelo o que ele queria dizer.
O comportamento de NPC é a camada onde a linguagem se esgota
Os personagens não jogadores tornam a Jacquard mais difícil do que um editor de níveis. Uma sala estática pode ser inspecionada como geometria. Um NPC é estado ao longo do tempo: horário, objetivo, perceção, diálogo, grafo social, relação com missões, pathfinding, memória e falha. O material de origem nomeia árvores de comportamento, horários, objetivos, narrativa como dados, grafos de condições e progressão ramificada. Essas palavras são onde os jogos construídos por IA deixam de ser um brinquedo.
A linguagem é útil para a intenção. É uma representação final pobre para o comportamento. Um prompt pode dizer que um guarda deve estar desconfiado à noite, prestável com os aldeões, hostil com ladrões e indulgente depois de o jogador completar uma tarefa. O motor precisa de algo mais afiado: qual sensor lê o perigo, qual condição muda a atitude, qual flag de missão sobrepõe a desconfiança, qual horário move o guarda e qual linha de diálogo é permitida após a transição de estado.
Essa precisão é a razão pela qual as ferramentas tipadas de NPC importam. Sem elas, o agente produz vibes. Com elas, ele tem de escrever comportamento em estruturas inspecionáveis. O designer pode então perguntar se o guarda é injusto, se a missão pode entrar em impasse, se o grafo social cria obrigações impossíveis ou se uma instrução gerada faria todos os NPC convergirem para a mesma rotina monótona.
O comportamento dos NPC também torna a segurança algo prático. A geração insegura não é apenas texto ofensivo ou conteúdo proibido. Pode ser um ciclo de comportamento que prende o jogador, uma missão que não consegue ser resolvida, um grafo social gerado que codifica um estereótipo hostil, ou um horário que provoca um colapso de desempenho. A segurança em torno da geração tem de funcionar ao nível dos sistemas do jogo, e não apenas ao nível das palavras.
A segurança é um problema de forma
A história de segurança mais simples diz que o agente pode ou não gerar uma peça de conteúdo. A Jacquard precisa de uma história mais estrutural. A questão não é apenas se um ativo gerado é permitido. É se a alteração gerada se encaixa no contrato do mundo. Muta apenas o âmbito que lhe foi dado? Expõe o que mudou? O editor consegue inspecioná-la? A repetição consegue reproduzi-la? As ferramentas de compilação e de playtest conseguem rejeitá-la antes de uma pessoa confundir novidade com conclusão?
A fonte aponta para isto através de chamadas tipadas, validação de esquemas, recursos só de leitura, depuração, playtest, pacotes portáteis e ficheiros abertos. Não são funcionalidades de segurança glamorosas, mas importam mais do que uma mensagem dramática de recusa. Uma chamada limitada pode ser negada. Um erro tipado pode ser reparado. Um recurso só de leitura pode deixar um agente inspecionar sem mutar. Um passo de compilação pode empacotar apenas o que é serializável. Um playtest determinístico pode revelar que a porta gerada nunca abre.
Geração segura também significa resistir à tentação de esconder a incerteza. Se o agente não consegue saber se um puzzle é solucionável, o sistema não o deve apresentar como resolvido. Se um comportamento de NPC depende de um estado ambíguo, o editor deve tornar essa ambiguidade visível. Se a repetição da física diverge, a afirmação deve falhar. O vocabulário da falha ainda está a ser construído.
A Jacquard deve tornar a incerteza visível em vez de a polir até virar uma promessa falsa. Quando o conteúdo gerado não está suficientemente limitado, o editor, o registo, o caminho de repetição e os erros tipados devem expor essa lacuna enquanto ainda é pequena o suficiente para ser corrigida. Isso não é aspereza por si só. É assim que os mundos gerados evitam tornar-se dívida de conteúdo.
O navegador muda a economia da iteração
A Jacquard a funcionar num separador do navegador pode parecer uma funcionalidade de distribuição, e é. A instalação zero reduz o custo de experimentar um mundo. O WebGPU e o WebGL2 dão ao motor um caminho de renderização prático. Uma sala de aula, um parceiro de investigação ou uma sessão de design não têm de começar com uma instalação nativa pesada. Mas o navegador importa por uma razão mais profunda.
Encurta o ciclo de iteração. Um agente pode construir, o editor pode inspecionar, o jogador pode testar e o registo pode ser repetido sem mover o mundo por uma cadeia de ferramentas proprietárias. O mesmo ambiente pode expor um grafo de cena, executar física, reproduzir áudio, inspecionar desempenho e empacotar um pacote portátil. Isso não resolve o design de jogos, mas remove muita cerimónia acidental do seu estudo.
O navegador também torna os limites mais claros. Se o mundo se abre como uma página web, o limite do que foi executado, do que foi carregado, do que mudou de estado e do que foi exportado pode ser tornado explícito. Se o motor for TypeScript estrito direcionado a ES2022, com ativos glTF abertos e mundos serializáveis, o artefacto pode ser lido por mais pessoas do que o pequeno sacerdócio de um único motor de desktop.
Essa abertura é uma vantagem prática. Mais olhos podem inspecionar a representação. Mais agentes podem ser ligados através de MCP. Mais falhas podem ser reproduzidas como registos em vez de narradas como anedotas. O navegador não torna o problema fácil. Torna o problema observável.
A pressão do protótipo partiria isto
Existe um reflexo familiar no software: quando algo demonstra bem, alisa-se até poder ser empacotado. Jacquard é exatamente o tipo de sistema que pune esse reflexo. Alisar cedo demais e a equipa tem de fingir que o contrato de autoria está resolvido antes de as perguntas difíceis serem respondidas. Qual é o contrato de autoria estável? Que comportamentos gerados são suportáveis? Que alegações de física se mantêm entre navegadores? Que conceitos do editor são agora permanentes? Que verificações de segurança são obrigatórias?
Um pacote prematuro teria de fingir que as respostas já estão resolvidas. Isso estreitaria a investigação para o que é mais fácil de empacotar. O resultado seria um brinquedo divertido com uma frente polida e um verso frágil. A promessa interessante de Jacquard é maior: um motor de jogo onde agentes de IA e designers humanos partilham a mesma superfície operacional tipada, onde o estado do mundo é inspecionável, onde a repetição é mecânica, e onde a geração é limitada por sistemas em vez de vibrações.
Essa promessa merece paciência porque toca em vários campos difíceis ao mesmo tempo. O design de linguagens de programação aparece nos esquemas das ferramentas. A interação humano-computador aparece no editor. A simulação aparece na física. A IA de jogos aparece no comportamento dos NPCs. A segurança aparece nos limites em torno da geração. A infraestrutura aparece no empacotamento, na execução no navegador e nos formatos abertos. Uma implementação estreita escolheria um e chamaria aos outros casos extremos. Jacquard mantém-nos ligados.
O objetivo é manter a alegação precisa. Jacquard é investigação sobre criação de jogos nativa do navegador e controlável por agentes. Pode ser útil para experiências e trabalho com parceiros sem fingir que todos os contratos de autoria são finais. Essa honestidade faz parte da engenharia.
O que torna a investigação credível
Os sinais não são sinais de marketing. São sinais técnicos e experienciais. Um mundo gerado deve ser inspecionável através do editor sem estado secreto. As chamadas de ferramentas devem falhar com erros tipados úteis. A repetição deve reproduzir falhas significativas. Os comportamentos dos NPCs devem ser legíveis como dados e depuráveis como sistemas. O playtest deve apanhar impossibilidades óbvias antes de se tornarem desilusão humana.
O motor também deve preservar a autoria. Os jogos construídos por IA ainda precisam de gosto humano. O agente pode rascunhar um mundo, mas o designer deve poder moldá-lo sem perder o rasto de como foi feito. Se o humano tiver de recomeçar para recuperar o controlo, o agente não foi um colaborador. Foi uma fonte rápida de dívida técnica.
A segurança deve tornar-se menos teatral e mais mecânica. Uma alteração gerada deve trazer âmbito, proveniência e estado de revisão. A inspeção só de leitura deve ser distinta da mutação. A construção deve recusar o que não pode ser empacotado limpo. A depuração deve mostrar de onde veio um comportamento. O playtest deve ser suficientemente scriptável para tornar as alegações repetíveis. São palavras aborrecidas, e é por isso que importam.
Quando essas propriedades forem comuns, Jacquard pode suportar promessas mais fortes. Até lá, investigação é o rótulo honesto. Diz à equipa e ao leitor que o objetivo não é apenas fazer a IA produzir jogos, mas tornar os mundos de jogos produzidos por IA legíveis o suficiente para serem possuídos.
A alegação útil
Jacquard e mundos tipados para jogos criados por IA, porque não se trata realmente de jogos que surgem de prompts. Trata-se da maquinaria necessária antes de jogos gerados por prompts se tornarem artefactos sérios: restrições tipadas, affordances partilhadas do editor, física determinística, comportamento de NPC inspecionável, ativos abertos, pacotes portáteis e segurança em torno da geração.
A imagem útil não é um motor mágico. É uma oficina onde o agente e o designer tocam nas mesmas ferramentas. O agente não tem uma porta escondida. O editor não tem um mapa mais fraco. O sistema de física não se torna opcional quando a cena parece bonita. O registo de eventos não desaparece após a demo. O mundo gerado continua a ser um mundo que alguém pode inspecionar, reproduzir, alterar e defender.
Isso é um longo programa de engenharia, não um slogan. Se for bem-sucedido, as superfícies voltadas para o utilizador ficarão mais claras porque as perguntas difíceis não foram apressadas. Se falhar, o fracasso ainda ensinará algo sobre as condições sob as quais a IA pode criar com segurança sistemas interativos. Ambos os resultados são úteis.
Por agora, a coisa mais precisa a dizer é esta: Jacquard é um motor de investigação aberto para mundos de jogos criados por IA. Tem permissão para ser empolgante. Também é obrigado a ser exato. O futuro dos jogos criados por IA não será conquistado pela primeira cena mais bonita. Será conquistado pelo mundo que ainda faz sentido depois de o jogador, o designer, o agente e o registo de reprodução todos regressarem a ele.