SCROLL DOWN

PAGE UP

该补课了!网络棋牌游戏开发架构若干问题
2020-03-23
  关于网络棋牌游戏开发,这些问题你会回答吗?如果你对这些不了解,那么运营起来也会充满麻烦,下面就跟小编一起补补课把。

  1、密钥数据共享方法

  由于围棋卡不区分,所以一般按照世界修复的想法设计。换句话说,服务器是由多个物理系统组成的一个群集。用户登录到服务器后创建房间时,将根据负载平衡算法分布到所有服务器。因此,无论用户登录到哪个服务器,都可以获取播放器的数据,通常使用Redis共享数据。

  2、进入房间的路径

  在同一个游戏中,可以规定所有人必须在同一个房间中,同一个房间中的用户必须登录到同一个物理系统。房间创建完成后,当其他人根据房间编号查找房间时,您可以根据房间编号验证当前登录用户的服务器IP端口是否与该服务器相匹配,以换取房间所在服务器的IP和端口。在同一情况下,不切换,而是在其他情况下,必须连接到文件室所在的服务器。

  3、如何保证房间工作顺序

  创建房间后,下一个任务是有顺序的,因此房间必须包含每个房间到达服务器的消息作为一个任务,将此任务排入消息队列,然后有任务执行者按顺序执行这些任务。

  4、功能设计注册

  登录需要对第三方的访问,因此此产品是HTTP操作,必须一致地提供登录身份认证的web服务。这是因为登录时调用第三方HTTP服务的过程可能会变慢。放在逻辑服里,就能跨越业务逻辑任务。因为不同的播放器业务请求可能在一个线程中,所以如果有任务卡,则在此任务后新来的请求可能会被挂起,从而导致消息延迟。

  5、公告通知

  公告通常在登录时从服务器获取一次,将其与web服务器和业务逻辑分开,并且在维护或更新业务逻辑时不影响用户的登录。

  6、用户ID

  平铺游戏没有世界服务部门,因此用户ID在全局上必须是唯一的,并且可以利用Redis中incr()方法原子的增量。如果不想让其他人根据增量ID计算注册用户数,可以随机指定增量渐变。例如,可以任意指定1到1024之间的每个增量值。

  7、查找和添加文件室

  根据房间ID找到房间后,获得房间所在服务器的ID或IP,如果与登录的服务器相同,则可以直接加入文件室。否则,它会将文件室所在服务器的ID或IP返回给客户端,以便客户端重新连接到文件室所在的服务器,并在登录时使用token对用户进行身份验证。

  8、调用游戏脚本

  验证游戏是否合法时,客户端和服务器都必须验证,验证的算法相同,并使用服务器和客户端都可以使用的Lua脚本编写脚本。同一个算法使用同一个脚本,因此在开发新的同级游戏时,只需替换脚本,不再需要重复开发。

  9、后台管理系统

  象棋类后台管理系统是根据操作要求开发的,要求各不相同。但是,最好使用Redis订阅发布机制,后台管理系统可以同时向所有业务服务器发送消息事件,并根据用户所在的服务器进行处理。

  10、玩家相同的画面

  游戏玩家和屏幕是国际象棋游戏的焦点,对应大型ARPG和MMO游戏并不是那么困难。因为同一个屏幕是服务器传递客户端的消息。由于棋牌游戏同步数据量较少,因此有两种常用的同步方法

  11、客户端活动池

  客户端主动请求服务器上一个用户的消息队列,当一个播放器有需要与另一个播放器同步的任务时,服务器端首先将消息放入用户的消息队列中,然后等待客户端的拉入操作。这种方法的好处是不需要考虑网络闪存和弱网络环境。所有的信息都是同步获得的。缺点是拉动计时的间隔短,可能需要在不到一秒钟的时间内拉一次。

  
长按复制下方链接,去粘贴给好友吧:
您使用的浏览器版本过低,不仅存在较多的安全漏洞,也无法完美支持最新的web技术和标准,请更新高版本浏览器!!
定制游戏热线
18813957565
取消 拨打