Engine
El motor de juegos: Scene Graph, componentes, scripting, física, una pipeline PBR, editores de mundo, y builds nativas de escritorio y móvil.
En una frase#
Un motor de juegos completo en el navegador: construye una escena, dale comportamiento, pulsa play, y expórtala a la web o a un binario nativo de escritorio y móvil.
Es, con diferencia, el módulo más grande de aukimi. Esta página lo recorre tal como lo hace la interfaz, por el panel en el que vive cada cosa, en lugar de enumerar funciones por orden alfabético.
Diseño#

| Barra de menú | File · Edit · View · Windows · Run · Plugins |
| Barra de herramientas | nombre del proyecto, deshacer/rehacer, el selector de modo de viewport (3D · 2.5D · 2D · TXT), el selector de escena, los cuatro botones de panel, FX Master, HUD, la casilla de resolución, el transporte (play, pause, stop) y Build |
| Izquierda | una barra de iconos, scene graph, lista, audio, consola, y el panel que abre |
| Centro | el viewport, con su propia barra de gizmo (trasladar, rotar, escalar, world/local, cuadrícula, ajuste, encuadre) y un selector de calidad |
| Derecha | el inspector de la entidad seleccionada |
| Abajo | Console y Profiler, uno junto al otro |
| Barra de estado | modo, dimensión del viewport, número de entidades, estado de la cuadrícula |
Los cuatro botones de panel#

