Engine
Motorul de jocuri: scene graph, componente, scripting, fizică, un pipeline PBR, editoare de lume, și build-uri native pentru desktop și mobil.
Pe scurt#
Un motor de jocuri complet în browser: construiește o scenă, dă-i comportament, apasă play, și exportă-o pe web sau ca binar nativ de desktop și mobil.
Este cel mai mare studio din aukimi, la mare distanță. Această pagină îl cartografiază așa cum o face interfața, după sertarul în care trăiește fiecare panou, nu enumerând funcțiile alfabetic.
Organizarea interfeței#

| Menu bar | File · Edit · View · Windows · Run · Plugins |
| Toolbar | numele proiectului, undo/redo, comutatorul de mod viewport (3D · 2.5D · 2D · TXT), selectorul de scenă, cele patru butoane de panou, FX Master, HUD, caseta de rezoluție, transport (play, pause, stop) și Build |
| Stânga | o bară de iconițe, scene graph, listă, audio, consolă, și panoul pe care îl deschide |
| Centru | viewport-ul, cu propria bară de gizmo (translate, rotate, scale, world/local, grid, snapping, framing) și un selector de calitate |
| Dreapta | inspector-ul pentru entitatea selectată |
| Jos | Console și Profiler, unul lângă altul |
| Bara de stare | mod, dimensiunea viewport-ului, numărul de entități, starea grilei |
Cele patru butoane de panou#

