LV. 31
GP 5k

【密技】遊戲公司說的「伺服器升級」或維護到底是什麼,為什麼經常延遲?

樓主 深海異音 hbl917070
-

相信有不少人會覺得奇怪
怎麼遊戲公司說要伺服器維護或升級
好像沒有準時完成才是正常現象
就像全公司的泡麵全部都翻倒在伺服器上面一樣


其實所謂的伺服器並不見得要是什麼超級電腦
也不一定是什麼整個房間堆滿電腦的機房
任何一台有CPU的裝置,都能夠變成伺服器
不管是Windows、MAC、Android ,只要裝了特定的軟體,就能變成伺服器
甚至自走車在用的arduino或樹莓派,也都能變成伺服器

伺服器簡單來說,就是一台電腦
然後使用者可以叫這台名為「伺服器」的電腦做事情
最簡單的例子就是「網頁伺服器」
使用者之所以能夠用瀏覽器上網,就是因為我們「訪問了對方的伺服器」



這下這張圖比較容易懂
總之伺服器就是負責回應每個使用者「請求」的「一台電腦」






既然伺服器是「一台電腦」,當然不會經常變動硬體設備
就像一般人不會一個禮拜換一次顯示卡一樣

遊戲公司所謂的「升級伺服器」,通常指的是「軟體」方面的升級


舉例來說

遊戲在「101版」時有3個道具
分別叫做 紅色寶石、藍色寶石、綠色寶石
但這樣道具太多了,遊戲公司打算合併這3個道具
升級到「102版」後,這3個道具會統一被合併變成「寶石」

工程師要從資料庫裡面拿出每個玩家身上的道具
刪除他們的 紅色寶石、藍色寶石、綠色寶石
然後根據刪除的數量,把新道具「寶石」放回玩家們的背包

工程師這個操作資料庫的行為
顯然不太可能在玩家玩遊戲的時候進行
因為風險太大
所以工程師就要趁所有玩家都沒有上線的時候進行
但遊戲公司當然不可能說「工程師要修改資料庫,所以暫時不開放連線」
取而代之的就是常聽到的「伺服器維護」





遊戲也沒有經常合併或刪除道具,怎麼會每次都弄半天?


其實每一次遊戲改版,伺服器都需要調整很多東西

伺服器的用途是「回應使用者的請求」
對遊戲用的伺服器來說,對他發出請求的就是「使用者的遊戲APP」
同一個遊戲會有很多版本,每一個版本當然也都會有差異
遊戲每一個不同的版本,傳送到伺服器的資訊可能都會有差異

可以想象成「拼圖」






遊戲不同版本
「遊戲APP」發出的「請求」,跟「伺服器」「回應」的資料都會有差異

「101版的遊戲APP」,不能接「102版的伺服器」
反之
「102版的遊戲APP」,不能接「101版的伺服器」

這個就是每次維護都需要弄半天的主因
為了避免在變動伺服器軟體內容的時候,玩家玩到一半出現BUG
所以凡是有關伺服器方面的變動,通常只能在沒有玩家連線的時候進行





伺服器在有玩家連線的時候就不能變動,那怎麼測試跟開發?


所以通常公司會有2種伺服器
「測試用伺服器」跟「正式伺服器」
開發的時候全部都是在測試伺服器上面進行
這樣就能在不影響玩家的狀態下進行開發與各種測試

遊戲公司說他們在升級或維護伺服器
其實是他們的工程師正在全力趕工
把「測試伺服器」的內容,轉移到「正式伺服器」

這個轉移過程,很容易遇到問題
  • 測試伺服器的環境與正式伺服器的不一樣,導致某些功能無法順利運行
  • 修改正式伺服器的資料庫欄位,因為衝突導致失敗
  • 更換硬體設備後,莫名其妙不能運行
之類的

只要沒搞定所有的問題,就不能對外開放伺服器
所以才會經常搞到超出時間

不過當然啦,上述這些問題
都是能透過有良好作業流程,或是完善的系統架構來避免
不是一定要拖半天


最後隨便貼張圖好了



-
未登入的勇者,要加入討論嗎?
板務人員:

7556 筆精華,昨天 更新
一個月內新增 17
歡迎加入共同維護。


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

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