Herramientas de terceros

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Para los estudios de desarrollo profesional, configurar herramientas de terceros y invertir en automatización puede mejorar dramáticamente la productividad de los desarrolladores.El enfoque de nube primero de Roblox tiene muchas ventajas, pero mover ciertas partes del flujo de trabajo de desarrollo fuera de la nube puede ayudar a los equipos más grandes a realizar cambios con el tiempo, revisar el código y utilizar los idiomas y herramientas con los que ya están familiarizados.

El problema de sincronización

En su núcleo, usar herramientas externas con Roblox es un problema de sincronización sincronización:

  • Quieres que tus scripts de Roblox existan como .luau en el disco para que puedas usar tus propias herramientas para trabajar en ellos.
  • Tienes que devolver tus archivos a tu proyecto de Roblox después de haber terminado de trabajar en ellos.
  • Si alguien más cambia esos mismos archivos en ese momento, debes manejar cualquier conflicto.

Para que toda la solución se sienta sin costuras y automática, necesitas a) escuchar los cambios en los archivos y b) incorporar estos cambios de nuevo en Studio.En otras palabras, necesitas un servidor y un complementode Studio, que es cómo Rojo resuelve este problema.

En lugar del enfoque de nube primero de Roblox, Rojo permite un enfoque "de sistema de archivos primero"Extrae todos los archivos de script en tu proyecto a archivos Luau.Entonces ejecuta un servidor.El plugin Rojo se conecta al servidor para sincronizar esos archivos con Studio.

Instalar Rojo con Foreman

Puedes descargar y ejecutar manualmente un binario Rojo, pero ese enfoque corre el riesgo de que diferentes desarrolladores de tu equipo usen diferentes versiones de Rojo.Una mejor solución es utilizar un administrador de herramientas como Foreman, que utiliza un archivo de configuración—una lista de repositorios y versiones—para hacer que el proceso de instalación y actualización sea consistente en las máquinas.

Debido a que gestiona el entorno de desarrollo de referencia más que los paquetes dentro de tu proyecto, Foreman es más similar a nvm que a npm, pero la comparación no es perfecta.Un simple archivo foreman.toml simple parece esto:


[tools]
rojo = { github = "rojo-rbx/rojo", version = "7.4.1" }
wally = { github = "UpliftGames/wally", version = "0.3.2" }

Entonces instalas estas herramientas con foreman install .Además de un archivo global foreman.toml , Foreman admite archivos por proyecto, por lo que puedes usar fácilmente diferentes versiones de Rojo, Wally o cualquier otra herramienta para diferentes proyectos y mantener a todo tu equipo en esas mismas versiones.

Cuando una herramienta lanza una nueva versión, entonces especifiques explícitamente el número de versión en tu archivo .toml, usa Foreman para realizar la mejora, prueba la nueva versión y rebaja si causa algún problema.Para comandos e instrucciones de instalación, vea Foreman.

Ejecutar Rojo

Después de instalar Rojo con Foreman, lo que realmente has instalado es el servidor Rojo. El siguiente paso es instalar el plugin de Rojo para Roblox Studio:


rojo plugin install

Luego genera la estructura del proyecto para tu nueva experiencia y construyela:


rojo init my-new-experience
cd my-new-experience
rojo build -o my-new-experience.rbxl

Alternativamente, puedes transportar una experiencia existente. De cualquier manera, después de tener un proyecto, inicia el servidor Rojo:


rojo serve

En Roblox Studio, abre el archivo .rbxl que acabas de crear, inicia el complementoRojo y conéctate a tu servidor en ejecución, en el que puedes comenzar a realizar cambios en tu editor de texto preferido y ver esos cambios automáticamente sincronizados de vuelta a Studio.

Los proyectos de Rojo tienen ciertos requisitos de nomenclatura para archivos, numerosas opciones de configuración y algunas limitaciones, todas las cuales se cubren en la documentación de Rojo.

Administradores de paquetes

Roblox tiene un conjunto robusto de API incluidas, pero si quieres aprovechar los paquetes de software de la comunidad de una manera consistente y reproducible, necesitas un administrador de paquetes.Wally es una opción popular.Puedes instalarlo a través de Foreman, igual que Rojo.

