Engine

Pelimoottori selaimessa: kohtausgraafi, komponentit, skriptaus, fysiikka, PBR-putki, maailmaeditorit ja natiivit buildit työpöydälle ja mobiilille.

Yhdellä lauseella#

Täysiverinen pelimoottori selaimessa: rakenna kohtaus, anna sille käytöstä, paina playta, ja vie se webiin tai natiiviksi työpöytä- ja mobiilibinääriksi.

Se on aukimin selvästi suurin studio. Tämä sivu kartoittaa sen samalla tavalla kuin käyttöliittymä: sen vetolaatikon mukaan, jossa kukin paneeli asuu, aakkosellisen ominaisuuslistan sijaan.

Asettelu#

Engine, kohtausgraafilla, näyttöikkunalla, tarkastimella ja konsolilla

Menu barFile · Edit · View · Windows · Run · Plugins
Toolbarprojektin nimi, kumoa/tee uudelleen, näyttöikkunan tilakytkin (3D · 2.5D · 2D · TXT), kohtausvalitsin, neljä paneelipainiketta, FX Master, HUD, resoluutiokenttä, transportti (play, pause, stop) ja Build
Vasenkuvakerivi, kohtausgraafi, lista, ääni, konsoli, ja paneeli, jonka se avaa
Keskellänäyttöikkuna, omalla gizmo-palkillaan (siirrä, kierrä, skaalaa, world/local, ruudukko, tarttuminen, rajaus) ja laatuvalitsimella
Oikeavalitun entiteetin tarkastin
AlhaallaKonsoli ja Profiloija rinnakkain
Status bartila, näyttöikkunan mitat, entiteettimäärä, ruudukon tila

Neljä paneelipainiketta#

Enginen työkalurivi: kohtauksen nimi, kumoa, näyttöikkunan tilakytkin, neljä paneelipainiketta ja transportti

Ne eivät kaikki käyttäydy samalla tavalla, ja ero kannattaa tietää ennen kuin lähdet etsimään jotain:

PainikeKäytös
Systemsavaa vetolaatikon
Toolsavaa saman vetolaatikon, Systems ja Tools sulkevat toisensa
Assetsvaihtaa pysyvän telakan tilaa
Scriptsavaa modaalin

Systems ja Tools jakavat yhden paikan tarkoituksella; ne on sijoitettu vierekkäin, jotta se näkyy.

Systems#

Moottorin omat osajärjestelmät: asiat, joita kohtauksella on, sen sijaan että ne olisivat asioita, joilla tehdään.

RyhmäPaneelit
Pluginsliitännäisselain
RenderingRendering · Rendering Pipeline · Look Presets · Shader Lab · Render Style · Shadows · Mesh LOD · Post Process Volumes
GameplayMultiplayer room · Physics · AI & Navigation · Gameplay Zones
WorldScene Graph · Level Streaming · Baking · Light Probes · Decals

Rendering#

Työkalurivin FX Master -kytkin sytyttää ja sammuttaa koko jälkikäsittelyputken yhdellä napsautuksella: nopein tapa nähdä, mitä se maksaa. Yksitellen: bloom, depth of field, SSR, SSAO, GTAO, SSGI, temporal AA, FXAA, motion blur, volumetrinen sumu, contact shadows, colour grading, film grain, kromaattinen aberraatio, vignette ja tonemapping, sekä Nanite-tyylinen geometria ja Hi-Z-okkluusio.

Look Presets ovat kokonaisia kokoonpanoja yllä olevasta. Render Style vaihtaa rekisteriä, tyylitellyn valokuvamaisen sijaan. Shader Lab on paikka, jossa kirjoitat omasi. Mesh LOD ja Post Process Volumes ovat ne kaksi, jotka maksavat itsensä takaisin isolla kohtauksella: yksityiskohtaisuustaso per mesh, ja jälkikäsittely, joka soveltuu vain volyymin sisällä.

Renderöijä on Babylon.js. Se käynnistyy WebGL:llä ja vaihtaa itsensä WebGPU:hun, kun selaimessa on sellainen, ja palaa takaisin omin päin, jos se epäonnistuu.

Gameplay-järjestelmät#

Physics kattaa sekä 3D-ratkaisijan (Havok) että 2D-ratkaisijan. AI & Navigation on navmesh ja sen agentit. Gameplay Zones ovat triggerivolyymejä, joihin on liitetty käytös. Multiplayer room yhdistää kohtauksen Colyseus-palvelimeen (katso alempana).

World-järjestelmät#

Level Streaming lataa ja purkaa kentän osia pelaajan liikkuessa. Baking esilaskee valaistuksen; Light Probes kaappaavat epäsuoraa valoa ja heijastuksia avaruuden pisteissä. Decals projisoivat yksityiskohtia pinnoille lisäämättä geometriaa.

