Jacquard și lumi tipate pentru jocuri create cu AI

Jocurile create cu AI par ușoare într-un demo. Partea grea o reprezintă constrângerile tipate, facilitățile editorului, fizica, comportamentul NPC, reluarea...

Jacquard și lumi tipate pentru jocuri create cu AI

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 aweb-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 devine dificil pentru că accesul este problema: fiecare acțiune generată în lume are nevoie de o cale tipărită.

Jacquard adoptă poziția opusă. Dacă editorul poate face ceva, un apel de unealtă ar trebui să poată face același lucru. O funcție pe care un agent nu o poate accesa prin cod nu există cu adevărat pentru această întrebare de cercetare. Regula sună dur până vezi un agent încercând să construiască o lume printr-un motor accesibil doar prin interfață grafică. Agentul este forțat să aproximeze: să deducă meniul, să spere că panoul selectat este activ, să extragă un șir de eroare, apoi să continue cu o stare pe care nu o poate dovedi.

Sursa numește fricțiunea clar: funcții doar prin interfață grafică, instalatori grei, limbaje specifice motorului, conducte închise. Jacquard răspunde cu o filă de browser, formate deschise, active glTF, lumi serializabile, parametri validați prin schemă, erori tipărite și o singură suprafață tipărită împărțită de editorul vizual și agent. De aceea motorul nu este doar un motor. Este un experiment despre acces.

Accesul nu este confort. Este siguranță. Când fiecare operație este un apel, fiecare operație poate fi numită, constrânsă, înregistrată, respinsă, reluată și explicată. Când capacitatea este ascunsă în spatele unui meniu, agentul trebuie să strecoare intenția printr-o suprafață care nu a fost niciodată proiectată pentru asta. Diferența este diferența dintre un inginer care citește o urmă de API și un om care încearcă să-și amintească ce panou era deschis când scena s-a schimbat.

O lume nu este o imagine

Generarea de imagini prin AI a antrenat oamenii să accepte o înțelegere ciudată: cere o poză, primești o poză, iartă structura dacă suprafața arată bine. Jocurile nu pot supraviețui acestei înțelegeri. Un nivel de joc nu este judecat doar după ce seamănă dintr-un unghi de cameră. Este judecat după dacă un jucător se poate mișca prin el, dacă fizica rămâne stabilă, dacă obiectivele se rezolvă, dacă comportamentul NPC respectă lumea și dacă starea poate fi reluată când ceva merge greșit.

O lume nu este o imagine. Este stare, reguli, timp și consecințe care pot fi reluate.

Acesta este punctul în care constrângerile tipizate devin esențiale. Un instrument de teren nu poate doar să picteze dealuri. Trebuie să știe unde sunt suprafețele pe care se poate merge, cum interacționează pantele cu controlerele de personaj, cum afectează vegetația și iluminarea vizibilitatea și cum va reproduce generarea bazată pe seed același rezultat mai târziu. Un instrument de scenă nu poate doar să plaseze lucruri. Trebuie să creeze entități adresabile, să atașeze componente, să gestioneze versiunile grafului și să facă rezultatul suficient de ușor de comparat pentru a fi revizuit.

Paleta de instrumente Jacquard face acest lucru vizibil. Pagina numește cincisprezece categorii: scenă, entitate, component, activ, material, fizică, teren, iluminare, audio, interfață, quest, NPC, build, debug și playtest. De asemenea, numește resurse doar pentru citire, precum metadatele proiectului, graful scenei, catalogul de active, metricile de performanță și jurnalul de erori. Acesta nu este un meniu arbitrar. Este o taxonomie a ceea ce o lume de joc trebuie să expună înainte ca un agent să poată fi mai mult decât un simplu macro inteligent.

Problema de cercetare nu este dacă toate cele cincisprezece categorii pot exista. Ele există deja ca o afirmație din sursă. Problema este cât de expresivă, sigură și componabilă trebuie să fie fiecare dintre ele înainte ca lumile generate să înceteze să fie artefacte fragile și să înceapă să se comporte ca sisteme create de autori. Răspunsul nu va fi găsit prin promptare mai insistentă. Va fi găsit făcând reprezentarea mai greu de mințit.

Editorul nu este o decorațiune

O lectură superficială a instrumentelor orientate pe agenți tratează editorul ca pe un vizualizator. Agentul creează lucruri; omul privește. Acesta este modelul greșit pentru Jacquard. Textul sursă este atent: editorul vizual folosește aceeași API ca și agenții. Este un client fără privilegii al aceleiași suprafețe. Acest singur fapt previne formarea unei sciziuni profunde în interiorul proiectului.

