LV. 19
GP 2k

開發者日誌:在暗空行動下的功能低落

樓主 微風侍者 Prester

在暗空行動後發生的配對功能低落
2018/09/14 12:00


在 2018 年 9 月 4 日,我們部署了暗空行動在我們的線上伺服器上。暗空行動連帶針對讓最初的遊戲伺服器選擇階段更順暢更新了配對序列的整體表現。在部署之下,我們注意到相較於測試伺服器階段,配對錯誤發生的數量有在上升。玩家們 - 主要來自於北美 - 將無法使用配對系統來加入配對。

在下方你將找到發生原因和我們將執行的修正步驟的概要。

配對階段

選擇「多人遊戲」按鈕在任何的線上遊戲模式下,會開始一個二步驟的階段。

首先,遊戲要連繫我們的配對伺服器,搜尋最佳的可行配對。這個步驟,將根據遊戲模式、你的階級和目前線上玩家人數,一般平均會在 10-60 秒(功能低落並沒有影響到這個步驟的階段)。

其次,客戶端會嘗試去連結遊戲伺服器。這是功能低落發生的問題點

連結我們的遊戲伺服器會有一項在客戶端與伺服器之間進行 UDP(User Datagram Protocol, 用戶資料報協定)的資訊交換。從高階的觀點來看,他們長得像這樣:


客戶端與伺服器端會協調通訊頻道,等待一個影格時間(~16ms)之後便開始傳送資訊(Hello)在那個頻道上。

發現

透過調查這個問題,我們學到這有一個預先存在的錯誤在伺服器連線結束的時候:如果第四道訊息(Hello)比第三道訊息(Ack)達到遊戲伺服器的時間還快非常小的影格時間,則連線會因為錯誤的階段而被終止並且不可恢復。這將產生一個 6-0x00001000 錯誤(連線逾時)。

在多數的情況,當訊息是以特定順序被傳送時,它們會以同樣特定的順序被接收到。訊息被重新排列是一個非常罕見的情形以致於這個錯誤發生的頻率不會這樣頻繁,但值得注意的是,這也可能發生在合理的情形下 - 舉例而言:它可能發生在玩家端一個不當配置的防火牆,這導致它難以正確地被追蹤。換句話說,少量的這類錯誤並不是這麼嚴重而且是可以被預期的,但大量的錯誤並不能讓人認為只是正常的。由於測試伺服器的樣本小很多,是我們無法在測試伺服器中辨識這個問題嚴重程度的主要原因。

功能低落的後續發展

一項我們在暗空行動做出的改良是讓伺服器端不需要等待,並且立即同時傳送第三道和第四道訊息,但仍然在非常短的影格時間內保持順序。對於多數的網路提供商(Internet Service Providers, ISP),這並沒有會被注意到的影響。但在一些 ISP 中,兩道傳送時間太過接近的訊息,會在多數的情形下導致它們被重新排序,讓這個問題幾乎必會發生在使用該提供商服務的玩家上。這是因為該 ISP 連線提供更短延遲。事實上,玩家的連線延遲越低,就越有可能遇到這種錯誤。

額外的,如果小隊的最後一名玩家無法加入配對,則伺服器端的連線階段會對所有玩家終止(2-0x0000D012)。這原始的設計是確保小隊在比賽時的完整性,然而,因受到初始錯誤的玩家太多,它將連帶影響那些加入受影響玩家的小隊的人。

一但我們識別並確認問題所在,我們將可以修正遊戲伺服器來確保這個問題在未來不會再發生

修正時間表

我們前幾天花了整個時間來嘗試重現這個問題以更了解當時的情況。不幸的是,這些努力並沒有成功。我們試驗過不論是如何模擬延遲、抖動和封包丟失,我們都沒有足夠的信心來重現這問題並找出問題的根源。花費時間和資源在嘗試和「修復」那些不是問題的真正原因對於我們和玩家們都是有害的,因為這只會延長這個問題的壽命。

幸運的是,許多玩家與我們接觸並且提供他們的幫助。我們與一些發生率非常高的玩家密切合作,透過他們康慨的幫助與合作,我們可以在調查中取得重大的進步。在第二個除錯階段,我們相信我們已經發現問題的根源,然後可以開始努力實施正確的解決方案。在星期日下午,我們已經完成了修復程序,並且在星期一與我們的志願者執行最後的除錯階段來確保這個問題不再發生後,我們確信我們找到了解決方案。這項修正將會排定在接下來的工作天中部署,也就是星期二。

下一步

我們在嘗試識別問題的時候遇到的主要問題之一是由於它是與主要季度更新時一起發佈的。這讓它幾乎無法回朔,因為這意味著我們將無法釋出整個賽季。

在未來,我們將開始準備提升我們的釋出流程來允許我們部署新的內容 - 尤其是新的賽季內容 - 並與底層、與玩家無關的改變分開。這樣一來類似的問題如果再次發生,我們將有能力在必要時回朔。

我們想藉此機會來再次向那些提供時間幫助我們解決問題的虹彩六號社群玩家。你們真的是太棒了!

額外的,我們正持續努力在所有平台的玩家發生的遊戲崩潰問題。我們已經在 3.1 更新檔中修正了大部份的內容。

板務人員:

352 筆精華,06/18 更新
一個月內新增 3
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】