Engine
Die Spiel-Engine: Szenengraph, Komponenten, Scripting, Physik, eine PBR-Pipeline, Welt-Editoren und native Builds für Desktop und Mobile.
In einem Satz#
Eine vollständige Game-Engine im Browser: eine Szene bauen, ihr Verhalten geben, Play drücken, und sie ins Web oder in ein natives Desktop- und Mobile-Binary exportieren.
Sie ist mit weitem Abstand das größte Studio in aukimi. Diese Seite bildet sie so ab, wie es die Oberfläche tut, nach der Schublade, in der jedes Panel lebt, statt Funktionen alphabetisch aufzulisten.
Der Aufbau#

| Menüleiste | File · Edit · View · Windows · Run · Plugins |
| Werkzeugleiste | Projektname, Rückgängig/Wiederholen, der Viewport-Modus-Umschalter (3D · 2.5D · 2D · TXT), der Szenenwähler, die vier Panel-Schaltflächen, FX Master, HUD, das Auflösungsfeld, Transport (Play, Pause, Stop) und Build |
| Links | eine Symbolleiste, Szenengraph, Liste, Audio, Konsole, und das jeweils geöffnete Panel |
| Mitte | der Viewport, mit eigener Gizmo-Leiste (Verschieben, Drehen, Skalieren, Welt/Lokal, Raster, Einrasten, Rahmen) und einem Qualitätswähler |
| Rechts | der Inspector für die ausgewählte Entität |
| Unten | Console und Profiler, nebeneinander |
| Statusleiste | Modus, Viewport-Dimension, Entitätsanzahl, Rasterstatus |
Die vier Panel-Schaltflächen#