Dacă agentul are o rută privată către lume, iar editorul are alta, omul pierde în cele din urmă. Starea generată devine tehnic validă, dar practic imposibil de editat. Designerul poate vedea castelul, dar nu poate descoperi de ce indicatorul de quest este atașat acelei entități, de ce terenul are un blocaj invizibil sau de ce programul NPC-ului se schimbă după a doua noapte. Rezultatul arată ca productivitate și se comportă ca datorie.

API partajată înseamnă că editorul trebuie să ofere facilități pentru aceleași concepte pe care le manipulează agentul. Trebuie să afișeze graful scenei, componentele, comportamentele, resursele, erorile și performanța în moduri pe care un om le poate înțelege. Trebuie să îi permită designerului să corecteze lumea fără a ieși din contractul de care depinde reluarea. Editorul este, prin urmare, parte din instrumentul de cercetare.

Aceasta este o cerință incomodă, pentru că încetinește fantezia. Este mai ușor să lași agentul să genereze cablaje ascunse și apoi să speri că demo-ul continuă să funcționeze. Jacquard cere ca cablajul ascuns să devină suficient de vizibil încât un designer să își poată asuma responsabilitatea. Jocurile construite cu AI devin serioase doar când omul le poate moșteni fără arheologie criminalistică.

Fizica este locul unde farmecul devine responsabilitate

Fizica are un mod brutal de a transforma generarea vagă în eșec vizibil. O poveste poate tolera puțină improvizație narativă. O lume 3D cu corpuri, coliziuni, teren și input de la jucător nu poate. Dacă pasul se schimbă cu rata de cadre, reluarea deviază. Dacă controlul personajului depinde de un impuls neînregistrat, un raport de bug devine un zvon. Dacă același seed produce poziții diferite ale corpurilor pe altă mașină, lumea nu este o dovadă reproductibilă.

Fizica este primul loc în care farmecul generat trebuie să răspundă în fața unui sistem mecanic.

Jacquard fundamentează acest lucru cu Rapier3D în WASM și un pas de timp fix de 60Hz. Materialul sursă descrie fizică deterministă, randomizare cu seed, intrare înregistrată și redare mecanică dintr-un jurnal de evenimente tipizat. Același seed, același jurnal, aceleași cadre. Un raport de eroare este jurnalul atașat; redă-l și vezi ce a văzut jucătorul. Aceasta este o afirmație mai puternică decât o înregistrare de ecran, pentru că păstrează cauzele interactive, nu doar pixelii.

Întrebarea de cercetare este ce se întâmplă când generarea intră în această buclă. Un agent poate crea un pod, dar podul trebuie să respecte constrângerile de masă, coliziune, accesibilitate și playtest. Poate genera un NPC, dar NPC-ul trebuie să navigheze o lume a cărei geometrie se poate schimba. Poate regla terenul, dar pantele rezultate trebuie să rămână jucabile. Poate adăuga un eveniment scriptat, dar acel eveniment trebuie înregistrat într-un mod pe care redarea să îl poată integra.

Fizica nu este, așadar, un subsistem la baza stivei. Este unul dintre judecătorii generării. O lume de joc generată nu este bună pentru că pare plauzibilă. Este bună când jucătorul o poate locui, când regulile se mențin și când un recenzent ulterior poate reda aceeași eroare în loc să întrebe modelul ce a vrut să spună.

Comportamentul NPC este stratul în care limbajul se epuizează

Personajele non-jucător fac Jacquard mai dificil decât un editor de niveluri. O cameră statică poate fi inspectată ca geometrie. Un NPC este stare în timp: program, obiectiv, percepție, dialog, graf social, relație cu questurile, pathfinding, memorie și eșec. Materialul sursă numește arbori de comportament, programe, obiective, narațiune ca date, grafuri de condiții și progresie ramificată. Aceste cuvinte sunt locul în care jocurile construite cu AI încetează să mai fie o jucărie.

Limbajul este util pentru intenție. Este o reprezentare finală slabă pentru comportament. Un prompt poate spune că un gardian ar trebui să fie suspicios noaptea, util sătenilor, ostil hoților și iertător după ce jucătorul finalizează o sarcină. Motorul are nevoie de ceva mai precis: care senzor detectează pericolul, care condiție schimbă atitudinea, care flag de quest suprascrie suspiciunea, care program mută gardianul și care linie de dialog este permisă după tranziția de stare.

Această precizie este motivul pentru care instrumentele tipizate pentru NPC contează. Fără ele, agentul produce vibrații. Cu ele, trebuie să scrie comportamentul în structuri inspectabile. Designerul poate apoi să întrebe dacă gardianul este nedrept, dacă questul poate ajunge în impas, dacă graful social creează obligații imposibile sau dacă o instrucțiune generată ar face ca fiecare NPC să convergă spre aceeași rutină plictisitoare.