No se comportan todos igual, y vale la pena conocer la diferencia antes de ponerte a buscar algo:
| Botón | Comportamiento |
|---|---|
| Systems | abre un panel |
| Tools | abre el mismo panel; Systems y Tools se cierran mutuamente |
| Assets | activa o desactiva un panel acoplado permanente |
| Scripts | abre una ventana modal |
Systems y Tools comparten un mismo espacio a propósito; están colocados uno junto al otro para que se note.
Systems#
Los subsistemas propios del motor: las cosas que una escena tiene, en lugar de las cosas con las que construyes.
| Grupo | Paneles |
|---|---|
| Plugins | el navegador de plugins |
| 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#
El interruptor FX Master de la barra de herramientas activa y desactiva toda la pipeline de postproceso con un clic: la forma más rápida de ver cuánto te está costando. Por separado: bloom, profundidad de campo, SSR, SSAO, GTAO, SSGI, TAA temporal, FXAA, motion blur, niebla volumétrica, contact shadows, gradación de color, grano de película, aberración cromática, viñeta y tonemapping, más geometría al estilo Nanite y oclusión Hi-Z.
Look Presets son configuraciones completas de todo lo anterior. Render Style cambia el registro, estilizado en lugar de fotográfico. Shader Lab es donde escribes los tuyos. Mesh LOD y Post Process Volumes son los dos que se amortizan solos en una escena grande: nivel de detalle por mesh, y postprocesado que solo se aplica dentro de un volumen.
El renderizador es Babylon.js. Arranca en WebGL y cambia por su cuenta a WebGPU cuando el navegador lo tiene, y si eso falla vuelve atrás por sí mismo.
Sistemas de gameplay#
Physics cubre tanto el solver 3D (Havok) como el 2D. AI & Navigation es el navmesh y los agentes que se mueven por él. Gameplay Zones son volúmenes de disparo con comportamiento asociado. Multiplayer room conecta la escena a un servidor Colyseus (ver más abajo).
Sistemas de mundo#
Level Streaming carga y descarga partes de un nivel a medida que se mueve el jugador. Baking precalcula la iluminación; Light Probes capturan luz indirecta y reflejos en puntos del espacio. Decals proyectan detalle sobre superficies sin añadir geometría.
Tools#
Las cosas con las que construyes.
| Grupo | Paneles |
|---|---|
| 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 |
Generadores de mundo#
Terrain, water, sky y cuatro generadores de contenido: árboles, plantas, rocas y piezas de kitbash. Tienen un capítulo propio más abajo.
Autoría de gameplay#
Inventory, Data tables (Tools → Data) y Dialogue Trees son los tres editores que permiten que un juego tenga contenido sin que ese contenido viva en el código, en detalle más abajo.
Animación#
Timeline para la animación de entidades, Cinematic Sequencer para los planos, y Camera Tools para el encuadre. Ver Animación y cámara.
Los editores del mundo#
Siete paneles bajo Tools → World. Son la forma rápida de llenar una escena, y la razón por la que un nivel no tiene que empezar con una sesión de modelado.
Terrain#
Una escena puede contener varios terrenos; cada uno es una fila en la lista Terrains y se crea a una de tres resoluciones, 128² (rápida), 256² (equilibrada) o 512² (detallada).
El panel tiene diez modos, y comparten una cosa: la máscara pintada en Masks restringe a todos ellos.
| Modo | Qué hace |
|---|---|
| Sculpt | diecisiete pinceles sobre el campo de altura |
| Paint | hasta ocho capas de textura, repartidas en dos splatmaps |
| Generate | ruido, texturizado automático, e importación de elevación del mundo real |
| Sketch | dibuja crestas y valles, sintetiza un terreno a partir de ellos |
| Masks | restringe cualquier otro modo a parte de la superficie |
| Water | nivel del mar, y la elección entre agua de terreno y un océano FFT |
| Paths | un camino Bézier horneado en el suelo |
| Vegetation | dispersión por pincel o por reglas |
| SDF | un terreno con raymarching, renderizado en lugar de convertido a mesh |
| Biomes | tierra, plantas, árboles y rocas en un único pase |
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-clic fija el origen), Blur B, Ramp R, más las dos
herramientas de agua: River traza un curso, Lake rellena en un punto.
El propio pincel tiene dinámica: curva de presión, lazy mouse, falloff,
simetría, patrón, y jitter tanto de tamaño como de intensidad. Stamp
trae seis formas: crater, mountain peak, plateau, river valley, dome, noise
hill. La erosión llega en dos formas: el pincel E es local, mientras que
Adjustments ejecuta erosión hydraulic, thermal y wind sobre
todo el terreno.
Paint. Ocho capas, porque dos splatmaps RGBA guardan cuatro canales cada uno. La biblioteca de materiales está organizada por categoría: hierba, tierra, bosque, rocas, caminos y superficies, acantilados, arena, nieve, volcánico, humedal, fantasía, y la tuya propia, y cada capa lleva escala UV, desplazamiento, un mapa de detalle, y relieve de superficie (intensidad de bump y profundidad de parallax). Break texture tiling (cell bombing) es el ajuste que evita que una textura de suelo repetida se lea como una cuadrícula.
Generate construye a partir de ruido, y luego Generate Textures asigna materiales por altura y pendiente, con variación de sombra norte/sur y orillas de arena o guijarros donde hay agua. Real World importa tiles de elevación públicos de NASA/USGS: elige un punto de referencia o escribe coordenadas, elige el zoom, y el panel informa del rango de elevación que trajo.
Sketch es la otra vía de entrada. Dibuja trazos de cresta y valle sobre un mapa 2D, elige hasta tres paisajes de referencia reales, y el terreno se sintetiza para encajar con el boceto, opcionalmente mezclado con lo que ya había, texturizado automáticamente y erosionado en el mismo paso.
Masks se pintan con un pincel y luego se editan como un conjunto: clear, invert, blur, grow, shrink. Las smart masks derivan una a partir del propio terreno, por altura, por pendiente, por capa o por concavidad.
Paths. Haz clic para soltar puntos de control y una curva suave pasa por ellos; arrastra los puntos ámbar para moverlos, los manejadores cian para curvar la línea. Bake Path aplana el suelo debajo, pinta la textura y levanta los terraplenes.
Vegetation tiene dos mitades. El pincel coloca y elimina instancias a mano; las scatter rules las colocan por condición, ponderación de capa, semilla, escala mín/máx, y la banda de altura y pendiente que acepta cada asset. La hierba y las flores se desvanecen pasada una distancia de dibujo configurable, y Export to Scene convierte las instancias en objetos de escena.
Biomes es la versión de un clic de todo lo anterior: elige un bioma, marca las categorías que quieres (soil, trees, plants and grass, flowers, algae near water, rocks), fija una densidad, y Apply Biome pinta el suelo y dispersa todo, informando de cuántas instancias de cada una colocó. La variedad de edad de los árboles mezcla brotes con ejemplares centenarios en lugar de repetir el mismo árbol en todas partes, y ground blend (RVT) funde la base de cada roca con el color del terreno debajo.
SDF es un renderizador distinto, no una herramienta distinta: el terreno se renderiza con raymarching a partir de un campo de distancia, forma por octavas, lacunarity y persistence, texturizado por grass/rock/snow con una línea de nieve y un umbral de pendiente, y sus propias sombras suaves, oclusión ambiental y niebla.
Los terrenos grandes tienen un sistema de LOD con geometría de falda (que es lo que cierra los huecos entre niveles), transiciones de nivel suaves, frustum culling y una superposición de estadísticas. Los heightmaps se importan y exportan como PNG de 16 bits, PNG de 8 bits o RAW de 16 bits; los splatmaps como un PNG RGBA único o un archivo por capa; y el terreno completo, o solo sus ajustes, como un preset.
Sky Studio#
La atmósfera. Cuatro tipos de cielo, solid, gradient, HDRI, y una physical atmosphere con dispersión Rayleigh y Mie, absorción de Mie, ozono, albedo del suelo, turbidez, radio del planeta y grosor de la atmósfera.
Todo depende de la hora del día, que puede correr sola: el sol por elevación, azimut e intensidad, con su propia intensidad de sombra; la luna por fase; las estrellas con centelleo; y una aurora. Las volumetric clouds tienen grosor, erosión, escala de ruido y distorsión curl, y luz por absorción, dispersión, ambiente y un término powder; los cirros y el Belt of Venus son independientes. La aerial perspective es la neblina que se espesa con la distancia y desvanece la geometría lejana hacia el horizonte: es el ajuste que hace que un paisaje se lea como grande.
Diez presets para empezar: clear day, dawn, sunset, dusk, night, overcast, stormy, desert, arctic y space.
Water#
Dos pestañas: Ocean (FFT) para mar abierto, Shore & lakes para todo lo demás.
⚠️ El agua se crea en el editor de Terrain: las herramientas de río y lago, o Show Water, y se ajusta aquí. Abrir este panel en una escena sin agua te da ajustes sin nada a lo que aplicarlos.
El agua de orilla lleva color, opacidad, fuerza y velocidad de ola, choppiness, ancho de espuma y Fresnel, con reflejos en espacio de pantalla y desenfoque de refracción. Debajo está el propio shader WGSL: dos escalas de normal con sus propias direcciones y velocidades de scroll, umbral y suavidad de espuma, intensidad de refracción e índice de refracción, y la luz dentro del agua, absorción, turbidez, dispersión y translucidez.
Tree Generator#
Dos modos, Tree y Trunk. Un árbol es de hoja caduca o perenne, tiene una edad de brote a centenario, y puede estar vivo, muerto, ser un tocón o un tronco caído. Todo está sembrado (seeded), así que Randomize seed es la forma más rápida de conseguir un árbol distinto con el mismo carácter.
La forma es por nivel de rama: hijos, longitud, radio, ahusado, retorcimiento, giro, secciones, segmentos, ángulo y altura de inicio, más variación natural, fototropismo y gravitropismo: los dos que hacen que un árbol se incline hacia la luz y se combe bajo su propio peso, y una fuerza global con su propia intensidad. La base tiene ensanche de raíz (lóbulos y altura) y contrafuerte.
Las hojas son billboards, de una o dos caras, con cantidad, tamaño, ángulo, variación, agrupamiento, curvatura, caída, brillo y normales redondeadas. La corteza viene en seis estilos: ridged, aspen, pine, birch, smooth, palm, con relieve, musgo, una base húmeda, decoloración solar, oclusión ambiental de dosel y un viraje otoñal. Cuatro estaciones cambian todo el aspecto de golpe.
Forest dispersa muchos a la vez: cantidad, radio de dispersión, varianza de escala, y una mezcla de edades (single, natural, young, old, even). Add age progression coloca las cinco etapas de vida en fila, que es la forma más rápida de juzgarlas una junto a otra. Un árbol sale como entidad de escena o como GLB, y cualquier ajuste se puede guardar como preset.
Plant Generator#
Cinco tipos, flower, cluster, herb, fern, grass, que comparten un tallo (cantidad, altura, grosor, curva, color) y hojas (cantidad, tamaño, ancho, ángulo). Los helechos añaden pares de foliolos, barrido de foliolo y arco de fronda; la hierba añade cantidad de brizna y arco.
Una flor es opcional en cualquiera de ellos: pétalos, filas de pétalos, longitud, ancho, curvatura, nitidez de punta, floración, tamaño del centro, y tres colores: pétalo, punta del pétalo y centro, con translucidez y rugosidad de cómo la luz atraviesa la hoja. Añade una a la escena, dispersa muchas, o exporta GLB.
Rock Generator#
Tres tipos, rock, stone, cliff, en tres estilos: realistic, toon, o low poly con contorno.
La forma es ruido sobre una esfera: escala, intensidad, octavas, persistence, distorsión y una opción ridged, más strata con su propia frecuencia y facet cuts con profundidad y nitidez para piedra angular. Radio, detalle, aplanado, varianza de forma y una base plana deciden la silueta, y cuatro presets de erosión, fresh, weathered, natural, eroded, mueven todo a la vez.
La superficie tiene variación de color, vetas minerales, liquen y musgo, una textura de detalle con tiling e intensidad, mezcla triplanar y relieve parallax. Usa por defecto un material Stone incluido; envía un material desde Matter a Engine para sustituirlo.
Kitbash, la misma biblioteca que Sculpt#
Kitbash se comparte con Sculpt: este panel y el Edit Forge de Sculpt leen una sola biblioteca. Una pieza construida allí se coloca aquí, y una pieza pintada aquí se puede guardar de vuelta en ella.
Lo que guarda la escena es la pieza y sus dimensiones, no sus vértices, que es la razón por la que un edificio kitbash cuesta casi nada en el archivo y se puede actualizar más tarde desde su origen.
Arma una pieza desde el catálogo y cada clic izquierdo la coloca. Tres modos
de ajuste deciden dónde cae: on terrain (las piezas siguen la altura del
suelo debajo de ellas), on water (el plano de construcción se sitúa al
nivel del agua), y snap to sockets, apunta a un punto de conexión en una
pieza colocada y la nueva gira para encajar con él. Una cadena crece desde
su extremo libre, los sockets ocupados salen de los candidatos, y cada clic
es su propio paso de deshacer. Ctrl/Cmd sigue reservado para la
selección y Alt para la rotación. Las colecciones conservan su origen y
versión, así que una instancia se puede actualizar cuando cambia el
original.
Los otros editores#
Los editores de mundo llenan una escena; estos le dan una interfaz, un mapa, sus tablas de contenido y los instrumentos para comprobar qué cuesta.
El editor de HUD#
Tools → Editors → UI. Seis pestañas, Templates, Elements, Layers, Preview, Style y Script, sobre una vista previa que cambia entre tres tamaños de dispositivo: escritorio 960×540, tablet 768×432, móvil 375×667.
Los elementos vienen en tres grupos (Display, Data, Input) y se
anidan: panel y flex contienen hijos, así que la pestaña Layers es un
árbol de verdad y no una lista plana. El historial tiene cincuenta pasos de
profundidad.
⚠️ La pestaña Style es CSS-como, y la diferencia importa. El HUD se
dibuja en el canvas por la GUI de Babylon, y el CSS de verdad no llega hasta
ahí. Las reglas que escribes aquí se traducen en propiedades de la GUI; los
selectores son #nombre para un elemento, .tipo para una clase (.text,
.panel) y * para todo.
La pestaña Script es la otra forma de construir uno: la API ui.*,
createText, createPanel, createProgress, createButton, con dos
formas de ejecutarla. Build Layout la ejecuta en tiempo de diseño y te
deja elementos reales para ajustar a mano; Run Live la ejecuta dentro
del juego.
Dos conexiones hacia fuera: el arte del HUD se abre en Inkwell o Vectra y queda enlazado en lugar de copiado, y un documento de Vectra se puede importar como elementos de HUD. El elemento de minimapa es una cosa aparte, con rango, cuadrícula, y marcadores para jugador, enemigos, aliados, objetos y objetivos.
El editor de tilemap#
Once herramientas, brush, eraser, fill, rectangle, select, eyedropper, stamp, autotile, prop, zone y path, sobre cuatro proyecciones de mapa: orthogonal, isometric, staggered isometric y hexagonal.
Autotiling trae cuatro plantillas, y el número en cada nombre es el número de tiles que espera: Blob 47 (esquina y borde completos), Wang 16 (basado en bordes), Simple 4 (NSEW), y RPG Maker A2 (48 tiles, compatible con mapas creados allí).
Dos capas se sitúan encima de los propios tiles. Zones pintan significado de gameplay: buildable, water, forest, road, farm, residential, commercial, blocked, y props colocan objetos por categoría: trees, rocks, buildings, vegetation, water, paths. Los mapas viven en la propia base de datos del navegador, así que uno sin guardar sobrevive a una recarga.
Inventario, tablas de datos y diálogo#
Los tres editores que permiten que un juego tenga contenido sin que ese contenido viva en el código.
Inventory edita un catálogo y lo aplica a la escena. Un objeto lleva
acciones, y una acción es un trigger: use, equip, unequip, más
uno de ocho types: message, heal, damage, grant, remove, event, toast,
scene. El propio panel tiene tres disposiciones (grid, list, compact), tres
presets de apariencia (graphite, midnight, warm), y cuatro ranuras
visuales, background, slot, equipment, tooltip, que se abren en otro módulo
para un rediseño en condiciones.
Data tables están tipadas: una columna es text, number, bool o
ref. El CSV entra y sale. Cada edición pasa por funciones puras, que es
lo que hace que la tabla que escribe la build sea idéntica a la tabla que
lee la build.
Dialogue trees son nodos con un hablante y una línea. Un nodo continúa
a un único next, o se ramifica en choices, cada una con su propio
texto y su propio destino; el interruptor de ramificación es la única
decisión estructural del editor.
Animación y cámara#
Cinematic Sequencer construye secuencias con una duración y un indicador de bucle, una pista por entidad, y keyframes capturados en el playhead; Add Key toma el valor actual de la entidad en lugar de pedirte que lo escribas. El editor de gráfico de debajo muestra el tiempo contra el progreso, con manejadores redondos para el easing: la pendiente es la velocidad. Los planos tienen sus propias duraciones, y un encuadre Cinemascope (1.422:1) está disponible para el letterbox.
Camera Tools cubre FOV, posición, objetivo, modo y velocidad, más bookmarks para los puntos de vista a los que vuelves una y otra vez, y capas de cámara.
Audio#
El Audio Manager guarda eventos de audio, pistas y un mezclador con canales y categorías. Los efectos por fuente son un low-pass, un high-pass y un reverb send; un modo random elige entre varios clips para que un sonido repetido deje de leerse como un bucle. El scrub reproduce audio mientras arrastras el playhead.
El profiler#
Un desglose de fotograma, no un contador de fotogramas: render de cámara, evaluación de mesh, partículas, sprites y compilación de shaders, cada uno marcado como real o estimado para que un número que viene de una medición nunca se confunda con uno que viene de un modelo. Contadores al lado: meshes y meshes activos, luces, cámaras, cuerpos de física.
Grabar es explícito, y termina en una lista de Issues en lugar de un gráfico que interpretar: FPS bajo, muchas draw calls, muchos triángulos, mucha memoria, contra la frecuencia de fotogramas objetivo que fijes.
Construir una escena#
Entidades#

