สำหรับสตูดิโอพัฒนามืออาชีพการตั้งค่าเครื่องมือบุคคลที่สามและการลงทุนในอัตโนมัติสามารถปรับปรุงประสิทธิภาพของนักพัฒนาอย่างมากการเข้าถึงเมฆเป็นอันดับแรกของ Roblox มีข้อดีมากมาย แต่การย้ายส่วนหนึ่งของกระบวนการพัฒนาไปนอกเมฆสามารถช่วยทีมขนาดใหญ่ติดตามการเปลี่ยนแปลงในเวลา นอกเมฆ รหัสและใช้ภาษาและเครื่องมือที่พวกเขาคุ้นเคยอยู่แล้ว
ปัญหาการซิงค์
ที่สำคัญที่สุดในการใช้เครื่องมือภายนอกกับ Roblox คือปัญหาการซิงโครไลซ์ สะกิด:
- คุณต้องการให้สคริปต์ Roblox ของคุณมีอยู่เป็นไฟล์ .luau บนดิสก์เพื่อให้คุณสามารถใช้เครื่องมือของคุณเองในการทำงานกับพวกเขาได้
- คุณต้องนำไฟล์กลับไปยังโครงการ Roblox ของคุณหลังจากที่คุณทำงานกับพวกเขาเสร็จแล้ว
- หากมีคนอื่นเปลี่ยนไฟล์เดียวกันในระหว่างนั้นคุณต้องจัดการกับความขัดแย้งใดๆ
เพื่อให้ทั้งโซลูชันรู้สึกไร้รอยต่อและอัตโนมัติ คุณต้อง a) ฟังการเปลี่ยนแปลงไฟล์ และ b) รวมการเปลี่ยนแปลงเหล่านั้นกลับเข้าไปใน Studioคุณต้องการเซิร์ฟเวอร์และปลั๊กอินสตูดิโอซึ่งเป็นวิธีที่ Rojo แก้ปัญหานี้
แทนที่จะใช้การเข้าถึงเมฆเป็นอันดับแรกของ Roblox Rojo ช่วยให้คุณสามารถใช้การเข้าถึงระบบไฟล์เป็นอันดับแรกได้มันสกัดไฟล์สคริปต์ทั้งหมดในโครงการของคุณเป็นไฟล์ Luauจากนั้นจะเรียกใช้เซิร์ฟเวอร์ปลั๊กอิน Rojo เชื่อมต่อกับเซิร์ฟเวอร์เพื่อซิงโครไลซ์ไฟล์เหล่านั้นกับ Studio
ติดตั้ง Rojo ด้วย Foreman
คุณสามารถดาวน์โหลดและรันไบนารี Rojo ด้วยตนเองได้ แต่วิธีการดังกล่าวมีความเสี่ยงที่นักพัฒนาคนอื่นในทีมของคุณจะใช้เวอร์ชัน Rojo ที่แตกต่างกันทางออกที่ดีกว่าคือการใช้เครื่องจัดการเครื่องมือเช่น Foreman ซึ่งใช้ไฟล์การกำหนดค่า—รายการรีปอรี่และรุ่น—เพื่อให้กระบวนการติดตั้งและอัปเกรดสอดคล้องกันในเครื่องจักร
เนื่องจากมันจัดการสภาพแวดล้อมการพัฒนาพื้นฐานของคุณแทนที่แพคเกจภายในโครงการของคุณ 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 แล้ว Foreman สนับสนุนไฟล์ระดับโครงการ ดังนั้นคุณสามารถใช้เวอร์ชันที่แตกต่างกันของ Rojo, Wally หรือเครื่องมืออื่นๆ สำหรับโครงการต่างๆ และให้ทีมทั้งหมดของคุณอยู่บนเวอร์ชันเดียวกันได้อย่างง่ายดาย
เมื่อเครื่องมือปล่อยรุ่นใหม่ออกมา คุณจะต้องเพิ่มหมายเลขรุ่นในไฟล์ .toml อย่างชัดเจน ใช้ Foreman เพื่อดำเนินการอัปเกรด ทดสอบรุ่นใหม่ และลดระดับหากทำให้เกิดปัญหาสำหรับคําสั่งและคําแนะนําการติดตั้ง ดูที่ ผู้ควบคุม
เรียกใช้ Rojo
หลังจากที่คุณติดตั้ง Rojo ด้วย Foreman สิ่งที่คุณติดตั้งจริงๆ คือเซิร์ฟเวอร์ Rojo ขั้นตอนต่อไปคือการติดตั้งปลั๊กอิน Rojo สำหรับ Roblox Studio:
rojo plugin install
จากนั้นสร้างโครงสร้างโครงการสำหรับประสบการณ์ใหม่ของคุณและสร้างขึ้น:
rojo init my-new-experiencecd my-new-experiencerojo build -o my-new-experience.rbxl
หรือคุณสามารถ โพรตประสบการณ์ที่มีอยู่ ได้ ทั้งสองวิธีหลังจากที่คุณมีโครงการแล้วเริ่มเซิร์ฟเวอร์ Rojo:
rojo serve
ใน Roblox Studio ปลั๊กอิน.rbxl ที่คุณเพิ่งสร้างไว้ เริ่มติดตั้งส่วนขยาย Rojo และเชื่อมต่อกับเซิร์ฟเวอร์ที่กําลังทํางานอยู่ในขณะนี้ ในจุดนั้นคุณสามารถเริ่มทําการเปลี่ยนแปลงในตัวแก้ไขข้อความที่คุณต้องการและดูการเปลี่ยนแปลงเหล่านั้นกลับไปยังสตูดิโอโดยอัตโนมัติ
โครงการ Rojo มีข้อกําหนดการตั้งชื่อบางอย่างสําหรับไฟล์, ตัวเลือกการกำหนดค่าจํานวนมาก, และข้อจํากัดบางอย่าง ซึ่งทั้งหมดได้รับการครอบคลุมใน เอกสารการสนับสนุน Rojo
ผู้จัดการแพคเกจ
Roblox มีชุด API ที่แข็งแกร่ง แต่ถ้าคุณต้องการใช้แพคเกจซอฟต์แวร์ชุมชนในลักษณะที่สอดคล้องและสามารถทำซ้ำได้ คุณต้องมีผู้จัดการแพคเกจวอลลี่ เป็นตัวเลือกยอดนิยมคุณสามารถติดตั้งผ่าน Foreman ได้เหมือนกับ 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วอลลี่สร้างไดเรกทอรี Packages และดาวน์โหลดแพคเกจที่ระบุไว้ที่นั่นขั้นสุดท้ายคือการเพิ่มไดเรกทอรี Packages ให้กับ Rojo เพื่อให้เนื้อหาสะท้อนกลับไปยัง Robloxเปิด default.project.json และเพิ่มเส้นทางเพื่อความเรียบง่ายตัวอย่างนี้เพิ่มทั้งไดเรกทอรีให้กับ ReplicatedStorage เพื่อให้แพคเกจทั้งหมดมีอยู่สำหรับสคริปท์ทั้งหมด แต่คุณอาจต้องการเพิ่มแพคเกจเฉพาะให้กับ ServerScriptService หรือ StarterPlayerScripts :
{
"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 โฮสต์รีพอสที่ระยะไกลและตรวจสอบการเปลี่ยนแปลงรหัสใน GitHub หรือ GitLab หรือ Bitbucket และใช้เครื่องมือแก้ไขข้อความใดก็ได้ที่คุณชอบ
รหัส Visual Studio มีระบบนิวเบลที่ใหญ่ที่สุด แต่ Sublime Text , Notepad++ และ Vim เป็นตัวเลือกยอดนิยมทั้งหมดไม่ว่าคุณจะเลือกเครื่องแก้ไขแบบใด การจับคู่ความสามารถของเครื่องแก้ไขสคริปต์ของ Studio จะต้องใช้ส่วนขยายบางอย่าง
คุณอาจพิจารณาเพิ่ม:
- ลินเนอร์เช่น selene เพื่อจับปัญหาทั่วไปและบังคับใช้มาตรฐานการเขียนโค้ด
- ตัวแก้ไขรหัสเช่น StyLua
- เซิร์ฟเวอร์ภาษาเช่น Luau Language Server สำหรับการเสร็จสมบูรณ์อัตโนมัติการตรวจสอบประเภท และอื่นๆ
สินทรัพย์
เครื่องมือบนหน้านี้เหมาะสมที่สุดสำหรับสคริปต์; ศิลปิน 3D ใช้เครื่องมือภายนอกแล้ว เช่น Blender และ Maya เก็บไฟล์ที่มาจากระบบควบคุมรุ่น และนำสิ่งประดิษฐ์ของพวกเขามาสู่ Studioหลังจากที่คุณมีสินทรัพย์ของสตูดิโอแล้ว เราขอแนะนำให้ใช้ แพคเกจ เมื่อใดก็ตามที่เป็นไปได้
การดำเนินการแพคเกจของ Roblox ปฏิบัติตามหลักการเดียวกับเครื่องมือบนหน้านี้หลายอย่าง: รีปอรีเซนตรัลไซส์ที่มีประวัติเวอร์ชันที่เสนอวิธีที่ราบรื่นในการเก็บสำเนาทั้งหมดของสินทรัพย์ให้อยู่ในสภาพเดียวกันสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่พวกเขาสามารถปรับปรุงกระบวนการทำงานของคุณได้ ดู แพคเกจ
ยกเลิกทุกอย่าง
เนื่องจากเครื่องมือบุคคลที่สามส่งการเปลี่ยนแปลงกลับไปยัง Roblox Studio แทนที่จะแทนที่ ไม่มีส่วนใดในกระบวนการนี้ที่เกี่ยวข้องกับการล็อคตลอดเวลาคุณสามารถหยุดใช้เครื่องมือเหล่านี้หนึ่งหรือทั้งหมดและกลับไปแก้ไขประสบการณ์ของคุณอย่างเฉพาะใน Studioความเสี่ยงที่ขาดหายไปทำให้การทดลองกับเครื่องมือของบุคคลที่สามน่าสนใจเป็นพิเศษ