This document is about: FUSION 2
SWITCH TO

Game Core

遊戲遊玩模式

控制遊戲遊玩並評估獲勝條件的主指令碼。GameplayMode的一部分是處理玩家的擊殺/死亡,和寫入玩家的統計資料。

死亡競賽

具有標準死亡競賽功能的最基本的遊戲模式。

淘汰賽

玩家的生命數量有限。最後一個存活的玩家獲勝。此遊戲模式的特點是縮小區域,它隨著時間的推移減少可用地圖空間。

shrinking area
淘汰賽遊玩模式中的縮小區域

皇家對戰

玩家從圍繞縮小區域盤旋的飛機開始。跳傘開始後,飛機進入活動地圖區域,玩家可以攜帶噴射背包跳傘降落。玩家只有一次生命,最後一個存活的人獲勝。

在飛機上時,玩家的輸入由AirplaneAgent處理。

battle royale airplane
注意事項:伺服器可以透過立即啟動跳傘或延長自動啟動倒數計時來控制跳傘何時開始。

縮小區域

縮小區域是一個圓形區域,隨著時間的推移而收縮,並對該區域以外的玩家造成傷害。收縮分為多個步驟。在執行每個步驟之前,UI中將顯示一個警告和剩餘時間。收縮步驟之間的時間取決於活躍玩家——活躍玩家越少,區域收縮得越快。

announcements

縮小區域在皇家對戰和淘汰賽模式中啟用。

公告器

Announcer系統是一個簡單的系統,可以向玩家通知遊戲中的事件,如多次擊殺、剩餘時間、剩餘玩家等。每個遊戲模式都可以定義一組不同的公告,這些公告被評估並呈現給玩家。

announcements
皇家對戰遊戲模式中的公告

Announcement是定義遊戲中事件的可指令碼物件。每個公告物件都有自訂的評估邏輯,並包含觸發後應向玩家顯示的訊息或音訊片段。公告可以有不同的優先順序,並且可以在特定頻道中播放。當同時觸發同一頻道中的兩個公告時,只顯示優先順序較高的公告。這確保了例如,即使Double Kill和Triple Kill公告都已啟動,也只顯示Triple Kill公告。

關卡生成

由於為200名玩家建立有意義的關卡非常耗時,我們選擇了半自動地透過程式碼生成關卡。

genarea 7
GenArea 7場景含有七個著色區域

當伺服器載入場景時,每個關卡都是基於運行階段指定的參數生成的。生成過程中涉及到一些隨機性,因此每次運行都是不同的。

場景GenArea2 - GenArea 7的不同之處僅在於位於Gameplay/NetworkGame遊戲物件上的參數設置。

genarea7 generation
用於GenArea 7生成的值

關卡生成細節不在本文檔的範圍內,但簡而言之,關卡分為 區域(著色部分)。每個區域都由 (預製的預製件)建造,塊與 連接器(預製的預製件-坡道,一堆箱子)連接。每個區域的中心由一個特殊的 塊定義。控制生成的值可以在LevelGenerator指令碼中找到。

level generator
關卡生成器檢查器

每個塊都可以定義玩家可能生成的位置和物品盒的位置。作為生成過程的一部分,物品盒被生成到關卡中。

網路遊戲

NetworkGame處理連線玩家的加入和離開,並為每個客戶端生成一個Player預製件。中斷連線的玩家會被儲存,以便在重新連線時恢復他們的資料。NetworkGame在初始化過程中生成GameplayMode

場景與場景內容

Scene 處理特定於場景的功能和服務(繼承自SceneService),如UI、相機、音樂、小地圖和其他。場景服務是從Scene手動更新的,因此它們可以隨時被初始化、啟用、停用和更新。

SceneContext 提供對跨程式碼庫所需的常用服務或其他資訊的安全存取,而無需使用靜態。場景內容自動傳遞給場景服務,並指派給GameplayNetworkObjectPool中的聯網物件。存取SceneContext需要從ContextBehaviour而不是從NetworkBehaviour繼承。

遊戲核心

下圖說明了應用程式迴圈:

application loop
應用程式迴圈

下圖顯示了核心遊戲指令碼的生命週期:

game core
核心遊戲指令碼的生命週期
Back to top