主页 >   新闻中心   >   帮助文档   >
租一个可以搭建棋牌游戏的服务器还要多少钱?
时间 : 2021-03-12 09:57
来源 : 网络整理

一,棋牌类服务器的特征

1,棋牌类不分区不分服

一般来说,棋牌游戏都是不分区不分服的。所以棋牌类服务器要满足随着用户量的提高而扩充的还要。

2,房间方式

即在同一局游戏中就是在同一个书房中,同一个书房中的人可以接收至其他人的消息。

3,每个卧室的操作应当是顺序性

这个特征类似与通常游戏的回合制,每个玩家的操作都是有顺序性的。

二,需要解决的技术点

1,数据共享

因为棋牌类游戏不分区不分服,我们在设计服务器的时侯,是按世界服的思想去设计,即服务器是一个n多台物理机的集群。当用户登录服务器,创建卧室时,可能依据负载均衡算法,它可以在任何一台服务器旁边。所以,不管用户登录至哪一台服务器里面了,都可以获得自己的数据。我们可以使用redis来做数据共享。

2,如何踏入书房

在同一局游戏中,我们要求所有人都在同一个书房中,我们可以规定在同一个书房中的用户,必须登录至同一台地理服务器前面。在争创书房完成以后,其他人按照书房号查找书房的时侯,可以按照书房号,获取这个屋子所在的服务器ip跟端口,判断一个当前用户登录的服务器ip与书房所在的服务器ip是否相似,如果相似,就不做切换,如果不一样,客户端就使用ip跟端口,连接至屋内所在的服务器旁边。

3,保证屋内操作的顺序性

创建书房成功以后,接下来的操作都要保证它的顺序性,所以书房还要有一个它自己的消息个队列。我们可以把每位书房抵达服务器的消息封装为一个任务,把这个任务放在消息队列中,然后有一个任务执行者去按次序执行某些任务。

三,系统构架

1,功能设计

a,登陆

一般都是还要接第三方登录,登陆这一块是http操作,我们统一提供一个web服务,用来做登录验证。因为在登入时,调用第三方的http服务,这个过程或许太慢,如果放到逻辑服务器的话,可能会卡业务逻辑任务。因为或许不同的玩家业务恳求或许同在一个句柄中,如果有任务卡了,那么这个任务之后新来的恳求请会卡住,导致消息延后。

b,获取游戏公告,也置于web服务中。公告通常是游戏登录的时侯向服务器获取一次。把它放到web服务器中,与业务逻辑分离的弊端是,当业务逻辑服务器维护或更新的时侯,不影响用户的登录,和获取公告,这样用户感受会好一些。

c,创建用户惟一的id,因为棋牌类游戏服务器是世界服,无分区,所以用户的id应当是全局惟一的。可以借助redis的incr方式,原子的递增,如果不想被他人按照userid的递增估算出有多少注册用户,递增的梯度可以随机,比如每天递增的值从1至1024中随机一个。

d,创建书房,当房间主争创书房时,房间的id还要在任何台服务器上可以查询至,所以争创书房成功后,房间id要储存在共享显存redis中,每个卧室id对应一个书房所在的ip地址或服务器id.这样,当有用户要踏入书房,在查询书房id时,可能分辨这个屋子是否跟自己登录的游戏服务器相似。

e,查找加入书房

根据书房id查询书房,查找至书房后,获取书房所在的ip地址或服务器id,如果发觉跟自己所登录的服务器一样,直接可以加入书房。如果不一样,把这个屋子所在的ip跟端口返回给客户端,让客户端再次与书房所在的服务器构建连结,使用登录时的token验证用户。

f,游戏脚本读取

在验证游戏是否合法时,客户端与服务器都要验证,验证的算法是一样的,所以可以使用脚本来写,写一份脚本,在服务器与客户端中同时使用。可以使用lua。同一个算法使用同一个脚本 ,这样在开发新的同类型棋牌游戏时,只须要替换一下这个脚本就行了,不用再重复开发。

3,后台管理系统

这个通常是依据营运需求开发的,每个公司不一样。不过有一点,后台管理系统或许要跟游戏服务器通讯,这种通讯模式最好是选用redis的订阅/发布模式。这样可以把某个消息风波同时发送至所有的业务服务器里面。根据用户所在的服务器进行处理。

上一篇:虚拟主机、VPS、云服务器两者的差别 下一篇:腾讯云台湾服务器订购步骤(两个入口)
+86 0517-86871020

拨打
电话

客服
咨询

技术
支持

渠道
支持