说在前面的话:棋牌游戏市场,大部分都是品质低劣,生命周期短暂,绝大部分原因是因为棋牌游戏开发成本低,对开发人员的要求也低。大部分团队只需要快速出成品,只要有东西快速赚钱就可以了。16年的私人房模式,再次引爆了棋牌市场。我也该兑现我的承诺,跟大家分享下怎么架构和实现这套框架来满足棋牌游戏需求的。
经过几个月的努力,终于说服老板,以及各种上级,实施这套解决方案。现在框架OK了,也利用这套框架架构开发了多款游戏,虽然过程很艰辛,但是还是很值得。秉承保密原则,本人并不会将框架代码放出,只做技术交流。
根据之前在日立及IBM的项目经验,大部分成熟产品都会有一套完整的解决方案。不断的积累,终大道至简。这也是这个框架命名Theway的来源,希望coding的路上越走越轻松!
一、原型
符合棋牌项目框架,快速换皮,快速融合。多渠道多包体。自由拆装。
一次开发核心玩法,快速自由迭代各种市场版本。
二、架构设定
* 解耦,复用性,拓展性
* 多自由度、可分拆多项目开发,符合敏捷需求
* 品质保证体系
* 高效开发
* 支撑公司大部分业务
三、模块设计概要
减少客户端对Cocos2d-x引擎的依赖程度和降低耦合度,将引擎必要的初始化、逻辑更新、渲染、资源管理等交给底层处理,是客户端逻辑开发不需要过于依赖引擎层,同时,为了避免客户端代码中频繁、直接的调用平台相关诸多功能,我们将平台相关的功能封装在引擎封装模块内。这部分我们可以叫做BaseCore部分。
1、引擎封装模块 (EngineSystem)
* Cocos2d-xAPI的封装整合,绑定到Lua。关掉3D模块,另外不再使用扩展库。
* 达到可以随意切换Cocos版本,现阶段选择比较稳定的版本
* 自定义控件等绑定到Lua
* 跨平台特性处理
* 支付相关模块特殊处理
* 脚本加密解密处理
* 必要的时候,可以将脚本层换成js绑定,然后将逻辑代码修改成Lua的,就可以支持H5了
2、 UI系统(GUISystem)
* UI的一些基类,例如弹出框可以将如下属性封装成一个Dialog对象,派新类自然