Tools#

Asiat, joilla tehdään.

RyhmäPaneelit
EditorsScripts · Blueprint Editor · UI Editor · Tilemap
WorldSky Studio · Terrain · Water · Tree Generator · Plant Generator · Rock Generator · Kitbash
GameplayInventory · Data tables · Dialogue Trees
AnimationTimeline · Cinematic Sequencer · Camera Tools
AudioAudio Manager
DebugProfiler

World-generaattorit#

Terrain, water, sky ja neljä sisältögeneraattoria: trees, plants, rocks ja kitbash-palat. Niillä on oma lukunsa alempana.

Gameplay-sisällöntuotanto#

Inventory, Data tables (Tools → Data) ja Dialogue Trees ovat kolme editoria, joiden ansiosta pelillä voi olla sisältöä ilman, että sisältö asuu koodissa tarkemmin alempana.

Animation#

Timeline entiteettianimaatiolle, Cinematic Sequencer kuville (shots), ja Camera Tools rajaukselle. Katso Animaatio ja kamera.

Maailmaeditorit#

Seitsemän paneelia kohdassa Tools → World. Ne ovat nopea tapa täyttää kohtaus, ja syy siihen, ettei kentän tarvitse alkaa mallinnusistunnolla.

Terrain#

Kohtaus voi sisältää useita maastoja; jokainen on rivi Terrains-listassa, ja se luodaan yhdessä kolmesta resoluutiosta, 128² (nopea), 256² (tasapainoinen) tai 512² (yksityiskohtainen).

Paneelissa on kymmenen tilaa, ja niillä on yksi yhteinen asia: Masks-kohdassa maalattu maski rajoittaa jokaista niistä.

TilaMitä se tekee
Sculptseitsemäntoista sivellintä korkeuskentällä
Paintjopa kahdeksan tekstuuritasoa, kahden splatmapin yli
Generatekohina, automaattitekstuurointi ja oikean maailman korkeustuonti
Sketchpiirrä harjanteita ja laaksoja, synteesi maasto vastaamaan niitä
Masksrajoittaa jokaisen muun tilan osaan pinnasta
Watermerenpinta, ja valinta maastoveden ja FFT-meren välillä
Pathsmaahan leivottu Bézier-tie
Vegetationsivellin- tai sääntöpohjainen sirottelu
SDFraymarchattu maasto, renderöity meshaamisen sijaan
Biomesmaaperä, kasvit, puut ja kivet yhdellä ajolla

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 (Alt-napsautus asettaa lähteen), Blur B, Ramp R, sekä kaksi vesityökalua: River piirtää uoman, Lake täyttää pisteestä.

Sivelmellä itsellään on dynamiikkaa: painekäyrä, lazy mouse, falloff, symmetria, kuvio, ja jitter sekä koolle että voimakkuudelle. Stamp kantaa kuusi muotoa: crater, mountain peak, plateau, river valley, dome, noise hill. Eroosio tulee kahdessa muodossa: E-sivellin on paikallinen, kun taas Adjustments ajaa hydraulisen, termisen ja tuulieroosion koko maaston yli.

Paint. Kahdeksan tasoa, koska kaksi RGBA-splatmapia kantaa neljä kanavaa kumpikin. Materiaalikirjasto on lajiteltu kategorioittain: grass, dirt, forest, rocks, roads and surfaces, cliffs, sand, snow, volcanic, wetland, fantasy, ja omasi, ja jokainen taso kantaa UV-skaalan, displacementin, yksityiskohtakartan, ja pintareliefin (bump-voimakkuus ja parallax-syvyys). Break texture tiling (cell bombing) on asetus, joka estää toistuvaa maatekstuuria näyttämästä ruudukolta.

Generate rakentaa kohinasta, sitten Generate Textures osoittaa materiaalit korkeuden ja kaltevuuden mukaan, pohjois-etelä-varjovaihtelulla ja hiekka- tai sorarannoilla siellä, missä on vettä. Real World tuo julkisia NASA/USGS-korkeuslaattoja: valitse maamerkki tai kirjoita koordinaatit, valitse zoomaus, ja paneeli raportoi tuomansa korkeusvaihtelun.

Sketch on toinen tapa sisään. Piirrä harjanne- ja laaksovetoja 2D-kartalle, valitse jopa kolme oikeaa lähdemaisemaa, ja maasto syntetisoidaan vastaamaan luonnosta, halutessasi sekoitettuna jo olemassa olevaan, automaattiteksturoituna ja eroosioitettuna samalla ajolla.

Masks maalataan siveltimellä ja muokataan sitten kokonaisuutena: clear, invert, blur, grow, shrink. Smart masks johtavat maskin itse maastosta, korkeuden, kaltevuuden, tason tai onkalon mukaan.

