【棋牌游戏】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的流行跟通用。鉴于本文重点谈棋牌服务器架构,对客户端技术不做过多说明。

你可能感兴趣的:(游戏服务器)