|
文/姜雪伟 网名海洋,资深程序,CSDN社区专家,CSDN特邀编辑,畅销书作者,已出版书籍《手把手教你架构3D游戏引擎》、《Unity3D实战核心技术详解》等书籍。
前面介绍过各种架构设计,也编写过使用架构设计开发游戏,但是没有细说用什么工具去做架构设计,在这里我谈谈自己是如何做架构设计的。
在给在线学院讲架构设计的课程时,我经常使用Xmind工具把模块规划好,在CSDN做到各种知识库图谱也是基于XMind,比如我做视频课程时给读者讲述的游戏都包括哪些算法就是使用的Xmind,制作的效果如下所示:
通过这个设计读者很容易可以看到引擎中使用的各种算法,这个图谱在游戏开发中也经常使用,非常有利于帮助开发者理清模块。比如在策划提供了需求后,开发者要写逻辑需将各个模块罗列出来,基于Xmind是一个非常好的选择,比如我做的视频课程中所制作的游戏架构设计如下图所示:
该游戏架构设计把MMORPG主要的模块都列举出来了,但是通过它我们还是不知道如何编写代码,当然经验丰富的人除外,因为同类型的游戏,它们的模块设计基本上差不多,有过经验的人可以直接编写就可以了。但是如果我们作为新手就必须要理清模块之间的逻辑思路,这个就非UML莫属了。UML在模块逻辑开发中非常好用,它可以帮我们把类的关系标识清楚,这样我们写代码就非常简单了,下面给读者把UML的模块架构图给读者展示如下:
以上展示的UML类图把游戏开发的各个模块之间的关系都罗列出来了,以上是UML能标识的所有模块逻辑关系,组合关系,继承关系,依赖关系,聚合关系,接口等等。拿游戏开发举例,在项目立项后,就可以使用UML帮我们把模块进行细化了,制作UML图的工具经常采用的是Rational Rose,它是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具,用起来非常方便,在网上可以搜索到有破解版的。
下面给读者展示一下使用Rational Rose工具制作的UML类图,如下所示:
上图是笔者给公司做培训时使用的策略模式做的UML类图,它把类之间的关系标注的非常清楚,这样程序员写逻辑就非常容易了。我非常不赞成开发者拿到需求就开始写代码,这样的代码后期会出现各种问题,代码的扩展性,模块之间的耦合性等,因为游戏开发中需求会经常变化的,我们编写的模块要能够应对这种需求变化。我的建议是拿到需求后,通过Xmind把需要编写的各个模块列出来,这样至少知道自己要做那些工作,下面再使用UML架构图把模块之间的关系设计好,最后才开始写代码,虽然前期用的时间多一些,但是它是值得的,避免我们项目后期出现返工问题。我带团队时,会跟项目组的人员讨论各个模块之间的关系,细到使用那种配置文件,都要在编写代码之前定下来,接下来通过UML把类之间的关系画出来,最后将其分配给下面项目组的成员进行逻辑代码的编写。
我写这篇文章的主要目的是告诉读者,我们编写代码要养成一个好习惯,把游戏模块之间的关系理清楚,使用UML做类的设计时还需要掌握设计模式。设计模式在游戏中使用的非常多,比如单例模式,工厂模式,状态模式等。设计模式一共23种,作为开发者对游戏中常用的模式必须要掌握的。
相关阅读:使用 Unity 3D 开发游戏的架构设计难点
|
|