|
|
发表于 2006-9-8 11:40:00
|
显示全部楼层
Re:关于什么是游戏引擎概念的讨论
我觉得游戏引擎和Framwork,STL等一样,首先是一个逻辑层面的问题,是把一类有共性的解决方法看做一个整体,让开发人员更集中于项目中的实际问题.如果说class是一类有共性的对像的抽象,那么游戏引擎可以比作是一类有共性的游戏的抽象.
一般在设计程序或Framwork的时候,一个首先必须解决的问题是系统边界的定义,即引擎的适用范围,也就是说一个引擎的通用行是和她的商业目的相关的,比如BigWorld这种大型引擎,是把引擎当作商品来开发的,那么她必须适用于广泛的游戏类型开发才能有市场,所以这类引擎包含了大部分的游戏制作元素.如果引擎是开发出来自己公司用的,那么这种引擎的适用范围更小一些也更贴近实际开发项目一些.
从游戏开发的角度来说,服务的对象链是象下面这个形式:
操作系统->引擎开发->程序,美编->策划->玩家
需求的源链正好是上面这个的逆:
玩家->策划->美编,程序->引擎
大家都知道现在要开发出好的产品必须以需求为导向,从上面两个链可以看出引擎主要是为美编和程序开发服务的,如何让美编和程序的工作更轻松更专著,引擎就应该怎么开发.从第一个链上还可以看到引擎将程序,美编的工作和具体的操作系统,硬件系统隔离开来,让程序可以在D3D或OpenGL甚至Linux下都能运行.
以KlayGE引擎为例,引擎一般分为以下几个部分:
1.图像渲染模块
2.音频模块
3.输入输出模块
4.辅助模块
5.数学库
在KlayGE中以上四个部分基础上还提供了更高一个层次的抽象
个人觉得引擎开发的难点在如何高效的实现渲染模块和物理系统
重点在满足当前需求情况下对需求变换适应的架构设计
(ps:个人比较支持XP开发过程) |
|