Paths. Napsauta pudottaaksesi ohjauspisteitä, ja pehmeä käyrä kulkee niiden läpi; vedä keltaisia pisteitä siirtääksesi niitä, syaaneja kahvoja taivuttaaksesi käyrää. Bake Path tasoittaa maan sen alla, maalaa tekstuurin ja nostaa penkereet.

Vegetation-tilassa on kaksi puoliskoa. Sivellin sijoittaa ja poistaa instansseja käsin; scatter rules sijoittavat niitä ehdon, tasopainojen, siemenluvun, min/max-skaalan ja sen korkeus- ja kaltevuusvyöhykkeen mukaan, jonka kukin resurssi hyväksyy. Ruoho ja kukat häipyvät pois säädettävän piirtoetäisyyden jälkeen, ja Export to Scene muuttaa instanssit kohtausobjekteiksi.

Biomes on yhden napsautuksen versio kaikesta yllä olevasta: valitse biomi, rastita haluamasi kategoriat (soil, trees, plants and grass, flowers, algae near water, rocks), aseta tiheys, ja Apply Biome maalaa maan ja sirottelee kaiken, raportoiden, kuinka monta instanssia kutakin se sijoitti. Puun age variety sekoittaa taimista muinaisiin saman puun leimaamisen sijaan kaikkialle, ja ground blend (RVT) sulauttaa jokaisen kiven pohjan sen alla olevaan maastoväriin.

SDF on eri renderöijä, ei eri työkalu: maasto raymarchataan etäisyyskentästä, muoto octaveilla, lacunarityllä ja persistencellä, tekstuurointi grass/rock/snow-jaolla lumirajalla ja kaltevuuskynnyksellä, sekä omat pehmeät varjot, ambient occlusion ja sumu.

Isoilla maastoilla on LOD-järjestelmä, jossa on skirt-geometria (joka sulkee tasojen väliset raot), pehmeät tasosiirtymät, frustum culling ja tilastojen peittokuva. Heightmapit tuodaan ja viedään muodoissa 16-bit PNG, 8-bit PNG tai RAW 16-bit; splatmapit yhtenä RGBA PNG:nä tai yhtenä tiedostona per taso; ja koko maasto, tai vain sen asetukset, esiasetuksena.

Sky Studio#

Ilmakehä. Neljä taivastyyppiä, solid, gradient, HDRI, ja physical atmosphere Rayleigh- ja Mie-sironnalla, Mie-absorptiolla, otsonilla, maan albedolla, sameudella, planeetan säteellä ja ilmakehän paksuudella.

Kaikki riippuu vuorokaudenajasta, joka voi kiertää itsestään: aurinko korkeuden, atsimuutin ja intensiteetin mukaan, omalla varjointensiteetillään; kuu vaiheen mukaan; tähdet tuikkeella; ja revontulet. Volumetric clouds -pilvillä on paksuus, eroosio, kohinaskaala ja curl-vääristymä, sekä valo absorption, sironnan, ambientin ja powder-termin kautta; cirrus ja Venuksen vyö ovat erillisiä. Aerial perspective on sumu, joka paksuuntuu etäisyyden myötä ja häivyttää kaukaisen geometrian horisonttiin; se on asetus, joka saa maiseman näyttämään suurelta.

Kymmenen esiasetusta aloituspisteeksi: clear day, dawn, sunset, dusk, night, overcast, stormy, desert, arctic ja space.

Water#

Kaksi välilehteä: Ocean (FFT) avomerelle, Shore & lakes kaikelle muulle.

⚠️ Vesi luodaan Terrain-editorissa: river- ja lake-työkaluilla, tai Show Water -toiminnolla, ja säädetään täällä. Tämän paneelin avaaminen kohtauksessa, jossa ei ole vettä, antaa sinulle asetuksia, joita ei ole minne soveltaa.

Rantavedellä on väri, läpinäkyvyys, aallon voimakkuus ja nopeus, choppiness, vaahdon leveys ja Fresnel, screen-space-heijastuksilla ja refraktiosumennuksella. Sen alla on itse WGSL-shader: kaksi normal-skaalaa omilla vieritys-suunnillaan ja nopeuksillaan, vaahtokynnys ja pehmeys, refraktion voimakkuus ja taitekerroin, sekä valo veden sisällä: absorptio, sameus, sironta ja läpikuultavuus.

Tree Generator#

Kaksi tilaa, Tree ja Trunk. Puu on lehtipuu tai ikivihreä, sillä on ikä taimesta muinaiseen, ja se voi olla elävä, kuollut, pystykeloa (snag) tai kaatunut runko. Kaikki on siemennettyä, joten Randomize seed on nopein tapa saada erilainen puu samalla luonteella.

