游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: 白鱼汤

关于什么是游戏引擎概念的讨论

[复制链接]

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-9-8 11:40:00 | 显示全部楼层

Re:关于什么是游戏引擎概念的讨论

我觉得游戏引擎和Framwork,STL等一样,首先是一个逻辑层面的问题,是把一类有共性的解决方法看做一个整体,让开发人员更集中于项目中的实际问题.如果说class是一类有共性的对像的抽象,那么游戏引擎可以比作是一类有共性的游戏的抽象.
一般在设计程序或Framwork的时候,一个首先必须解决的问题是系统边界的定义,即引擎的适用范围,也就是说一个引擎的通用行是和她的商业目的相关的,比如BigWorld这种大型引擎,是把引擎当作商品来开发的,那么她必须适用于广泛的游戏类型开发才能有市场,所以这类引擎包含了大部分的游戏制作元素.如果引擎是开发出来自己公司用的,那么这种引擎的适用范围更小一些也更贴近实际开发项目一些.
从游戏开发的角度来说,服务的对象链是象下面这个形式:
操作系统->引擎开发->程序,美编->策划->玩家
需求的源链正好是上面这个的逆:
玩家->策划->美编,程序->引擎

大家都知道现在要开发出好的产品必须以需求为导向,从上面两个链可以看出引擎主要是为美编和程序开发服务的,如何让美编和程序的工作更轻松更专著,引擎就应该怎么开发.从第一个链上还可以看到引擎将程序,美编的工作和具体的操作系统,硬件系统隔离开来,让程序可以在D3D或OpenGL甚至Linux下都能运行.

以KlayGE引擎为例,引擎一般分为以下几个部分:
1.图像渲染模块
2.音频模块
3.输入输出模块
4.辅助模块
5.数学库

在KlayGE中以上四个部分基础上还提供了更高一个层次的抽象

个人觉得引擎开发的难点在如何高效的实现渲染模块和物理系统
重点在满足当前需求情况下对需求变换适应的架构设计
(ps:个人比较支持XP开发过程)

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2006-9-8 11:47:00 | 显示全部楼层

Re:关于什么是游戏引擎概念的讨论

抽象?
别指望它能有多大作用,抽到最后就变成抽风

6

主题

390

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2006-9-8 13:46:00 | 显示全部楼层

Re:关于什么是游戏引擎概念的讨论

抽风……

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2006-9-8 14:12:00 | 显示全部楼层

Re:关于什么是游戏引擎概念的讨论

唉,虚幻3真TM是王道,那套材质编辑器简直就是梦想中的产品。。。。不过编辑器在偶的7800GT上跑都慢到吐血。。。

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2006-9-8 20:18:00 | 显示全部楼层

Re:关于什么是游戏引擎概念的讨论

我的观点:
游戏不只是动画……
所以对于一个游戏而言,可以分为输入、输出和逻辑处理这三个部分。输入是鼠标、键盘这些设备所产生的事件,以及这些事件与事件的组合,或者事件与状态的组合。记录在硬盘里的诸如操作序列这些也是输入。输出则是图形渲染和声音输出。逻辑处理包括游戏逻辑、物理系统、技能、剧情等。其余就是些支持性的结构,比如资源管理,平台相关的API抽象和网络模块等。

目前我在尝试实现的一个架构是这样设计的:


  1. 总体架构

  2. ==================================================================================================================
  3.         World
  4. OK.                Config
  5. OK.                        Property                        //配置信息
  6.                 Logic
  7.                         Physics                        //特化了的Logic子系统
  8. OK.                        Message                        //可通过网络(或在本地)传递的对象,用以实现各Object之间的各种交互
  9.                         Object                                //Scene之中的各种对象,通过传递Message互相交互
  10. OK.                Scene
  11.                         Scene                                //场景树,用以实现时空系统,通过与远程Scene传递Message来进行同步
  12. ★                Network
  13.                         select/poll/epoll/iocp        //网络消息调度
  14.                         TCP/SCTP                        //使用各种协议建立连接、传递数据
  15. OK.                MessageRouter                                //负责路由本地消息对象
  16.                 Database
  17.                         File
  18.                         DBMS
  19.                 Render
  20.                         Text                                //以文字形式进行输出
  21.                         Graph                                //以渲染图形的形式进行输出
  22.                         Sound                                //音效和音乐的输出
  23.                 Input
  24.                         Keyboard                        //键盘输入及响应
  25.                         Mouse                                //鼠标输入及响应
  26.                         Mic                                //话筒输入及响应
  27. OK.                Factory
  28. OK.                        Factory
  29. OK.                        DynamicFactory
  30. ------------------------------------------------------------------------------------------------------------------
  31.         Timer                                                //定时器,用以实现定时和时间流速控制
  32. ★        Serialization                                        //负责对象的序列化和重建
  33. ==================================================================================================================
复制代码

我的设计里,只有Scene和Logic部分是需要由引擎用户实现的。

虽然引擎是由这些模块组成的,但是并不仅仅是把它们放到一起,而是要让它们能够不需要引擎用户过多的干预就能正常运行。并且应该不需要用户对引擎有太多了解就能够使用。

4

主题

34

帖子

34

积分

注册会员

Rank: 2

积分
34
发表于 2006-9-10 22:36:00 | 显示全部楼层

Re:关于什么是游戏引擎概念的讨论

我认为我们更应该想想为什么需要这个东西,为什么需要这个概念,他能给我们带来什么?
如果游戏引擎能使我们集中精力于游戏的逻辑部分!那他应该算是一个 好的游戏引擎
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 08:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表