Dentro del directorio Rojo de tu experiencia, ejecuta wally init . Luego agrega los paquetes deseados a wally.toml . El archivo podría verse así:


[package]
name = "my-home-directory/my-new-experience"
version = "0.1.0"
registry = "https://github.com/UpliftGames/wally-index"
realm = "shared"
[dependencies]
react = "jsdotlua/react@17.1.0"
react-roblox = "jsdotlua/react-roblox@17.1.0"
cryo = "phalanxia/cryo@1.0.3"

Luego ejecute wally install .Wally crea un directorio Packages y descarga los paquetes especificados allí.El último paso es agregar la dirección Packages a Rojo para que sus contenidos se sincronicen con Roblox.Abre default.project.json y agrega el camino.Para simplificar, este ejemplo agrega todo el directorio a ReplicatedStorage para que todos los paquetes estén disponibles para todos los scripts, pero puede preferir agregar paquetes específicos a ServerScriptService o StarterPlayerScripts :


{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}

Entonces puedes requerir paquetes dentro de tus scripts como cualquier otro ModuleScript :


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local React = require(ReplicatedStorage.Packages.react)
local ReactRoblox = require(ReplicatedStorage.Packages["react-roblox"])
local handle = Instance.new("ScreenGui", Players.LocalPlayer.PlayerGui)
local root = ReactRoblox.createRoot(handle)
local helloFrame = React.createElement("TextLabel", {
Text = "Hello World!",
Size = UDim2.new(0, 200, 0, 200),
Position = UDim2.new(0.5, 0, 0.5, 0),
AnchorPoint = Vector2.new(0.5, 0.5),
BackgroundColor3 = Color3.fromRGB(248, 217, 109),
Font = Enum.Font.LuckiestGuy,
TextSize = 24
})
root:render(helloFrame)

Al igual que la mayoría de los otros proyectos de software, el objetivo es que los contribuidores puedan clonar un repositorio, instalar Foreman, ejecutar algunos comandos y tener el mismo entorno de desarrollo que el resto del equipo.

Control de versión

Tener un conjunto de archivos de texto plano en su computadora desbloquea una variedad de capacidades, pero la principal es control de versiones.Puedes almacenar tus scripts y archivos de configuración en un repositorio Git o Mercurial; alojar repositorios remotos y revisar cambios de código en GitHub, GitLab o Bitbucket ; y usa cualquier editor de texto que te guste.

Visual Studio Code tiene el mayor ecosistema de extensiones, pero Sublime Text , Notepad++ y Vim son todas opciones populares.Sea cual sea el editor que elegir, coincidir con las capacidades del editor de guiones de Studio requerirá algunas extensiones.

También podría considerar agregar:

  • Un compilador como selene para detectar problemas comunes y aplicar normas de codificación
  • Un formato de código como StyLua
  • Un servidor de lenguaje como Servidor de lenguaje Luau para completar automáticamente, verificación de tipo y más
  • Abre los scripts de la nube (no sincronizados con Studio) para actualizar una experiencia publicada o reiniciar los servidores

Activos

Las herramientas de esta página son más aplicables a los scripts; los artistas 3D ya utilizan herramientas externas como Blender y Maya, almacenan los archivos fuente en control de versiones y importan sus creaciones a Studio.Después de tener un activo de Studio, recomendamos hacer uso de recursocada vez que sea posible.

La implementación de paquetes de Roblox sigue muchos de los mismos principios que las herramientas de esta página: un repositorio centralizado con historial de versiones que ofrece una forma sin problemas de mantener todas las copias de un activo sincronizadas.Para obtener más información sobre cómo pueden mejorar su flujo de trabajo, vea Paquetes.

Deshacer todo

Debido a que las herramientas de terceros sincronizan los cambios de vuelta a Roblox Studio en lugar de reemplazarlo, ninguna parte de este flujo de trabajo implica ningún bloqueo.En cualquier momento, puedes dejar de usar una o todas estas herramientas y volver a editar tu experiencia exclusivamente en Studio.La falta de riesgo hace que experimentar con herramientas de terceros sea particularmente atractivo.