| 订阅 | 在线投稿
分享
 
 
 

基于OGRE所实现的高层游戏引擎框架(1)

来源:互联网网民  宽屏版  评论
2008-05-19 00:44:16

人类对于游戏的研究起源于近代。关于游戏起源的问题,自近代而来就有了多种理论:例如席勒的“本能论”,斯宾塞的“剩余能量论”,谷鲁斯的“练习理论”,弗洛伊德的“宣泄理论”等等。

然而,什么是游戏?游戏的本质是什么呢?我们先看看下面几种游戏形态,看能否获得一些启发。

棋牌似乎是所能列举出的人类最早的纯智力的游戏形态;而当游戏规则开始与体力结合时,就诞生了诸多体育项目;自上世纪年代之后,伴随着芯片处理能力的提高,又产生了电子游戏这种新的游戏形态。抛开这么多游戏的存在形态不说,精神是物质的映射,游戏这种人类的精神产物所反映的是如何的客观存在呢?

象棋、军旗和围棋,是从人类战争中找到了灵感。战争,是人类所能接触和理解到的事物。

王朝网络

图0-2 象棋很可能来自于人类对战争的理解和认识

现代战略战术类电脑游戏的规则大多始祖于近代出现的军事推演,这个军事推演可以准确的说是从战争中找到的灵感。

王朝网络

图0-3 左:《文明》的截图

右:1894年,清政府派人参加美国军方军事推演时的照片

图0-4 左:《地球帝国》的截图

右:1910年,美国海军军事学院的一场海战推演

图0-5 左:《帝国时代2》的截图

右:近代图版战争游戏的包装盒

最早的电子游戏是1962年在PDP-1型电子计算机上,由一个名叫斯蒂夫?拉塞尔的大学生开发出来的《Space War》,单从名字我们就可以看出这个游戏所立足的,是人类对于空间的幻想,和对于战争的体会。

王朝网络

图0-6 左:在这台电脑上,诞生了人类历史上第一款电子游戏

右:利用计算机绘制的太空幻想图

图0-7 左:战术FPS游戏《CS》

右:提出了Thanatos和Eros的奥地利心理学家弗洛伊德

图0-8 左:传统图版RPG游戏的人物属性表格

右:玩图版RPG能激发玩者丰富的想象力

图0-9 左:某网络RPG游戏场景截图

右:正在玩图版RPG游戏的玩者,右下为裁判

而被冠以“暴力”等罪名的FPS,尤其是万人瞩目的Quake和HalfLife,似乎也是为了满足弗洛伊德所说的人类对于Thanatos的本能追求,其表现形态往往来自于真实的杀戮场面,这些杀戮场面在一些网站、文学、新闻和电视剧中比比皆是。

下面来看看另一种游戏类型――RPG游戏。欧美RPG的始祖是托尔金的名著《指环王》,作为一部文学作品,《指环王》似乎是从人类各个集团的政经军事的交互中寻找到的灵感,同时在这之中体现出了一个幻想的世界和幻想的世界观。此后发展而成的《龙与地下城》规则,更是继承和发扬了这个体系,刻画了一个世界的各个集团之间的政治、经济、哲学和战争的体系。幻想的事物,也作为人类所能接触到的事物,成为了游戏开发者赖以开发游戏的灵感。《龙与地下城》远在电脑游戏出现之前就已经被做成了图版游戏。后来,电脑游戏介入了这个规则体系,用一种崭新的面貌重现着以往的图版游戏中刻板的教条和变化无穷的世界。

由上面的叙述我们可以看到,游戏的开发都离不开“人类所能接触到的事物”,这中间包括人类所能接触到的客观世界和精神(艺术、幻想)世界。《电脑之王?游戏文明论》中说到:“电脑游戏的本质就是模拟现实”,这也是图灵所揭示的计算机的本质特征:“模拟人类的思维”。

被电子竞技的现实形态所决定的程序形态

