전문 개발 스튜디오에서 제3자 도구를 설정하고 자동화에 투자하면 개발자 생산성을 크게 향상시킬 수 있습니다. Roblox의 클라우드 전환 접근 방식은 많은 이점이 있지만, 개발 워크플로의 특정 부분을 클라우드 밖으로 이동하면 팀이 시간을 보내고, 코
동기화 문제
핵심적으로 Roblox와 함께 사용하는 외부 도구는 동기화 문제입니다.
- Roblox 스크립트를 디스크에서 .luau 파일로 존재하도록 하여 자신의 도구를 사용하여 작업할 수 있습니다.
- 완료된 후에는 Roblox 프로젝트에 다시 파일을 가져와야 합니다.
- 만약 누군가 그 사이에 동일한 파일을 변경한 경우, 충돌을 처리해야 합니다.
전체 솔루션이 원활하고 자동적으로 느낄 수 있도록 하려면, 파일의 변경 사항을 듣기 위해 파일을 변경하고 이 변경 사항을 Studio에 통합해야 합니다. 즉, 서버와 Studio 플러그인이 필요합니다. 이것은 Rojo 솔루션이 이 문제를 해결하는 방법입니다.
Roblox의 클라우드 전용 접근 방식이 아닌, Rojo는 "파일 시스템 먼저" 접근 방식을 지원합니다. 모든 스크립트 파일을 프로젝트의 Luau 파일로 엑스트라랙트합니다. 그런 다음 서버를 실행합니다. Rojo 플러그인은 Studio와 함께 이 파일을 동기화하기 위해 서버에 연결됩니다.
Foreman과 Rojo 설치
Rojo 베이리를 수동으로 다운로드하고 실행할 수 있지만, 이 접근 방식은 다른 Rojo 버전을 사용하여 팀의 다른 개발자에게 위험을 초래합니다. 더 나은 해결책은 도구 관리자를 사용하여 설치 및 업그레이드 프로세스를 일관되게 만들려는 것입니다. 예를 들어, Foreman,
프로젝트 내의 패키지가 아닌 기본 개발 환경을 관리하기 때문에 포머는 nvm 보다는 npm 에 더 유사하지만, 비교는 완벽하지 않습니다. 간단한 foreman.toml 파일은 다음과 같이 보입니다:
[tools]
rojo = { github = "rojo-rbx/rojo", version = "7.4.1" }
wally = { github = "UpliftGames/wally", version = "0.3.2" }
그런 다음 이 도구를 설치하려면 foreman install 를 사용하십시오. 전역 파일 foreman.toml 외에도 프로젝트 별 파일을 지원하므로 다른 버전의 Rojo, Wally 또는 다른 도구를 쉽게 사용할 수 있고 전체 팀을 동일한 버전으로 유지할 수 있습니다.
도구가 새 버전을 릴리스할 때, 버전 번호를 명시적으로 .toml 파일에 던져, 업그레이드를 수행하고, 새 버전을 테스트하고, 문제를 발생시키면 다운그레이드하도록 합니다. 명령 및 설치 지침은 .toml 을 참조하십시오.
Rojo 실행
Foreman으로 Rojo를 설치한 후 설치한 것은 Rojo 서버입니다. 다음 단계는 Roblox Studio용 Roblox 플러그인 설치입니다.
rojo plugin install
그런 다음 새로운 경험에 대한 프로젝트 구조를 생성하고 빌드하십시오.
rojo init my-new-experiencecd my-new-experiencerojo build -o my-new-experience.rbxl
또한, 기존 경험을 포트할 수 있습니다. 어느 쪽이든, 프로젝트가 있으면 Rojo 서버를 시작하십시오.
rojo serve
In Roblox Studio, .rbxl 파일을 열고, Rojo 플러그인을 시작하고, 지금 실행 중인 서버에 연결하여 변경 사항을 적용하기 시작하면 원하는 텍스트 편집기에서 변경 사항을 시작하고 Studio에서 자동으로 동기화되어 Studio로 복사할 수 있습니다.
Rojo 프로젝트는 파일, 많은 구성 옵션 및 일부 제한 사항을 위한 특정 이름 요구 사항이 있습니다. 모든 것은 Rojo 문서에 설명되어 있습니다.
패키지 관리자
Roblox에는 강력한 포함 된 API가 있지만, 커뮤니티 소프트웨어 패키지를 일관 된, 재현 가능한 방식으로 사용하려면 패키지 관리자가 필요합니다. Wally는 인기가 많은 옵션입니다. 당신은 그것을 통해 포레맨에 설치 할 수 있습니다, 마치 Rojo와 같이.
경험의 Rojo 디렉터리 내에서 wally init를 실행하십시오. 그런 다음 wally.toml에 원하는 패키지를 추가하십시오. 파일은 다음과 같이 보일 수 있습니다.
[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"
그런 다음 wally install 을 실행합니다. Wally은 Packages 디렉터리를 만들고
{
"name": "my-new-experience",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": {
"$path": "src/shared"
},
"Packages": {
"$path": "Packages"
}
},
...
}
}
그런 다음 스크립트 내의 패키지를 요구할 수 있습니다 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)
다른 대부분의 소프트웨어 프로젝트와 마찬가지로 목표는 기여자가 리포지토리를 클론하고, Foreman을 설치하고, 몇 가지 명령을 실행하고, 팀의 나머지와 동일한 개발 환경을 가질 수 있습니다.
버전 관리
컴퓨터에 평범한 텍스트 파일 세트가 있으면 다양한 기능이 잠금 해제되지만, 주요 기능은 버전 관리입니다. 스크립트 및 구성 파일을 Git 또는 Mercurial
Visual Studio Code 는 가장 큰 확장 생태계를 가지고 있지만 Sublime Text, Notepad++ 및 0>Vim0>은 모두 인기가 많습니다. 선택할 편집기에 관계없이 Studio 스크립트 편집기의 기능을 충족하려면 확장이 필요합니다.
다음을 추가할 수도 있습니다.
- 일반 문제를 검사하고 코딩 규범을 적용하는 리터러 like selene
- StyLua와 같은 코드 서식 지정자
- 자동 완성, 검사 및 기타 작업에 대한 Luau 언어 서버 같은 언어 서버
자산
이 페이지의 도구는 스크립트에 가장 적용됩니다; 3D 예술가는 Blender 및 Maya와 같은 외부 도구를 사용하고 소스 파일을 버전 관리에 저장하고 Studio에 크리에이션을 가져옵니다. Studio 자산이 있으면 가능한 한 패키지를 사용하는 것이 좋습니다.
Roblox 패키지 구현은 이 페이지의 도구와 동일한 많은 개념을 따릅니다: 중앙 저장소에 버전 기록이 있는 하나의 센터화된 저장소에서 모든 복사본을 동기화하는 일관된 방법을 제공합니다. 작업 흐름을 개선하는 방법에 대한 자세한 내용은 패키지를 참조하십시오.
모든 것 취소
제3자 도구가 Roblox Studio로 동기화되므로 이 워크플로우의 어느 부분도 잠금이 없습니다. 언제든지 이 도구 중 하나 또는 모두를 중지하고 편집 경험을 Studio에서만 사용할 수 있습니다. 위험이 적으로 만들기 때문에 제3자 도구를 사용하는 것이 매우 매력적입니다.