凉鞋:我所理解的框架 【Unity 游戏框架搭建】

架构和框架这些概念听起来很遥远,让很多初学者不明觉厉。会产生“等自己技术牛逼了再去做架构或者搭建框架”这样的想法。在这里笔者可以很肯定地告诉大家,初学者是完全可以去做这些事情的。

初识架构和框架

架构和框架是非常接地气的,离我们其实并不遥远。

什么是架构?

架构是一个约定,一个规则,一个大家都懂得遵守的共识。那这是什么样的约定、什么样的规则、什么样的共识呢?

我以包为例,我经常出差,双肩背包里装了不少东西。笔记本电脑、电源、2 个上网卡、鼠标、USB 线、一盒大的名片、一盒小的名片、口香糖、Mini-DisplayPort 转 VGA 接口、U 盘、几根笔、小螺丝刀、洗漱用品、干净衣服、袜子、香水、老婆给我带的抹脸膏(她嫌我最近累,脸有点黄)、钱包、Token 卡、耳机、纸巾、USB 线、U 盘等。这个包有很多格子,最外面的格子我放常用的,比如笔、纸、一盒小的名片等;中间的格子一般放的是衣服、袜子、洗漱用品、香水等;靠背的那个大格子放了笔记本电脑,和笔记本电脑相近的小格子放的是两个上网卡、Mini-DisplayPort 转 VGA 接口、大盒名片、记事本,和笔记本电脑相近的大格子放的是电源、鼠标、口香糖等。

我闭着眼睛都可以将我的东西从包里掏出来,闭着眼睛都可以将东西塞到包里!但是,非常不幸的是,一旦我老婆整理过我的包,那我就很惨了,老是因为找不到东西而变得抓狂!更不幸的,要是我那个不到两岁的“小可爱”翻过,就更不得了了。

这个包就是我放所有物品的“架构”,每一个东西放置的位置就是我的“约定、规则、共识”。倘若我老婆也知道我的“架构”、我的“约定、规则、共识”,那么不管她怎么动我的包,我都照样能够轻易的拿东西或者放东西。进一步,如果我的同事也知道我的“架构”,知道我的“约定、规则、共识”,那么他们什么时候动我的包,我也毫无所知!——道法自然 《10 年感触:架构是什么?——消灭架构!》

什么是框架?

框架(framework)是一个框子--指其约束性,也是一个架子--指其支撑性。——360 百科

小结

本小节对框架和架构概念做了简单的认识,得出了以下两个结论:

架构是“约定、规则、共识”

框架具有约束性和支撑性

到这里,大家应该对这两个概念有点感觉了。但是还是会有很多疑问,比如“如何去做架构?”、“框架的约束性和支撑性分别指的什么?”等等,没关系,笔者坚信“带着问题去阅读”往往是最有效的阅读方式。接下来笔者将分享这两年来对框架和架构探索的经历,以及对这两个概念认识的演变,希望给大家带来一些启发,顺便大家心中的一些问题得到解答。

QFramework

两年前,笔者毕业半年,刚从 cocos2d 转 Unity 不到两个月,当时所在的公司有一套游戏开发框架。笔者用它做了两个月的项目,使用框架做项目的时候并没有去思考框架是什么,只是开始的时候觉得很新鲜,而且越用越顺手,尝到了它的甜头。

后来笔者接到了一个跑酷游戏项目,于是就把工作辞掉了,决定出来全职做这个项目。辞职后,公司的框架由于保密协议就不可以用了。项目就只能从零开始开发,那么结果就是在跑酷项目的开发的过程中各种中水土不服。

于是,笔者就开始了市面上开源框架的选型,折腾了几天,发现要么上手太难,要么学习成本很高文档不齐全,有的框架光是理解概念就要很久,对于像笔者一样刚毕业的初学者来说,市面上的开源框架真的很不友好。

从那时候笔者就决定要 为自己,开发一套符合自己使用习惯的框架,也就是现在的 QFramework。

为什么叫 QFramework ?

笔者在做 cocos2dx 的时候,市面上有个叫 Quick-Cocos2d-x 的开源框架,用两个词形容就是简单、强大。

笔者认为好的工具就应该简单。

QFramework 的目标是要做到像 Quick-Cocos2d-x 一样 “简单、强大”。当时笔者纠结过很多名字,比如 QuickEngine,QuickUnity 等等。Q 代表 Quick,并且 Q 这个字母给人感觉灵活有弹性,所以最终确定为 QFramework。

在决定要做框架之后,笔者就开始了边搭建框架边进行着跑酷项目开发的工作生活。

启蒙资料 《Unity 架构设计与开发管理》

很幸运地是,在跑酷项目开发之初,笔者接触到了一个非常好的关于 Unity 项目架构的学习资料,就是刘钢老师在 Unite 大会上的讲座视频《Unity 架构设计与开发管理》,视频中所提出的 Manager Of Managers 很好地为笔者开发 QFramework 指明了方向。虽然刘老师讲得通俗易懂,但是里边有很多话都很值得回味,笔者之后也花了很长时间去消化里边的内容,直到今天,笔者再看一遍视频还是会有很多收获的。在读此文时我们先不着急看里边的内容,视频链接会在文章的最末尾贴出。

跑酷项目准备

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygpyd.html