游戏既然是对客观世界的认识和理解,那么就可以站在最为抽象的角度,来分解这个认识和理解。

一是远古以来就业已存在的世界:山水、森林……诸如此类,他们有一个共同的特点,是很少或几乎不会因为人类的精神活动而发生变化,基本上可以认为在整个游戏期间很少或没有变化。这一部分我们用一个词语来描绘就是地图或地形。一般在三维中都叫地形,二维中都叫地图。

二是这个世界的居住者以及他们所使用的各种工具:人、动物、汽车……,他们有一个共同特点是会发生强烈的相互影响相互制约的关系。由于变动明显,这一部分的物体经常会发生变动。这一部分我们也用一个词语来描绘就是物件。在另外的分类中,往往也把地图和地形当作一种物件,但在大部分游戏中,这两者属性和方法都不同,因此我们在此将地图独立出来考虑。

第一二世界的组合就成了我们肉体可以感知到的物质世界,而这个世界在我们心灵中的映象,就叫做场景。换句话说,广义的场景就是地形和地形之上的物件的集合。从一个简单的角度来考虑,我们可以把场景看作是舞台布景,舞台背景等等就是地形,而舞台上的演员和一些杂物等等就是物件。

第三世界是一种比较难于感知的世界,它肉眼无法看见,但却在很长的时间期限内处于相对静止状态的规律集合。例如 “生命体失血过多会死亡”、“在其他条件相同的前提下,有效率的人比没效率的人在单位时间内收益要大”,等等等等。这一部分很大的可能会在暗中影响到“第一第二部分的世界”,我们用一个词语来描述它就是规则或者规律。这一部分还有一个重要的内容就是人类精神领域的活动,包括思维世界和情感世界,我们可以把这种活动认为成一种特殊的规则和规律。

游戏作为一种交互娱乐手段,还有一层层面就是交互。交互中首当其冲被大家接受的是通过这个人一切可能的方式来向游戏系统输入,来从游戏系统接收输出。因此I/O控制是一个游戏系统所必须的系统。例如我们下象棋时,我们的手可认为是游戏系统的输入设备,可见的棋盘和棋子从游戏系统向我们发送输出,可认为是游戏系统的输出设备。

另一方面,在电脑游戏中。I/O系统除了键盘鼠标显示器这些基本的设备之外,还有一个交互的重要组分就是GUI界面,对于现在越来越复杂的游戏系统,一个仅通过鼠标和键盘,靠输入命令来维持的I/O是很难想象的。因此GUI用它的强大功能弥补了标准I/O设备的不足,因为GUI系统的重要性,因此在这次我们也必须把它考虑在内。

通过上面的论述我们可以得出的结论是:一个游戏可分解为地图、物件、规则、I/O控制和GUI的集合。作为棋牌类游戏可以考虑之为地图、物件、I/O和GUI部分退化而规则相对进化的游戏,古代没有那样强大的系统来完美体现地图、物件,因此规则就相对强大得多。近代出现的军事推演已经是一种有完整地图、物件和规则的游戏系统了。而作为GUI,似乎只有电子游戏才有这样的东西,它是为了方便交互而产生的。

大部分游戏引擎中,会把第一部分映射为地形(地图)系统来处理,对其支持至少有:地图文件的读取、导出、渲染等。

而第二部分,各个不同游戏的实现也不尽相同,一般引擎对物件的支持除了渲染外,至少会提供如下支持:物件碰撞检测、模型编辑等。

第三部分,这有很大一部分是受游戏类型的限制,而且即便是在相同游戏类型里面,由于程序员的个人划分不一样,也会出现不同的结果。比较基本的技术包括状态机等。

第四部分,GUI和控制则有很多参考,MFC等都是很好的参考,因此这一般不是经常会被拿来讨论的技术。