Muoto on oksatasokohtainen: children, length, radius, taper, gnarliness, twist, sections, segments, angle ja start height, sekä luonnollinen vaihtelu, fototropismi ja gravitropismi: kaksi, jotka saavat puun kallistumaan valoa kohti ja roikkumaan oman painonsa alla, sekä globaali voima omalla voimakkuudellaan. Tyvellä on root flare (lohkot ja korkeus) ja buttress.

Lehdet ovat billboardeja, yksi- tai kaksipuoleisia, count-, size-, angle-, variance-, clump-, curl-, droop-, sheen- ja pyöristetyt normal-arvot mukana. Kaarna tulee kuudessa tyylissä: ridged, aspen, pine, birch, smooth, palm, relief-, moss-, kostea tyvi, auringon haalistus, latvuksen ambient occlusion ja syksyn väri mukana. Neljä vuodenaikaa vaihtavat koko ilmeen kerralla.

Forest sirottelee useita kerralla: count, spread radius, scale variance, ja ikäsekoitus (single, natural, young, old, even). Add age progression sijoittaa kaikki viisi elämänvaihetta riviin, mikä on nopein tapa arvioida niitä rinnakkain. Puu lähtee kohtausentiteettinä tai GLB-muodossa, ja mikä tahansa asetus voidaan tallentaa esiasetuksena.

Plant Generator#

Viisi lajia, flower, cluster, herb, fern, grass, joilla on yhteinen varsi (count, height, thickness, curve, colour) ja lehdet (count, size, width, angle). Saniaiset lisäävät lehdyspareja, lehdyskaarron ja lehden kaaren; ruoho lisää lehtimäärän ja kaaren.

Kukka on valinnainen millä tahansa niistä: petals, petal rows, length, width, curl, tip sharpness, bloom, centre size, ja kolme väriä: petal, petal tip ja centre, translucencylla ja roughnessilla sille, miten valo kulkee lehden läpi. Lisää yksi kohtaukseen, sirottele monta, tai vie GLB-muodossa.

Rock Generator#

Kolme lajia, rock, stone, cliff, kolmessa tyylissä: realistic, toon, tai low poly ääriviivalla.

Muoto on kohinaa pallon päällä: scale, strength, octaves, persistence, warp ja ridged-optio, sekä strata omalla taajuudellaan ja facet cuts syvyydellä ja terävyydellä kulmikkaalle kivelle. Radius, detail, flatten, shape variance ja litteä pohja päättävät siluetin, ja neljä eroosioesiasetusta, fresh, weathered, natural, eroded, liikuttavat kaikkea kerralla.

Pinnalla on värivaihtelua, mineraalisuonia, jäkälää ja sammalta, yksityiskohtatekstuuri laatoituksella ja voimakkuudella, triplanar- sekoitus ja parallax-relief. Se käyttää oletuksena mukana tulevaa Stone-materiaalia; lähetä materiaali Matterista Engineen korvataksesi sen.

Kitbash, sama kirjasto kuin Sculptissa#

Kitbash on jaettu Sculptin kanssa: tämä paneeli ja Sculptin Edit Forge lukevat samaa kirjastoa. Siellä rakennettu pala sijoitetaan täällä, ja täällä maalattu pala voidaan tallentaa takaisin siihen.

Se, minkä kohtaus tallentaa, on osa ja sen mitat, ei sen kärkipisteitä, minkä vuoksi kitbashattu rakennus maksaa tiedostossa lähes ei mitään ja voidaan päivittää myöhemmin lähteestään.

Valitse pala luettelosta, ja jokainen vasen napsautus sijoittaa sen. Kolme tarttumistilaa päättävät, minne se laskeutuu: on terrain (palat seuraavat allaan olevaa maan korkeutta), on water (rakennustaso asettuu veden tasolle), ja snap to sockets, tähtää sijoitetun palan liitäntäpisteeseen, ja uusi pala kääntyy sitä vasten. Ketju kasvaa vapaasta päästään, varatut liitäntäpisteet putoavat pois ehdokkaista, ja jokainen napsautus on oma kumoamisaskeleensa. Ctrl/Cmd on varattu valinnalle ja Alt kierrolle. Kokoelmat säilyttävät lähteensä ja versionsa, joten instanssin voi päivittää, kun alkuperäinen muuttuu.

Muut editorit#

Maailmaeditorit täyttävät kohtauksen; nämä antavat sille käyttöliittymän, kartan, sisältötaulukot ja välineet sen kustannusten tarkistamiseen.

HUD-editori#

Tools → Editors → UI. Kuusi välilehteä, Templates, Elements, Layers, Preview, Style ja Script, esikatselun päällä, joka vaihtaa kolmen laitekoon välillä: desktop 960×540, tablet 768×432, mobile 375×667.

