【棋牌游戏】JAVA服务器设计与开发(一)

####开篇语
大概在16年时候,新型房卡模式打开棋牌游戏新里程,整个棋牌行业迅速改变模式,出现近两三年激烈的竞争景象,据统计全国大大小小棋牌游戏公司,专职棋牌公司近两万多家,这都不算后起大大小小游戏公司加紧棋牌研发行列。新型棋牌模式有一个很明显的特点,那就是地方区域“特色”化,几乎近定制化的模式打破以腾讯为主的多年霸占市场。最常见的地方区域棋牌划分:广东,湖南,四川,山西大唐等,不同省份玩法不一,甚至同一省份不同地方也有区别。这也导致大游戏公司不会轻易入驻这样的市场,而新型创业公司抓住切入点反而成功,比如最典型的闲来棋牌公司发展历程。好景不会一直持续,当前受国家对棋牌游戏加强管制,以及行业拼杀竞争激烈,棋牌行业发展有所缩减,创业公司加入棋牌行业日j渐见底,也出现倒闭一潮,预计将来能存活的公司不多,但从整个棋牌市场“总量”的需求看,存活下的公司后期应该是万幸前途无量。这里不再多谈行业如何,言归正传,我以技术身份,解说《棋牌游戏》研发技术如何更优实现统一架构。

####技术选型
服务器端技术:

游戏行业有个不成文的几乎近统一建议,服务器选择基本使用C++跟JAVA,后来出现新的技术GO,但从大市场来看,C++做服务器居多,从性能考虑C++确实比较快,但是我们也发现很多游戏公司使用JAVA作为服务器技术。

个人认为,微服务的出现使得服务端技术选型变得多样,如果不是太追求性能,反而JAVA更被看好。原因是任何一家公司都需要建立一个管理平台,比如客服平台,账号平台,数据中心管理平台等,而这类平台的技术选择基本用JAVA实现(当然国内现在也时兴Python)。就当前技术中,JAVA统一架构平台化更容易实现更稳定,各中心部门在对接上有统一的标准,可提高开发效率,节省成本;再则,JAVA的开发效率比C++的要高,敏捷,人员配置上相对C++经验不足亦可完成,且有统一架构指导不易出错,而C++的开发公认要求门槛高,是需要经验丰富的团队才能完成高效的成果,代价相对高。

举个例子,比如一家棋牌公司成立,就要有两大中心需要建立:一个游戏中心,一个是数据平台中心。如果这两个中心使用人员的技术不能统一,很容易走向两个各管各的部门,这样,无论在整体架构建设,还是业务对接上,很难有一个核心标准,业务穿插成堆乱套,人员调动不利;反之,统一技术架构,对任何组织创业公司,在各个方面考虑上都是有很多好处。大概估计,三十人技术团队,统一技术与否,团队节省成本差至少5人,如果JAVA的统一架构做的好,这个人数差可达十人之多(16时候《陌陌》直播服务器核心开发在5人左右)。

统一架构的好处还有,根据多年参与项目经验,大多数公司到了必须重构阶段,很多也是因为前期技术不统一,造成后期业务穿插成堆乱套,技术人员存留不足等,结果造成成本加大不得已重构,成本代价依旧很高。

当然,技术选型还要参考最主要的一点,核心负责人精通的技术,不能为了统一架构技术而选择不熟悉的技术,哪怕是不统一架构也要选择最熟悉的技术对应实现最核心的东西,因为我们了解过,多数技术创业成功的公司,前期技术稳定可靠性至关重要,产品的稳定与否直接关系公司存亡。

结论,针对棋牌游戏特点,核心算法对性能的要求不是特强特点,应属于非强网类游戏,不必过于追求性能。那么,如果技术选型等同或者没有特别考虑地方,强烈建议统一技术,统一架构组织,JAVA的平台化建设是一个更优选择。

客户端技术:

客户端技术可以使用当前流行的驱动语言Cocos-Lua或者Cocos-JS。据了解Cocos-JS的通用性更高,也源至JS的流行跟通用。鉴于本文重点谈棋牌服务器架构,对客户端技术不做过多说明。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C++棋牌游戏服务器架构通常包括以下几个主要组件: 1. 游戏逻辑层:负责处理游戏规则、游戏状态的更新和管理,以及处理玩家的操作请求。这一层通常由C++编写,包括游戏逻辑的实现和相关算法。 2. 网络通信层:负责处理客户端和服务器之间的网络通信。这一层通常使用TCP或UDP协议进行数据传输,并提供网络连接的建立、断开、数据收发等功能。常用的C++网络库有Boost.Asio、libevent等。 3. 数据库层:负责存储和管理游戏数据,如玩家信息、游戏记录等。这一层通常使用关系型数据库(如MySQL)或NoSQL数据库(如Redis)来存储数据,并提供相应的读写接口。 4. 多线程/多进程管理:为了提高服务器的并发处理能力,可以采用多线程或多进程的方式来处理客户端请求。多线程可以使用C++标准库中的std::thread或第三方库如pthread来实现,多进程可以使用fork或者第三方库如boost.process来实现。 5. 负载均衡与高可用性:为了提高服务器的性能和可用性,可以采用负载均衡技术将客户端请求分发到多台服务器上进行处理,同时可以使用集群和备份机制来实现高可用性。常用的负载均衡软件有Nginx、HAProxy等。 6. 安全认证与防作弊:为了保证游戏的公平性和安全性,可以在服务器端进行安全认证和防作弊处理。常见的技术包括数据加密、防止外挂和作弊程序的检测与防御等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值