Comportamentul NPC-urilor face siguranța și practică. Generarea nesigură nu înseamnă doar text ofensator sau conținut interzis. Poate fi o buclă de comportament care blochează jucătorul, o misiune care nu se poate finaliza, un graf social generat care codifică un stereotip ostil sau un program care provoacă prăbușirea performanței. Siguranța în jurul generării trebuie să funcționeze la nivelul sistemelor de joc, nu doar la nivelul cuvintelor.

Siguranța este o problemă de formă

Cea mai simplă poveste despre siguranță spune că agentul poate sau nu să genereze o bucată de conținut. Jacquard are nevoie de o poveste mai structurală. Întrebarea nu este doar dacă un element generat este permis. Este dacă schimbarea generată se potrivește contractului lumii. Mutează doar domeniul care i-a fost dat? Expune ceea ce a schimbat? Poate editorul să o inspecteze? Poate redarea să o reproducă? Pot instrumentele de compilare și de testare a jocului să o respingă înainte ca un om să confunde noutatea cu finalizarea?

Siguranța nu este o etichetă de avertizare. Este o formă impusă de bugete, tipuri, redare și limite.

Sursa indică acest lucru prin apeluri tipizate, validare de schemă, resurse doar pentru citire, depanare, testare a jocului, pachete portabile și fișiere deschise. Acestea nu sunt caracteristici de siguranță spectaculoase, dar contează mai mult decât un mesaj dramatic de refuz. Un apel limitat poate fi refuzat. O eroare tipizată poate fi reparată. O resursă doar pentru citire poate permite unui agent să inspecteze fără să muteze. Un pas de compilare poate împacheta doar ceea ce este serializabil. Un test de joc determinist poate dezvălui că ușa generată nu se deschide niciodată.

Generarea sigură înseamnă și rezistența la tentația de a ascunde incertitudinea. Dacă agentul nu poate ști dacă un puzzle este rezolvabil, sistemul nu ar trebui să îl prezinte ca rezolvat. Dacă un comportament al NPC-ului depinde de o stare ambiguă, editorul ar trebui să facă acea ambiguitate vizibilă. Dacă redarea fizicii diverge, afirmația ar trebui să eșueze. Vocabularul eșecului este încă în construcție.

Jacquard ar trebui să facă incertitudinea vizibilă, în loc să o lustruiască într-o promisiune falsă. Când conținutul generat nu este suficient de constrâns, editorul, jurnalul, calea de redare și erorile tipizate ar trebui să expună acest decalaj cât este încă suficient de mic pentru a fi reparat. Aceasta nu este asprime de dragul ei. Este modul în care lumile generate evită să devină datorie de conținut.

Browserul schimbă economia iterației

Jacquard rulând într-o filă de browser poate suna ca o caracteristică de distribuție, și este. Instalarea zero reduce costul încercării unei lumi. WebGPU și WebGL2 oferă motorului o cale practică de randare. O sală de clasă, un partener de cercetare sau o sesiune de design nu trebuie să înceapă cu o instalare nativă greoaie. Dar browserul contează dintr-un motiv mai profund.

Face bucla de iterație mai scurtă. Un agent poate construi, editorul poate inspecta, jucătorul poate testa, iar jurnalul poate fi redat fără a muta lumea printr-un lanț de instrumente proprietare. Același mediu poate expune un graf de scenă, poate rula fizica, poate reda audio, poate inspecta performanța și poate împacheta un pachet portabil. Asta nu rezolvă designul de joc, dar elimină multă ceremonie accidentală din studierea lui.

Browser-ul face și granițele mai clare. Dacă lumea se deschide ca o pagină web, granița dintre ce a rulat, ce a fost încărcat, ce stare s-a schimbat și ce a fost exportat poate fi făcută explicită. Dacă motorul este TypeScript strict care vizează ES2022, cu active glTF deschise și lumi serializabile, artefactul poate fi citit de mai mulți oameni decât mica preoție a unui singur motor desktop.

Această deschidere este un avantaj practic. Mai mulți ochi pot inspecta reprezentarea. Mai mulți agenți pot fi conectați prin MCP. Mai multe eșecuri pot fi reproduse ca jurnale în loc să fie relatate ca anecdote. Browser-ul nu face problema ușoară. O face observabilă.

Presiunea prototipului ar sparge-o

Există un reflex software familiar: atunci când ceva se demonstrează bine, netezește-l până când poate fi împachetat. Jacquard este exact genul de sistem care pedepsește acest reflex. Netezește-l prea devreme și echipa trebuie să pretindă că contractul de autorizare este stabilit înainte ca întrebările dificile să fie rezolvate. Care este contractul de autorizare stabil? Ce comportamente generate sunt suportabile? Ce afirmații despre fizică rezistă în toate browserele? Ce concepte de editor sunt acum permanente? Ce verificări de siguranță sunt obligatorii?