Elements-kohde tulee kolmessa ryhmässä (Display, Data, Input) ja voi sisäkkäistyä: panel ja flex pitävät sisällään lapsia, joten Layers-välilehti on oikea puu litteän listan sijaan. Historia on viisikymmentä askelta syvä.

⚠️ Style-välilehti on CSS:n kaltainen, ja ero on tärkeä. HUD piirretään kankaalle Babylonin GUI:lla, eikä oikea CSS ylety siihen. Säännöt, jotka kirjoitat täällä, kuvautuvat GUI-ominaisuuksiksi; valitsimet ovat #name yhdelle elementille, .type tyypille (.text, .panel) ja * kaikelle.

Script-välilehti on toinen tapa rakentaa se: ui.*-API, createText, createPanel, createProgress, createButton, kahdella tavalla ajaa se. Build Layout suorittaa sen suunnitteluaikaisesti ja jättää sinulle oikeita elementtejä nykäistäväksi käsin; Run Live ajaa sen pelissä.

Kaksi yhteyttä ulospäin: HUD-kuvitus avautuu Inkwellissä tai Vectrassa ja linkitetään takaisin kopioimisen sijaan, ja Vectra-dokumentin voi tuoda HUD-elementteinä. Minikartta-elementti on oma juttunsa, jossa on kantama, ruudukko, ja merkit pelaajalle, vihollisille, liittolaisille, esineille ja tavoitteille.

Tilemap-editori#

Yksitoista työkalua, brush, eraser, fill, rectangle, select, eyedropper, stamp, autotile, prop, zone ja path, neljällä karttaprojektiolla: orthogonal, isometric, staggered isometric ja hexagonal.

Autotiling-toiminnossa on mukana neljä mallipohjaa, ja kunkin nimen luku on tiilien määrä, jonka se odottaa: Blob 47 (täydet kulmat ja reunat), Wang 16 (reunapohjainen), Simple 4 (NSEW), ja RPG Maker A2 (48 tiiltä, yhteensopiva siellä laadittujen karttojen kanssa).

Kaksi tasoa istuu itse tiilten yläpuolella. Zones maalaa pelattavuuden merkityksen: buildable, water, forest, road, farm, residential, commercial, blocked, ja props sijoittaa objekteja kategorioittain: trees, rocks, buildings, vegetation, water, paths. Kartat elävät selaimen omassa tietokannassa, joten tallentamaton kartta selviää sivun uudelleenlatauksesta.

Inventaario, datataulukot ja dialogipuut#

Kolme editoria, joiden ansiosta pelillä voi olla sisältöä ilman, että sisältö asuu koodissa.

Inventory muokkaa luetteloa ja soveltaa sen kohtaukseen. Esineellä on toimintoja, ja toiminto on trigger: use, equip, unequip, plus yksi kahdeksasta tyypistä: message, heal, damage, grant, remove, event, toast, scene. Paneelilla itsellään on kolme asettelua (grid, list, compact), kolme ulkoasuesiasetusta (graphite, midnight, warm), ja neljä visuaalista paikkaa, background, slot, equipment, tooltip, jotka avautuvat toisessa moduulissa kunnollista uudelleenpiirtoa varten.

Data tables ovat tyypitettyjä: sarake on text, number, bool tai ref. CSV menee sisään ja tulee ulos. Jokainen muokkaus kulkee puhtaiden funktioiden läpi, mikä pitää viennin kirjoittaman taulukon identtisenä sille, jonka build lukee.

Dialogue trees ovat solmuja, joilla on puhuja ja repliikki. Solmu joko jatkuu yhteen next-kohteeseen, tai haarautuu valinnoiksi (choices), joilla kullakin on oma tekstinsä ja oma kohteensa; haarautumiskytkin on ainoa rakenteellinen päätös editorissa.

Animaatio ja kamera#

Cinematic Sequencer rakentaa sekvenssejä kestolla ja silmukkalipulla, yhdellä raidalla per entiteetti, ja keyframeilla, jotka kaapataan toistokohdasta; Add Key ottaa entiteetin nykyisen arvon sen sijaan, että pyytäisi sinua kirjoittamaan sen. Sen alla oleva käyräeditori näyttää ajan edistymistä vasten, pyöreillä kahvoilla easingiä varten: kaltevuus on nopeus. Kuvilla (shots) on omat kestonsa, ja Cinemascope- rajaus (1.422:1) on käytettävissä letterboxia varten.

Camera Tools kattaa FOV:n, sijainnin, kohteen, tilan ja nopeuden, sekä bookmarkit kuvakulmille, joihin palaat toistuvasti, ja kameratasot.

Audio#

