close

今天和同事討論到假如要做出一個可以和朋友即時連線遊玩的行動遊戲,網路的部分該如何設計?

問題只問到這裡的話無法決定要用什麼樣的網路連線架構,以下介紹一下常用的連線模式:

請先參考此篇文章:ad-hoc mode & Infrastructure mode

ad-hoc 跟 Infrastructure 的原理這裡就不多做說明,網路上隨便找都一大堆,這裡舉幾個例子給大家參考:

1. 魔物獵人:wireless ad-hoc
2. 魔物獵人 Online : Infrastructure
3. 魔獸世界 : Infrastructure
4. X-Man vs Street Fighter 手機版 : wireless ad-hoc
5. 英雄聯盟:Infrastructure
6. 星海爭霸 : ad-hoc 

以架構特性來看:

- ad-hoc -> 分散式架構,Client 自己處理多數的運算 (也叫做 Peer-to-peer)
- Infrastructure -> 集中管理架構,Server 端處理絕大部分的運算和驗證 (Client-Server)

實際上如何運作?

- Ad-Hoc 模式以掌機魔物獵人來說,理論上開局的人只是廣播說 "這裡有個房間",附近玩家收到訊息後就會看到房間名稱跟細節,進入房間的人會彼此記錄彼此的 ID (可能是 Mac Address),開始遊戲後所有參與的玩家會以廣播的方式進行遊戲..  例如 A 玩家砍了火龍一刀,所有 A 玩家的動作會廣播給附近的人,對於其他玩家而言,特定 ID 的封包才會被接收解析然後在畫面上做出表演反應和運算 : A砍了火龍 (表演) ->火龍血量減少 (運算結果),因為非集中式網路架構的關係,所以玩家在斷線後還是可以各自進行遊戲把火龍給宰了不會影響遊戲的進行。(也有遊戲是發現有玩家斷線就停止遊戲的進行,看遊戲設計者怎麼設計)

- Infrastructure 則是在 Client 端作出的所有動作都會送到 Server 去做驗證和運算後在回應請 Client 作結果的演出,當遊戲在 Ping 很高的時候便很容易察覺此現象,例如玩英雄聯盟從台灣連到美國的 Server,Ping 在 200 上下的時候,Client 做移動角色的滑鼠點擊動作,要過 0.5 秒或以上畫面才會有反應。對於多人線上遊戲和賭博遊戲來說這是必須的,一切都是為了維持遊戲的公平性和杜絕遊戲的盜版問題,但要注意的是這樣的模式也增加了遊戲的門檻:網路連線速度的要求,不間斷的連網。

應該選用哪一種架構?

一切都要回歸到我們在開發的遊戲想要給使用者的體驗是什麼?遊戲的核心玩法是什麼?是否要為了杜絕盜版的問題而提高使用者進入遊戲的門檻?

 

以上是根據個人的觀察與經驗歸納而成,假如有網路架構經驗/專業的前輩也請多多指教,感謝!

 

補充:

網路上發現一篇文章有分享第三種模式:Client-Side Prediction,用在大型的 FPS MMO RPG。

------------------------

重要參考資料:http://gafferongames.com/networking-for-game-programmers/what-every-programmer-needs-to-know-about-game-networking/

----------------------------------

Thinking.jpg  

筆者:Alan Feng

大學由資管系畢業後便投入職場,先後擔任程式設計師,系統設計師,系統分析師,專案管理師等職務。

曾服務於資訊服務業,電子代工設計公司,目前在內湖一間遊戲公司擔任專案管理師~

持有國際 PMP 證照並努力學習 Scrum 敏捷式開發框架中。


arrow
arrow

    Alan Feng 發表在 痞客邦 留言(0) 人氣()