Nu se comportă toate la fel, iar diferența merită cunoscută înainte să pornești în căutarea a ceva:
| Button | Behaviour |
|---|---|
| Systems | deschide un sertar |
| Tools | deschide același sertar; Systems și Tools se închid reciproc |
| Assets | comută un dock persistent |
| Scripts | deschide un modal |
Systems și Tools împart intenționat un singur slot; sunt puse unul lângă altul ca să se vadă asta.
Systems#
Propriile subsisteme ale motorului: lucrurile pe care o scenă le are, nu lucrurile cu care construiești.
| Group | Panels |
|---|---|
| Plugins | browserul de plugin-uri |
| Rendering | Rendering · Rendering Pipeline · Look Presets · Shader Lab · Render Style · Shadows · Mesh LOD · Post Process Volumes |
| Gameplay | Multiplayer room · Physics · AI & Navigation · Gameplay Zones |
| World | Scene Graph · Level Streaming · Baking · Light Probes · Decals |
Rendering#
Comutatorul FX Master de pe bara de instrumente pornește și oprește întregul pipeline de post-procesare dintr-un clic: cel mai rapid mod de a vedea cât te costă. Individual: bloom, depth of field, SSR, SSAO, GTAO, SSGI, temporal AA, FXAA, motion blur, volumetric fog, contact shadows, colour grading, film grain, chromatic aberration, vignette și tonemapping, plus geometrie în stil Nanite și Hi-Z occlusion.
Look Presets sunt configurații întregi din cele de mai sus. Render Style schimbă registrul, stilizat, nu fotografic. Shader Lab este locul unde îți scrii propriile shadere. Mesh LOD și Post Process Volumes sunt cele două care se amortizează pe o scenă mare: nivel de detaliu per mesh, și post-procesare care se aplică doar în interiorul unui volum.
Motorul de randare este Babylon.js. Pornește pe WebGL și comută singur pe WebGPU atunci când browserul îl are, revenind singur dacă acest lucru eșuează.
Sistemele de gameplay#
Physics acoperă atât solverul 3D (Havok), cât și pe cel 2D. AI & Navigation este navmesh-ul și agenții de pe el. Gameplay Zones sunt volume trigger cu comportament atașat. Multiplayer room conectează scena la un server Colyseus (vezi mai jos).
Sistemele de lume#
Level Streaming încarcă și descarcă părți dintr-un nivel pe măsură ce jucătorul se mișcă. Baking precalculează iluminarea; Light Probes captează lumina indirectă și reflexiile în puncte din spațiu. Decals proiectează detaliu pe suprafețe fără să adauge geometrie.
Tools#
Lucrurile cu care construiești.
| Group | Panels |
|---|---|
| Editors | Scripts · Blueprint Editor · UI Editor · Tilemap |
| World | Sky Studio · Terrain · Water · Tree Generator · Plant Generator · Rock Generator · Kitbash |
| Gameplay | Inventory · Data tables · Dialogue Trees |
| Animation | Timeline · Cinematic Sequencer · Camera Tools |
| Audio | Audio Manager |
| Debug | Profiler |
Generatoarele de lume#
Terrain, water, sky și patru generatoare de conținut: trees, plants, rocks și piese de kitbash. Au un capitol propriu mai jos.
Crearea conținutului de gameplay#
Inventory, Data tables (Tools → Data) și Dialogue Trees sunt cele trei editoare care permit unui joc să aibă conținut fără ca acel conținut să trăiască în cod în detaliu mai jos.
Animation#
Timeline pentru animația entităților, Cinematic Sequencer pentru shot-uri, și Camera Tools pentru încadrare. Vezi Animație și cameră.
Editoarele de lume#
Șapte panouri sub Tools → World. Sunt modul rapid de a umple o scenă, și motivul pentru care un nivel nu trebuie să înceapă cu o sesiune de modelare.
Terrain#
O scenă poate ține mai multe terenuri; fiecare este un rând în lista Terrains și este creat la una din trei rezoluții: 128² (rapid), 256² (echilibrat) sau 512² (detaliat).
Panoul are zece moduri, iar acestea au ceva în comun: masca pictată în Masks restrânge fiecare dintre ele.
| Mode | What it does |
|---|---|
| Sculpt | șaptesprezece pensule pe câmpul de înălțime |
| Paint | până la opt straturi de textură, pe două splatmaps |
| Generate | noise, texturare automată, și import de elevație din lumea reală |
| Sketch | desenează creste și văi, sintetizează un teren care se potrivește |
| Masks | restrânge fiecare alt mod la o parte a suprafeței |
| Water | nivelul mării, și alegerea între apă de teren și un ocean FFT |
| Paths | un drum Bézier gravat în sol |
| Vegetation | împrăștiere cu pensulă sau bazată pe reguli |
| SDF | un teren raymarched, randat, nu meshat |
| Biomes | sol, plante, copaci și stânci într-o singură trecere |
Sculpt. Raise 1, Lower 2, Smooth 3, Flatten 4, Pinch 5, Inflate
6, Noise 7, Sharpen 8, Stamp 9, Terrace 0, Erode E, Fill F,
Clone C (clic cu Alt setează sursa), Blur B, Ramp R, plus cele două
instrumente de apă: River desenează un curs, Lake umple într-un
punct.
Pensula propriu-zisă are dinamici: pressure curve, lazy mouse, falloff,
symmetry, pattern, și jitter atât pe dimensiune, cât și pe intensitate.
Stamp poartă șase forme: crater, mountain peak, plateau, river valley,
dome, noise hill. Eroziunea vine în două forme: pensula E este locală, în
timp ce Adjustments rulează eroziune hydraulic, thermal și
wind peste tot terenul.
Paint. Opt straturi, pentru că două splatmaps RGBA țin câte patru canale fiecare. Biblioteca de materiale este sortată pe categorii: grass, dirt, forest, rocks, roads and surfaces, cliffs, sand, snow, volcanic, wetland, fantasy, și ale tale proprii, iar fiecare strat poartă UV scale, displacement, o hartă de detaliu, și relief de suprafață (bump strength și parallax depth). Break texture tiling (cell bombing) este setarea care oprește o textură de sol repetată să se citească drept o grilă.
Generate construiește din noise, apoi Generate Textures atribuie materiale după înălțime și pantă, cu variație de umbră nord/sud și țărmuri de nisip sau pietriș acolo unde este apă. Real World importă tile-uri publice de elevație NASA/USGS: alege un reper sau introdu coordonate, alege zoom-ul, iar panoul raportează intervalul de elevație pe care l-a adus.
Sketch este cealaltă cale de intrare. Desenezi trasee de creastă și vale pe o hartă 2D, alegi până la trei peisaje sursă reale, iar terenul este sintetizat să se potrivească cu schița, opțional combinat cu ce există deja, texturat automat și erodat în aceeași trecere.
Masks sunt pictate cu o pensulă și apoi editate ca întreg: clear, invert, blur, grow, shrink. smart masks derivă una din terenul propriu-zis, după înălțime, după pantă, după strat sau după cavitate.
Paths. Dai clic pentru a plasa puncte de control, iar o curbă netedă trece prin ele; tragi punctele chihlimbarii pentru a le muta, mânerele cyan pentru a îndoi curba. Bake Path aplatizează solul de sub ea, pictează textura și ridică rambleurile.
Vegetation are două jumătăți. Pensula plasează și elimină instanțe manual; scatter rules le plasează după condiție, ponderi de strat, seed, scală min/max, și banda de înălțime și pantă pe care fiecare asset o acceptă. Iarba și florile se estompează dincolo de o distanță de desenare configurabilă, iar Export to Scene transformă instanțele în obiecte de scenă.
Biomes este versiunea dintr-un clic a tuturor celor de mai sus: alegi un biom, bifezi categoriile dorite (soil, trees, plants and grass, flowers, algae near water, rocks), setezi o densitate, iar Apply Biome pictează solul și împrăștie totul, raportând câte instanțe din fiecare a plasat. age variety a copacilor amestecă puieți până la copaci bătrâni, în loc să ștampileze același copac peste tot, iar ground blend (RVT) fuzionează baza fiecărei stânci în culoarea terenului de dedesubt.
SDF este un alt motor de randare, nu un alt instrument: terenul este raymarched dintr-un câmp de distanță, forma prin octaves, lacunarity și persistence, texturare prin grass/rock/snow cu o linie de zăpadă și un prag de pantă, și propriile umbre moi, ambient occlusion și ceață.
Terenurile mari au un sistem LOD cu skirt geometry (cea care închide golurile dintre niveluri), tranziții netede între niveluri, frustum culling și un overlay de statistici. Heightmap-urile se importă și se exportă ca PNG pe 16 biți, PNG pe 8 biți sau RAW 16 biți; splatmaps ca un singur PNG RGBA sau câte un fișier per strat; iar întregul teren, sau doar setările lui, ca o presetare.
Sky Studio#
Atmosfera. Patru tipuri de cer: solid, gradient, HDRI, și o atmosferă fizică cu Rayleigh and Mie scattering, Mie absorption, ozone, ground albedo, turbidity, planet radius și atmosphere thickness.
Totul depinde de time of day, care poate rula singur: soarele prin elevation, azimuth și intensity, cu propria shadow intensity; luna prin phase; stelele cu twinkle; și o aurora. Volumetric clouds au thickness, erosion, noise scale și curl distortion, și lumină prin absorption, scatter, ambient și un termen powder; cirrus și Belt of Venus sunt separate. Aerial perspective este ceața care se îngroașă cu distanța și estompează geometria îndepărtată în orizont; este setarea care face ca un peisaj să se citească drept vast.
Zece presetări de la care pornești: clear day, dawn, sunset, dusk, night, overcast, stormy, desert, arctic și space.
Water#
Două tab-uri: Ocean (FFT) pentru mare deschisă, Shore & lakes pentru tot restul.
⚠️ Water se creează în editorul Terrain: instrumentele river și lake, sau Show Water, și se reglează aici. Deschiderea acestui panou pe o scenă fără apă îți dă setări fără nimic asupra căruia să le aplici.
Apa de țărm poartă colour, opacity, wave strength și speed, choppiness, foam width și Fresnel, cu screen-space reflections și refraction blur. Dedesubt este chiar shaderul WGSL: două scale normale cu propriile direcții și viteze de scroll, foam threshold și softness, refraction strength și index of refraction, și lumina din interiorul apei: absorption, turbidity, scattering și translucency.
Tree Generator#
Două moduri, Tree și Trunk. Un copac este deciduous sau evergreen, are o vârstă de la sapling la ancient, și poate fi living, dead, un snag sau un fallen log. Totul este seeded, astfel încât Randomize seed este cel mai rapid mod de a obține un copac diferit cu același caracter.
Forma este per nivel de ramură: children, length, radius, taper, gnarliness, twist, sections, segments, angle și start height, plus variație naturală, phototropism și gravitropism: cele două care fac un copac să se încline spre lumină și să se lase sub propria greutate, și o forță globală cu propria intensitate.
Baza are root flare (lobes și height) și buttress.
Frunzele sunt billboards, cu o singură față sau două, cu count, size, angle, variance, clump, curl, droop, sheen și rounded normals. Scoarța vine în șase stiluri: ridged, aspen, pine, birch, smooth, palm, cu relief, moss, o bază umedă, sun bleach, canopy ambient occlusion și o schimbare de toamnă. Patru anotimpuri schimbă întregul aspect dintr-o dată.
Forest împrăștie mulți deodată: count, spread radius, scale variance, și un age mix (single, natural, young, old, even). Add age progression plasează toate cele cinci etape de viață la rând, cel mai rapid mod de a le judeca una lângă alta. Un copac iese ca entitate de scenă sau ca GLB, și orice setare poate fi salvată ca presetare.
Plant Generator#
Cinci tipuri: flower, cluster, herb, fern, grass, care împart un stem (count, height, thickness, curve, colour) și leaves (count, size, width, angle). Ferns adaugă leaflet pairs, leaflet sweep și frond arch; grass adaugă blade count și arch.
O floare este opțională pe oricare dintre ele: petals, petal rows, length, width, curl, tip sharpness, bloom, centre size, și trei culori: petal, petal tip și centre, cu translucency și roughness pentru cum trece lumina prin frunză. Adaugă una în scenă, împrăștie multe, sau exportă GLB.
Rock Generator#
Trei tipuri: rock, stone, cliff, în trei stiluri: realistic, toon, sau low poly cu un contur.
Forma este noise peste o sferă: scale, strength, octaves, persistence, warp și o opțiune ridged, plus strata cu propria frequency și facet cuts cu depth și sharpness pentru piatră unghiulară. Radius, detail, flatten, shape variance și un flat bottom decid silueta, iar patru presetări de eroziune: fresh, weathered, natural, eroded, mișcă totul deodată.
Suprafața are variație de culoare, mineral veins, lichen și moss, o textură de detaliu cu tiling și strength, triplanar blending și relief parallax. Folosește implicit un material Stone inclus; trimite un material din Matter către Engine ca să-l suprascrii.
Kitbash, aceeași bibliotecă ca Sculpt#
Kitbash este partajat cu Sculpt: acest panou și Edit Forge din Sculpt citesc o singură bibliotecă. O piesă construită acolo este plasată aici, iar o piesă pictată aici poate fi salvată înapoi în ea.
Ce stochează scena este piesa și dimensiunile ei, nu vertecșii ei, motiv pentru care o clădire kitbashed costă aproape nimic în fișier și poate fi actualizată ulterior din sursa ei.
Armezi o piesă din catalog și fiecare clic stânga o plasează. Trei moduri
de snapping decid unde aterizează: on terrain (piesele urmează
înălțimea solului de sub ele), on water (planul de construcție stă la
nivelul apei), și snap to sockets: țintești un punct de conexiune pe o
piesă plasată, iar cea nouă se rotește ca să se întâlnească cu el. Un lanț
crește din capătul liber, socket-urile ocupate ies din candidați, iar
fiecare clic este propriul pas de undo. Ctrl/Cmd rămâne rezervat pentru
selecție și Alt pentru rotație. Colecțiile își păstrează sursa și
versiunea, astfel încât o instanță poate fi actualizată când originalul se
schimbă.
Celelalte editoare#
Editoarele de lume umplu o scenă; acestea îi dau o interfață, o hartă, tabelele de conținut și instrumentele pentru a verifica ce costă.
Editorul HUD#
Tools → Editors → UI. Șase tab-uri: Templates, Elements, Layers, Preview, Style și Script, peste o previzualizare care comută între trei dimensiuni de dispozitiv: desktop 960×540, tabletă 768×432, mobil 375×667.
Elementele vin în trei grupuri (Display, Data, Input) și se
imbrică: panel și flex țin copii, astfel încât tab-ul Layers este un
arbore real, nu o listă plată. Istoricul are cincizeci de pași.
⚠️ Tab-ul Style este CSS-ca, iar diferența contează. HUD-ul este
desenat pe canvas de GUI-ul Babylon, iar CSS-ul real nu ajunge la el.
Regulile pe care le scrii aici se mapează pe proprietăți GUI; selectorii
sunt #name pentru un element, .type pentru un fel (.text, .panel)
și * pentru tot.
Tab-ul Script este cealaltă modalitate de a-l construi: API-ul ui.*,
createText, createPanel, createProgress, createButton, cu două
moduri de a-l rula. Build Layout îl execută design-time și îți lasă
elemente reale de ajustat manual; Run Live îl rulează în joc.
Două conexiuni în afară: grafica HUD se deschide în Inkwell sau Vectra și este legată înapoi, nu copiată, iar un document Vectra poate fi importat ca elemente HUD. Elementul minimap este ceva de sine stătător, cu range, grid, și marcaje pentru player, enemies, allies, items și objectives.
Editorul de tilemap#
Unsprezece instrumente: brush, eraser, fill, rectangle, select, eyedropper, stamp, autotile, prop, zone și path, pe patru proiecții de hartă: orthogonal, isometric, staggered isometric și hexagonal.
Autotiling vine cu patru șabloane, iar numărul din fiecare nume este numărul de tile-uri pe care îl așteaptă: Blob 47 (colț și margine complete), Wang 16 (bazat pe margine), Simple 4 (NSEW), și RPG Maker A2 (48 de tile-uri, compatibil cu hărțile create acolo).
Două straturi stau deasupra tile-urilor propriu-zise. Zones pictează sensul de gameplay: buildable, water, forest, road, farm, residential, commercial, blocked, iar props plasează obiecte pe categorie: trees, rocks, buildings, vegetation, water, paths. Hărțile trăiesc în baza de date proprie a browserului, astfel încât una nesalvată supraviețuiește unei reîncărcări.
Inventar, tabele de date și dialog#
Cele trei editoare care permit unui joc să aibă conținut fără ca acel conținut să trăiască în cod.
Inventory editează un catalog și îl aplică scenei. Un item poartă
actions, iar o acțiune este un trigger: use, equip, unequip, plus
unul din opt types: message, heal, damage, grant, remove, event, toast,
scene. Panoul propriu-zis are trei layout-uri (grid, list, compact), trei
presetări de aspect (graphite, midnight, warm), și patru sloturi vizuale:
background, slot, equipment, tooltip, care se deschid în alt modul pentru
o redesenare corectă.
Data tables sunt tipizate: o coloană este text, number, bool sau
ref. CSV intră și iese. Fiecare editare trece prin funcții pure, ceea ce
menține tabelul pe care îl scrie exportul identic cu tabelul pe care îl
citește build-ul.
Dialogue trees sunt noduri cu un speaker și o linie. Un nod fie
continuă la un singur next, fie se ramifică în choices, fiecare cu
propriul text și propria destinație; comutatorul de ramificare este
singura decizie structurală din editor.
Animație și cameră#
Cinematic Sequencer construiește secvențe cu o durată și un flag de loop, o pistă per entitate, și cadre cheie capturate la cursorul de redare; Add Key preia valoarea curentă a entității, în loc să te pună s-o tastezi. Editorul de graf de dedesubt arată timpul față de progres, cu mânere rotunde pentru easing: panta este viteza. Shot-urile au propriile durate, iar o încadrare Cinemascope (1.422:1) este disponibilă pentru letterbox.
Camera Tools acoperă FOV, position, target, mode și speed, plus bookmarks pentru punctele de vedere la care te tot întorci, și camera layers.
Audio#
Audio Manager ține audio events, tracks și un mixer cu channels și categories. Efectele per sursă sunt un low-pass, un high-pass și un reverb send; un mod random alege între mai multe clipuri, astfel încât un sunet repetat nu se mai citește ca o buclă. Scrubbing-ul redă audio în timp ce tragi cursorul de redare.
Profilerul#
O defalcare a cadrului, nu un contor de cadre: camera render, mesh evaluation, particles, sprites și shader compilation, fiecare marcat drept real sau estimated, astfel încât un număr care a venit dintr-o măsurătoare nu este niciodată confundat cu unul care a venit dintr-un model. Contoare alături: meshes și active meshes, lights, cameras, physics bodies.
Înregistrarea este explicită, și se încheie cu o listă Issues, nu cu un grafic de interpretat: low FPS, high draw calls, high triangles, high memory, față de rata de cadre țintă pe care o setezi.
Construirea unei scene#
Entitățile#