Audio Manager pitää sisällään äänitapahtumat, raidat ja mikserin kanavineen ja kategorioineen. Lähdekohtaiset tehosteet ovat low-pass, high-pass ja reverb send; random-tila valitsee useiden klippien väliltä, jotta toistuva ääni lakkaa kuulostamasta silmukalta. Scrubbing toistaa ääntä, kun vedät toistokohtaa.

Profiloija#

Kehyksen erittely, ei kehyslaskuri: kameran renderöinti, meshin evaluointi, partikkelit, spritet ja shaderin kääntäminen, kukin merkittynä real tai estimated, jotta mittauksesta tullutta lukua ei koskaan sekoiteta malliin perustuvaan. Laskureita sen rinnalla: meshit ja aktiiviset meshit, valot, kamerat, fysiikkakappaleet.

Nauhoitus on eksplisiittinen, ja se päättyy Issues-listaan tulkittavan kaavion sijaan: low FPS, high draw calls, high triangles, high memory, verrattuna asettamaasi tavoitekuvataajuuteen.

Kohtauksen rakentaminen#

Entiteetit#

Enginen näyttöikkuna, gizmo valitulla entiteetillä

Uusi kohtaus saapuu mukanaan Main Camera, Directional Light, Skybox ja Ground Plane.

Kohtausgraafi, neljällä entiteetillä, joilla uusi kohtaus alkaa

Mitä voit lisätä: Empty, Cube, Sphere, Cylinder, Plane, Light, Camera, Script, Mesh, sekä kaksi perhettä, jotka saapuvat valmiiksi johdotettuina:

  • Characters: Third-Person, First-Person (FPS), Top-Down, Platformer, Basic.
  • Props: Pickup (heal) ja Hazard (damage).

Kohtausgraafi hakee, suodattaa tyypin mukaan, sekä lisää, monistaa tai poistaa; entiteetit voivat sisäkkäistyä, ja vanhemman vaihto on veto. Sijoittelussa on tarttuminen ja scatter brush maan nopeaan täyttämiseen.

Tarkastin#

Transform (sijainti, kierto, skaala), Enabled-kytkin, ja entiteetin komponentit: lisätään, määritellään ja poistetaan täällä, Add Script alareunassa. Valitse useita entiteettejä, ja tarkastin vaihtaa eräkäsittelyyn, joten yksi kentän muutos päätyy niihin kaikkiin.

Konsoli#

Ei vain loki. Se suodattaa tason mukaan (all, logs, info, warning, error), linkittää viestin takaisin sen tuottaneeseen entiteettiin, ja kantaa lausekekehotteen: kirjoita lauseke, Enter ajaa sen elävää kohtausta vasten, nuolinäppäimet kävelevät historiaa.

Käytöksen antaminen#

Kolme reittiä, ja ne elävät rinnakkain.

Scripts#

JavaScript elinkaarikoukuilla, ja oma referenssinsä:

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() {}

Törmäykset ja triggerit laukeavat sekä 2D:ssä että 3D:ssä, ja kumpikin puoli saa oman kontaktinormaalinsa: other.contact.normal osoittaa toisesta entiteetistä tätä kohti. Juuri se antaa skriptin erottaa "minä laskeuduin sen päälle" tilanteesta "se laskeutui minun päälleni": platformer-tallaus lukee other.contact.normal.y > 0.5.

Skriptieditori#

F2, tai Add Script entiteetissä. Monaco-editori välilehdillä, useita skriptejä auki kerralla, kukin säilytettynä selaimen omassa tietokannassa projektitiedoston sijaan, joten tallentamaton puskuri selviää sivun uudelleenlatauksesta.

Viisi murretta, yksi ohjelma. Kielikytkin tarjoaa JavaScript, BASIC, Python, C# ja Rust. Se, mitä se tekee, ei ole se, miltä se näyttää: JavaScript on totuuden lähde, ja muut neljä ovat näkymiä, transpiloituna tallennetusta JS:stä. Vaihto Pythonista Rustiin ei käännä Pythonia, vaan palaa JS:ään, josta Python oli generoitu, ja kääntää sen. Moniaskelinen käännös on se, mikä turmelee ohjelman, ja editori kieltäytyy tekemästä sitä.

Kolmetoista mallipohjaa viidessä kategoriassa, kukin merkittynä vaikeustasolla:

KategoriaMallipohjat
Basicstyhjä skripti elinkaarirungoilla
Movementauto-rotate · WASD · akselipohjainen 3D-liike · fysiikkahyppy maan tunnistuksella · third-person-kameraseuranta
Gameplaytrigger-vyöhyke · elämäpalkki vahingolla ja parantumisella · ajastettu spawner
AIpartiointi pelaajan läheisyyshälytyksellä
AdvancedVerse-tyylinen asynkroninen cutscene · rakenteinen samanaikaisuus · koko API-pinnan testi