Sie verhalten sich nicht alle gleich, und der Unterschied lohnt sich zu kennen, bevor Sie etwas suchen gehen:
| Schaltfläche | Verhalten |
|---|---|
| Systems | öffnet eine Schublade |
| Tools | öffnet dieselbe Schublade, Systems und Tools schließen sich gegenseitig |
| Assets | schaltet ein dauerhaftes Dock um |
| Scripts | öffnet ein Modal |
Systems und Tools teilen sich absichtlich einen Platz; sie stehen nebeneinander, damit sichtbar ist, dass sie das tun.
Systems#
Die eigenen Subsysteme der Engine: die Dinge, die eine Szene hat, statt der Dinge, mit denen Sie bauen.
| Gruppe | Panels |
|---|---|
| Plugins | der Plugin-Browser |
| 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#
Der Schalter FX Master auf der Werkzeugleiste schaltet die gesamte Post-Pipeline mit einem Klick ein und aus: der schnellste Weg zu sehen, was sie kostet. Einzeln: Bloom, Depth of Field, SSR, SSAO, GTAO, SSGI, Temporal AA, FXAA, Motion Blur, volumetrischer Nebel, Contact Shadows, Farbkorrektur, Filmkorn, chromatische Aberration, Vignette und Tonemapping, dazu Nanite-artige Geometrie und Hi-Z-Occlusion.
Look Presets sind komplette Konfigurationen des Obigen. Render Style ändert das Register, stilisiert statt fotografisch. Shader Lab ist der Ort, um eigene zu schreiben. Mesh LOD und Post Process Volumes sind die beiden, die sich bei einer großen Szene selbst bezahlt machen: Level of Detail pro Mesh, und Nachbearbeitung, die nur innerhalb eines Volumes wirkt.
Der Renderer ist Babylon.js. Er startet auf WebGL und wechselt selbst zu WebGPU, sobald der Browser es hat, und fällt von selbst zurück, falls das fehlschlägt.
Gameplay-Systeme#
Physics deckt sowohl den 3D-Solver (Havok) als auch den 2D-Solver ab. AI & Navigation ist das Navmesh und die Agenten darauf. Gameplay Zones sind Trigger-Volumes mit angehängtem Verhalten. Multiplayer Room verbindet die Szene mit einem Colyseus-Server (siehe unten).
World-Systeme#
Level Streaming lädt und entlädt Teile eines Levels, während sich die Spielfigur bewegt. Baking berechnet Beleuchtung vorab; Light Probes erfassen indirektes Licht und Reflexionen an Punkten im Raum. Decals projizieren Detail auf Oberflächen, ohne Geometrie hinzuzufügen.
Tools#
Die Dinge, mit denen Sie bauen.
| Gruppe | 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 |
World-Generatoren#
Terrain, Water, Sky und vier Content-Generatoren, Bäume, Pflanzen, Steine und Kitbash-Teile. Sie haben ein eigenes Kapitel weiter unten.
Gameplay-Autoring#
Inventory, Data tables (Tools → Data) und Dialogue Trees sind die drei Editoren, die einem Spiel Inhalt geben, ohne dass dieser Inhalt im Code liegen muss weiter unten im Detail.
Animation#
Timeline für Entitätsanimation, Cinematic Sequencer für Shots, und Camera Tools für den Bildausschnitt. Siehe Animation und Kamera.
Die Welt-Editoren#
Sieben Panels unter Tools → World. Sie sind der schnelle Weg, eine Szene zu füllen, und der Grund, warum ein Level nicht mit einer Modellier-Sitzung beginnen muss.
Terrain#
Eine Szene kann mehrere Terrains enthalten; jedes ist eine Zeile in der Liste Terrains und wird in einer von drei Auflösungen erstellt, 128² (schnell), 256² (ausgewogen) oder 512² (detailliert).
Das Panel hat zehn Modi, und sie teilen eine Sache: die in Masks gemalte Maske schränkt jeden von ihnen ein.
| Modus | Was er tut |
|---|---|
| Sculpt | siebzehn Pinsel auf dem Höhenfeld |
| Paint | bis zu acht Texturebenen, über zwei Splatmaps |
| Generate | Rauschen, automatische Texturierung, und Import realer Geländehöhen |
| Sketch | Grate und Täler zeichnen, ein passendes Terrain synthetisieren |
| Masks | jeden anderen Modus auf einen Teil der Oberfläche beschränken |
| Water | Meeresspiegel, und die Wahl zwischen Terrain-Wasser und einem FFT-Ozean |
| Paths | eine Bézier-Straße, in den Boden eingebacken |
| Vegetation | Pinsel- oder regelbasierte Streuung |
| SDF | ein raymarchtes Terrain, gerendert statt vermascht |
| Biomes | Boden, Pflanzen, Bäume und Steine in einem einzigen Durchgang |
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-Klick legt die Quelle fest), Blur B, Ramp R,
dazu die zwei Wasser-Werkzeuge, River zeichnet einen Lauf, Lake
füllt an einem Punkt.
Der Pinsel selbst hat Dynamik: Druckkurve, Lazy Mouse, Falloff, Symmetrie,
Muster, und Jitter sowohl auf Größe als auch auf Stärke. Stamp trägt
sechs Formen, Krater, Bergspitze, Plateau, Flusstal, Kuppel, Rauschhügel.
Erosion kommt in zwei Formen: Der Pinsel E wirkt lokal, während
Adjustments hydraulische, thermische und Wind-Erosion über das
gesamte Terrain laufen lässt.
Paint. Acht Ebenen, weil zwei RGBA-Splatmaps je vier Kanäle bieten. Die Materialbibliothek ist nach Kategorie sortiert, Gras, Erde, Wald, Steine, Straßen und Oberflächen, Klippen, Sand, Schnee, vulkanisch, Feuchtgebiet, Fantasy, und eigene, und jede Ebene trägt UV-Skalierung, Verdrängung (Displacement), eine Detailkarte, und Oberflächenrelief (Bump-Stärke und Parallax-Tiefe). Break texture tiling (cell bombing) ist die Einstellung, die verhindert, dass eine wiederholte Bodentextur wie ein Raster wirkt.
Generate baut aus Rauschen auf, dann weist Generate Textures Materialien nach Höhe und Neigung zu, mit Nord-Süd-Schattenvariation und Sand- oder Kiesstränden dort, wo Wasser ist. Real World importiert öffentliche NASA/USGS-Höhenkacheln: Wählen Sie ein Wahrzeichen oder geben Sie Koordinaten ein, wählen Sie die Zoomstufe, und das Panel meldet die Höhenspanne, die es zurückgebracht hat.
Sketch ist der andere Weg hinein. Zeichnen Sie Grat- und Talstriche auf eine 2D-Karte, wählen Sie bis zu drei echte Referenzlandschaften, und das Terrain wird passend zur Skizze synthetisiert, wahlweise mit dem bereits Vorhandenen vermischt, in einem Durchgang automatisch texturiert und erodiert.
Masks werden mit einem Pinsel gemalt und dann als Ganzes bearbeitet: löschen, umkehren, weichzeichnen, wachsen lassen, schrumpfen. Die Smart Masks leiten eine Maske aus dem Terrain selbst ab, nach Höhe, nach Neigung, nach Ebene oder nach Vertiefung.
Paths. Klicken, um Kontrollpunkte zu setzen, und eine glatte Kurve läuft durch sie hindurch; ziehen Sie die bernsteinfarbenen Punkte, um sie zu verschieben, die cyanfarbenen Griffe, um die Kurve zu biegen. Bake Path ebnet den Boden darunter ein, malt die Textur und hebt die Böschungen an.
Vegetation hat zwei Hälften. Der Pinsel platziert und entfernt Instanzen von Hand; die Scatter Rules platzieren sie nach Bedingung, Ebenengewicht, Seed, Min-/Max-Skalierung, und dem Höhen- und Neigungsband, das jedes Asset akzeptiert. Gras und Blumen blenden hinter einer einstellbaren Zeichendistanz aus, und Export to Scene macht aus den Instanzen Szenenobjekte.
Biomes ist die Ein-Klick-Version von alledem: ein Biom wählen, die gewünschten Kategorien ankreuzen (Boden, Bäume, Pflanzen und Gras, Blumen, Algen in Wassernähe, Steine), eine Dichte festlegen, und Apply Biome malt den Boden und streut alles, mit einer Meldung, wie viele Instanzen von jedem platziert wurden. Die Baum-Altersvielfalt mischt Setzlinge bis Uralt-Bäume, statt überall denselben Baum zu stempeln, und ground blend (RVT) verschmilzt jede Steinbasis mit der Terrainfarbe darunter.
SDF ist ein anderer Renderer, kein anderes Werkzeug: Das Terrain wird aus einem Distanzfeld raymarched, Form nach Oktaven, Lacunarity und Persistenz, Texturierung nach Gras/Fels/Schnee mit einer Schneegrenze und einem Neigungsschwellwert, und mit eigenen weichen Schatten, Ambient Occlusion und Nebel.
Große Terrains haben ein LOD-System mit Skirt-Geometrie (die die Lücken zwischen den Stufen schließt), sanften Stufenübergängen, Frustum Culling und einer Statistik-Overlay. Höhenkarten importieren und exportieren als 16-Bit-PNG, 8-Bit-PNG oder RAW 16-Bit; Splatmaps als eine RGBA-PNG oder eine Datei pro Ebene; und das gesamte Terrain, oder nur seine Einstellungen, als Preset.
Sky Studio#
Die Atmosphäre. Vier Himmelstypen, einfarbig, Verlauf, HDRI, und eine physikalische Atmosphäre mit Rayleigh- und Mie-Streuung, Mie-Absorption, Ozon, Bodenalbedo, Trübung, Planetenradius und Atmosphärendicke.
Alles hängt an der Tageszeit, die von selbst durchlaufen kann: die Sonne nach Höhe, Azimut und Intensität, mit eigener Schattenintensität; der Mond nach Phase; Sterne mit Funkeln; und eine Aurora. Volumetrische Wolken haben Dicke, Erosion, Rauschskala und Curl-Verzerrung, und Licht über Absorption, Streuung, Umgebungslicht und einen Powder-Term; Zirren und der Belt of Venus sind separat. Aerial Perspective ist der Dunst, der sich mit der Entfernung verdichtet und ferne Geometrie zum Horizont hin ausblendet, es ist die Einstellung, die eine Landschaft groß wirken lässt.
Zehn Voreinstellungen zum Einstieg: klarer Tag, Morgendämmerung, Sonnenuntergang, Abenddämmerung, Nacht, bedeckt, stürmisch, Wüste, arktisch und Weltraum.
Water#
Zwei Tabs: Ocean (FFT) für die offene See, Shore & lakes für alles andere.
⚠️ Wasser wird im Terrain-Editor erzeugt: den Fluss- und Seewerkzeugen, oder Show Water, und hier abgestimmt. Öffnet man dieses Panel bei einer Szene ohne Wasser, erhält man Einstellungen ohne etwas, worauf man sie anwenden könnte.
Shore-Wasser trägt Farbe, Deckkraft, Wellenstärke und -geschwindigkeit, Choppiness, Schaumbreite und Fresnel, mit Screen-Space-Reflexionen und Brechungsunschärfe. Darunter liegt der WGSL-Shader selbst: zwei Normalen-Skalen mit eigenen Scroll-Richtungen und -Geschwindigkeiten, Schaumschwellwert und -weichheit, Brechungsstärke und Brechungsindex, und das Licht im Wasser, Absorption, Trübung, Streuung und Transluzenz.
Tree Generator#
Zwei Modi, Tree und Trunk. Ein Baum ist laubabwerfend oder immergrün, hat ein Alter von Setzling bis uralt, und kann lebendig, tot, ein Snag oder ein gefällter Stamm sein. Alles ist geseedet, Randomize seed ist also der schnellste Weg zu einem anderen Baum mit demselben Charakter.
Die Form ist pro Astebene: Kinder, Länge, Radius, Verjüngung, Knorrigkeit, Verdrehung, Sektionen, Segmente, Winkel und Starthöhe, dazu natürliche Variation, Phototropismus und Gravitropismus: die beiden, die einen Baum zum Licht neigen und unter seinem eigenen Gewicht hängen lassen, und eine globale Kraft mit eigener Stärke. Die Basis hat Wurzelanlauf (Lappen und Höhe) und Strebepfeiler.
Blätter sind Billboards, ein- oder doppelseitig, mit Anzahl, Größe, Winkel, Varianz, Bündelung, Kräuselung, Hang, Glanz und gerundeten Normalen. Rinde kommt in sechs Stilen, gerillt, Espe, Kiefer, Birke, glatt, Palme, mit Relief, Moos, feuchter Basis, Sonnenbleiche, Kronen-Ambient-Occlusion und einer Herbstfärbung. Vier Jahreszeiten schalten das gesamte Erscheinungsbild auf einmal um.
Forest streut viele auf einmal: Anzahl, Streuradius, Skalenvarianz, und eine Altersmischung (einheitlich, natürlich, jung, alt, gleichmäßig). Add age progression platziert alle fünf Lebensstufen in einer Reihe, der schnellste Weg, sie nebeneinander zu beurteilen. Ein Baum verlässt das Modul als Szenen-Entität oder als GLB, und jede Einstellung lässt sich als Preset speichern.
Plant Generator#
Fünf Arten, Blume, Büschel, Kraut, Farn, Gras, die sich einen Stängel (Anzahl, Höhe, Dicke, Krümmung, Farbe) und Blätter (Anzahl, Größe, Breite, Winkel) teilen. Farne fügen Fiederpaare, Fiederschwung und Wedelbogen hinzu; Gras fügt Halmanzahl und Bogen hinzu.
Eine Blüte ist bei jeder Art optional: Blütenblätter, Blütenblattreihen, Länge, Breite, Kräuselung, Spitzenschärfe, Blüte, Zentrumsgröße, und drei Farben, Blütenblatt, Blütenblattspitze und Zentrum, mit Transluzenz und Rauheit dafür, wie Licht durch das Blatt fällt. Eine der Szene hinzufügen, viele streuen, oder als GLB exportieren.
Rock Generator#
Drei Arten, Fels, Stein, Klippe, in drei Stilen: realistisch, Toon, oder Low Poly mit Umrisslinie.
Die Form ist Rauschen über einer Kugel: Skala, Stärke, Oktaven, Persistenz, Warp und eine Ridged-Option, dazu Strata mit eigener Frequenz und Facet Cuts mit Tiefe und Schärfe für kantigen Stein. Radius, Detail, Abflachung, Formvarianz und ein flacher Boden entscheiden über die Silhouette, und vier Erosions-Voreinstellungen, frisch, verwittert, natürlich, erodiert, bewegen alles auf einmal.
Die Oberfläche hat Farbvariation, Mineraladern, Flechten und Moos, eine Detailtextur mit Kachelung und Stärke, triplanares Blending und Parallax-Relief. Standardmäßig verwendet sie ein mitgeliefertes Stein-Material; schicken Sie ein Material aus Matter an die Engine, um es zu ersetzen.
Kitbash, dieselbe Bibliothek wie Sculpt#
Kitbash teilt sich die Bibliothek mit Sculpt: Dieses Panel und Sculpts Edit Forge lesen eine gemeinsame Bibliothek. Ein dort gebautes Teil wird hier platziert, und ein hier bemaltes Teil kann dorthin zurückgespeichert werden.
Was die Szene speichert, ist das Teil und seine Abmessungen, nicht seine Vertices, weshalb ein kitbashtes Gebäude in der Datei fast nichts kostet und später von seiner Quelle aus aktualisiert werden kann.
Bewaffnen Sie ein Teil aus dem Katalog, und jeder Linksklick platziert es.
Drei Einrast-Modi entscheiden, wo es landet: on terrain (Teile folgen
der Bodenhöhe unter ihnen), on water (die Bauebene liegt auf
Wasserhöhe), und snap to sockets, zielen Sie auf einen Verbindungspunkt
an einem platzierten Teil, und das neue dreht sich, um ihn zu treffen. Eine
Kette wächst von ihrem freien Ende aus, belegte Sockets fallen aus den
Kandidaten heraus, und jeder Klick ist sein eigener Undo-Schritt.
Ctrl/Cmd bleibt der Auswahl vorbehalten, Alt der Rotation. Sammlungen
behalten ihre Quelle und Version, sodass eine Instanz aktualisiert werden
kann, wenn sich das Original ändert.
Die anderen Editoren#
Die Welt-Editoren füllen eine Szene; diese hier geben ihr eine Oberfläche, eine Karte, ihre Inhaltstabellen und die Instrumente, um zu prüfen, was sie kostet.
Der HUD-Editor#
Tools → Editors → UI. Sechs Tabs, Templates, Elements, Layers, Preview, Style und Script: über einer Vorschau, die zwischen drei Gerätegrößen wechselt: Desktop 960×540, Tablet 768×432, Mobile 375×667.
Elemente kommen in drei Gruppen (Display, Data, Input) und
verschachteln sich: panel und flex halten Kinder, der Tab Layers ist
also ein echter Baum statt einer flachen Liste. Der Verlauf reicht fünfzig
Schritte zurück.
⚠️ Der Style-Tab ist CSS-artig, und der Unterschied ist wichtig. Das
HUD wird von Babylons GUI auf dem Canvas gezeichnet, und echtes CSS reicht
dort nicht hin. Die Regeln, die Sie hier schreiben, bilden sich auf
GUI-Eigenschaften ab; die Selektoren sind #name für ein Element, .typ
für eine Art (.text, .panel) und * für alles.
Der Script-Tab ist der andere Weg, eines zu bauen: die ui.*-API,
createText, createPanel, createProgress, createButton, mit zwei
Arten, es auszuführen. Build Layout führt es zur Design-Zeit aus und
hinterlässt echte Elemente, die von Hand angestoßen werden können;
Run Live führt es im Spiel aus.
Zwei Verbindungen nach außen: HUD-Artwork öffnet sich in Inkwell oder Vectra und wird zurückverlinkt statt kopiert, und ein Vectra-Dokument kann als HUD-Elemente importiert werden. Das Minimap-Element ist eine eigene Sache, mit Reichweite, Raster, und Markern für Spielfigur, Feinde, Verbündete, Gegenstände und Ziele.
Der Tilemap-Editor#
Elf Werkzeuge, Pinsel, Radierer, Füllung, Rechteck, Auswahl, Pipette, Stempel, Autotile, Prop, Zone und Pfad, auf vier Kartenprojektionen: orthogonal, isometrisch, gestaffelt isometrisch und hexagonal.
Autotiling liefert vier Vorlagen, und die Zahl in jedem Namen ist die Anzahl der Tiles, die sie erwartet: Blob 47 (volle Ecken und Kanten), Wang 16 (kantenbasiert), Simple 4 (NSEW), und RPG Maker A2 (48 Tiles, kompatibel mit dort erstellten Karten).
Zwei Ebenen sitzen über den Tiles selbst. Zones malt Gameplay-Bedeutung, bebaubar, Wasser, Wald, Straße, Farm, Wohngebiet, Gewerbegebiet, gesperrt, und props platziert Objekte nach Kategorie: Bäume, Steine, Gebäude, Vegetation, Wasser, Pfade. Karten leben in der eigenen Datenbank des Browsers, eine ungespeicherte übersteht also ein Neuladen.
Inventory, Data Tables und Dialoge#
Die drei Editoren, die einem Spiel Inhalt geben, ohne dass dieser Inhalt im Code liegen muss.
Inventory bearbeitet einen Katalog und wendet ihn auf die Szene an. Ein
Gegenstand trägt Aktionen, und eine Aktion ist ein Trigger: use,
equip, unequip, dazu einer von acht Typen: message, heal, damage,
grant, remove, event, toast, scene. Das Panel selbst hat drei Layouts
(Raster, Liste, kompakt), drei Erscheinungs-Voreinstellungen (Graphit,
Mitternacht, warm), und vier visuelle Slots, Hintergrund, Slot,
Ausrüstung, Tooltip, die zur richtigen Neugestaltung in einem anderen Modul
geöffnet werden.
Data tables sind typisiert: eine Spalte ist text, number, bool
oder ref. CSV geht rein und kommt raus. Jede Bearbeitung läuft über reine
Funktionen, was dafür sorgt, dass die Tabelle, die der Export schreibt,
identisch mit der Tabelle ist, die der Build liest.
Dialogue trees sind Knoten mit einer sprechenden Figur und einer
Zeile. Ein Knoten führt entweder zu genau einem next weiter, oder
verzweigt in choices, jede mit eigenem Text und eigenem Ziel, der
Verzweigungs-Schalter ist die einzige strukturelle Entscheidung im Editor.
Animation und Kamera#
Cinematic Sequencer baut Sequenzen mit einer Dauer und einem Loop-Schalter, einer Spur pro Entität, und Keyframes, die am Playhead aufgenommen werden, Add Key übernimmt den aktuellen Wert der Entität, statt Sie zur Eingabe aufzufordern. Der Graph-Editor darunter zeigt Zeit gegen Fortschritt, mit runden Griffen für Easing: die Steigung ist die Geschwindigkeit. Shots haben eigene Dauern, und ein Cinemascope-Bildausschnitt (1.422:1) steht für die Letterbox zur Verfügung.
Camera Tools deckt FOV, Position, Ziel, Modus und Geschwindigkeit ab, dazu Bookmarks für die Blickwinkel, zu denen Sie immer wieder zurückkehren, und Kamera-Ebenen.
Audio#
Der Audio Manager hält Audio-Events, Spuren und einen Mixer mit Kanälen und Kategorien. Effekte pro Quelle sind ein Low-Pass, ein High-Pass und ein Reverb Send; ein random-Modus wählt zwischen mehreren Clips, damit ein wiederholter Klang nicht wie eine Schleife wirkt. Scrubbing spielt Audio ab, während Sie den Playhead ziehen.
Der Profiler#
Eine Frame-Aufschlüsselung, kein Frame-Zähler: Kamera-Rendering, Mesh-Auswertung, Partikel, Sprites und Shader-Kompilierung, jedes als „echt" oder „geschätzt" markiert, damit eine Zahl, die aus einer Messung stammt, nie mit einer verwechselt wird, die aus einem Modell stammt. Zähler daneben: Meshes und aktive Meshes, Lichter, Kameras, Physik-Körper.
Die Aufnahme erfolgt explizit und endet in einer Issues-Liste statt in einem zu interpretierenden Graphen: niedrige FPS, hohe Draw Calls, hohe Dreieckszahl, hoher Speicherverbrauch, gemessen an der von Ihnen gesetzten Ziel-Bildrate.
Eine Szene bauen#
Entitäten#