O scenă nouă sosește cu un Main Camera, un Directional Light, un Skybox și un Ground Plane.

Ce poți adăuga: Empty, Cube, Sphere, Cylinder, Plane, Light, Camera, Script, Mesh, plus două familii care sosesc deja precablate:
- Characters: Third-Person, First-Person (FPS), Top-Down, Platformer, Basic.
- Props: Pickup (heal) și Hazard (damage).
Scene graph-ul caută, filtrează după tip, și adaugă, duplică sau șterge; entitățile se imbrică, iar reparentarea se face prin tragere. Plasarea are snapping și o scatter brush pentru a popula solul rapid.
Inspectorul#
Transform (position, rotation, scale), un comutator Enabled, și components-ele entității: adăugate, configurate și eliminate aici, cu Add Script jos. Selectezi mai multe entități și inspectorul comută la editare în masă, astfel încât o schimbare de câmp ajunge la toate.
Consola#
Nu doar un log. Filtrează după nivel (all, logs, info, warning, error),
leagă un mesaj înapoi de entitatea care l-a produs, și poartă un
expression prompt: tastezi o expresie, Enter o rulează pe scena
live, tastele săgeți parcurg istoricul.
Cum îi dai comportament#
Trei căi, și coexistă.
Scripts#
JavaScript cu lifecycle hooks, și o referință proprie:
function start() {} // once, when the entity starts
function update(dt) {} // every frame
function fixedUpdate(dt) {} // fixed timestep, for physics
function onCollisionEnter(other) {} // first frame of contact
function onCollisionStay(other) {} // every frame while touching
function onCollisionExit(other) {} // contact just ended
function onTriggerEnter(other) {} // entered a trigger volume
function onTriggerExit(other) {}
function onMessage(msg, data, senderId) {} // entity-to-entity messaging
function onAnimationEvent(name, data) {}
function onDestroy() {}
Coliziunile și trigger-ele se declanșează atât în 2D, cât și în 3D, iar
fiecare parte primește propria contact normal: other.contact.normal
indică dinspre entitatea cealaltă către aceasta. Asta este ceea ce
permite unui script să deosebească „am aterizat pe el” de „a aterizat pe
mine”: un stomp de platformer citește other.contact.normal.y > 0.5.
Editorul de script#
F2, sau Add Script pe o entitate. Un editor Monaco cu tab-uri, mai
multe scripturi deschise deodată, fiecare păstrat în baza de date proprie
a browserului, nu în fișierul proiectului, astfel încât un buffer nesalvat
supraviețuiește unei reîncărcări.
Cinci dialecte, un singur program. Comutatorul de limbaj oferă JavaScript, BASIC, Python, C# și Rust. Ce face nu este ce pare: JavaScript este sursa adevărului, iar celelalte patru sunt vizualizări transpuse din JS-ul stocat. Comutarea de la Python la Rust nu traduce Python-ul; se întoarce la JS-ul din care a fost generat Python-ul și traduce acela. Traducerea în mai mulți pași este ceea ce corupe un program, iar editorul refuză s-o facă.
Treisprezece templates în cinci categorii, fiecare etichetat după dificultate:
| Category | Templates |
|---|---|
| Basics | script gol cu stub-uri de lifecycle |
| Movement | auto-rotate · WASD · axis-based 3D movement · physics jump with ground detection · third-person camera follow |
| Gameplay | trigger zone · health bar with damage and heal · timed spawner |
| AI | patrol with player proximity alert |
| Advanced | Verse-style async cutscene · structured concurrency · full API surface test |
Presetările de character-controller și props-urile de pornire ale jocului (pickup, hazard) apar în aceeași listă, ceea ce este modul practic de a pune un controler funcțional pe un personaj importat.
Rulare și depanare. F5 rulează, F9 setează un breakpoint.
Debugger-ul se oprește la o linie, avansează un singur cadru, și
raportează valori live prin watch expressions. Script Lab rulează un
program fără nicio entitate atașată, un scratchpad pentru API, nu o
componentă pe un obiect.
Alături de cod: o referință API, o listă de simboluri pentru fișierul
deschis, și o bibliotecă de snippet-uri cu favorite și recente. Ctrl+S
salvează, Ctrl+F caută, Ctrl+H înlocuiește, iar editorul vine cu opt
teme.
Blueprints și comportamente#
Un graf vizual, o bibliotecă de comportamente gata făcute, și o mașină de stări stratificată peste stiva de comportamente.
Graful poartă 267 de noduri în douăzeci și două de grupuri: Math, Scene, Entity, Animation, Flow Control, String, Events, Physics, UI, Array, Vector, Transform, Debug, Input, Utility, Game, Boolean, Camera, Tween, Variables, Audio și familiile 2D și 3D. Trei proprietăți le separă, și sunt din ce este făcut graful: 17 event nodes pornesc execuția, 117 pure nodes calculează o valoare fără efect secundar și fără pin de execuție, iar 9 latent nodes se termină mai târziu: acestea sunt cele care fac ca o întârziere sau un tween să fie exprimabile fără o mașină de stări proprie.
Patru instrumente: select V, pan H, comment C, reroute R, peste o
pânză care face zoom de la 0.1× la 3× cu o minihartă. Variabilele vin în
șase tipuri: boolean, integer, float, string, vector3 și object. Descrierea
fiecărui nod este pe tooltip-ul lui, singurul loc în care o bibliotecă de
această mărime se poate explica pe sine.
Mașina de stări#
Propriul panou, și intenționat nu al lui Animator: condițiile lui Animator sunt un enum plat cu UI scris de mână pentru fiecare caz, în timp ce acestea sunt structurate și vorbesc despre lume.
Șapte condiții, fiecare o întrebare despre scenă: sees (o țintă etichetată în rază, opțional într-un unghi și în linie de vedere), lost (nicio țintă timp de N secunde), distance față de un prag, health, message received, timer (timpul petrecut în starea curentă), și flag (o valoare pe blackboard-ul comun). Doi combinatori, and și or, sunt amândoi listați, deși or exista deja implicit (două tranziții către aceeași stare sunt un or), dar „mă vede ȘI mai am viață” nu avea nicio formă deloc.
⚠️ Health este comparat ca fracțiune din maxim, niciodată ca valoare absolută. Un prag de „sub 30 HP” nu supraviețuiește unei treceri de re-echilibrare; „sub 0.3” supraviețuiește.
La intrarea sau ieșirea dintr-o stare, patru efecte: send un mesaj, set o cheie de blackboard, play un clip de animație, sau declanșează un named effect. Niciunul dintre ele nu mișcă nimic; mișcarea rămâne la behaviours, iar mașina decide care comportament este activ.
O tranziție poate porni din *, adică orice stare. Validatorul returnează
lista de probleme, în loc să eșueze la prima, astfel încât o mașină pe
jumătate scrisă tot se desenează și vezi tot ce e greșit dintr-o dată.
Pozițiile nodurilor fac parte din date: un graf al cărui layout trăiește
în afara scenei revine amestecat pentru următoarea persoană care îl
deschide.
BASIC#
Modul de viewport TXT este un mediu clasic-BASIC cu programe demo
incluse, iar limbajul are o referință proprie.
Este un limbaj real aici, nu o jucărie: module multi-fișier (#INCLUDE),
numerice tipizate (signed și unsigned pe 8/16/32/64 biți, float32 și
float64), înregistrări imbricate, metode de obiect cu SELF, referințe
(REF/BYREF), TRY/CATCH/FINALLY structurat, compilare
condiționată, corutine, handle-uri tipizate, și WebGPU compute cu
storage buffers și WGSL brut.
OPTION EXPLICIT este opțional; variabilele implicite clasice rămân
valoarea implicită, astfel încât programele importate tot rulează.
Testarea și livrarea#
Play#
Play, Pause, Stop. La stop, un banner raportează ce a schimbat
sesiunea, astfel încât o editare din play mode nu este niciodată păstrată
sau pierdută în tăcere. Sesiunile pot fi înregistrate și redate într-un
raport de bug, iar scenario bookmarks permit unui playtest să înceapă
din mijlocul unui nivel.
Build#
Build preia un tip de joc (detectat din scenă, sau setat manual: sidescroller/platformer, first/third person, text-based) și o țintă.
- Web: WebGPU cu o soluție de rezervă WebGL, WebXR opțional (VR/AR), minificare, un contor FPS, și o opțiune embed assets care produce un singur fișier.
- Desktop și mobile: build-uri native. Scena este exportată ca
date (
scene.glb+scene.json) și compilată printr-un proiect Bevy (Rust) generat; scripturile rulează neschimbate acolo pe un runtime QuickJS încorporat.
Compresia este configurabilă per axă: algoritm, texturi, meshuri, cu o presetare de calitate care le leagă. Build-urile sunt păstrate într-un istoric cu dimensiunile lor (original față de comprimat) și pot fi descărcate din nou mai târziu.
Un build nativ conține doar ce știe exportatorul să exporte. glTF nu captează shadere personalizate, thin instances, cerul procedural sau post-procesarea, astfel încât un sistem de runtime care nu a fost portat pe partea Bevy va lipsi dintr-un build de desktop sau mobil, deși va arăta perfect pe web. Verifică un build nativ înainte să te bazezi pe el.
Multiplayer#
Panoul Multiplayer room conectează o scenă la un server de joc Colyseus. Un server de test partajat, gratuit, este disponibil fără cont și fără configurare; un proiect poate primi și propriul server. Camera este identificată printr-un cod de partajare pe care îl poți păstra pentru tine sau îl poți da mai departe.
Fișiere pe care le citește și le scrie#
| Format nativ | .engine |
| Importă | .glb, .gltf, .obj, .fbx, .png, .svg, .mp4, .webm, .mov, .scene |
| Exportă | un build web, un build nativ de desktop/mobil, scene.glb + scene.json |
Trimiterea lucrului către alte studiouri#
Acceptă meshuri din Sculpt, Retopo și Pigment, scene întregi din Render, pixel art, animații, seturi de materiale PBR din Matter, rig-uri 2D, proiecte video, imagini, grafică vectorială, și obiecte Vectra.
Produce rig-uri 2D.
Un mock-up de ecran din Vectra sosește ca structură, nu ca imagine. Devine o ierarhie HUD pe care Engine o poate așeza și scripta: diferența dintre un design pe care îl poți conecta și o captură de ecran a unuia.
Comenzi rapide#
Cmd/Ctrl + K ajunge la propriile comenzi ale Engine din paletă,
alături de cele globale. Engine are și un panou dedicat, căutabil, de
comenzi rapide în propriile setări; are mult mai multe decât ar încăpea pe
pagina de comenzi rapide.
Limitări și probleme frecvente#
- Un viewport gol este de obicei browserul, nu scena. Engine are nevoie de WebGL 2; verifică dacă accelerarea hardware este activă.
- Systems și Tools împart un singur sertar. Dacă un panou „a dispărut”, este probabil în celălalt.
- Consola este primul loc unde te uiți, nu ultimul: leagă erorile de entitatea care le-a provocat.
- O componentă adăugată în play mode s-ar putea să nu supraviețuiască la stop. Citește bannerul care apare când oprești.
- Fizica diferă între 2D și 3D în solver, chiar dacă callback-urile de script sunt aceleași. Un contact de repaus în 2D este detectat cu un skin de 2 mm, pentru că solverul aduce penetrarea la exact zero înainte să ruleze detecția.