Una escena nueva llega con una Main Camera, una Directional Light, un Skybox y un Ground Plane.

Lo que puedes añadir: Empty, Cube, Sphere, Cylinder, Plane, Light, Camera, Script, Mesh, más dos familias que llegan ya cableadas:
- Characters: Third-Person, First-Person (FPS), Top-Down, Platformer, Basic.
- Props: Pickup (heal) y Hazard (damage).
El scene graph busca, filtra por tipo, y añade, duplica o elimina; las entidades se anidan, y volver a asignar el padre es un arrastre. La colocación tiene ajuste y un pincel de dispersión para poblar el suelo rápidamente.
El inspector#
Transform (posición, rotación, escala), un interruptor Enabled, y los componentes de la entidad: añadidos, configurados y eliminados aquí, con Add Script al final. Selecciona varias entidades y el inspector cambia a edición por lotes, así que un cambio de campo cae sobre todas ellas.
La consola#
No es solo un registro. Filtra por nivel (all, logs, info, warning, error),
enlaza un mensaje de vuelta con la entidad que lo produjo, y lleva un
expression prompt: escribe una expresión, Enter la ejecuta contra la
escena en vivo, las flechas recorren el historial.
Darle comportamiento#
Tres vías, y coexisten.
Scripts#
JavaScript con hooks de ciclo de vida, y una referencia propia:
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() {}
Las colisiones y los triggers se disparan tanto en 2D como en 3D, y cada
lado recibe su propia normal de contacto: other.contact.normal apunta
desde la otra entidad hacia esta. Eso es lo que le permite a un script
distinguir "aterricé sobre él" de "él aterrizó sobre mí": el stomp de un
platformer lee other.contact.normal.y > 0.5.
El editor de scripts#
F2, o Add Script en una entidad. Un editor Monaco con pestañas, varios
scripts abiertos a la vez, cada uno guardado en la propia base de datos del
navegador en lugar de en el archivo del proyecto, así que un buffer sin
guardar sobrevive a una recarga.
Cinco dialectos, un solo programa. El selector de lenguaje ofrece JavaScript, BASIC, Python, C# y Rust. Lo que hace no es lo que parece: el JavaScript es la fuente de verdad, y los otros cuatro son vistas transpiladas a partir del JS guardado. Cambiar de Python a Rust no traduce el Python: vuelve al JS del que se generó el Python y traduce eso. La traducción en varios saltos es lo que corrompe un programa, y el editor se niega a hacerla.
Trece plantillas en cinco categorías, cada una con su nivel de dificultad:
| Categoría | Plantillas |
|---|---|
| Basics | script en blanco con los stubs de ciclo de vida |
| Movement | auto-rotate · WASD · movimiento 3D por ejes · salto con física y detección de suelo · seguimiento de cámara en tercera persona |
| Gameplay | zona de trigger · barra de vida con daño y curación · spawner temporizado |
| AI | patrulla con alerta de proximidad del jugador |
| Advanced | cutscene asíncrona al estilo Verse · concurrencia estructurada · prueba completa de la superficie de la API |
Los presets de controlador de personaje y los props de arranque del juego (pickup, hazard) aparecen en la misma lista, que es la forma práctica de poner un controlador funcional sobre un personaje importado.
Ejecutar y depurar. F5 ejecuta, F9 fija un breakpoint. El depurador
se detiene en una línea, avanza un solo fotograma, e informa de valores en
vivo mediante watch expressions. Script Lab ejecuta un programa sin
ninguna entidad asociada, un scratchpad para la API en lugar de un
componente sobre un objeto.
Junto al código: una referencia de la API, una lista de símbolos del
archivo abierto, y una biblioteca de snippets con favoritos y recientes.
Ctrl+S guarda, Ctrl+F busca, Ctrl+H reemplaza, y el editor trae ocho
temas.
Blueprints y comportamientos#
Un grafo visual, una biblioteca de comportamientos ya hechos, y una state machine sobre la pila de comportamientos.
El grafo lleva 267 nodos en veintidós grupos, Math, Scene, Entity, Animation, Flow Control, String, Events, Physics, UI, Array, Vector, Transform, Debug, Input, Utility, Game, Boolean, Camera, Tween, Variables, Audio y las familias 2D y 3D. Tres propiedades los separan, y son de lo que está hecho el grafo: 17 event nodes arrancan la ejecución, 117 pure nodes calculan un valor sin efecto secundario y sin pin de ejecución, y 9 latent nodes terminan más tarde: son los que hacen que un delay o un tween se puedan expresar sin un state machine propio.
Cuatro herramientas: select V, pan H, comment C, reroute R, sobre un
canvas que hace zoom de 0.1× a 3× con un minimapa. Las variables vienen en
seis tipos, boolean, integer, float, string, vector3 y object. La
descripción de cada nodo está en su tooltip, que es el único sitio donde
una biblioteca de ese tamaño se puede explicar a sí misma.
La state machine#
Su propio panel, y deliberadamente no el del Animator: las condiciones del Animator son un enum plano con interfaz escrita a mano por caso, mientras que estas están estructuradas y hablan del mundo.
Siete condiciones, y cada una es una pregunta sobre la escena: sees (un objetivo etiquetado dentro de rango, opcionalmente dentro de un ángulo y en línea de visión), lost (ningún objetivo durante N segundos), distance contra un umbral, health, message received, timer (tiempo pasado en el estado actual), y flag (un valor en el blackboard compartido). Dos combinadores, and y or, están listados los dos aunque or ya existía implícitamente (dos transiciones al mismo estado son un or), pero "me ve Y todavía tengo vida" no tenía ninguna forma de expresarse.
⚠️ La vida se compara como una fracción del máximo, nunca como un valor absoluto. Un umbral de "por debajo de 30 HP" no sobrevive a un pase de rebalanceo; "por debajo de 0.3" sí.
Al entrar o salir de un estado, cuatro efectos: send un mensaje, set una clave del blackboard, play un clip de animación, o disparar un named effect. Ninguno de ellos mueve nada, el movimiento se queda con los comportamientos, y la máquina decide cuál comportamiento está activo.
Una transición puede partir de *, que significa cualquier estado. El
validador devuelve la lista de problemas en lugar de fallar en el
primero, así que una máquina a medio escribir se sigue dibujando y ves todo
lo que está mal de una vez. Las posiciones de los nodos son parte de los
datos: un grafo cuya disposición vive fuera de la escena vuelve
reorganizado para la próxima persona que lo abra.
BASIC#
El modo de viewport TXT es un entorno BASIC clásico con programas de
demostración incluidos, y el lenguaje tiene
una referencia propia. Es un lenguaje de verdad
aquí, no un juguete: módulos multiarchivo (#INCLUDE), numéricos tipados
(con y sin signo de 8/16/32/64 bits, float32 y float64), registros
anidados, métodos de objeto con SELF, referencias (REF/BYREF),
TRY/CATCH/FINALLY estructurado, compilación condicional, corrutinas,
handles tipados, y compute WebGPU con storage buffers y WGSL en bruto.
OPTION EXPLICIT es opcional; las variables implícitas clásicas siguen
siendo el valor por defecto para que los programas importados sigan
funcionando.
Jugar y publicar#
Play#
Play, Pause, Stop. Al detener, un aviso informa de lo que cambió la
sesión, así que una edición en modo Play nunca se guarda ni se pierde en
silencio. Las sesiones se pueden grabar y reproducir dentro de un
reporte de error, y los scenario bookmarks dejan que una sesión de
prueba empiece a mitad de un nivel.
Build#
Build toma un tipo de juego (detectado a partir de la escena, o fijado a mano: sidescroller/platformer, primera/tercera persona, basado en texto) y un destino.
- Web: WebGPU con respaldo en WebGL, WebXR opcional (VR/AR), minificación, un contador de FPS, y una opción embed assets que produce un único archivo.
- Desktop y mobile: builds nativas. La escena se exporta como datos
(
scene.glb+scene.json) y se compila a través de un proyecto Bevy (Rust) generado; los scripts se ejecutan sin cambios ahí sobre un runtime QuickJS embebido.
La compresión es configurable por eje, algoritmo, texturas, meshes, con un preset de calidad que los ata entre sí. Las builds se guardan en un historial con sus tamaños (original contra comprimido) y se pueden volver a descargar más tarde.
Una build nativa solo contiene lo que el exportador sabe exportar. glTF no captura shaders personalizados, thin instances, el cielo procedural ni el postprocesado, así que un sistema en tiempo de ejecución que no se haya portado al lado de Bevy faltará en una build de escritorio o móvil mientras se ve perfecto en la web. Comprueba una build nativa antes de confiar en ella.
Multiplayer#
El panel Multiplayer room conecta una escena a un servidor de juego Colyseus. Hay disponible un servidor de prueba compartido y gratuito, sin cuenta y sin configuración; un proyecto también puede tener su propio servidor. La room se identifica con un código para compartir que puedes guardarte o repartir.
Archivos que lee y escribe#
| Formato nativo | .engine |
| Importa | .glb, .gltf, .obj, .fbx, .png, .svg, .mp4, .webm, .mov, .scene |
| Exporta | una build web, una build nativa de escritorio/móvil, scene.glb + scene.json |
Enviar trabajo a otros módulos#
Acepta meshes de Sculpt, Retopo y Pigment, escenas completas de Render, pixel art, animaciones, sets de materiales PBR de Matter, rigs 2D, proyectos de vídeo, imágenes, arte vectorial, y objetos Vectra.
Produce rigs 2D.
Una maqueta de pantalla de Vectra llega como estructura, no como una imagen. Se convierte en una jerarquía de HUD que Engine puede maquetar y programar: la diferencia entre un diseño que puedes cablear y una captura de pantalla de uno.
Atajos#
Cmd/Ctrl + K llega a los comandos propios de Engine desde la paleta,
junto a los globales. Engine también tiene un panel de atajos de teclado
dedicado y buscable en su propia configuración; tiene muchos más de los que
cabrían en la página de atajos.
Límites y problemas habituales#
- Un viewport en blanco suele ser el navegador, no la escena. Engine necesita WebGL 2; comprueba que la aceleración por hardware esté activada.
- Systems y Tools comparten un mismo panel. Si un panel "desapareció", probablemente está en el otro.
- La consola es el primer sitio donde mirar, no el último: enlaza los errores con la entidad que los provocó.
- Un componente añadido en modo Play puede no sobrevivir a Stop. Lee el aviso que aparece cuando detienes.
- La física difiere entre 2D y 3D en su solver aunque los callbacks del script sean los mismos. Un contacto en reposo en 2D se detecta con un skin de 2 mm, porque el solver lleva la penetración exactamente a cero antes de que se ejecute la detección.