新的公司新项目的手游客户端框架我并不是十分赞同,虽然最终我妥协了,并且为自己竟然做出质疑上司这样的幼稚行为而后悔。但是就最近写的一些代码来看,我更加坚定我自己的思路和想法。当然我的习惯和思路不一定适合其他人,所以我并不会说其他人的思路或者习惯不对或者不好,只要能用清晰的思路写出清晰的代码就好了。
方法/步骤
1、很多人都会有这样的看法,因为Unity比cocos2d-x功能更多,坑更多,所以会加长项目的开发周期。也有一些技术向的人会认为,Unity优化不到位,所以性能上还做不了大的mmo,甚至在性能上还不如OGRE。我无法用井底之蛙来形容这些人,因为这些人都是项目负责人、技术总监、资深主程。但是在我看来项目开发的进度是跟团队水平有关的,跟引擎无关。现在很多线上的成功的3DMMO手游也证明了Unity的性能。根本不存在“做不了”这样的说法,甚至“坑太多,很难做”这样的说法都不成立,因为如果它真的那么“坑”的话,就不会有如此多的公司选择Unity,而且成功的开发出千万收入级别的游戏了。
2、半个月前我还认为2.5锓旆痖颧D游戏随便写,因为最早在网龙时使用C3引擎就很安心、很顺手,而且我看过C3的源代码也不多,几百k而已。不过现在看看c泠贾高框ocos2d-x的进度,以及我们自己对3D光效这块儿的移植,cocos2d-x成为一个合格的2.5D游戏引擎还需要至少一年时间。当然技术牛的团队可以自己去搞去优化,但是我实在想不出这么做有多少意义,使用Unity更加安心和方便。比如你不用操心光效的运行效率、引擎的稳定性、模型导入和渲染、模型动画处理、后期特效等等,而这些都是我最近使用cocos2d-x的时候被恶心到的。只能说,我们认为它很简单,我们也认为我们的需求很简单,可是它就是做的不够好。
3、应该很多人都会认为是的,这是一个经典的解耦合的框架。但是我感觉,框架不是目的,是否真的解耦合也不是目的,是否遵循某种设计模式更加不是目的。快速的构建客户端功能,并且要让它们清晰、灵活,修改和阅读起来方便,这个才是最终目的。只有代码清晰了,才容易看懂,能够看懂是一切重构和优化的前提,也是改bug的前提。如果我们为了遵循MVC,去硬靠上去,去纠结哪些东西是“显示逻辑”哪些东西是“业务逻辑”,真心不靠谱。
4、我们现在的客户端框架大概是MVP结构,P(我们叫做controller)承载着绝大多数逻辑和功能,整个客户端就是由一个个的controller组成的。我们为了遵循这个结构,所以明明一个类、一个函数调用就可以搞定的东西,要切分成几个不同的对象,因为这些对象有父子、兄弟、业务、显示这样的关系,所以不能放在一起,对象之间通过一个又一个的事件通知来完成业务流转。我很不看好这样的代码,只能眼不见为净。