Quantum v3 — 賽車遊戲範例

Steven Hu
Photon Taiwan
Published in
10 min readMar 27, 2024

歡迎來到 Quantum Karts 的世界,一個充滿刺激與樂趣的 Arcade Racing 街機風格賽車遊戲範例。在這篇文章中,我們將以簡易並直白的方式來說明這個如何利用 Quantum SDK v3 框架來打造的獨特的遊戲,像是從精緻的物理計算到創新的賽道設計,每一環節都為玩家帶來難忘的駕駛體驗。無論您是遊戲開發者正在尋找靈感,還是賽車遊戲的愛好者,此篇文章都將為您展示 Quantum Karts 背後的技術和創意。

[注意] 此範例目前僅供 Circle Member 專屬下載.
還沒加入訂閱會員的人,還請先看看文章及影片說明,日後若有機會下載時,就可以更快上手囉.

Quantum Karts 展示了如何利用 Quantum v3 框架來構建一款具有完整賽道循環、AI 對手、道具等元素的街機賽車遊戲。這個範例支持最多 12 輛卡丁車,提供 2 條賽道、4 種不同的道具、3 種卡丁車型號以及 3 種外觀。

我們先來看看這個專案的玩法及操作介紹.

技術資訊

  • Unity 版本:2021.3.30f1。
    請儘可能的使用 Unity LTS 版本,以避免眾多各種不同的 Unity 版本,會破壞本遊戲專案已寫好的結構。
  • 平台:PC (Windows / Mac),WebGL。
    是的,Quantum SDK v3 可以良好的支援 Unity WebGL 輸出,但請注意,著色 Render 的部份請儘量使用簡單一點的著色效果,以避免 WebGL 運作起來很不順暢。

開始之前

要以 ”線上多人模式” 運行這個範例時,首先需要在 PhotonEngine 的設定面板中建立一個 Quantum v3 的 AppID ,並將填寫到遊戲內的Photon Server Settings 資源的 AppId 字串中。

完成之後,可在場景 Menu 中載入 Menu 場景並按下 Play 按鈕進行多人線上遊戲。

技術及玩法設計

技術方面

  • 採用 Broadphase Queries 實現街機賽車物理效果,包括輪子和碰撞。
  • 客製化的摩擦和漂移物理效果,利用多種不同的 FP (定點數)數學特性。
  • 提供不同的駕駛條件以模擬各種地面物理(摩擦力)。
  • 實現輸入編碼的轉換 (Vector2 <-> byte),減少網路頻寬的消耗。
  • 為可重複使用的道具實體建立 Object Pool 物件池。
  • 具有可調整難易度的 AI 駕駛員,能夠穿越賽道、漂移和使用道具。
  • 可擴展的道具系統,支援每種道具的不同 AI 行為。
Quantum Karts — 駕駛機器人 AI

遊戲玩法

  • 提供令人滿意的街機駕駛體驗,配合獎勵型的基於技能的漂移機制。
  • 完整的比賽循環:準備確認(Ready)、倒數計時、比賽開始、計分板。
  • 可供選擇的不同卡丁車統計數據和外觀。
  • 通過執行長時間漂移以獲得速度提升。
  • 4 種武器加上它們的變體(炸彈、地雷、護盾、加速)。
  • 2 條具有不同駕駛表面的賽道。

控制按鍵

  • 轉向: A/D 或左/右鍵。
  • 加速: W 或上鍵。
  • 倒車: S 或下鍵。
  • 跳躍/漂移: 空格鍵。
  • 使用道具: Shift 鍵。

在 Quantum SDK 框架中,Broadphase Queries 是一種效率非常高的物理碰撞查詢方法,用於快速識別和處理遊戲中可能發生碰撞的物體。這裡簡單說明一下 Broadphase Queries 的概念及其在處理車輪和碰撞方面的作用。

什麼是 Broadphase Collision / Queries?

Broadphase Collision 是 Quantum 物理系統中的前置階段,目的是快速排除那些"明顯"且不會相互碰撞的物體,從而減少需要進行更精確碰撞檢測的物體對數量。在大規模或複雜的遊戲環境中,這種方法尤其重要,因為它能大幅提高物理計算的效率。

Broadphase Collision 通常利用空間分割或包圍盒技術來實現。這意味著遊戲世界會被劃分為多個區域,或者每個物體都會被賦予一個簡單的包圍盒(如立方體或球體),只有當這些區域或包圍盒發生重疊時,物體之間的碰撞才會被進一步詳細檢測。

Quantum Karts — Broadphase Queries

如何使用 Broadphase Queries?

在 Quantum Karts 的遊戲開發中,使用 Broadphase Queries 的方式來處理與車輪碰撞相關的物理計算。簡白的工作步驟是:

  1. 車輪檢測:Quantum 利用 Broadphase Queries 快速安插須要檢測的哪些車輪與地面或其他物體的可能接觸。這一步可大幅地減少需要進行詳細碰撞回應計算的物件數量。
  2. 碰撞處理:當車輪或車輛可能發生碰撞時,Broadphase Queries 幫助制定哪些碰撞需要做進一步精確檢測查詢。接著,Quantum 會對這些潛在的碰撞進行詳細的碰撞解算,以確保物理機制的準確性和真實性。
  3. 碰撞回呼:當有碰撞發生時,Quantum 會發出事件觸發的 Signal,因此遊戲中會編寫不同對應的系統,以處理來自 Quantum 發出的碰撞及查詢 Signal.

透過這種方式,Quantum SDK 使用 Broadphase Queries 提高了物理計算的效率和精確度,特別是在涉及快速移動和多個互動物體的情境中,如這個Karts 賽車遊戲。這不僅確保了遊戲物理的準確性,也最佳化了性能,保證即使在快節奏的遊戲環境中,玩家也能獲得流暢和真實的遊戲體驗。

