游戏引擎是什么
引擎的三个特性:数据驱动,可复用,可扩展。
-
类型
- 第一人称
- 精细而超现实的效果,对于技术要求最高。高效渲染,高帧率,物理模拟,逼真动画和高智能AI,多人在线支持。
-
第三人称
- 丰富的运动模式,复杂的摄像机系统,可交互的场景。
-
格斗游戏
- 丰富的动作,准确的攻击判定,角色渲染,皮肤/布料/毛发渲染
竞速游戏
-
实时策略
- 地形支持,复杂的AI
-
多人在线
- 强大的服务器,图形逼真程度稍低
其他
-
中间件
- 游戏开发越来越多的使用到中间件, 没有哪一个引擎能把所有的部分做到极致
- 现在的引擎更像是一个容器, 各种第三方插件整合到一起
书中提到一个矛盾体:游戏引擎的通用性和游戏引擎的性能。即一个游戏引擎越通用,它的性能就越一般。
个人觉得理解它想说的意思即可,像举的例子是说主要在室内的游戏和主要在室外的游戏在场景管理上会有不同的策略,目前为止不存在一个单一的算法同时在室内室外达到最佳。这个没问题,但是理论上,你也可以针对室内室外都写一套算法,然后切换,这么看来通用性和性能并没有那么矛盾。针对不同的平台也可以写完全不同的底层实现和优化,就像做不同的东西一样,一样可以同时得到通用性和性能。
但是这样的工作量就很恐怖了,实际上看,不会有哪个工作室有如此多的精力做这样的工作,所以我们可以认为:在一定工作量的前提下,在引擎这种巨型软件系统的级别,通用性和性能是矛盾的,但是在某些实现上我们可以通过更多的工作量来达到兼而有之,换个说法就是,在把要做的东西实现之后,把精力集中于优化个别有限的东西,这会带来非常惊人的效果。
基本上延伸到项目中也是这样的道理,铺开做很多东西就意味着质量下降,集中做较少东西就意味着质量上升(在团队里都是比较负责的人的前提下)。