unity3d的游戏引擎比较符合软件工程学。这里不讨论软件过程和软件项目管理这些管理类的方面,重点讨论程序方面。
对于一款网络游戏,绝对是一个系统工程。有软件,比如unity3d,maya,ps还有服务器软件,有硬件,计算机,服务器,手机的性能都要考虑,还有开发人员,数据库,文档。所以说开发游戏也是一个系统工程。游戏本身也是一种产品,产品都要考虑需求,哪些功能是需要的。显然unity3d引擎考虑到了游戏开发的各种需求,比如模型,动画,物理,人工智能,UI,声音等,还有各种方便开发的工具,比如场景编辑器,层级编辑器,动画状态机等。分析模型,其中一种比较常见的是面向对象分析,unity3d提供了开发游戏需要的各种对象,当然对象的属性和方法也要一起考虑设计进去。
设计工程有软件设计的一些重要思想,比如抽象,unity3d把各种游戏对象抽象成gameobject,而且把各种游戏对象模块化,比如灯光light,摄像机camera等。
体系结构设计,游戏作为一个体系结构,首先有玩家gameobject,有摄像机,灯光,看到游戏场景。这些元素构成了游戏的体系结构。
构件级设计,unity3d提供了各种组件,就是构件,通过构件可以组件各种不同的游戏对象。
UI设计,一款游戏肯定需要UI来实现玩家与游戏的交互,unity3d提供了很多UI组件,比如button,slider等。
软件测试是游戏开发的必要环节,有单元测试,对于unity3d来说,通过find函数找到场景中的组件或对象转化成对象,然后调用其属性和方法,就可以实现单元测试。