基于OGRE所实现的高层游戏引擎框架(1)(转)[@more@]  人类对于游戏的研究起源于近代。关于游戏起源的问题,自近代而来就有了多种理论:例如席勒的“本能论”,斯宾塞的“剩余能量论”,谷鲁斯的“练习理论”,弗洛伊德的“宣泄理论”等等。    然而,什么是游戏?游戏的本质是什么呢?我们先看看下面几种游戏形态,看能否获得一些启发。    棋牌似乎是所能列举出的人类最早的纯智力的游戏形态;而当游戏规则开始与体力结合时,就诞生了诸多体育项目;自上世纪年代之后,伴随着芯片处理能力的提高,又产生了电子游戏这种新的游戏形态。抛开这么多游戏的存在形态不说,精神是物质的映射,游戏这种人类的精神产物所反映的是如何的客观存在呢?    象棋、军旗和围棋,是从人类战争中找到了灵感。战争,是人类所能接触和理解到的事物。     图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等都是很好的参考,因此这一般不是经常会被拿来讨论的技术。    本文所主要讨论的就是利用一个现有的底层引擎来构架高层引擎,并借之讨论高层引擎构架的一般思路

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-951796/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8225414/viewspace-951796/

基于OGRE所实现的高层游戏引擎框架(1)(转)相关推荐

  1. 转:高层游戏引擎——基于OGRE所实现的高层游戏引擎框架

    高层游戏引擎--基于OGRE所实现的高层游戏引擎框架 这是意念自己的毕业论文,在一个具体的实践之中,意念主要负责的是物件和GUI之外的其他游戏系统.意念才学疏陋,望众位前辈不吝赐教.由于代码质量不高. ...

  2. 高层游戏引擎——基于OGRE所实现的高层游戏引擎框架

    技术文档(Document) 来自:noslopforever的专栏 高层游戏引擎--基于OGRE所实现的高层游戏引擎框架 这是意念自己的毕业论文,在一个具体的实践之中,意念主要负责的是物件和GUI之 ...

  3. 高层游戏引擎——基于OGRE所实现的高层游戏引擎框架(2)

    Preview 游戏形态与其所决定的程序形态 电脑游戏的本质是模拟现实 "游戏是先于人类的,许多学者在关注游戏时候发现,在自然界哺乳类动物里存在着大量的游戏行为-- "尽管游戏的历 ...

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

    人类对于游戏的研究起源于近代.关于游戏起源的问题,自近代而来就有了多种理论:例如席勒的"本能论",斯宾塞的"剩余能量论",谷鲁斯的"练习理论" ...

  5. 游戏开发心得——书籍篇——《游戏引擎框架》-导论

    游戏开发心得--书籍篇--<游戏引擎框架>-导论 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 学习<游戏引擎框架> ...

  6. 游戏开发心得——书籍篇——《游戏引擎框架》-专业工具

    游戏开发心得--书籍篇--<游戏引擎框架>-专业工具 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 学习<游戏引擎框架&g ...

  7. spritekit 动画_iOS 2D游戏引擎框架SpriteKit入门

    最近用闲暇时间了解了下iOS 7.0 SDK就提供的一个2D游戏引擎框架SpriteKit,用此实现了一个之前比较流行的游戏"保卫萝卜"中的一个小场景,毕竟有具体需求的实践能提高学 ...

  8. 基于js原生算法+cocos游戏引擎+uni框架Cloud托管网页:开发2048小游戏域名发布版本

    目录 首先看一下效果图 CocosCreator游戏引擎 block绑定: canvas绑定: cocos中创建脚本js以及js原生算法 然后我们先看game.js 背景方法及包含的原生算法代码: 开 ...

  9. 「游戏引擎 浅入浅出」1. 游戏引擎框架介绍

    「游戏引擎 浅入浅出」是一本开源电子书,PDF/随书代码/资源下载: https://github.com/ThisisGame/cpp-game-engine-book 目前市面上的游戏引擎比较多, ...

最新文章

  1. [转] Spring Boot特性
  2. 在生产环境中,阿里云如何构建高性能云原生容器网络?(含 PPT 下载)
  3. 吴继业:LinkedIn商业分析部如何运用大数据实现商业价值
  4. Java byte类型转换成int类型时需要 0XFF的原因
  5. 求出现重现次数最多的字母,如有多个反复的则都求出来
  6. Linux 服务器做网关
  7. Linux知识体系之路径属性与目录
  8. Java的注解和反射
  9. 8选1的多路选择器c语言代码,8选1多路选择器电路图(五款8选1多路选择器电路)
  10. PHP打出来的数字和成语,php批量将词语 成语 导入数据库
  11. Android科大讯飞语音集成(语音输入,语音合成文字转声音)
  12. 数据禾|2001年珠江-西江经济带植被类型分布数据
  13. 在五环六环之间,有最真实的北京
  14. VI设计手册制作全流程
  15. Java生成二维码,Spring Boot整合ZXing实现二维码生成,支持自定义二维码
  16. C++题目分享之锯木头
  17. 通过商品ID和区域ID及cookie插件获取商品快递费用接口,1688快递物流费用接口,1688商品物流费用API接口获取方案
  18. WPF异常:调用线程无法访问此对象,因为另一个线程拥有该对象。
  19. LaTeX中的希腊字母表
  20. 网络模型: Capsule

热门文章

  1. 使用jenkins SonarQube gitlab 构建自动化发布系统
  2. 后门攻击阅读笔记,Graph Backdoor
  3. C#.NET的界面编程--实例4:使用串口发送数据
  4. 发票查验真伪的接口有么?
  5. 计算机网络实验环境介绍与基本操作,实验一计算机网络基本操作33.docx
  6. 我的世界java有多少年_我的世界:你玩了多少年MC?MC绝迹的6个特性,测出你的年限!...
  7. Java compiler level does not match the version of the instal
  8. 中小学理化生实验室建设和实验装备配置标准
  9. 简易纸牌游戏(C#)
  10. 差示光谱法的测定原理_岛津锦囊丨紫外可见分光光度计测定水中石油烃含量(文末有福利)...