笔者做棋牌游戏开发已经有三四年了,涉及的产品有斗地主、德州扑克、扎金花、斗牛等等,从最开始使用Android原生的SurfaceView绘制,到后面使用cocos2dx引擎开发,一路学习一路成长。本文主要是记录下这时期产品使用技术的变革之路。
一、Android原生的SurfaceView时期
三四年前,手机性能跟不上的时候,那时没有成熟可靠的引擎,就使用原生的SurfaceView自定义一套UI组件,做出来一套斗地主的成品,界面风格简洁,素雅,图片多为小图.9处理,几乎没有复杂的动画,极为粗糙,但包体大小控制的小于3M,深受渠道方面的欢迎,大火了一把。
和大多数公司一样,赚到了钱就开始扩张,外招了一批牛人,新开了几个项目,而老罗正是这批人中的一员悍将,他领导的项目就是德州扑克,而笔者有幸加入。老罗立志想用引擎(cocos2dx或者libgdx)做出一个变革性的产品,一改斗地主的粗糙,在和几位老板扯皮良久后,最终还是没有说服老板,不得不继续使用公司认为成熟的开发方案,原生的框架来开发德扑。
经过四个月左右的时间,德扑上线,在画面与流畅的平衡下,包体大概有10M左右的大小,画面依旧粗糙,特效并不绚丽,收入也很不理想,仅为公司带来了大R的概念,但仅靠几个大R是撑不起一个游戏的,结果可想而知,在公司明确告知没有资源用来推广德扑后,老罗离职,德扑解散。
而此时的市场棋牌游戏已经是一片红海,各种各样的公司,大的小的,或者渠道本身都开始推出棋牌游戏,画面和特效都绚丽的不要不要的,公司收入下滑的厉害。老板痛定思痛,特地抽调一部分人力,做闭门开发,一个月的时间做出了一款基于cocos2dx cpp引擎的框架,斗地主用上了,可惜德扑没能用上。
二、Cocos2dx CPP
德扑解散后,笔者被调入斗牛项目组,该组是一个做敏捷开发的经理带队,成立的时间比较晚,那时他们已经用上了比较成熟的Cocos2dx解决方案,于是笔者开始学习C++相关的知识,斗牛一共独自走了几个版本,但收入并不理想,公司又不给宣传资源,于是就借用斗地主的渠道,将斗牛的功能融进斗地主里面,互相促进,互相提高,但收入分成一直不慎理想,后面带队经理有了疲态,和老板博弈累了,就提议斗牛团队跳出公司框架,独自成立一个子公司运营,他带走了一部分人,拿着老板的投资独自运营起来,而笔者没有那么大的魄力,依旧留在了公司,独自维护着剩下的斗牛业务。
斗牛的代码是内置在斗地主项目里面的,但资源是做为热更的方式加载的,这也给公司做棋牌游戏的另一个思路,游戏大厅+各种玩法模式。后面的产品基本上是基于这种方案在推广运营。但这种方案用cpp开发是个弊端,所以公司又抽调人手开发了一套,cpp + lua 的框架模式。
三、Cocos2dx Lua
下半年,公司新开了一个地方棋牌玩法的项目组,他们使用的是cocos2dx Lua的解决方案,做出来的掼蛋已出线上成品,包体很小,地推效果不错。
某天,公司副总通知我,公司正式结束斗牛的维护,笔者又被调回斗地主项目组,开始将斗牛移植到基于cocos2dx lua引擎的解决方案上来,而此时市面上最流行的是U3D,即使是cocos2dx的母公司触控,也是在主推cocos2dx js解决方案,但公司是老板的,他有他的考虑吧。
笔者花了将近两个月的时间,将以前斗牛的业务全部用lua重新写了一遍。脚本写代码确实轻松,不用在等待编译,不会在遇到IDE卡死崩溃,感觉非常爽!