การออกแบบเพื่อประสิทธิภาพหมายถึงการปฏิบัติตามคู่มือการใช้งานที่ดีที่สุด ตอนที่คุณสร้าง ประสบการณ์ของคุณ เมื่อเปรียบเทียบกับการค้นหาและแก้ไขปัญหาประสิทธิภาพในภายหลังในกระบว
อุปกรณ์ระดับต่ำ
อุปกรณ์ระดับล่างสุด เช่นอุปกรณ์มือถือ มีข้อจำกัดการเก็บหน่วยความจำที่รุนแรงและข้อผิดพลาดที่เกิดขึ้นได้อย่างรุนแรงเนื่องจากข้อผิดพลาดทางหน่วยความจำ (OOM) เช่น:
หากคุณต้องการสนับสนุนอุปกรณ์ระดับล่าง ให้เลือกชุดเริ่มต้นของอุปกรณ์ที่มีลักษณะประสิทธิภาพบางอย่าง ทดสอบประสิทธิภาพของประสบการณ์ของคุณบนพวกเขาในระหว่างกระบวนการพัฒนา แล
ตัวอย่างเช่นคุณอาจทด
เครื่องมือจำลองอุปกรณ์ใน Roblox Studio มีประโยชน์สำหรับการตรวจสอบอัตราส่วนระหว่างอุปกรณ์ แต่ไม่สามารถใช้งานได้สำหรับการใช้หน่วยความจำ เมื่อคุณทดสอบประสบการณ์ใน Roblox จะทำงานเซิร์ฟเวอร์และคลายเคล
โดยทั่วไป, การทดสอบบนหลากหลายของอุปกรณ์สามารถช่วยคุณตรวจสอบว่าประสบการณ์ตรงตามความคาดหวังของคุณในระดับกราฟิกคุณภาพต่างๆ หากต้องการให้คุณคิดเกี่ยวกับการเพิ่มประสิ
การสตรีมและการเทเลพอร์ต
การสตรีมเครื่องกลาง ช่วยให้ Roblox โหลดและปลดโหลดเนื้อหา 3D ได้อย่างไร้ความล่าช้าและเป็นตัวเลือกที่ดีสำหรับส่วนใหญ่ของประสบการณ์โดยเฉพาะอย่างยิ่ง สตรีมมิ่งปรับ
แบ่งสถานที่ขนาดใหญ่เป็นสถานที่ที่จัดการได้มากขึ้นและใช้ การเคลื่อนย้ายผู้เล่น เพื่อเคลื่อนย้ายผู้เล่นระหว่างพวกเขา
วัสดุและการเลียนแบบ
วัสดุที่อยู่ในตัวใช้หน่วยความจำน้อยลงมากเมื่อเปรียบเทียบกับวัสดุที่กำหนดเอง อย่างไรก็ตาม พยายามใช้วัสดุให้น้อยที่สุดเท่าที่จะเป็นไปได้เพื่อประหยัดความจำสำหรับวัสดุที่เป็นศูนย์กลางของประส
เมื่อคุณสร้างสินทรัพย์ แปลงพวกเขาเป็น แพ็กเกจ ให้พวกเขาเป็นส่วนหนึ่งของกระบวนการทำงานของคุณ การดำเนินการ
เมื่อคุณเพิ่มเมชและเนื้อหา ใช้และรียูสเมชแทนที่จะนำเข้าคัดลอกที่ซ้ำกัน โดยการปรับขนาด หมุน และโอเวอร์เลป คุณสามารถสร้างสภาพแวดล้อมที่หลากหลายที่ต้องใช้การเรียกเ
ความโปร่งใส
- หลีกเลี่ยงค่าความโปร่งใสนอกเหนือจาก 0 (มองเห็นได้) และ 1 (มองไม่เห็น) เมื่อคุณใช้ความโปร่งใสบางส่วน ให้ระวังเป็นพิเศษเพื่อหลีกเลี่ยง การเปลี่ยนแปลงความโปร่งใสที่มากเกินไป
สคริปต์
เมื่อเป็นไปได้ให้เขียนโค้ดขับเหตุการณ์แทนการคำนวณ per-frame อย่างเคย ที่ 60 ยิงมุมมองบุคคลที่หนึ่งการคำนวณงบประมาณรวมสำหรับแต่ละเฟรมคือ 16.67 มิลลิวินาที (ms) แม้ว่าจะเป็นเรื่องเล็กน้อยก็ตาม
หาวิธีการแบ่งโค้ดที่วิ่งนานเป็นชุดขนาดเล็ก หากชิ้นโค้ดหนึ่งใช้เวลา 100 ยิงมุมมองบุคคลที่หนึ่งประสบการณ์
แทนที่, สำรวจวิธีที่คุณสามารถแบ่งรหัสออกได้ บางทีคุณอาจสามารถดำเนินการ 5 มลิวินาตุต่อแถ่นหนึ่ง, ใช้ task.wait() และมีการคำนวณที่เสร็จสิ้นทุก 20 ยิงมุมมองบุคคลที่หนึ่ง
ใช้วิธีการ RBXScriptConnection:Disconnect() เพื่อหยุดการเรียกฟังก์ชันที่ไม่จำเป็นในครั้งต่อไปที่เหตุการณ์เกิดขึ้น
อย่าเรียกวิธีเดียวกันทุกครั้งที่คุณต้องการค่า โทรวิธีหนึ่งครั้ง เก็บค่าไว้ แล้วเขียนเขียวค่าด้านล่างเมื่อเป็นไปตามความจำเป็น
อย่าเก็บทุกอย่างใน ReplicatedStorage ตราบเท่าที่คลายแล้วจะโหลดทุกอย่างที่อยู่ในคอนเทนเนอร์นี้ แทนที่จะใช้ ServerStorage สำหรับสิ่งที่ลูกค้าไม่ต้องการเข้าถึง