最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 框架的诞生-零:为什么写框架?

    正文概述 掘金(AILHC)   2020-11-30   848

    题外话

    大家好,很高兴,能写这篇文章分享给你们看,也很感谢你们能看我的文章。 如果能和你们交流最好了。 做游戏开发3、4年了,我用过这些,Unity,Cocos2dx,CocosCreator,LayaAir,Egret。

    用得最久的是LayaAir,因为工作需要嘛。

    但最喜欢的还是CocosCreator,因为社区的小伙伴、引擎组的人都很好很可爱,他们分享的东西都让我受益匪浅。

    谢谢~ 框架的诞生-零:为什么写框架?

    第一次写文章,如有不当之处请多多见谅。

    什么是框架?

    我想有的人心里有答案,有的人也有疑问。

    这里我提供别人对框架的见解链接:

    • 某乎文章:什么是框架?为什么要使用框架?我告诉你理由哦!

      框架的英文为Framework意思是框架、机制、准则。
      最早是源于建筑行业,是一个框子——指其约束性,也是一个架子——指其支撑性。
      是一个基本概念上的结构,用于去解决或者处理复杂的问题。
      
    • @金戈的回答: 什么是框架?

      框架(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性。
      IT语境中的框架,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。
      在此结构上可以根据具体问题扩展、安插更多的组成部分,从而更迅速和方便地构建完整的解决问题的方案。
      

    我的个人见解:▼

    框架的诞生-零:为什么写框架?

    框架的诞生-零:为什么写框架?

    我们的游戏程序都是基于某个平台的,以及可能会使用现成的渲染框架,来实现我们游戏的玩法和业务。同时针对开发和生产环境部署,我们需要一些工具协助。

    框架在渲染框架层和业务层之间,封装部分通用能力供业务层使用。起到支撑业务开发的作用。

    我的层级图的灵感来自 @白玉无冰 大佬拍的panda大大讲的一页一个PPT:CocosCreator跨平台的引擎架构。▼

    框架的诞生-零:为什么写框架?

    对于游戏客户端框架来说

    • 框架具有一定的约束性,指的是,我们需要在一定范围内按照框架作者的设计和规范去使用和扩展。

      比如:

      在CocosCreator框架中。

      • 如果要加载一个资源,那就需要调用cc.assetManager.loadxxx 或者cc.loader.loadxxx,传规定的参数,传错了就可能出问题。

      • 如果需要加载自定义的资源就需要安装assetManager的规范去扩展。具体可参考CocosCreator的文档,不按规范扩展就可能出问题。

    • 框架有部分已经实现的功能,可以直接使用或者稍微扩展就可以用来实现业务逻辑。

    • 大部分游戏客户端框架都包含很多功能模块,甚至不是我们项目需要的。

      比如:

      框架中包含UI管理框架,事件通讯框架,网络模块,等等。

      我们可能只需要事件通讯模块或者UI管理模块,只能手动去剔除不需要的。

    • 框架所能解决的问题有限,有边界。

      比如:

      有的框架只是一个UI管理框架只解决了复杂UI管理的问题

    • 框架可能跟底层强相关。

      比如:一个基于CocosCreator的UI管理模块,里面耦合了CocosCreator的加载,prefab文件,resource文件夹的规范等,可能也耦合了cc.Node的使用等等。

    框架解决什么问题?

    大家对框架的第一印象可能是

    • 我学不动了框架的诞生-零:为什么写框架?

    • 提高开发效率,快!!!框架的诞生-零:为什么写框架?

    我个人觉得好坏还得看框架和看个人

    • 好的框架可以统一多个开发人员的编程风格,方便多人协作
    • 好的框架可以让开发人员减少维护程序架构心智负担,减少纠结。
    • 最重要的是可以大大的提高开发效率,大部分时间专心写业务就可以了。

    为什么写框架?

    为了造一个更好更适合的轮子

    有现成的框架为什么不拿来直接用,干嘛自己造轮子浪费时间?

    1. 现成的框架没法满足需求,有无法解决的问题。

    2. 现成的框架和自己的思想不符。

    为了学习和实践

    写框架可以督促我去学习其他框架是如何设计的,为什么这样设计,能解决什么问题,为什么能解决这些问题。

    然后反过来去思考我工作和开发中遇到的问题,我学着去分析,去尝试找解决方案,以及思考如果我写框架怎么解决这些问题。怎么去设计。

    写出来的框架很挫怎么办?怕个毛线,继续学习,继续思考,然后解决问题,大不了推翻重写。

    写出来的框架不能用在公司的项目中去实践怎么办?这个想法有点危险,哈哈哈,可以自己写项目来验证。不过还有另外一种解决方案。下一篇会讲。

    写框架是一场历练,督促着我去学习和沉淀所学,打磨我的知识体系,让它更加完善。

    总结

    • 什么是框架? 是游戏程序的一部分,是支撑游戏业务逻辑的架子,但也是具有一定约束的框框。

    • 框架解决什么问题?

      • 可以统一多开发人员的风格(框架的风格)

      • 可以让开发人员减少维护程序架构的心智负担,减少纠结(按照框架的思想来就行)

      • 可以大大提高开发效率,大部分时间专心写业务逻辑就可以了

    • 为什么写框架?

      • 去学习其他框架怎么设计,怎么解决它们面对的问题。

      • 解决自己工作和开发中遇到的问题

      • 积累和沉淀自己的知识

    一些游戏客户端框架参考

    • CatLib 一个Unity的渐进式框架(ps:我的框架灵感之一)
    • U3d网络游戏架构设计 一个大佬的GitChat专栏,需要订阅
    • 腾讯学院的手游核心技术实战 这是腾讯学院的一个贪吃蛇大作战的一个游戏开发课程,讲到了如何设计和实现基于Unity的游戏框架
    • GameFramework 基于Unity的一个完善的框架
    • QFramework 基于Unity的一个完善且扩展性非常强的框架,而且作者有很多关于框架设计的理念,非常棒
    • UNITE -Unity项目架构设计与开发管理
      • 文章:Unity项目架构设计与开发管理
    • 【ituuz分享-框架】lightMVC:轻量级游戏开发框架(for cocos creator)
    • GameplayFrameWork for CococsCreator
    • 其他的还有很多,论坛搜 "框架"即可

    心里话

    我想和优秀的小伙伴一起开发好玩的游戏

    我希望能通过我做的游戏,我的能力获得用于生活和学习的报酬。

    我也希望

    有人能从我的游戏中获得快乐,或者有所收获

    也希望

    有人能因我的分享而有所收获

    然后我能说一句

    框架的诞生-零:为什么写框架?

    谢谢你玩我的游戏

    谢谢你信任我

    谢谢你用我的框架

    框架系列文章

    • 框架的诞生-零:为什么写框架?
    • 框架的诞生-一:我想要的框架
    • 不只是UI管理:通用显示管理
    • 让fairygui更好用的插件
    • 满足多种需求的通用对象池
    • 构建游戏/应用的神器:broadcast
    • 满足所有自定义需求的通用socket网络模块
    • 业务开发总结之状态管理
    • 。。。

    最后

    欢迎关注,更多内容持续更新

    公众号搜索:玩转游戏开发

    QQ群: 1103157878

    博客主页: ailhc.github.io/

    github: github.com/AILHC


    起源地下载网 » 框架的诞生-零:为什么写框架?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元