切換
舊版
前往
大廳
主題

簡單談關於遊戲Server的機制

Jin | 2015-12-25 20:09:17 | 巴幣 10 | 人氣 2469

這幾天在研究GameServer與GameClient
其實對於線上遊戲來講
真的比做單機遊戲難上許多
(維護較難、需要金錢擴增伺服器及網路頻寬)
還要考慮到玩家在遊戲中會遇到什麼問題等等
來自不同的地方都會發生不同的問題
(像是無法啟動、無法登入伺服器、意外中斷連線等)
有些玩家可以、有些玩家卻不行
看向單機遊戲
去除掉伺服器及網路之外
剩下就是撰寫及維護

兩類型不同的點在於
網路遊戲大多會發生的問題來自於玩家
需要玩家的回報來檢查bug
單機遊戲會發生的問題大多在debug時就可以解決
以便確保運行流暢
少部分bug透過玩家來進行回報修正
(至少bug不會像online game這麼多)
(有興趣可以觀察各個網路遊戲每個版本的修正)

有錯就請糾正我吧QQ

簡單講完兩個比較就進入正題吧~
(中間會加入我製作的經驗)

先介紹伺服器運作原理
之前收藏的一張圖

每個伺服器都會分成好幾個在運作
同時每個伺服器都要保持聯繫並將資料互相交換
但也不一定要像圖中這樣製作
依照製作需求來達成即可

再來是伺服器與客戶端的資料接收與傳送

這張是我自己作的(雖然不是很好)
但是整體來講
玩家端的請求都是在伺服器端處理完才會發回玩家端
只要整個流程其中一個步驟有錯(資料傳送錯誤)
可能就會導致資料顯示錯誤、程式關閉、伺服器資料錯亂
所以每個步驟都需要處理好
玩家多的時候
伺服器端才有辦法一一處理成功

然後比較有疑問的是
遊戲中傳、接送的資料分析

這張是我自己的做法
把不同的指令及要送出的內容分成像這樣
在玩家端接收到後
將指令資料分割後得到結果

以上是簡單伺服器流程及自己經驗分享
對撰寫伺服器有疑問的話可以在下面留言

【附上測試成功的遺照QQ】

創作回應

薯條控
腿ㄌ <(_ _)>
2015-12-26 00:46:03
Jin
QQ
2015-12-26 06:05:42
Hua
https://github.com/NetEase/pomelo/wiki/pomelo%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%8A%A8%E6%9C%BA
可以看看這個
2016-02-12 11:39:02
Jin
[e12]
2016-02-12 11:55:06
貓貓風 ฅ●ω●ฅ
[e30]
2016-12-26 22:25:35

更多創作