跳到內容

Roblox 遊戲開發/遊戲引擎

來自 Wikibooks,開放世界開放書籍

ROBLOX 遊戲引擎可以分為不同的引擎。這些引擎中的每一個都負責完成與遊戲特定方面相關的任務。這些包括物理引擎,它處理物理物件的自然運動。例如,重力、部件碰撞和爆炸由物理引擎處理。渲染引擎負責在玩家的顯示器上顯示物理物件。網路引擎負責確保玩遊戲的玩家都能及時瞭解遊戲中發生的事情。Lua 引擎必須處理事件並執行遊戲程式碼,以便遊戲可以互動。

客戶端-伺服器模型

[編輯 | 編輯原始碼]
透過網際網路,客戶端與伺服器進行通訊的計算機網路圖。客戶端和伺服器都是節點(通訊點)網路上。

為了使許多玩家能夠同時玩遊戲,ROBLOX 託管遊戲伺服器,這些伺服器是執行在 ROBLOX 擁有的計算機上的 ROBLOX 軟體例項。當玩家進入遊戲時,他的客戶端,執行在他計算機上的 ROBLOX 軟體,要麼被連線到一個已經執行著他想要進入的遊戲的遊戲伺服器,要麼被連線到一個將被建立的新遊戲伺服器(如果不存在遊戲伺服器或所有可用的遊戲伺服器已滿,每個遊戲伺服器可以加入的最大玩家數量有限)。玩家的客戶端從遊戲伺服器下載整個場景。隨著遊戲發生變化,無論是物理引擎還是遊戲程式碼,這些變化都會複製到連線到該遊戲的每個客戶端。當這些變化發生在玩家的客戶端時(這可能發生在玩家移動他的角色以及類似事件發生時),這些變化會複製到伺服器,然後複製到所有其他客戶端。這就是為什麼所有玩家都能看到其他玩家的角色移動,以及為什麼指令碼所做的更改對每個玩家都是可見的。執行在每臺計算機上的每個 ROBLOX 軟體例項被稱為一個對等方:所有遊戲伺服器都是對等方,所有客戶端都是對等方。

一個遊戲伺服器和連線到它的客戶端共同組成一個網路。ROBLOX 遊戲伺服器的網路被稱為在客戶端-伺服器模型上執行,因為網路節點(對等方)的排列方式:客戶端與伺服器通訊,伺服器與客戶端通訊,但客戶端之間不直接通訊。網路的拓撲結構是節點在該網路中的排列方式。

遊戲伺服器和物理伺服器之間存在區別。物理伺服器是通常託管許多遊戲伺服器的物理計算機。遊戲伺服器是執行在物理伺服器上的 ROBLOX 軟體例項,它們與客戶端通訊以建立連線並傳輸資料。本地與伺服器之間也存在區別,本地是指與特定客戶端或所有客戶端相關的事物,而伺服器是指與伺服器相關的事物。

你可以回答一些問題來驗證你是否理解本章中的內容。請注意,要找到其中一些問題的答案可能需要了解本章中沒有介紹的知識。這是正常的:測驗是學習體驗的一部分,它們可以介紹本書其他地方沒有提供的資訊。

將每個遊戲引擎與其作用相關聯

網路引擎物理引擎渲染引擎Lua 引擎
在本地玩家的顯示器上顯示物理物件。
透過將伺服器上的更改複製到客戶端,使客戶端保持遊戲狀態的更新。
處理部件由於重力、部件碰撞和其他事件造成的自然運動。
在必要時觸發事件並處理 Lua 執行緒。

華夏公益教科書