Quantum 遊戲開發 — Project Blueless 範例介紹

Steven Hu
Photon Taiwan
Published in
7 min readOct 15, 2023

在遙遠的沙漠古城裡,”Project Blueless” 與你展開一場古今交織的冒險。 這款由 BitCake Studio 為 Photon 特別研制的多人對戰的 2D 平台射擊遊戲, 憑借著 Quantum 的卓越技術,帶來了前所未有的遊戲深度。

我們之前也常提到這個專案,在各個影片也常帶出它的遊戲畫面。
今天,就來帶大家看一下實際安裝執行的部份 !

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

遊戲玩法:

  • 沉浸在速度與激情並存的 2D沙漠戰場中,探尋古老城市的每一隅。
  • 起舞空中,利用特殊雙重跳躍穿梭於城市的上下。
  • 強大的區域傷害能力,令你在戰場上一展拳腳。
  • 手中的手榴彈,是你打破僵局的王牌。
  • 精確的裝填彈藥與射擊時間的嘗控,每一次的決策皆需精準的策略部署。
  • 善用策略來切換武器,以因應瞬息萬變的戰場環境。

控制指南:

  • 用 A 和 D 鍵 左右地流暢移動,探索這片神秘沙漠。
  • Space 鍵 為你打開飛翔的大門,追求極限的自由。
  • Q 和 E 鍵 幫你在瞬息間 選擇合適的武器。
  • F 鍵,展現手榴彈的神奇威力。
  • 滑鼠的導引下,精準瞄准每一個目標。

“Project Blueless”不只是射擊的舞台,更是一次沙漠古城的探索之旅。和其他玩家一起,在這片歷史與現代交織的土地上,踏上尋找魔法的冒險吧 !!

Quantum 100 系列

在 Photon 的官網, 有提供了一個名為 “Quantum 100” 的系列教學,它是一個循序漸進的步驟說明,可以幫助我們瞭解如何在 Unity 中使用 Quantum SDK。

在開始使用 Quantum 之前,也是需要了解一些基本的原理及概念。 像是 Quantum 是一個高性能的確定性 ECS 遊戲引擎,專為線上多人遊戲設計。 雖然 Quantum 大大簡化了多人遊戲的開發,但它需要一種不同於純粹依賴 GameObject 的開發方式,並且自然而然地會將遊戲玩法的程式與視覺/渲染的程式, 直接達成嚴格的分離。

而因為 Quantum 的架構設計非常特殊,所以 Quantum 可以輕易地把視覺(View/Render) 的部份,直接 porting 到 Godot,因為只要是有支援 C# .Net 的遊戲引擎上就是可以移植的喔 !!

甚至,在不久的將來還可能有 Unreal 的版本唷 !!

所以,目前開發 Quantum SDK 時, 對 C# 和 Unity 的遊戲開發概念至少有些基礎會比較好。 如果曾經有使用過 ECS 方面的程式設計和在 C# 中操作 Pointer 的經驗,那就更棒了,因為實作起來會更順手的 !!

“Quantum 100” 系列教學涵蓋了建立多人原型的基本知識。 無論是一個沒有多人遊戲開發經驗的初學者, 還是一個對 Quantum 新手但經驗豐富的開發者, 我們都強烈推薦至少照著這個教學, 實際的上手操作一次。

Quantum 100 系列, 教學連結:

https://doc.photonengine.com/zh-tw/quantum/current/quantum-100/overview

好的, 以上即是這個專案的一些遊戲內容的說明. 現在, 我們來看看程式方面的, 啟動執行須要注意的地方跟步驟.

Blueless Project 專案導入

現在,讓我們來看看如何使用 Blueless 這個專案. 首先,我們需要到 Photon 的官網,直接下載這個專案:

https://doc.photonengine.com/zh-tw/quantum/current/game-samples/blueless

  • 壓縮檔解開後, 可看到 Quantum Blueless 目錄, 這就是 Unity 可直接開啟的專案.
