การทำงานของไคลเอนต์-เซิร์ฟเวอร์

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

เซิร์ฟเวอร์

ประสบการณ์ Roblox เป็นผู้เล่นหลายคนโดยค่าเริ่มต้นและทำงานในรูปแบบไคลเอนต์-เซิร์ฟเวอร์เซิร์ฟเวอร์ Roblox **** เป็นอำนาจสูงสุดสำหรับการรักษาสถานะของประสบการณ์และมีความรับผิดชอบในการให้ทุกไคลเอนต์ที่เชื่อมต่ออยู่ในความสอดคล้องกับเซิร์ฟเวอร์

A server grouping with connections to three client devices.
เซิร์ฟเวอร์ที่มีการเชื่อมต่อกับอุปกรณ์ลูกค้าสามอุปกรณ์

ไคลเอนต์

เมื่อประสบการณ์ทำงาน Roblox จะคัดลอกรุ่นของโมเดลข้อมูล "แก้ไข" ที่คุณสร้างและเผยแพร่จาก Studio และทำงานบนเซิร์ฟเวอร์ Roblox เป็นโมเดลข้อมูล "รันไทม์"

ไคลเอนต์ที่เชื่อมต่อยังได้รับสำเนาของโมเดลข้อมูลรันไทม์และการเริ่มต้นของผู้เล่นเกิดขึ้น เช่น การเริ่มต้นกระเป๋าเป้สะพายหลัง (สินค้าคงคลัง) หรืออินเทอร์เฟซผู้ใช้ท้องถิ่นเมื่อประสบการณ์มี Workspace.StreamingEnabled ตั้งค่าเป็นจริง เซิร์ฟเวอร์จะส่งเนื้อหาส่วนหนึ่งเท่านั้นภายใต้ Workspace ที่ใกล้เคียงกับไคลเอนต์มากที่สุดในตอนแรกไคลเอนต์จะแสดงโลก 3D และเริ่มต้นใช้สคริปต์ใดๆ ที่เกี่ยวข้อง

A diagram that maps objects between 'edit' and 'runtime' data models.

การเลียนแบบ

เซิร์ฟเวอร์อัปเดตอย่างต่อเนื่องกับลูกค้าที่เชื่อมต่ออยู่เสมอ โดยเก็บทุกอย่างให้สอดคล้องกันทั่วเซิร์ฟเวอร์และลูกค้าผ่านกระบวนการที่เรียกว่า การเลียนแบบ ซึ่งจะซิงโครไลซ์โมเดลข้อมูล การจำลองฟิสิกส์ และข้อความแชทโลจิสต์การเลียนแบบมีอยู่ทั้งในไคลเอนต์และเซิร์ฟเวอร์เพื่อให้แน่ใจถึงการซิงโครไลซ์

ข้อมูล

การเปลี่ยนแปลงรูปแบบข้อมูลสามารถเกิดขึ้นได้ในหลายกรณี เช่น เมื่อสร้างบางสิ่งบางอย่างในโลก 3D หรือเปลี่ยนคุณสมบัติของโลก 3Dสิ่งนี้มักเกิดขึ้นเมื่อสคริปต์บนเซิร์ฟเวอร์หรือไคลเอนต์ทำการเปลี่ยนแปลงที่ต้องสะท้อนบนอีกด้านหนึ่งของขอบเขตไคลเอนต์-เซิร์ฟเวอร์ภาพวาดต่อไปแสดงสถานการณ์ทั่วไปสำหรับการเลียนแบบข้อมูล

ไคลเอนต์เซิร์ฟเวอร์
>

>

A diagram of one client communicating with the server.

การสื่อสารจากไคลเอนต์ใด ๆ ไปยังเซิร์ฟเวอร์ตัวอย่างเช่น ไคลเอนต์กดปุ่ม P เพื่อดื่มยาล่องหนและบอกให้เซิร์ฟเวอร์ทำให้ตัวละครของผู้เล่นคนนั้นไม่มองเห็นได้สำหรับผู้เล่นคนอื่นทั้งหมด

เซิร์ฟเวอร์คลายเอนต์
>

>

A diagram of the server communicating with one client.

การสื่อสารจากเซิร์ฟเวอร์ไปยังคลายเอนต์หนึ่งเฉพาะตัวอย่างเช่น ผู้เล่นเข้าร่วมประสบการณ์และเซิร์ฟเวอร์จะเติมสินค้าคงคลังของผู้เล่นด้วยชุดของไอเทม

เซิร์ฟเวอร์ลูกค้าทั้งหมด
>

>

A diagram of the server communicating with all connected clients.

การสื่อสารระหว่างเซิร์ฟเวอร์และลูกค้าทั้งหมดตัวอย่างเช่น การแสดงนับถอยหลังสำหรับผู้มีส่วนร่วมในการแข่งขันทั้งหมด

ฟิสิกส์

Roblox ใช้เครื่องกลศาสตร์ร่างกายแข็งที่รับผิดชอบในการคำนวณการเคลื่อนไหวและการโต้ตอบของชิ้นส่วนในโลก 3Dโดยค่าเริ่มต้น ส่วนทั้งหมดใน Roblox เป็นร่างกายแข็งและมีส่วนร่วมในฟิสิกส์จำลอง เว้นแต่จะระบุไว้อย่างอื่นคุณยังสามารถรวมชิ้นส่วนหลายชิ้นเข้าด้วยกันเป็นชุดส่วนประกอบซึ่งเครื่องกลศาสตร์จะปฏิบัติต่อเป็นร่างกายแข็งเดียว


A single block part in the shape of a cube that represents a single assembly.
1 ชิ้นส่วน; 1 ส่วน
A player character that represents a single assembly of 18 individual parts.
การประกอบ 1; 18 ชิ้น
A pirate ship mesh that represents a single assembly of 179 individual parts.
การประกอบ 1; 179 ชิ้น

Roblox ทำซ้ำข้อมูลจำลองทางกายภาพระหว่างเซิร์ฟเวอร์และไคลเอนต์เมื่อจำเป็นเพื่อช่วยเพิ่มประสิทธิภาพการจำลอง Roblox สามารถกำหนดสิทธิ์เจ้าของของชิ้นส่วนให้กับไคลเอนต์หรือเซิร์ฟเวอร์เฉพาะได้ซึ่งหมายความว่าไคลเอนต์หรือเซิร์ฟเวอร์สามารถรับผิดชอบในการจำลองฟิสิกส์ของการประกอบนั้นได้ไคลเอนต์อื่นๆ ได้รับการอัปเดตเกี่ยวกับตำแหน่งและการเคลื่อนที่ของการประกอบจากไคลเอนต์หรือเซิร์ฟเวอร์เจ้าของการเป็นเจ้าของมักจะเกิดขึ้นโดยอัตโนมัติ แต่คุณสามารถกำหนดได้โดยตรงเพื่อให้ตอบสนองได้ดียิ่งขึ้น

ส่วนเจ้าของระบุผ่านเส้นสีเปล่า

แชท

Roblox ทำซ้ำข้อความแชทระหว่างเซิร์ฟเวอร์และไคลเอนต์เซิร์ฟเวอร์เป็นผู้รับผิดชอบในการกรองข้อความแชทและตัดสินใจว่าข้อความใดที่จะส่งซ้ำไปยังไคลเอนต์อื่นตัวอย่างเช่น เซิร์ฟเวอร์อาจกรองข้อความที่มีคําหยาบหรือยาวเกินไป