棋牌类游戏框架
技术基于node.js,写这个东西是因为最近接触了一部分棋牌的代码,过程实在是不那么让人愉快,代码规范性,可读性,稳定性,扩展性都不好。于是想用一个能够快速开发的工具来实现一个自己的框架。
center_svr 目前只做监控和服务器间的列表维护 gate_svr 用户请求转发到服务器 login_svr 用户帐号及登录授权 hall_svr 游戏信息及游戏服务器信息 game_svr 游戏服务器
除了center_svr以外,其它的服务器都可以水平扩展,可以多台分布式布署。center_svr是设计中的单点。 客户端与网关间应该只有一个连接,在开发阶段客户端可直连游戏服务器,不通过网关,降低调试复杂度。 对于多个同类服务器,使用随机访问的方式进行负载均衡。 服务器间通信协议都使用json,因为简单,好调试,易扩展。 服务间通信是自己模拟的rpc通信,需要严格的稳定性的话,要使用专门的rpc组件来实现。包括leader选举,广播等。目前的实现方式的问题在于,服务宕机了,不能及时通知到所有的服务。服务在调用时还需要自行判定被调者是否存活。
游戏服务器包含多个房间,每个房间参数可配置,每个房间里有一个桌子,每个桌子有玩家。由于node.js的天性,它是io处理强,cpu计算弱的。所以不要在游戏服务器中添加大量的计算类任务。
数据库使用SQL拼接的方式来写的。练手,练手。正确的做法是使用orm组件,避免大量重复的代码。
第三方游戏支付: 骏付通 爱贝
没想到这个项目有了这么多star……………………由于身体健康原因,项目停止了两年多了。