Todos los juegos de Out están construidos alrededor de entidades (cosas en el mundo) y componentes (comportamiento/datos adjuntos a las entidades).
Si has usado Unity antes: piensa “GameObject + Components”. Si has usado Roblox: piensa “Instance + Scripts/Components”. La idea central es la misma: compones la jugabilidad añadiendo componentes a las entidades.
Entidades
Las entidades existen de dos maneras comunes:
Colocadas en el editor: ya están en la escena al iniciar.
Creadas en tiempo de ejecución: las generas desde un script.
Creación y destrucción de entidades
entity:=Scene.create_entity();entity->set_local_position({10,20});entity->set_local_scale({2.5,2.5});entity->set_local_rotation(0);// Cuando hayas terminado:entity->destroy();
Destruir una entidad también destruye sus componentes. No conserves referencias a componentes después de destruir su entidad.
Iterar entidades
Componentes
Los componentes son las unidades de comportamiento. Un componente “vive en” una entidad y puede leer/modificar esa entidad.
Obtener y añadir componentes
Iterar componentes
Componentes integrados que usarás mucho
Sprite_Renderer
Prefabs (Prefab_Asset)
Los prefabs deben crearse en el editor. En los scripts, los instancias.
Spine (Spine_Animator)
Si usas personajes animados en 2D, a menudo trabajarás con Spine_Animator. Ver Spine.
Escribir un componente personalizado
Crea nuevos componentes en archivos dedicados (por ejemplo orbiter.csl) y adjúntalos a las entidades ya sea:
Manualmente en el editor, o
En tiempo de ejecución con entity->add_component(...)
Los componentes pueden implementar callbacks de ciclo de vida:
ao_start()
ao_update(dt)
ao_late_update(dt) (después de todas las actualizaciones)