這幾天在研究GameServer與GameClient
其實對於線上遊戲來講
真的比做單機遊戲難上許多
(維護較難、需要金錢擴增伺服器及網路頻寬)
還要考慮到玩家在遊戲中會遇到什麼問題等等
來自不同的地方都會發生不同的問題
(像是無法啟動、無法登入伺服器、意外中斷連線等)
有些玩家可以、有些玩家卻不行
看向單機遊戲
去除掉伺服器及網路之外
剩下就是撰寫及維護
兩類型不同的點在於
網路遊戲大多會發生的問題來自於玩家
需要玩家的回報來檢查bug
單機遊戲會發生的問題大多在debug時就可以解決
以便確保運行流暢
少部分bug透過玩家來進行回報修正
(至少bug不會像online game這麼多)
(至少bug不會像online game這麼多)
(有興趣可以觀察各個網路遊戲每個版本的修正)
有錯就請糾正我吧QQ
簡單講完兩個比較就進入正題吧~
(中間會加入我製作的經驗)
先介紹伺服器運作原理
之前收藏的一張圖
每個伺服器都會分成好幾個在運作
同時每個伺服器都要保持聯繫並將資料互相交換
但也不一定要像圖中這樣製作
依照製作需求來達成即可
再來是伺服器與客戶端的資料接收與傳送
這張是我自己作的(雖然不是很好)
但是整體來講
玩家端的請求都是在伺服器端處理完才會發回玩家端
只要整個流程其中一個步驟有錯(資料傳送錯誤)
可能就會導致資料顯示錯誤、程式關閉、伺服器資料錯亂
所以每個步驟都需要處理好
玩家多的時候
伺服器端才有辦法一一處理成功
然後比較有疑問的是
遊戲中傳、接送的資料分析
這張是我自己的做法
把不同的指令及要送出的內容分成像這樣
在玩家端接收到後
將指令資料分割後得到結果
以上是簡單伺服器流程及自己經驗分享
對撰寫伺服器有疑問的話可以在下面留言
【附上測試成功的遺照QQ】