Check Point 的機制運用與優點

在 Quantum Karts 的遊戲設計中,賽道上設置了多個 CheckPoint,這些 CheckPoint 是透過 Collision Box(碰撞觸發器)來實現的。這個設計不僅增加了遊戲的互動性和挑戰性,還提供了多重功能來最佳化玩家的遊戲體驗和遊戲的整體流程。

Quantum Karts — Check Point

跑道監測與方向判斷

CheckPoint 的主要功能之一是檢測玩家、賽車和 AI 是否保持在正確的賽道上。如果玩家或 AI 駕駛偏離了賽道或是跑錯方向,系統通過這些 CheckPoint 便能立即偵測到,並採取相應的措施,比如自動糾正路線或是以 UI 提示玩家,讓玩家能即時反應。

AI 的路徑選擇與策略制定

對於 AI 駕駛來說,這些 CheckPoint 不僅是路徑指示,也是其決策過程的一部分。AI 會根據這些點來計劃其路徑,做出加速、減速或是變道等策略決定,使得 AI 的行為更加聰明和自然,增加了遊戲的競技性和可玩性。

玩家進度與記錄

CheckPoint 也用於記錄玩家在賽道上的進度,確保比賽的公平性。在一些情況下,如果玩家出現事故或機器故障而需要重新開始,系統可以將玩家放回最近的 CheckPoint,而不是賽道起點,這樣可以提升遊戲的流暢度和玩家的遊戲體驗。

所以,CheckPoint 的設置讓 Quantum Karts 的賽道更加生動,增加了遊戲的策略性和挑戰性,同時也保證了競賽的公正性和流暢性,這些都是創造一款成功賽車遊戲的關鍵因素。

Quantum Karts 與 Fusion Karts 對比

在這部分,我們來對比兩個遊戲範例:Quantum Karts 和 Fusion Karts,這兩者雖然都是卡丁車遊戲,但在實現方式和技術框架上有所不同。

Quantum Karts (參考連結)

  • 框架物理:使用 Quantum 3 遊戲框架來實現遊戲,並強調在 Quantum 物理引擎上的運用。
  • 物理引擎:運用 Quantum 的 Stateless 無狀態的物理引擎來實現更精確的物理模擬。並使用四個輪子來操控車子與環境的精準互動.
Quantum Karts — Karts Entity and AI
  • AI : 引入 Check Point 的設計,以及多種 AI Bot 駕駛的機制.
  • 遊戲設計:提供多種卡丁車、賽道和道具選擇,並有不同的移動漂移計算和賽車機制。
Quantum Karts - Power Up

Fusion Karts(參考連結

  • 框架:使用 Fusion 2 來開發遊戲,採用 Host Mode, Server Authoritative, Client Predicted 機制。
  • 物理引擎:屬於 3D 物理沙盒 (PhysX Sandbox) 的範例,利用 NetworkRigidbody 來同步網路上的物理行為。使用一個圓球體來判斷車子與環境的簡易有趣的互動.
  • 遊戲元素:遊戲中包含了香蕉、加速器、阻礙物和可收集的物品等遊戲元素,以及選擇不同地圖和多款功能不同的卡丁車。在遊戲過程中玩家可以提升卡丁車的能力(PowerUp)。
Fusion Karts

雖然 Quantum Karts 和 Fusion Karts 都提供了精彩的卡丁車遊戲體驗,但它們在技術實現、物理引擎使用和遊戲設計方面有著明顯的差異。選擇哪一個框架取決於開發者的需求和對特定技術的偏好。如果您對 Fusion Karts 感興趣,也可以透過提供的參考連結進一步了解並嘗試該範例。

小結

隨著本文的結尾,我們已經一起探索了 Quantum Karts 這款獨特的卡丁車遊戲範例,它利用 Quantum SDK 框架的強大功能,帶給玩家一個充滿激情、技巧和策略的賽車體驗。從技術細節到遊戲玩法,從 AI 的智能決策到玩家的互動體驗,Quantum Karts 展示了一個綜合性的賽車遊戲世界。

文中,我們簡白地討論了 Quantum Karts 的核心技術,包括如何利用 Broadphase Queries 來為車輪和碰撞提供精確的物理計算,以及 Quantum 框架如何處理這一整個過程。同時,我們也瞭解了遊戲中 CheckPoint 的設計構思,引入這些 CheckPoint 的設計,不僅幫助維持比賽的秩序,還為 AI 提供了決策基礎,並增強了玩家的遊戲體驗。

通過與 Fusion Karts 的對比,我們看到了不同遊戲開發框架和技術選擇如何影響最終產品的表現和玩家體驗。這種比較不僅突顯了 Quantum Karts 的特點,也展示了當代遊戲開發中的多樣性和創新。

作為開發者或遊戲愛好者,瞭解這些技術和設計理念不僅可以幫助我們更好地欣賞和學習此類的遊戲設計,也能啟發我們在未來的創作和開發中尋找新的可能性。Quantum SDK 提供了一個強大的工具集,讓建立如 Quantum Karts 這樣的高質量遊戲成為簡單的事,同時也為遊戲開發社群帶來了更多的便利和靈感。

🎯 希望我們 Photon Taiwan 的存在, 能夠幫助各位更容易上手這些突破時代劃破時空的超絕黑科技, 一起開發獨具特色的網路多人遊戲吧 !

😃 有開發上的疑問嗎? 可到粉絲團直接發訊息討論討論!
https://www.facebook.com/photoncloudtw/

Stay Tuned!

--

--