本文所主要讨论的就是利用一个现有的底层引擎来构架高层引擎,并借之讨论高层引擎构架的一般思路。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
  人类对于游戏的研究起源于近代。关于游戏起源的问题,自近代而来就有了多种理论:例如席勒的“本能论”,斯宾塞的“剩余能量论”,谷鲁斯的“练习理论”,弗洛伊德的“宣泄理论”等等。   然而,什么是游戏?游戏的本质是什么呢?我们先看看下面几种游戏形态,看能否获得一些启发。   棋牌似乎是所能列举出的人类最早的纯智力的游戏形态;而当游戏规则开始与体力结合时,就诞生了诸多体育项目;自上世纪年代之后,伴随着芯片处理能力的提高,又产生了电子游戏这种新的游戏形态。抛开这么多游戏的存在形态不说,精神是物质的映射,游戏这种人类的精神产物所反映的是如何的客观存在呢?   象棋、军旗和围棋,是从人类战争中找到了灵感。战争,是人类所能接触和理解到的事物。   [url=http://www.wangchao.net.cn/bbsdetail_1440300.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1211129054789.jpg[/img][/url]   图0-2 象棋很可能来自于人类对战争的理解和认识   现代战略战术类电脑游戏的规则大多始祖于近代出现的军事推演,这个军事推演可以准确的说是从战争中找到的灵感。   [url=http://www.wangchao.net.cn/bbsdetail_1440300.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1211129055070.jpg[/img][/url]   图0-3 左:《文明》的截图   右:1894年,清政府派人参加美国军方军事推演时的照片   图0-4 左:《地球帝国》的截图   右:1910年,美国海军军事学院的一场海战推演   图0-5 左:《帝国时代2》的截图   右:近代图版战争游戏的包装盒   最早的电子游戏是1962年在PDP-1型电子计算机上,由一个名叫斯蒂夫?拉塞尔的大学生开发出来的《Space War》,单从名字我们就可以看出这个游戏所立足的,是人类对于空间的幻想,和对于战争的体会。   [url=http://www.wangchao.net.cn/bbsdetail_1440300.html][img]http://images.wangchao.net.cn/images/upload/images/lsdn/1211129055648.jpg[/img][/url]   图0-6 左:在这台电脑上,诞生了人类历史上第一款电子游戏   右:利用计算机绘制的太空幻想图   图0-7 左:战术FPS游戏《CS》   右:提出了Thanatos和Eros的奥地利心理学家弗洛伊德   图0-8 左:传统图版RPG游戏的人物属性表格   右:玩图版RPG能激发玩者丰富的想象力   图0-9 左:某网络RPG游戏场景截图   右:正在玩图版RPG游戏的玩者,右下为裁判   而被冠以“暴力”等罪名的FPS,尤其是万人瞩目的Quake和HalfLife,似乎也是为了满足弗洛伊德所说的人类对于Thanatos的本能追求,其表现形态往往来自于真实的杀戮场面,这些杀戮场面在一些网站、文学、新闻和电视剧中比比皆是。   下面来看看另一种游戏类型――RPG游戏。欧美RPG的始祖是托尔金的名著《指环王》,作为一部文学作品,《指环王》似乎是从人类各个集团的政经军事的交互中寻找到的灵感,同时在这之中体现出了一个幻想的世界和幻想的世界观。此后发展而成的《龙与地下城》规则,更是继承和发扬了这个体系,刻画了一个世界的各个集团之间的政治、经济、哲学和战争的体系。幻想的事物,也作为人类所能接触到的事物,成为了游戏开发者赖以开发游戏的灵感。《龙与地下城》远在电脑游戏出现之前就已经被做成了图版游戏。后来,电脑游戏介入了这个规则体系,用一种崭新的面貌重现着以往的图版游戏中刻板的教条和变化无穷的世界。   由上面的叙述我们可以看到,游戏的开发都离不开“人类所能接触到的事物”,这中间包括人类所能接触到的客观世界和精神(艺术、幻想)世界。《电脑之王?游戏文明论》中说到:“电脑游戏的本质就是模拟现实”,这也是图灵所揭示的计算机的本质特征:“模拟人类的思维”。   被电子竞技的现实形态所决定的程序形态   游戏既然是对客观世界的认识和理解,那么就可以站在最为抽象的角度,来分解这个认识和理解。   一是远古以来就业已存在的世界:山水、森林……诸如此类,他们有一个共同的特点,是很少或几乎不会因为人类的精神活动而发生变化,基本上可以认为在整个游戏期间很少或没有变化。这一部分我们用一个词语来描绘就是地图或地形。一般在三维中都叫地形,二维中都叫地图。   二是这个世界的居住者以及他们所使用的各种工具:人、动物、汽车……,他们有一个共同特点是会发生强烈的相互影响相互制约的关系。由于变动明显,这一部分的物体经常会发生变动。这一部分我们也用一个词语来描绘就是物件。在另外的分类中,往往也把地图和地形当作一种物件,但在大部分游戏中,这两者属性和方法都不同,因此我们在此将地图独立出来考虑。   第一二世界的组合就成了我们肉体可以感知到的物质世界,而这个世界在我们心灵中的映象,就叫做场景。换句话说,广义的场景就是地形和地形之上的物件的集合。从一个简单的角度来考虑,我们可以把场景看作是舞台布景,舞台背景等等就是地形,而舞台上的演员和一些杂物等等就是物件。   第三世界是一种比较难于感知的世界,它肉眼无法看见,但却在很长的时间期限内处于相对静止状态的规律集合。例如 “生命体失血过多会死亡”、“在其他条件相同的前提下,有效率的人比没效率的人在单位时间内收益要大”,等等等等。这一部分很大的可能会在暗中影响到“第一第二部分的世界”,我们用一个词语来描述它就是规则或者规律。这一部分还有一个重要的内容就是人类精神领域的活动,包括思维世界和情感世界,我们可以把这种活动认为成一种特殊的规则和规律。   游戏作为一种交互娱乐手段,还有一层层面就是交互。交互中首当其冲被大家接受的是通过这个人一切可能的方式来向游戏系统输入,来从游戏系统接收输出。因此I/O控制是一个游戏系统所必须的系统。例如我们下象棋时,我们的手可认为是游戏系统的输入设备,可见的棋盘和棋子从游戏系统向我们发送输出,可认为是游戏系统的输出设备。   另一方面,在电脑游戏中。I/O系统除了键盘鼠标显示器这些基本的设备之外,还有一个交互的重要组分就是GUI界面,对于现在越来越复杂的游戏系统,一个仅通过鼠标和键盘,靠输入命令来维持的I/O是很难想象的。因此GUI用它的强大功能弥补了标准I/O设备的不足,因为GUI系统的重要性,因此在这次我们也必须把它考虑在内。   通过上面的论述我们可以得出的结论是:一个游戏可分解为地图、物件、规则、I/O控制和GUI的集合。作为棋牌类游戏可以考虑之为地图、物件、I/O和GUI部分退化而规则相对进化的游戏,古代没有那样强大的系统来完美体现地图、物件,因此规则就相对强大得多。近代出现的军事推演已经是一种有完整地图、物件和规则的游戏系统了。而作为GUI,似乎只有电子游戏才有这样的东西,它是为了方便交互而产生的。   大部分游戏引擎中,会把第一部分映射为地形(地图)系统来处理,对其支持至少有:地图文件的读取、导出、渲染等。   而第二部分,各个不同游戏的实现也不尽相同,一般引擎对物件的支持除了渲染外,至少会提供如下支持:物件碰撞检测、模型编辑等。   第三部分,这有很大一部分是受游戏类型的限制,而且即便是在相同游戏类型里面,由于程序员的个人划分不一样,也会出现不同的结果。比较基本的技术包括状态机等。   第四部分,GUI和控制则有很多参考,MFC等都是很好的参考,因此这一般不是经常会被拿来讨论的技术。   本文所主要讨论的就是利用一个现有的底层引擎来构架高层引擎,并借之讨论高层引擎构架的一般思路。
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有