Roblox
Si has creado juegos en Roblox, hay algunas diferencias clave que necesitarás conocer para empezar en All Out.
Si vienes de Roblox Studio + Lua, esta página te ayudará a traducir tu modelo mental a All Out + CSL (el lenguaje de programación de All Out).
Las grandes diferencias (de un vistazo)
Entidades + componentes (no Instances + Services): los mundos se construyen a partir de entidades en el Jerarquía, y el comportamiento proviene de añadir componentes (integrados o programados).
El multijugador viene “integrado”: CSL está diseñado para que la mayor parte del código de jugabilidad pueda escribirse como si fuera un juego para un solo jugador, mientras el motor sincroniza el estado relevante.
CSL está tipado estáticamente: te parecerá más a Go/Odin que a Lua. (Ver Primeros pasos con CSL.)
Hoja de referencia Roblox → All Out
Place / Experiencia
Proyecto de juego de All Out
La carpeta local de tu proyecto incluye un directorio scripts para archivos .csl .
Explorer / Workspace
Jerarquía
La jerarquía muestra todas las entidades en el mundo/escena actual.
Instance / Model / Part
Entidad
La organización “tipo carpeta” se hace asignando entidades como hijos (ver “Carpetas” en Jerarquía).
Ventana de propiedades
Inspector
Donde editas los campos de la entidad/componente y añades componentes.
Attributes
Campos de componentes serializados
Expón campos al editor con @ao_serialize (ejemplo abajo).
Reutilización de modelos
Prefabs
Los prefabs son una función temprana y todavía no admiten campos personalizados por instancia aparte de la posición (ver Prefabs).
ProximityPrompt / ClickDetector
Componente Interactable
Añade un componente derivado de Interactablee implementa can_use/on_interact (ver Interactuables).
Touched / Region3 / GetPartsInPart
Consultas de rango (por ahora)
Los callbacks de entrada/salida de colisión todavía no están expuestos; usa Scene.get_all_components_in_range (ver Navmesh y colisión).
Tools / abilities / mobile buttons
Habilidades
Interfaz de botones integrada, compatible con móvil y PC, más patrones de enfriamiento (ver Habilidades).
Tu primera hora (ruta recomendada)
Sigue el tutorial de “recolección de manzanas” en Construyendo un juego básico.
Repasa los fundamentos de CSL en Primeros pasos con CSL (especialmente
ao_start,ao_updatey la creación de componentes).Aprende cómo adjuntar tus nuevos componentes a objetos del mundo mediante la Inspector.
Modelo mental de scripting (Lua → CSL)
En Roblox, a menudo escribes un Script/LocalScript que encuentra objetos (Workspace.Foo.Bar) y conecta eventos. En All Out, normalmente:
Escribes clases de componentes en CSL (comportamiento).
Las adjuntas a entidades en el editor (o generas entidades y añades componentes en tiempo de ejecución).
Guardas valores ajustables en el componente con
@ao_serialize(para que puedas retocarlos por entidad en el inspector).
Aquí hay un pequeño ejemplo que se siente como “un Script anclado debajo de un objeto”, pero expresado como un componente CSL:
Si quieres un “script del juego” que se ejecute una vez por servidor/sesión, normalmente lo pondrás en tus proc principales del ciclo de vida (ao_start, ao_update, etc). Consulta la plantilla en Primeros pasos con CSL.
Interacciones que reconocerás (y cómo se traducen)
ProximityPrompt → Interactable
Si usabas ProximityPrompt.Triggered en Roblox, el equivalente más cercano es un componente derivado de Interactable. Empieza aquí:
Recogibles / zonas de activación “Touched”
El BasePart.Touched de Roblox es un patrón muy común para recogibles, zonas de daño y puntos de control. En All Out, los callbacks de entrada/salida de colisión todavía no están implementados en CSL, así que el enfoque estándar es:
Consultar jugadores/componentes cercanos
Hacer una simple comprobación de distancia
Llevar un registro de quién estaba “dentro” en el fotograma anterior si necesitas eventos de entrada/salida
Consulta “Comportamiento de colisión simulado” en:
Acciones del jugador (Tools / teclas / controles móviles)
Si estás acostumbrado a scripts de “tool” de Roblox o a sistemas de entrada + enfriamiento hechos a mano, usa Habilidades en su lugar. Están diseñadas para funcionar bien tanto en móvil como en PC con una UI consistente.
Guardado de datos (DataStoreService → sistema de guardado)
Para persistencia (monedas, desbloqueos, progreso, cosméticos), empieza con:
UI (ScreenGui → UI de All Out)
La UI de Roblox suele empezar con ScreenGui y Frame/TextButton jerarquías. En All Out, empieza aquí:
Errores comunes al portar desde Roblox para devs
No hay un árbol de “workspace services”: no busques equivalentes de
ReplicatedStorage/ServerScriptService—usa la jerarquía del editor + elscriptsdirectorio de tu proyecto.No esperes los eventos Touched: usa consultas de rango hasta que los callbacks de colisión estén disponibles en CSL (enlace arriba).
Las instancias de prefab aún no están completamente parametrizadas: si necesitas muchas copias con valores distintos, puede que tengas que “desvincular” o crear entidades únicas (ver Prefabs).
Piensa en “componentes” en vez de “etiquetas”: donde usarías etiquetas de CollectionService, a menudo añadirás en su lugar un componente marcador/de comportamiento.
A dónde ir después
Construye tu primer juego: Construyendo un juego básico
Aprende lo básico del editor: Introducción/Vista de escena
Aprende los fundamentos de scripting: Primeros pasos con CSL
Aprende los bloques básicos de la jugabilidad: Interactuables, Inventory, Habilidades
Última actualización