笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。
说到游戏架构设计对很多开发者来讲又熟习又陌生,熟习的是常常听人讲架构设计,但是陌生的是又不知道甚么是架构设计或说如何去做架构设计。架构师也是1个职业,特别是在1些互联网公司比如阿里巴巴,京东,滴滴打车等都有自己的架构师,架构师也是1个逐渐积累的进程。作为我们普通的开发者,我们如何提升自己的架构技能?如何学习架构技能?先从移动端游戏架构设计说起。
关于这个问题,很多人咨询过我,在这里通过博文也给读者介绍1下,我在这方面的经验。
学习架构设计首先要会编程,最少对游戏开发逻辑能够快速的实现,也有开发者跟我抱怨说,写逻辑没意思,学不到东西,其实能够写好逻辑也是很重要的,举个例子,刚毕业的学生由于没有项目经验,通常在公司中是做1些逻辑工作,比如做UI工作,其实这个工作也不是很简单的,能够写UI逻辑的程序,斟酌的问题也很多,比如如何做UI架构设计,如何做到美术和程序分离等等。自己能否有能力去优化NGUI的底层代码,对每个UI组件代码自己是不是掌握了等等,静下心来渐渐去掌握。
在掌握了基础知识后,接下来开始提升自己了。首先要对经常使用的设计模式掌握好,比如单例模式,工厂模式,简单工厂模式,状态模式,还有经常使用的MVC,FSM等模式。学习设计模式不能简单的死记硬背,但是概念还是要先记下来,网上代码也很多的,公司项目也会有这方面的代码,都可以参考学习,理论联系实际开发,这也是学习的捷径。
在游戏开发中常常使用的设计模式还是MVC,MVC在游戏中使用的最多,特别是对UI的设计,MVC的架构设计以下图所示:
View是针对的UI,Control可以用于View的控制显示,Model表示的是UI数据的显示。详情可以参考笔者已出版的书籍:《Unity3D实战核心技术详解》 电子工业出版社,里面有详细的代码。固然笔者还在CSDN学院的课程《移动端游戏架构设计》也有讲授。
另外一个经常使用的架构设计是FSM有限状态机,FSM状态机主要利用在RPG或ARPG游戏的角色动作,比如角色的各个动作状态切换可使用FSM,在笔者已出版的书籍也有讲授《Unity3D实战核心技术详解》 电子工业出版社。
这两种架构设计必须要掌握,另外在编码方面,单例模式和工厂模式这两个常常使用,必须要掌握。
学习任何技术不是1下就可以掌握的,这个主要是在实践中去积累经验,基础必须要打好,然后再去提升自己的能力。
记得我之前刚进入游戏公司时,也是做1些UI逻辑工作,那时的想法是能完成任务就行,从不斟酌如何去优化,如何去把代码写好。当时自己也是很迷惑,不知道后面咋整,晚上回到出租屋,自己就想着做1些简单的Demo练练手。白天在公司上班,晚上回到出租屋继续学习,当时也不知道啥是架构设计,只是在看到他人写的代码时感觉非常好,固然第1次也不知道人家为何这么写,只知道这么写好。偶尔跟同事聊天说起架构设计模式,说着无意听着成心,我就去买了1本经典的设计模式书籍,边看书边在网上找资料。后面再看他人写的代码,立刻有种柳暗花明又1村的感觉。自己也尝试着写1些代码练手,在项目中也尝试着去应用加深理解,就这样逐渐成长起来。
平时多跟同事聊聊技术,有时不经意的1句话可以提示我们,再加上自己的努力,1定会更上1层楼!