遊戲服務器是幹什麼的(大話、淺析)

       在做遊戲服務器開發之前之前一直有疑問,服務器是幹什麼的?問了幾位前輩,得到的答案大概都是:服務器就是一臺電腦,你可以訪問,然後做一些事情(我現在覺得這個答案是很精闢的)。這個答案對於之前的我來說,由於根本沒接觸過服務器,不能理解其中的含義。百度得到的答案也不是我想要的。

       現在做遊戲服務器開發兩個月了,分享一下自己對遊戲服務器的理解,希望能以另外的角度給想做遊戲服務器開發的新人一些不同理解方向。如果有什麼說的不對的地方,請見諒。

       遊戲服務器其實就是處理遊戲邏輯的(這話說的,新手誰看的懂啊。 = =!)

舉個大話例子:餐廳

      將一個餐廳點菜比喻成一個遊戲,桌子上有菜單,菜單上有:魚香肉絲,清蒸牛肉,有一位客人看了菜單之後點了一道菜(魚香肉絲)後,服務員將這道菜名告訴了廚房,廚房做好菜後遞給服務員,最後服務員給你端上來了。

     在這個遊戲中,餐桌相當於遊戲的客戶端,廚房相當於遊戲服務器,服務員相當於客戶端與服務器的通信,客人相當於玩家

     客戶端:桌子上的菜單和上的菜(魚香肉絲),這些都是客戶端給玩家顯示的。

     服務器:當菜名到達了廚房之後的一系列操作都是服務器做的(廚房開始準備,切菜,炒菜,完成後,告訴服務員,讓他把菜端出去)。

     做這個遊戲的服務器開發,就相當於,增加餐廳能提供的菜。比如餐廳要求增加一道番茄炒蛋的菜,你就要教會廚房怎麼弄番茄炒蛋,確保經過你的調教之後,廚房在收到這個菜名時一定能做出這道菜,或者做不出菜的時候會給客戶端提示(賣完了之類的)遊戲就能更新,客戶端就會在菜單上新增加一道番茄炒蛋的菜,客人就能點這道菜。

     出現bug又是個什麼情況呢?例如你在調教廚房做這道菜時,只教會了廚房做菜,沒有做什麼別的操作。當點了這道菜,然後番茄用完了,這時候廚房由於你只教廚房做菜,沒告訴它出現這種情況怎麼辦,廚房就不知道怎麼辦(出現了bug),最後客人一直在等,最後卻沒有上這道菜。

 

舉個實際遊戲例子:簡單描述鬥地主的一個簡單流程

      當你(玩家2)的上家(玩家1)出了一個3,輪到你出牌,你手上有345JK。

      客戶端:1.顯示三位玩家的牌,你的上家和下家的牌都是背對着你的。

                     2.顯示你的手牌,供你選擇。

                     3.收到服務器發來的消息(玩家1出了3),顯示給你看。

      這時候你點了一個3,然後點擊出牌。客戶端------->服務器,玩家2出個3。

      服務器:1.收到客戶端發來的消息(玩家2出3)。

                     2.判斷你是否能出這張牌。

                     3.將判斷結果(不符合出牌規則,不許出)返回給客戶端。

      這時候客戶端收到消息

      客戶端:1.顯示提示:你出的牌不服務規範。(這張牌一直出不去)

      這時候你點了一個4,然後點擊出牌。客戶端------->服務器,玩家2出個4。

      服務器:1.收到客戶端發來的消息(玩家2出4)。

                     2.判斷你是否能出這張牌。

                     3.將判斷結果(可以出牌)返回給客戶端。

      這時候客戶端收到消息

      客戶端:1.你的手牌少了一張4。

                     2.牌桌上多了一張4。

      然後輪到下一家出牌。

     

       在這些例子中,服務器做的事情,都是需要遊戲服務器開發人員通過代碼來實現的。回到我幾位前輩對我的回答:服務器就是一臺電腦(電腦是硬件服務器,寫的遊戲服務器是軟件,需要有硬件載體),你可以訪問(客戶端連接服務器),然後做一些事情(玩家出了一張3,請服務器告訴我,可不可以出)。

       以上就是對遊戲服務器的理解,希望能給你提供一個理解遊戲服務器是幹什麼的思路。如果有什麼說的不對的地方,請指出,我會盡快修改。

 

         

 

    

    

    

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章