Eine neue Szene kommt mit einer Main Camera, einem Directional Light, einer Skybox und einer Ground Plane.

Was Sie hinzufügen können: Empty, Cube, Sphere, Cylinder, Plane, Light, Camera, Script, Mesh, dazu zwei Familien, die vorverdrahtet ankommen:
- Characters: Third-Person, First-Person (FPS), Top-Down, Platformer, Basic.
- Props: Pickup (heal) und Hazard (damage).
Der Szenengraph durchsucht, filtert nach Typ, und fügt hinzu, dupliziert oder löscht; Entitäten verschachteln sich, und Umhängen ist ein Ziehen. Platzierung hat Einrasten und einen Scatter Brush zum schnellen Bevölkern von Boden.
Der Inspector#
Transform (Position, Rotation, Skalierung), ein Enabled-Schalter, und die Komponenten der Entität: hier hinzugefügt, konfiguriert und entfernt, mit Add Script ganz unten. Wählen Sie mehrere Entitäten aus, und der Inspector wechselt in die Stapelbearbeitung, sodass eine Feldänderung bei allen ankommt.
Die Konsole#
Nicht nur ein Log. Sie filtert nach Stufe (alle, Logs, Info, Warnung,
Fehler), verknüpft eine Meldung mit der Entität zurück, die sie erzeugt
hat, und trägt einen Ausdrucks-Prompt: einen Ausdruck eingeben,
Enter führt ihn gegen die laufende Szene aus, die Pfeiltasten laufen
den Verlauf entlang.
Ihr Verhalten geben#
Drei Wege, und sie bestehen nebeneinander.
Scripts#
JavaScript mit Lifecycle-Hooks, und eine eigene Referenz:
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() {}
Kollisionen und Trigger feuern sowohl in 2D als auch in 3D, und jede
Seite erhält ihre eigene Kontaktnormale: other.contact.normal zeigt von
der anderen Entität zu dieser hin. Genau das lässt ein Skript
unterscheiden, ob „ich bin darauf gelandet" oder „es ist auf mir gelandet":
ein Platformer-Stomp liest other.contact.normal.y > 0.5.
Der Script-Editor#
F2, oder Add Script auf einer Entität. Ein Monaco-Editor mit Tabs,
mehrere Skripte gleichzeitig geöffnet, jedes in der eigenen Datenbank des
Browsers gehalten statt in der Projektdatei, ein ungespeicherter Puffer
übersteht also ein Neuladen.
Fünf Dialekte, ein Programm. Der Sprachschalter bietet JavaScript, BASIC, Python, C# und Rust. Was er tut, ist nicht, wonach es aussieht: JavaScript ist die einzige Quelle der Wahrheit, und die anderen vier sind Ansichten, aus dem gespeicherten JS transpiliert. Von Python zu Rust zu wechseln übersetzt nicht Python, es geht zurück zum JS, aus dem das Python erzeugt wurde, und übersetzt das. Mehrstufige Übersetzung ist es, was ein Programm verdirbt, und der Editor weigert sich, das zu tun.
Dreizehn Templates in fünf Kategorien, jedes nach Schwierigkeit gekennzeichnet:
| Kategorie | Templates |
|---|---|
| Basics | leeres Skript mit Lifecycle-Stubs |
| Movement | Auto-Rotate · WASD · achsenbasierte 3D-Bewegung · Physik-Sprung mit Bodenerkennung · Third-Person-Kamera-Folge |
| Gameplay | Trigger-Zone · Lebensbalken mit Schaden und Heilung · zeitgesteuerter Spawner |
| AI | Patrouille mit Näherungsalarm für Spielfigur |
| Advanced | Verse-artige asynchrone Zwischensequenz · strukturierte Nebenläufigkeit · vollständiger API-Oberflächentest |
Die Charakter-Controller-Voreinstellungen und die Spiel-Starter-Props (Pickup, Hazard) erscheinen in derselben Liste, was der praktische Weg ist, einen funktionierenden Controller auf einen importierten Charakter fallen zu lassen.
Ausführen und Debuggen. F5 führt aus, F9 setzt einen Breakpoint.
Der Debugger hält bei einer Zeile an, tritt einen einzelnen Frame weiter,
und meldet Live-Werte über Watch-Ausdrücke. Script Lab führt ein
Programm ganz ohne angehängte Entität aus, ein Scratchpad für die API
statt eine Komponente auf einem Objekt.
Neben dem Code: eine API-Referenz, eine Symbolliste für die offene
Datei, und eine Snippet-Bibliothek mit Favoriten und zuletzt verwendeten.
Strg+S speichert, Strg+F sucht, Strg+H ersetzt, und der Editor liefert
acht Themes mit.
Blueprints und Verhaltensweisen#
Ein visueller Graph, eine Bibliothek fertiger Verhaltensweisen, und eine Zustandsmaschine, die über dem Verhaltens-Stapel liegt.
Der Graph trägt 267 Nodes in zweiundzwanzig Gruppen, Math, Scene, Entity, Animation, Flow Control, String, Events, Physics, UI, Array, Vector, Transform, Debug, Input, Utility, Game, Boolean, Camera, Tween, Variables, Audio und die 2D- und 3D-Familien. Drei Eigenschaften trennen sie, und daraus besteht der Graph: 17 Event-Nodes starten die Ausführung, 117 Pure Nodes berechnen einen Wert ohne Seiteneffekt und ohne Ausführungs-Pin, und 9 Latent Nodes enden später, das sind die, die eine Verzögerung oder ein Tween ausdrückbar machen, ohne eine eigene Zustandsmaschine zu brauchen.
Vier Werkzeuge: Auswählen V, Schwenken H, Kommentar C, Umleiten R,
über eine Leinwand, die von 0,1× bis 3× mit einer Minimap zoomt. Variablen
kommen in sechs Typen, boolean, integer, float, string, vector3 und
object. Die Beschreibung jedes Nodes steht in seinem Tooltip, dem einzigen
Ort, an dem eine Bibliothek dieser Größe sich selbst erklären kann.
Die Zustandsmaschine#
Ein eigenes Panel, und absichtlich nicht das des Animators: Die Bedingungen des Animators sind ein flaches Enum mit von Hand geschriebener UI pro Fall, während diese hier strukturiert sind und über die Welt sprechen.
Sieben Bedingungen, und jede ist eine Frage an die Szene: sees (ein markiertes Ziel in Reichweite, wahlweise innerhalb eines Winkels und in Sichtlinie), lost (kein Ziel seit N Sekunden), distance gegen einen Schwellwert, health, message received, timer (Zeit im aktuellen Zustand verbracht), und flag (ein Wert auf dem gemeinsamen Blackboard). Zwei Kombinatoren, and und or, sind beide gelistet, obwohl or implizit schon existierte, zwei Übergänge zum selben Zustand sind ein or, aber „es sieht mich UND ich habe noch Gesundheit" hatte überhaupt keine Form.
⚠️ Health wird als Bruchteil des Maximums verglichen, nie als absoluter Wert. Ein Schwellwert von „unter 30 HP" übersteht keinen Balancing-Durchgang; „unter 0,3" schon.
Beim Betreten oder Verlassen eines Zustands, vier Effekte: eine Nachricht senden, einen Blackboard-Schlüssel setzen, einen Animationsclip abspielen, oder einen benannten Effekt auslösen. Keiner davon bewegt irgendetwas, Bewegung bleibt bei den Verhaltensweisen, und die Maschine entscheidet, welches Verhalten aktiv ist.
Ein Übergang kann von * ausgehen, was jeden Zustand bedeutet. Der
Validator gibt die Liste der Probleme zurück, statt beim ersten zu
werfen, eine halbfertige Maschine zeichnet sich also trotzdem, und Sie
sehen alles Falsche auf einmal. Node-Positionen sind Teil der Daten: Ein
Graph, dessen Layout außerhalb der Szene lebt, kommt für die nächste
Person, die ihn öffnet, durcheinandergewürfelt zurück.
BASIC#
Der Viewport-Modus TXT ist eine klassische BASIC-Umgebung mit
mitgelieferten Demoprogrammen, und die Sprache hat
eine eigene Referenz. Sie ist hier eine echte
Sprache, kein Spielzeug: mehrdateiige Module (#INCLUDE), typisierte
Numerik (signiert und unsigniert, 8/16/32/64-Bit, float32 und float64),
verschachtelte Records, Objektmethoden mit SELF, Referenzen
(REF/BYREF), strukturiertes TRY/CATCH/FINALLY, bedingte
Kompilierung, Koroutinen, typisierte Handles, und WebGPU-Compute mit
Storage-Buffern und rohem WGSL.
OPTION EXPLICIT ist optional; klassische implizite Variablen bleiben der
Standard, damit importierte Programme weiterlaufen.
Spielen und Ausliefern#
Play#
Play, Pause, Stop. Beim Stoppen meldet ein Banner, was die Sitzung
geändert hat, damit eine Bearbeitung im Play-Modus nie still behalten
oder still verworfen wird. Sitzungen lassen sich aufzeichnen und in einen
Bugreport zurückspielen, und Szenario-Lesezeichen lassen einen
Playtest mitten in einem Level beginnen.
Build#
Build nimmt einen Spieltyp (aus der Szene erkannt, oder von Hand gesetzt: Sidescroller/Platformer, First/Third Person, textbasiert) und ein Ziel.
- Web: WebGPU mit WebGL-Fallback, optionalem WebXR (VR/AR), Minifizierung, einem FPS-Zähler, und einer Option embed assets, die eine einzige Datei erzeugt.
- Desktop und Mobile: native Builds. Die Szene wird als Daten
exportiert (
scene.glb+scene.json) und über ein generiertes Bevy-Projekt (Rust) kompiliert; Skripte laufen dort unverändert auf einer eingebetteten QuickJS-Runtime.
Kompression ist pro Achse konfigurierbar, Algorithmus, Texturen, Meshes, mit einer Qualitäts-Voreinstellung, die sie zusammenbindet. Builds werden in einem Verlauf mit ihren Größen (Original gegen komprimiert) gehalten und können später erneut heruntergeladen werden.
Ein nativer Build enthält nur, was der Exporter zu exportieren weiß. glTF erfasst keine benutzerdefinierten Shader, Thin Instances, den prozeduralen Himmel oder Nachbearbeitung, ein Laufzeitsystem, das nicht auf die Bevy-Seite portiert wurde, fehlt also in einem Desktop- oder Mobile-Build, während es im Web perfekt aussieht. Prüfen Sie einen nativen Build, bevor Sie sich darauf verlassen.
Multiplayer#
Das Panel Multiplayer Room verbindet eine Szene mit einem Colyseus-Spielserver. Ein kostenloser gemeinsam genutzter Testserver ist ohne Konto und ohne Konfiguration verfügbar; ein Projekt kann auch einen eigenen Server erhalten. Der Raum wird über einen Freigabecode identifiziert, den Sie für sich behalten oder weitergeben können.
Dateien, die es liest und schreibt#
| Natives Format | .engine |
| Importe | .glb, .gltf, .obj, .fbx, .png, .svg, .mp4, .webm, .mov, .scene |
| Exporte | ein Web-Build, ein nativer Desktop-/Mobile-Build, scene.glb + scene.json |
Arbeit an andere Module schicken#
Nimmt an Meshes aus Sculpt, Retopo und Pigment, ganze Szenen aus Render, Pixelgrafik, Animationen, PBR-Materialsets aus Matter, 2D-Rigs, Videoprojekte, Bilder, Vektorgrafik, und Vectra-Objekte.
Erzeugt 2D-Rigs.
Ein Vectra-Bildschirm-Mock-up kommt als Struktur an, nicht als Bild. Es wird zu einer HUD-Hierarchie, die die Engine anordnen und skripten kann: der Unterschied zwischen einem Design, das sich verdrahten lässt, und einem Screenshot davon.
Tastenkürzel#
Cmd/Ctrl + K erreicht die eigenen Befehle der Engine aus der Palette,
neben den globalen. Die Engine hat außerdem ein eigenes, durchsuchbares
Tastenkürzel-Panel in ihren Einstellungen; es hat weit mehr, als auf
die Kürzelseite passen würde.
Grenzen und häufige Stolperfallen#
- Ein leerer Viewport ist meist der Browser, nicht die Szene. Die Engine braucht WebGL 2; prüfen Sie, ob die Hardwarebeschleunigung aktiviert ist.
- Systems und Tools teilen sich eine Schublade. Wenn ein Panel „verschwunden" ist, steckt es wahrscheinlich im anderen.
- Die Konsole ist der erste Ort zum Nachsehen, nicht der letzte: Sie verknüpft Fehler mit der Entität, die sie ausgelöst hat.
- Eine im Play-Modus hinzugefügte Komponente übersteht den Stop eventuell nicht. Lesen Sie das Banner, das beim Stoppen erscheint.
- Physik unterscheidet sich zwischen 2D und 3D in ihrem Solver, obwohl die Skript-Callbacks dieselben sind. Ein ruhender Kontakt wird in 2D mit einer 2-mm-Haut erkannt, weil der Solver die Durchdringung auf exakt null bringt, bevor die Erkennung läuft.