《腾讯桌球:客户端总结》本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身。虽然基于Unity3D,很多东西同样适用于Cocos。本文从以下10大点进行阐述: 架构设计 原生插件/平台交互 版本与补丁 用脚本,还是不用?这是一个问题 资源管理 性能优化 异常与Crash 适 ...
《腾讯桌球:客户端总结》
本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身。虽然基于Unity3D,很多东西同样适用于Cocos。本文从以下10大点进行阐述:
- 架构设计
- 原生插件/平台交互
- 版本与补丁
- 用脚本,还是不用?这是一个问题
- 资源管理
- 性能优化
- 异常与Crash
- 适配与兼容
- 调试及开发工具
- 项目运营
1.架构设计
好的架构利用大规模项目的多人团队开发和代码管理,也利用查找错误和后期维护。
- 框架的选择:需要根据团队、项目来进行选择,没有最好的框架,只有最合适的框架。
- 框架的使用:统一的框架能规范大家的行为,互相之间可以比较平滑切换,可维护性大大提升。除此之外,还能代码解耦。例如StrangeIOC是一个超轻量级和高度可扩展的控制反转(IoC)框架,专门为C#和Unity编写。已知公司内部使用StrangeIOC框架的游戏有:腾讯桌球、欢乐麻将、植物大战僵尸Online。<https://github.com/strangeioc/strangeioc>
依赖注入(Dependency Injection,简称DI),是一个重要的get='_blank'>面向对象编程的法则来削减计算机程序的耦合问题。依赖注入还有一个名字叫做控制反转(Inversion of Control,英文缩写为IoC)。依赖注入是这样一个过程:由于某客户类只依赖于服务类的一个接口,而不依赖于具体服务类,所以客户类只定义一个注入点。在程序运行过程中,客户类不直接实例化具体服务类实例,而是客户类的运行上下文环境或专门组件负责实例化服务类,然后将其注入到客户类中,保证客户类的正常运行。即对象在被创建的时候,由一个运行上下文环境或专门组件将其所依赖的服务类对象的引用传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。
StrangeIOC采用MVCS(数据模型 Model,展示视图 View,逻辑控制 Controller,服务Service)结构,通过消息/信号进行交互和通信。整个MVCS框架跟flash的robotlegs基本一致,(忽略语言不一样)详细的参考<http://www.cnblogs.com/skynet/archive/2012/03/21/2410042.html>。
- 数据模型 Model:主要负责数据的存储和基本数据处理
- 展示视图 View:主要负责UI界面展示和动画表现的处理
- 逻辑控制 Controller:主要负责业务逻辑处理,
- 服务Service:主要负责独立的网络收发请求等的一些功能。
- 消息/信号:通过消息/信号去解耦Model、View、Controller、Service这四种模块,他们之间通过消息/信号进行交互。
- 绑定器Binder:负责绑定消息处理、接口与实例对象、View与Mediator的对应关系。
- MVCS Context:可以理解为MVC各个模块存在的上下文,负责MVC绑定和实例的创建工作。
腾讯桌球客户端项目框架
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。