本文翻譯自 Creating Udemy Courses for Photon Fusion & Quantum 2025年2月14日
我們的社群裡有很多才華橫溢的開發者,他們喜歡分享自己的智慧!在這篇部落格中,我們邀請了 Oren 和 Nikola,他們將自己在 Photon Fusion 和 Photon Quantum 的知識帶到了 Udemy。兩位都提供了對所有想學習多人遊戲開發的學員來說很有幫助的課程,內容涵蓋從基礎到進階的各種主題,幫助大家打造更棒的多人遊戲體驗。我們不只是單純列出課程,而是和他們坐下來聊聊,聽聽他們為什麼想要分享自己的知識。
在這門課程中,Oren 專注於 Fusion,並展示如何在 Unity 中開發多人遊戲。他會講解一些重要主題,例如客戶端-主機模型、客戶端預測、伺服器同步,還有物件池的使用。他會帶你一起建立大廳配對系統、實作重生邏輯、比賽計時器、玩家聊天泡泡,以及同步玩家的視覺效果。每一堂課後都有專案檔和推薦連結提供給你。你可以在這裡找到這堂課!
Nikola 則專注於 Quantum,教你如何從頭開始使用 Photon Quantum 3 開發一款大逃殺遊戲。在這門課程中,你會學到一些基本的多人遊戲概念,包括流暢的角色移動、玩家互動和遊戲狀態管理,同時也會打下可擴展遊戲開發的堅實基礎。到課程結束時,你應該能夠自信地運用這些技術,創造出有趣的多人遊戲體驗,無論是小型原型還是完整遊戲。點這裡來看看他的課程!
如果這引起了你的興趣,那就繼續往下看,體驗一下遊戲開發的樂趣吧!這絕對會為每個想要用 Photon 開始多人遊戲開發的朋友帶來許多有趣的見解和收穫喔!
嘿,大家好,謝謝你們抽出時間。想問一下,當初是什麼原因讓你們決定要在 Udemy 上開設有關 Photon 的課程呢?
Oren: 經過大約六個月和 Photon Fusion 的合作,我對於大部分競技型即時遊戲的網路程式設計有了全新的看法。看到業界標準的網路解決方案怎麼運作,以及它如何處理複雜的多人遊戲挑戰,真的讓我大開眼界,雖然這樣聽起來有點好笑。
在用 Fusion 做了一款小遊戲之後,我發現市面上針對它的學習資源不太多。由於 Fusion 跟我之前在 Unity 嘗試過的其他多人網路解決方案相比,進步了很多,因此我想成為首批創建結構化學習資源的人之一,幫助其他開發者入門,讓大家能充分利用這個超棒的新技術。
Nikola: 我在職業生涯中使用過許多 Photon 的解決方案,但當我看到 Quantum 時,真的被它創建多人遊戲的簡單程度驚呆了。而且因為市面上沒有針對 Photon Quantum 基礎的課程,所以我決定自己來創建一門。
那你覺得教別人使用 Photon 最讓你感到有成就感的地方是什麼呢?
Nikola: 我其實很喜歡教人(而且我還是一位認證的 Unity 講師😀),所以教大家我熱愛的這項技術真的讓我感到非常滿足。我喜歡 Photon(還有它所有的產品)的地方是,我不需要擔心複雜的伺服器管理,這些都是你們替我們搞定的,讓我們這些 Unity 開發者可以專心投入在有趣的部分。
Oren: 看著學員的評價真的很棒!雖然不是每一個都是五星好評,但我注意到很多完成課程的學生都體會到我之前提到的那種對多人遊戲開發的理解變化。有時候他們會在社群上發帖說遇到問題,而我還沒來得及回覆,他們自己就已經找到解決方法了。看到至少有一些人能掌握網路程式設計和 Fusion 的運用,真的讓人感到很開心。
你們花了這麼多時間使用我們的產品,對於 Photon 在未來多人遊戲開發中的發展,你們有什麼看法呢?
Nikola: 我認為 Photon 已經在各種遊戲工作室中樹立了高端解決方案的地位。就我個人來說,未來如果能看到類似 Unity 的分散式權限管理功能,那會真的很棒!
除此之外,當技術在市場上變得足夠快速且被廣泛認可時,我百分之百相信 Photon 能夠開發出完整的去中心化多人遊戲解決方案(也就是所有事情都能發生在區塊鏈上)。作為一個在 web3 領域待了一段時間的人,我真的覺得這在未來幾年內是有可能實現的🙂。
Oren: 我從小就開始使用 Photon 的產品,已經有 8 年了,最早是使用 Unity 的 PUN 1 和 2。從我的角度來看,能夠接觸到這麼頂尖的技術,讓我們(開發者)省下了無數的開發時間,真的是太不可思議了。我相信 Photon 會繼續縮小開發多人遊戲的難度,讓整個過程變得更順暢。
聽說 Photon 正在計畫把 Fusion 推出到 Unreal,這對 Unreal 的開發者來說會是一個重大變革,我自己也超期待的!如果能有像 Fusion 這樣的工具來簡化 Unreal 的多人開發,對開發者來說真的會是個很大的優勢。
*這類產品其實已經上市了。我們的「共享拓撲」早在 PUN 上就已經推出了(自 2012 年開始;其實我們是第一個發明它的),現在也在 Fusion 上可用。
你會給那些想使用 Photon 的新手遊戲開發者什麼建議呢?
Oren: 我個人建議可以想一個你熱愛的小遊戲點子,然後加入 Photon 的官方 Discord 頻道。詢問一下哪種網路程式設計最適合你的遊戲和技術水平,然後按照他們的建議來進行!不管是 Fusion 還是 Quantum,都有很多資源可以幫助你。
在 Photon 的 Discord 上簡單聊一聊可以讓你省下很多時間,讓你更快找到正確的方向。雖然要掌握所有東西可能需要點時間,但把它當成一個有趣的挑戰,一步一步來就好。此外,參與社群也是一個很好的動力,能讓你分享進度、提出問題,並持續前進!
Nikola: 從小做起!用 Fusion 嘗試做一個簡單的多人遊戲,花一個月或兩個月就能完成的那種(因為對已經有基礎的 Unity 開發者來說,Fusion 比較容易上手)。然後再試著把同樣的遊戲用 Quantum 改寫一下 😀。
Nikola,你的課程強調了使用 Photon Quantum 創建多人遊戲而不需要撰寫網路程式碼的能力。你能詳細說明一下這一點及其對開發者的重要性嗎?
Nikola: 是啊!在使用其他網路解決方案(像是 Fusion)時,你總是得考慮哪些資料需要在網路上同步,還要至少開三個實例來測試遊戲中所有角色的同步情況(包括主機、你自己還有一個代理)。這個過程會讓人覺得滿麻煩(但又真的很必要)。不過在 Quantum 就不用這樣了。你只要寫好程式碼,如果執行邏輯裡沒有寫任何非確定性的部分,那麼不管你和其他測試者在哪裡,一切都會正常運作。
你的課程描述中強調了 ECS 設計模式的重要性。理解 ECS 如何有助於有效的多人遊戲開發呢?
Nikola: ECS 模式是遊戲開發中不可或缺的一部分,我認為每個人都應該對它有所了解。Unity 本身也有 DOTS 堆疊,比起傳統的 MonoBehaviour 方法快得多。而且學習 ECS 透過 Unity 或是 Quantum,很多概念都是相通的(例如如何結構化程式碼,什麼擺在哪裡等等),這是個很大的優勢。
課程描述提到學生將學習如何為長期擴展性來結構化專案。你認為有哪些關鍵的做法可以幫助學生達成這個目標呢?
Nikola: 說實話,在 Quantum 中,ECS 模式和 Quantum 模擬跟 Unity 視圖之間的溝通,自然就會讓你把東西拆分得很清楚,很多時候組件和系統都是彼此獨立的。這樣的做法讓我覺得像是用上了真正的「乾淨」架構,因為不會出現那種在傳統 Unity 開發中常見的「神物件」,也就是同時負責好多事情的物件。
Oren,你的課程著重於用 Photon Fusion 來開發 2D 在線多人遊戲。你覺得為什麼 Photon Fusion 是一個很好的多人遊戲開發選擇?而你為什麼會選擇著重於它來設計課程呢?
Oren: Photon 在多人遊戲開發上有多年的經驗,從我的使用經驗來看,他們的產品是最直觀、最容易上手的。我想創建一門既易於接觸又實用的課程。我選擇使用 Photon Fusion,因為在我接觸過的所有多人解決方案中,它是最強大且對開發者友好的。
它提供了業界標準的網路功能,同時在背後處理繁重的工作,讓開發過程變得更加順暢,最終提升開發者成功發佈遊戲的機會。
你們會講到一些進階主題,例如客戶端預測、伺服器重調和延遲補償。為什麼這些主題對於多人遊戲開發這麼重要呢?你們又是怎麼讓觀眾容易理解這些內容的?
Oren: 這是我在創建課程時面臨的最大挑戰之一。剛開始接觸 Fusion 時,我就是因為這些概念才發現它在即時網路環境中的重要性。即使只是理論上學習這些概念也不容易。所以我優先確保在進入程式碼之前,先清楚地解釋每一個主題。我認為理解客戶端預測、伺服器重調和延遲補償背後的理論非常重要,因此我為每個概念製作了簡短的影片,用螢幕範例來逐步解析。
此外,我還提供了連結到各種文章,探討不同遊戲如何實現這些技術,幫助觀眾對現實應用有更廣泛的了解。我的目標是讓這些複雜的主題更加親近、可視化,並且容易理解,這樣大家在實際應用時就能更得心應手。
你的課程教學生如何建立一個遊戲大廳配對系統,包括加入特定房間或創建隨機房間。你能分享一些在設計配對系統時最重要的考量點嗎?
Oren: 我想要講解配對系統的基本概念,這樣即使遊戲不特別複雜,也能確保它在進入生產階段時有所準備。所以我專注於如何創建房間、加入隨機房間和特定房間,這些都是任何多人遊戲的基本要素。不過,配對系統的設計還是要根據遊戲類型來調整。
舉例來說,在競技類遊戲中,強烈建議整合資料庫,根據玩家的統計數據(如 ELO 或技能等級)來區分玩家,這樣才能確保配對的平衡。雖然這些進階主題超出了我課程的基本範疇,但我希望能提供一個堅實的基礎,讓開發者能夠在需要時擴展他們的配對系統。
謝謝你們抽出時間和我們分享這麼寶貴的見解。最後一個問題,請跟我們的社群分享一下開發者在剛開始多人遊戲開發時常見的錯誤或挑戰,以及你們會給什麼建議來克服這些問題呢?
Oren: 我常看到的一個大錯誤(我有時自己也會犯)就是試著從零開始建立一切,特別是自己寫網路框架。假如你太專注於重新發明輪子,那你乾脆也一起重新發明電腦、其零件,甚至自己去採集原材料!市面上已經有經過實戰考驗的解決方案,這些都是由處理即時多人遊戲複雜性的專家們花了好幾年時間設計的,為什麼不直接用它們呢?
你現在已經在使用電腦、操作系統,這些你大概都不是自己研發的,還有遊戲引擎——所以利用現有的多人解決方案其實是邁出的下一步,這很合理。因此我總是建議你專注於真正重要的事:做你的遊戲!使用現有的工具,學習它們是怎麼運作的,這樣能幫你節省很多時間,避免去解決那些已經有人解決過的問題。(當然,除非建立一個自訂的網路系統是你的熱情所在,這樣就是另外一個話題了!😆)
Nikola: 我記得當我加入 WW1 Game Series 團隊(就是 Verdun、Tannenberg 和 Isonzo 背後的團隊)時,理解到在本地環境測試的東西在其他客戶端上不一定能完全重現,對我來說是個不小的挑戰(這是多人架構的特性)。所以我給的最好建議就是,在你覺得功能寫好之後,一定要同時用至少兩個客戶端測試你的遊戲(我用 Fusion Host 時總是測試三個客戶端)。
在 Quantum 中,其實不太需要這樣測試(因為 Quantum 的特性),不過進行這樣的測試還是很有幫助,因為你作為開發者可能在模擬中寫了一些非確定性的程式碼,這可能會導致不同步的問題。
準備好建立自己的成功多人遊戲了嗎?
透過 Photon 的 Fusion 和 Quantum 將尖端的多人遊戲功能整合到您的專案中從未如此簡單。我們提供業界最先進的工具、全面的支援以及您入門所需的一切——從可下載的範例到詳細的文件。
今天就踏出第一步——下載 Fusion & Quantum 並開始建置。如果您正在尋求深入的幫助,請加入我們的 Gaming Circle,您可以直接與我們的開發人員聯繫,並在整個旅程中獲得專家指導。
您的多人遊戲成功故事就從這裡開始!
歡迎來加入我們的 Discord、YouTube、BlueSky、X 和 LinkedIn!我們非常期待看到你們的創作!
評論
0 條評論
請登入寫評論。