Un pachet prematur ar trebui să pretindă că răspunsurile sunt deja stabilite. Asta ar restrânge cercetarea la ceea ce este cel mai ușor de împachetat. Rezultatul ar fi o jucărie distractivă cu o fațadă lustruită și un spate fragil. Promisiunea interesantă a lui Jacquard este mai mare: un motor de joc în care agenții AI și designerii umani împart aceeași suprafață de operare tipată, în care starea lumii este inspectabilă, în care reluarea este mecanică și în care generarea este limitată de sisteme, nu de vibrații.

Această promisiune merită răbdare pentru că atinge mai multe domenii dificile deodată. Designul limbajelor de programare apare în schemele de instrumente. Interacțiunea om-calculator apare în editor. Simularea apare în fizică. AI-ul de joc apare în comportamentul NPC. Siguranța apare în granițele din jurul generării. Infrastructura apare în împachetare, execuție în browser și formate deschise. O implementare îngustă ar alege una și le-ar numi pe celelalte cazuri marginale. Jacquard le ține conectate.

Ideea este să păstrăm afirmația precisă. Jacquard este cercetare în crearea de jocuri native în browser, controlabile de agenți. Poate fi util pentru experimente și muncă cu parteneri fără să pretindă că fiecare contract de autorizare este final. Această onestitate face parte din inginerie.

Ce face cercetarea credibilă

Semnele nu sunt semne de marketing. Sunt semne tehnice și experiențiale. O lume generată ar trebui să fie inspectabilă prin editor fără stare secretă. Apelurile de instrumente ar trebui să eșueze cu erori tipate utile. Reluarea ar trebui să reproducă eșecuri semnificative. Comportamentele NPC ar trebui să fie lizibile ca date și depanabile ca sisteme. Testarea de joc ar trebui să prindă imposibilități evidente înainte ca ele să devină dezamăgire umană.

Motorul ar trebui să păstreze și autoratul. Jocurile construite de AI au nevoie totuși de gust uman. Agentul poate schița o lume, dar designerul trebuie să o poată modela fără să piardă urma modului în care a fost făcută. Dacă omul trebuie să o ia de la zero pentru a recâștiga controlul, agentul nu a fost un colaborator. A fost o sursă rapidă de datorie tehnică.

Siguranța ar trebui să devină mai puțin teatrală și mai mecanică. O modificare generată ar trebui să poarte scop, proveniență și stare de revizuire. Inspecția doar pentru citire ar trebui să fie distinctă de mutație. Construcția ar trebui să refuze ceea ce nu poate fi împachetat curat. Depanarea ar trebui să arate de unde provine un comportament. Testarea de joc ar trebui să fie suficient de scriptabilă pentru a face afirmațiile repetabile. Acestea sunt cuvinte plictisitoare, motiv pentru care contează.

Când aceste proprietăți devin obișnuite, Jacquard poate susține promisiuni mai puternice. Până atunci, cercetarea este eticheta onestă. Le spune echipei și cititorului că scopul nu este doar să facă AI-ul să producă jocuri, ci să facă lumile de joc produse de AI suficient de lizibile pentru a fi deținute.

Afirmația utilă

Jacquard și lumile tipizate pentru jocuri create de AI, pentru că nu este vorba, de fapt, despre jocuri care apar din prompturi. Este vorba despre mecanismele necesare înainte ca jocurile generate din prompturi să devină artefacte serioase: constrângeri tipizate, facilități editoriale partajate, fizică deterministă, comportament NPC inspectabil, active deschise, pachete portabile și siguranță în jurul generării.

Imaginea potrivită nu este un motor magic. Este un atelier în care agentul și designerul folosesc aceleași unelte. Agentul nu primește o ușă ascunsă. Editorul nu primește o hartă mai slabă. Sistemul de fizică nu devine opțional când scena arată frumos. Jurnalul de evenimente nu dispare după demonstrație. Lumea generată rămâne o lume pe care cineva o poate inspecta, relua, modifica și apăra.

Acesta este un program lung de inginerie, nu un slogan. Dacă reușește, suprafețele orientate către utilizator vor fi mai clare pentru că întrebările dificile nu au fost grăbite. Dacă eșuează, eșecul va învăța totuși ceva despre condițiile în care AI poate crea în siguranță sisteme interactive. Ambele rezultate sunt utile.

Deocamdată, cel mai precis lucru de spus este acesta: Jacquard este un motor de cercetare deschis pentru lumi de joc create de AI. Are voie să fie captivant. De asemenea, este obligat să fie exact. Viitorul jocurilor create de AI nu va fi câștigat de cea mai frumoasă primă scenă. Va fi câștigat de lumea care are în continuare sens după ce jucătorul, designerul, agentul și jurnalul de reluare se întorc toți la ea.