游戏服务器是干哪些的(大话、浅析)
在做游戏服务器开发之前之前仍然有疑惑,服务器是干哪些的?问了几位高手,得到的答案大约都是:服务器就是一台笔记本,你可以访问,之后做一些事情(我如今认为这个答案是很精辟的)。这个答案对于之前的我来说,因为根本没接触过服务器,不能理解其中的含意。百度得到的答案也不是我想要的。
如今做游戏服务器开发两个月了,分享一下自己对游戏服务器的理解,希望能以另外的角度给想做游戏服务器开发的新人一些不同理解方向。假如有哪些说的不对的地方,请拜谢。
游戏服务器虽然就是处理游戏逻辑的(这话说的,菜鸟谁看的懂啊。==!)
举个大话事例:饭店
将一个饭店点菜比喻成一个游戏,椅子上有菜单,菜单上有:红烧肉片,水煮羊肉,有一位顾客看了菜单以后点了一道菜(红烧肉片)后,服务员将这道店名告诉了卧室,卧室做好菜后递给服务员,最后服务员给你端上来了。
在这个游戏中,饭桌相当于游戏的顾客端,卧室相当于游戏服务器,服务员相当于顾客端与服务器的通讯,顾客相当于玩家。
顾客端:凳子上的菜单和上的菜(红烧肉片),这种都是顾客端给玩家显示的。
服务器:当店名抵达了卧室以后的一系列操作都是服务器做的(卧室开始打算,切肉,煮汤,完成后,告诉服务员,让他把菜端出去)。
做这个游戏的服务器开发,就相当于,降低饭店能提供的菜。例如饭店要求降低一道莴笋炒饭的菜,你就要教会卧室如何弄莴苣炒饭,确保经过你的调教过后,卧室在收到这个店名时一定能作出这道菜,或则做不出菜的时侯会给顾客端提示(售完了之类的)游戏能够更新,顾客端都会在菜单上新增加一道莴笋炒饭的菜,顾客还能点这道菜。
出现buG又是个哪些情况呢?诸如你在调教卧室做这道菜时,只教会了卧室做饭,没有做哪些别的操作。当点了这道菜,之后莴苣用完了,这时侯卧室因为你只教卧室做饭,没告诉它出现此类情况怎样办,卧室就不晓得怎样办(出现了bug),最后顾客仍然在等,最后却没有上这道菜。
当你(玩家2)的上家(玩家1)出了一个3,轮到你出牌,你手上有345JK。
顾客端:1.显示三位玩家的牌,你的上家和下家的牌都是背对着你的。
2.显示你的手牌,供你选择。
3.收到服务器发来的消息(玩家1出了3),显示给你看。
这时侯你点了一个3,之后点击出牌。顾客端------->服务器,玩家2出个3。
服务器:1.收到顾客端发来的消息(玩家2出3)。
2.判定你是否能出这张牌。
这时侯顾客端收到消息。
顾客端:1.显示提示:你出的牌不服务规范。(这张牌仍然出不去)
这时侯你点了一个4,之后点击出牌。顾客端------->服务器,玩家2出个4。
服务器:1.收到顾客端发来的消息(玩家2出4)。
2.判定你是否能出这张牌。
3.将判定结果(可以出牌)返回给顾客端。
这时侯顾客端收到消息。
顾客端:1.你的手牌少了一张4。
2.牌桌上多了一张4。
然前轮到下一家出牌。
在这种事例中,服务器做的事情,都是须要游戏服务器开发人员通过代码来实现的。回到我几位高手对我的回答:服务器就是一台笔记本(笔记本是硬件服务器,写的游戏服务器是软件,须要有硬件载体),你可以访问(顾客端联接服务器),之后做一些事情(玩家出了一张3,请服务器告诉我,可不可以出)。
以上就是对游戏服务器的理解,希望能给你提供一个理解游戏服务器是干哪些的思路。假如有哪些说的不对的地方,请强调,我会尽早更改。