壓縮檔內, 有Unity 專案 (Quantum Blueless)
  • 在開始遊戲之前, 你需要在 PhotonEngine Dashboard 設定一個 Quantum AppID, 並將其貼到 PhotonServerSettings Asset 的 AppId 欄位中。如下所示 :

然後在 Scenes 選單中載入 Menu 場景並按 Play。即可開始玩囉 !!

  • 如果想測試實機效能, 請將 Quantum 專案選到 Release 的輸出, 並且使用 IL2CPP 的方式來建構遊戲, 如此, 在 mobile / webGL 的環境上, 效能可以比預設的 Debug + mono Build 還要快上 2~10 倍以上.
  • 這個快節奏的 2D 平台射擊遊戲,運用了 Quantum 技術,所以稍微再自行增加點控制操作, 就可將其放置在 WebGL、Mobile 中執行。
WebGL 中執行 Blueless 的遊戲畫面

Blueless 此範例的遊戲技術亮點, 可在程式原始碼中看到:

  • 可使用自定義的 3D 的角色控制器, 顯示在 2D XY平面 的平台上, 來實現玩家角色的操作.
  • 子彈, 使用 delta-movement , 也就是 “在 Delta 時間內往前推算的移動” 的 “射線投射彈道系統”
  • 人物、子彈、武器庫存系統, 都是基於數據驅動 (Data Driven) 的多態性的設計, 在專案要擴展時, 非常方便.
  • 使用實體原型 (Entity Prototype) 實作的重生點 (Respawn Point) 設計, 方便在設計時, 可隨時隨意更換重生點, 或是方便以程序式、亂數式的產生重生點, 也不會重生在不該重生的地方, 例如重生時卡在牆壁上、在地面之下等等.
  • 對於不活躍的玩家, 有提供強制斷線系統 (Disconnection System), 使其不會佔用系統或是網路資源.
  • 在遊戲中,玩家需迅速移動和跳躍,避免敵人的攻擊,同時尋找有利的位置進行反擊。 當玩家成功擊敗對手後,遊戲會彈出提示,例如”Vallcrist killed Debs”, 讓玩家知道自己或隊友的表現。
  • 倒數計時的設計. 時間到了, 遊戲即結束. 可顯示所有玩家的得分狀況.

核心玩法:

  • 遊戲節奏快速,玩家在古老的沙漠城市中進行刺激的 2D平台戰鬥。
  • 能夠進行雙重跳躍 (Double Jump),更加自由地探索古城的每一角落。
  • 強大的 “區域傷害” 技能,能夠在一定的範圍內造成傷害。
  • 玩家可利用 “手榴彈” 清除前方的障礙, 或是同時對多個敵人造成損傷.
  • 每種武器都有其獨特的裝填時間 Reload, 在射擊後需要等待一段時間才能再次開火, 使戰鬥策略更加豐富。
  • 靈活切換武器,(一個角色可以有多種武器), 可根據不同的戰鬥情境調整策略。

操作方式:

  • A 和 S 鍵讓角色進行移動
  • Space 鍵能使角色跳躍
  • Q 和 E 鍵為更換武器, 遊戲中有提供二種不同的武器, 可直接切換
  • 使用滑鼠遊標進行瞄準, 左鍵為武器發射
  • F 鍵, 為手榴彈, 可投出破壞力十足的手榴彈。

小結:

Project Blueless 是一款由 BitCake Studio 專為 Photon 開發的樣本遊戲專案, 有完整的原始碼供各位開發者參考, 其展示了如何使用 Quantum SDK 的技術, 以打造出一款速度快, 且動作滿載的 2D平台射擊遊戲 !!

日前,Quantum SDK 就已開放給所有人免費下載及開發,這為所有想做連線遊戲開發者打開了一扇新的大門,無論是專業的遊戲開發團隊,還是對遊戲開發充滿熱情的個人開發者,都可以利用這個強大的引擎來創造心中的理想遊戲。 🎯

所以,希望各位開發者能以此遊戲範例做為一個參考點,將其中的設計引入自己的遊戲專案中,以創造更有趣的多人連線遊戲囉 !! 🚀

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

Stay Tuned!

--

--