Hahmo-ohjaimen esiasetukset ja pelin aloitusrekvisiitat (pickup, hazard) näkyvät samassa listassa, mikä on käytännöllinen tapa pudottaa toimiva ohjain tuodun hahmon päälle.

Ajaminen ja debuggaus. F5 ajaa, F9 asettaa breakpointin. Debuggeri pysähtyy riville, askeltaa yhden kehyksen, ja raportoi eläviä arvoja watch-lausekkeiden kautta. Script Lab ajaa ohjelman ilman kiinnitettyä entiteettiä lainkaan, muistilehtiönä API:lle objektin komponentin sijaan.

Koodin rinnalla: API-referenssi, symbolilista avoimelle tiedostolle, ja snippet-kirjasto suosikeilla ja viimeisimmillä. Ctrl+S tallentaa, Ctrl+F etsii, Ctrl+H korvaa, ja editorin mukana tulee kahdeksan teemaa.

Blueprintit ja käytökset#

Visuaalinen kaavio, kirjasto valmiita käytöksiä, ja tilakone kerrostettuna käytöspinon päälle.

Kaaviossa on 267 solmua kahdessakymmenessäkahdessa ryhmässä, Math, Scene, Entity, Animation, Flow Control, String, Events, Physics, UI, Array, Vector, Transform, Debug, Input, Utility, Game, Boolean, Camera, Tween, Variables, Audio sekä 2D- ja 3D-perheet. Kolme ominaisuutta erottaa ne, ja niistä kaavio koostuu: 17 event-solmua käynnistävät suorituksen, 117 pure-solmua laskevat arvon ilman sivuvaikutusta ja ilman suoritusnastaa, ja 9 latent-solmua valmistuvat myöhemmin: ne ovat niitä, jotka tekevät viiveestä tai tweenistä ilmaistavan ilman omaa tilakonetta.

Neljä työkalua: select V, pan H, comment C, reroute R, kankaalla, joka zoomaa 0.1×:stä 3×:ään pienoiskartalla. Muuttujia on kuutta tyyppiä, boolean, integer, float, string, vector3 ja object. Jokaisen solmun kuvaus on sen tooltipissä, mikä on ainoa paikka, jossa noin iso kirjasto voi selittää itsensä.

Tilakone#

Oma paneelinsa, ja tarkoituksella eri kuin Animaten: Animaten ehdot ovat litteä enum, jolla on käsin kirjoitettu käyttöliittymä per tapaus, kun taas nämä ovat rakenteisia ja puhuvat maailmasta.

Seitsemän ehtoa, ja jokainen on kysymys kohtauksesta: sees (merkitty kohde kantaman sisällä, valinnaisesti kulman sisällä ja näköyhteydessä), lost (ei kohdetta N sekuntiin), distance kynnysarvoa vasten, health, message received, timer (aika nykyisessä tilassa vietettynä), ja flag (arvo jaetulla blackboardilla). Kaksi yhdistintä, and ja or, ovat molemmat listattuina, vaikka or oli jo olemassa implisiittisesti: kaksi siirtymää samaan tilaan on or, mutta "se näkee minut JA minulla on yhä terveyttä" -tilanteelle ei ollut muotoa lainkaan.

⚠️ Health verrataan murto-osana maksimista, ei koskaan absoluuttisena. Kynnysarvo "alle 30 HP" ei selviä tasapainotuskierroksesta; "alle 0.3" selviää.

Tilaan tultaessa tai siitä poistuttaessa, neljä efektiä: send viesti, set blackboard-avain, play animaatioklippi, tai laukaise nimetty efekti. Mikään niistä ei liikuta mitään, liike pysyy käytöksissä, ja kone päättää, mikä käytös on aktiivinen.

Siirtymä voi alkaa kohdasta *, mikä tarkoittaa mitä tahansa tilaa. Validaattori palauttaa ongelmien listan sen sijaan, että heittäisi virheen ensimmäisestä, joten puolivalmis kone piirtyy silti, ja näet kaiken väärän kerralla. Solmujen sijainnit ovat osa dataa: kaavio, jonka asettelu elää kohtauksen ulkopuolella, palaa sekoitettuna seuraavalle henkilölle, joka sen avaa.

BASIC#

