對伺服器的一些想法

繼續 《暗黑破壞神 II:獄火重生》伺服器斷線問題:解釋說明、我們目前的處理方式,以及未來的規劃。 的討論:

看完這文,我驚訝竟可把如此複雜的事情說得這麼簡單,而且這次的伺服器採用統一存檔,算是真正的MMO伺服器,很厲害。

不過這幾天玩遊戲,都有一個問題讓我非常不解,就是遊戲的錯誤訊息顯示方式,會讓玩家一頭霧水,我內心想像的資訊應該是:伺服器滿載請稍後、伺服器關閉、伺服器啟動中、伺服器同步恢復中等等,而不是這種『看起來像是失效的驗證機制』的錯誤訊息,雖然這些資訊不是使用者應該要去理解的,但如果發生問題卻一直怪玩家的連線有異常,請確認連線後再試,真的不是很妥當,反而更怒了。

文中提到『全球資料庫存入資料的頻率太高了,但其實並沒有必要這麼頻繁地保存資料。我們真正應該做的,是將玩家遊戲角色的數據保存至地區資料庫,並且只在需要解除鎖定的情況下才把角色數據上傳至全球資料庫,這是我們所採取的其中一項改善措施。』,若今天全球玩家人數近乎滿載,而大家又碰巧在遊戲關閉與開啟的狀態下,也讓全球資料庫負荷不了時,勢必造成地區資料庫同步障礙,此障礙應要【告知使用者,資料正在同步,請稍後N秒後再進行登入】才對,而且客端軟體也應該加上防呆機制,否則玩家憤怒情緒高漲外,還會衍伸更多奇怪的攻擊行為,該行為如同「很多人同時對資料庫進行查詢,但一次太多人資料庫需要時間,可是軟體有一個逾時機制,或使用者不耐煩結束,導致資料庫還未回應,就又收到新的查詢請求,資料庫可能就此陣亡。」,會這樣說是因為,當人數過多時,我曾不理會錯誤訊息,一直瘋狂快速點選【加入】或【進行遊戲】就會有機率可以正常進入遊戲,我相信這樣的行為在早年大家並不陌生。

回溯問題其實也可以比照地區資料庫的做法,客端應要有一份遊戲存檔快照,該快照的認證來自地區資料庫的鎖定,遊戲進行時由地區資料庫給予認證鎖,當問題發生時客端與地區資料庫斷線後,客端重新連上地區資料庫並遞交鎖與存檔快照,由地區資料庫識別快照完整性與可用性,進而決定重新同步或捨棄客端存檔,這樣可以大幅降低回溯的發生。如果這項機制的機密性足夠,甚至可以大幅降低地區資料庫的頻繁存檔,提高玩家人數承載力。

速度限制與佇列規劃,是令人感到沮喪的決定,採用了新的MMO架構,卻因此讓玩家進入單線模式的漫長等待,犧牲玩家的遊戲時間,反而懷念了分流的架構好處。

關於速度限制,假如是針對某些特定行為的快速刷寶,造成地圖的重開與關閉,或許可以嘗試將地圖的生成粒度最小化,而不是一個大章節的生成或是整個遊戲的生成,當玩家進入到遊戲後,才開始生成必要的地圖,一方面地圖生成成本降低,另一方面結束地圖成本也降低了,降低浪費才可以承載更多的玩家,當然這樣的變更勢必是極大的挑戰,因為歷史的包袱,程式碼變更可能會有意想不到的新問題出現,但如果可提升不錯的運算效率,也是值得一試。

關於遊戲列表的Singleton問題,其實可以考量看看是否使用不需加入該列表的方式進行遊戲,有點類似D3的組隊系統,不過這個遊戲的撿寶風格又不像D3每人一份,而是唯一一份出現在地板上讓玩家各種搶,所以比起與陌生人配對,有多數玩家更喜歡的是與朋友配對,所以創立僅限好友的地圖時,有沒有可能可以依賴在好友名單上的對應ID即可,不需要進入到該列表,如同私有地圖不會在列表上。

最後,能夠動刀修改20年前的code,心臟真的要足夠大顆,刀刀都有可能致命,真是不好意思在這裡說了這麼多不腰疼的話,不過還是期待你們能夠將歷史包袱的缺陷一一改善,才不會辜負我們對【暴雪】兩個字的期望。

誠心祝福 一切順利

加油~

6 個讚

难得理智的说法呀,不过按照你的想法修改成本很高呢。估计当初用户的使用场景主要是单机,可能这个出问题的场景根本不会遇到,所以旧的机制在这块没有考虑太多。现在搞新版本的时候可能也急功近利了一点,压测估计没有跟上。一起加油~~

修改成本很高確實是,不過…暴雪收遊戲費用還真的不低呢。如果線上生成地圖是困難的,應該要考慮由客端生成地圖,玩家連線也改為P2P,地圖生成的可用與完整性要受伺服器鎖認證,離開遊戲前的存檔,或是下次上線前的存檔再同步提交到伺服器,不要完全依賴伺服器產生地圖,或許就不會造成伺服器沉重壓力了。

估计恶意三方辅助只是一小方面,毕竟游戏是要花钱的。。。

排個隊兩小時都沒進到遊戲,你他媽在開玩笑嗎

1 個讚

排队两小时
游戏两分钟
FK BZ !
FK BZ !
FK BZ !

2 個讚

都2021年了,購買人數都是能看到的,麻煩先拓展一下服務器容量吧,我剛購買,先重溫暗黑破壞神2,但是連不上, 一直在排隊,我剛購買的連離綫都玩不了,一點擊離綫就顯示什麽30天沒上綫一類的,根本玩不了離綫,在搞事吧,服務器做的比育碧還爛,還不讓退款,真的病的不輕,這樣的處理方式,哪怕暗黑4出來我也不會買的.

無法連上網路的可以離線遊戲 但是角色需統一 而不是分開,可以調整離線與線上的掉寶率,增加離線遊玩意願減少伺服器負擔

1 個讚

GM、開發團隊你們好 我是玩家 吉爾迦美什賢王,在此回應了你們誠摯的召喚嗷嗚 ~ (◍•ᴗ•◍)ゝ

我是非常迷D2的玩家,甚至後面POE 發行時 我玩了將近三年,
都是因為一開始的D2 讓我深感迷戀~~~~ 在此 我也透過我在POE 玩的經驗,提供給強大的D2團隊一個小小建議。
1.我們期待死靈可以穿透他的召喚物,避免死靈在被困於召喚物群中加速死亡。
2.我們期待修繕排除柠立排隊系統。
3.我們期待D2 出皮膚系統(俗稱外觀)
就是玩家穿著裝備,但是有另一個相同裝備的頁面在第二欄位,我們可以穿上第二樣不同的裝備來掩蓋原先可能醜陋或是不好搭配的裝備外觀。
4.希望死靈的重生技能 時間維持可以提高~
我認為這點幾 POE 來說,表現得相當出色,我也希望營運團隊 可以朝這個地方努力,保證可以吸引更多玩家回購且回流!