客戶端-伺服器運行時

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

伺服器

Roblox 體驗是多人遊戲的預設,並且以客戶端-伺服器模型運行。 Roblox 的 伺服器 是體驗狀態的最終権威,負責維護所有連接的客戶端與伺服器保持同步。

A server grouping with connections to three client devices.
服務器與三個客戶端設備連接器

客戶

當體驗執行時,Roblox 會從您建立和發布的「編輯」資料模型中複製一個版本,並在 Roblox 伺服器上作為「時間」資料模型執行。

連接的客戶也會收到一副執行時資料模型和玩家初始化的任何內容,例如玩家的背包 (道具欄) 或本地用戶界面。當體驗具有 Workspace.StreamingEnabled 設為 true 時,服務器會首先發送一個子集的內容到 Workspace 最靠近客戶。然後,客戶會 rend

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 中的所有零件都是堅體體階級,不論是否為單個零件。您還可以將多個零件組成為單個堅體身體階級,這是 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 在服務器和客戶端之間重複聊天訊息。服務器負責過濾聊天訊息並決定哪些訊息要複製到其他客戶端。舉例來說,服務器可以過濾包含惡意或太長的訊息的聊天訊息。