TXT-näyttöikkunatila on klassinen BASIC-ympäristö mukana tulevine demo-ohjelmineen, ja kielellä on oma referenssinsä. Se on täällä oikea kieli, ei lelu: monitiedostomoduulit (#INCLUDE), tyypitetyt numerot (etumerkilliset ja etumerkittömät 8/16/32/64-bittiset, float32 ja float64), sisäkkäiset tietueet, objektimetodit SELF:llä, referenssit (REF/BYREF), rakenteinen TRY/CATCH/FINALLY, ehdollinen käännös, korutiinit, tyypitetyt kahvat, ja WebGPU compute storage buffereilla ja raa'alla WGSL:llä.

OPTION EXPLICIT on valinnainen; klassiset implisiittiset muuttujat pysyvät oletuksena, jotta tuodut ohjelmat toimivat yhä.

Pelaaminen ja julkaisu#

Play#

Play, Pause, Stop. Pysäytyksessä banneri raportoi, mitä istunto muutti, joten play-tilan muokkaus ei koskaan jää hiljaa voimaan eikä katoa hiljaa. Istunnot voidaan nauhoittaa ja toistaa bugiraporttiin, ja skenaariokirjanmerkit antavat pelitestin alkaa kentän keskeltä.

Build#

Build ottaa pelityypin (tunnistettu kohtauksesta, tai asetettu käsin: sidescroller/platformer, first/third person, text-based) ja kohteen.

  • Web: WebGPU WebGL-varajärjestelmällä, valinnainen WebXR (VR/AR), minifiointi, FPS-laskuri, ja embed assets -optio, joka tuottaa yhden tiedoston.
  • Desktop ja mobile: natiivit buildit. Kohtaus viedään datana (scene.glb + scene.json) ja käännetään generoidun Bevy (Rust) -projektin kautta; skriptit ajautuvat siellä muuttumattomina upotetulla QuickJS-ajonaikaisella ympäristöllä.

Pakkaus on säädettävissä akseleittain, algoritmi, tekstuurit, meshit, laatuesiasetuksella, joka sitoo ne yhteen. Buildit säilyvät historiassa kokoineen (alkuperäinen verrattuna pakattuun) ja ne voidaan ladata uudelleen myöhemmin.

Natiivi build sisältää vain sen, minkä viejä osaa viedä. glTF ei kaappaa mukautettuja shadereita, ohuita instansseja, proseduraalista taivasta tai jälkikäsittelyä, joten ajonaikainen järjestelmä, jota ei ole siirretty Bevy-puolelle, puuttuu työpöytä- tai mobiilibuildista, vaikka se näyttää täydelliseltä webissä. Tarkista natiivi build ennen kuin luotat siihen.

Multiplayer#

Multiplayer room -paneeli yhdistää kohtauksen Colyseus-pelipalvelimeen. Ilmainen jaettu testipalvelin on käytettävissä ilman tiliä ja ilman asetuksia; projektille voidaan myös antaa oma palvelimensa. Huone avautuu jakokoodilla, jonka voit pitää itselläsi tai jakaa eteenpäin.

Tiedostot, joita se lukee ja kirjoittaa#

Natiivi formaatti.engine
Tuo.glb, .gltf, .obj, .fbx, .png, .svg, .mp4, .webm, .mov, .scene
Vieweb-build, natiivi työpöytä-/mobiilibuild, scene.glb + scene.json

Työn lähettäminen muihin studioihin#

Hyväksyy meshejä Sculptista, Retopolta ja Pigmentistä, kokonaisia kohtauksia Renderistä, pikselitaidetta, animaatioita, PBR-materiaalisettejä Matterista, 2D-rigejä, videoprojekteja, kuvia, vektorikuvitusta, ja Vectra-objekteja.

Tuottaa 2D-rigejä.

Vectra-näyttöluonnos saapuu rakenteena, ei kuvana. Siitä tulee HUD-hierarkia, jonka Engine voi asetella ja skriptata: ero suunnitelman, jonka voi johdottaa toimivaksi, ja sen kuvakaappauksen välillä.

Pikanäppäimet#

Cmd/Ctrl + K tavoittaa Enginen omat komennot paletista, globaalien rinnalla. Enginellä on myös omissa asetuksissaan oma, haettava pikanäppäinpaneeli; siinä on paljon enemmän kuin mahtuisi pikanäppäinsivulle.

Rajoitukset ja yleiset sudenkuopat#

  • Tyhjä näyttöikkuna on yleensä selaimen vika, ei kohtauksen. Engine tarvitsee WebGL 2:n; tarkista, että laitteistokiihdytys on päällä.
  • Systems ja Tools jakavat yhden vetolaatikon. Jos paneeli "katosi", se on todennäköisesti toisessa.
  • Konsoli on ensimmäinen paikka, josta katsoa, ei viimeinen: se linkittää virheet niiden aiheuttaneeseen entiteettiin.
  • Play-tilassa lisätty komponentti ei välttämättä selviä pysäytyksestä. Lue banneri, joka ilmestyy, kun pysäytät.
  • Physics eroaa 2D:n ja 3D:n välillä ratkaisijassaan, vaikka skriptin callbackit ovat samat. Lepäävä kontakti 2D:ssä tunnistetaan 2 mm:n "ihon" avulla, koska ratkaisija tuo penetraation tarkalleen nollaan ennen tunnistuksen ajoa.