Más / Arquitectura
Arquitectura
Cómo está partido el producto. Esta página no documenta el código fuente del motor; describe el contrato que ves al usarlo.
Tres capas
Studio (editor, paneles, Play/Stop)
│
GSH Script (.gsh) → análisis → ejecución
│
Runtime 2D (dibujo, física, input, audio, cámara)
│
Hardware / Raylib
El Studio y el player comparten el runtime. La diferencia es dónde se pinta el juego: ventana completa, o una textura dentro del Stage para no mezclarse con la UI del editor.
Del script a la pantalla
- El texto se parte en tokens. La indentación cuenta: no hay llaves.
- Se arma un árbol de sentencias y expresiones.
- El intérprete camina ese árbol con un entorno de variables y clases.
- Las llamadas a Window, Physics, etc. son funciones nativas registradas en el runtime.
spawnpasa un objeto del script al lado que se dibuja cada frame.
Si el parseo falla, el error sale en consola y el runtime de esa sesión no arranca. No hay “compilar el juego” aparte: el análisis ocurre al pulsar Play o al lanzar el player.
Qué hace el runtime
- Gráficos — cola por capas, sprites, primitivas, cámara 2D.
- Física — AABB, sólidos, deslizamiento. No hay motor de cuerpos rígidos de 3D.
- Input — teclado y ratón mapeados a nombres cortos (
"W","SPACE"). - Audio — música y efectos con carga tardía.
- Escena — cambio diferido a otro
.gsh.
Las texturas y el audio esperan a que exista contexto gráfico. Por eso un load en el momento correcto (al iniciar la escena) es más seguro que asumir handles eternos.
Un fotograma
- El host (Studio o player) pasa
deltaal script. - Corre
frame. - Los actores actualizan posición y estado.
- Se vacía la cola de dibujo con la cámara activa.
- Si hay Studio, la UI del editor se pinta encima, fuera de esa textura.
Dependencias visibles
El render e input de bajo nivel van por Raylib 5.5. El docking del Studio, Dear ImGui. El editor de texto del panel Script es un componente embebido con un perfil de lenguaje GSH (keywords, strings, números, nombres de actores).
CMake las resuelve en configure. No forman parte de GSH Script: el autor del juego no las llama.