A diferencia de la programación guiada por eventos como en Roblox, los juegos en All Out usan un modelo de ciclo de vida por fotograma que te permite ejecutar código cuando el juego comienza, en cada fotograma y al final de una sesión.
Todos los juegos de All Out funcionan con un ciclo de vida simple: algunos callbacks ocurren una vez al inicio, y otros ocurren en cada fotograma.
Implementarás estos callbacks de una de estas formas:
Globalmente (nivel superior ao_* procedimientos en main.csl), o
En componentes (métodos como ao_update dentro de Player o tus propias Componente subclases)
Comportamientos reutilizables de entidades: ponlos en componentes personalizados (consulta Entidades y componentes)
Coordinación global / reglas: ponlo en el ciclo de vida global (ao_* procedimientos)
Servidor vs. local
All Out sincroniza automáticamente el estado de la jugabilidad del servidor a los clientes, pero aun así conviene mantener el trabajo solo cosmético local.
Usa:
this->is_local_or_server() para la interfaz de jugabilidad + manejo de entrada (se ejecuta en el servidor + cliente local)
this->is_local() para la interfaz/efectos cosméticos (se ejecuta solo en el cliente local)
Estos son métodos en Player_Base. Llámalos sobre una referencia de jugador, o como is_local_or_server() / is_local() dentro de un Player método (implícito) this).