`
cloud21
  • 浏览: 397342 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

关于游戏引擎

    博客分类:
  • Game
阅读更多
1,为什么要游戏引擎?
假设你做完了100个游戏,你会发现其中有很多通用的东西,那好,提炼出来,这就是游戏引擎。
2,它应该是什么样子?
1,时间管理
1,提供尽量均匀的逻辑帧频用以更新逻辑
2,可伸缩的动画帧频用来绘图(如果cpu压力大时可以略过一些动画帧以保证在正确的时间看到正确的效果)
3,附加功能
1,排程,就是能指定在某段时间后调用某函数。
2,下一帧执行某逻辑(这个在一些情况下你会于遇到的)
2,对象管理
1,持有对象,以嵌套方式持有,支持对象分组。
2,方便的查找对象(所谓“方便”,指的是你能在代*的任何地方查找特定对象,但是注意只许读不许写!这是很实用的功能),基于对象名字(字符串)查找,如:tank102
3,生成,销毁对象
4,*作对象,即调用对象的某些方法
5,对象间通信
1,对象能向特定对象,特定对象组,或全体对象进行事件广播
6,对象持有VO (valueObject)
1,DataVO这个是跟具体游戏有关的vo,比如FishVO
2,PhysicsVO 物理VO,存贮一些物理属*
3,一个附加的情况,注意MetaVO(例如有100个鲫鱼的vo,那么所有鲫鱼都有的通*,比如属于鱼类,都会游泳,最大活100岁等,这就叫metaVO,实际使用时都是存放在一个MetaManager中,全局可读即可)
3,资源管理
1,素材管理(图形,声音,文案),素材的加载(队列式加载,加载后可重用)
4,输入管理,鼠标和键盘,并且能被代*在任何地方方便的访问(因为这两个是只读属*,所以可以做成单例)
1,鼠标,~暂时没想太多
2,键盘,能同时检测多个按键
5,状态机
这个太重要了!没有状态机就没有游戏
1,位于逻辑部件内
2,支持状态间切换,
3,支持定制状态。
4,能方便的与逻辑部件交互(就是发送事件)
5,State内提供onClick和onAnimEnd方法,处理鼠标点击和动画播放完毕,非常实用
6,State内能方便访问到VO(dataVO,physicsVO等)
6,物理引擎
0,对物理对象的持有,增加,删除,更新(需要由引擎的时间管理模块来驱动)
1,物理对象数据结构,尺寸,位置(,速度,加速度),旋转,缩放等(..质量,转动惯量)
2,由力驱动,有流体阻力,摩擦力效果
3,碰撞检测,
1,每个物体有自己的碰撞ID和碰撞mask(决定哪些可以与之碰撞)
2,碰撞后能通知到游戏实体 (这个技术目前比较成熟了 )
7,渲染引擎
0,对渲染对象的持有,增加,删除,更新(需要游戏引擎的时间管理模块来驱动)
1,就是kgame5的3d引擎了,或者其他任何一个渲染引擎
2,注意渲染引擎只管绘图即可,不要做跟逻辑相关的事情
3,渲染对象产生的事件,如用户输入,或者动画播放完毕等,要发送给事件调度模块,只能单向向事件模块通信
4,渲染对象对外接口
1,播放制定动画
2,其他~
8,事件管理
1,虽然列在最后,但这个是非常重要的系统,它保证系统中实体的组件之间,实体与自己组件,实体与实体,游戏引擎Shell(对,就是liunx中shell的概念:内核的外壳)与游戏内核之间的通信
2,同一实体的组件之间,不可直接通信,由一个事件管理组件来接受各个事件并做分发,类似mediator模式,每个comp可以发送实体内消息,由eventMediatorComp接受并转达到目标组件,这样的好处是
1,在事件真正到达目标之前可以做些修整,
2,另外,事件代*集中于一处,便于管理
3,实体与实体之间
游戏引擎中有一个实体间消息管理器,实体间不要直接通信,好处是
1,可在消息真正到达目标前做修整,同时也便于调试
2,避免直接消息通信带来的混乱
实体间消息管理器的作用是:
1,向某个特定实体广播
2,向某一组或几组实体广播
3,向全体实体广播
4,每个实体都有事件管理组件,其作用是
1,实体内组件间事件中介
2,接受实体间消息管理器发来的消息
4,实体与游戏引擎外壳
实体通过对外接口组件暴露可被外部调用的接口,游戏引擎外壳通过调用实体对外接口组件暴露的方法来工作
实体通过发送shellEvent来通知游戏引擎Shell,比如,玩家在游戏中进行了某个需要调用通信模块的方法
9,今天先写到这里,未完待续...
分享到:
评论

相关推荐

    游戏引擎架构中英文完整版

    游戏引擎架构是开发电子游戏的核心工具,它涵盖了游戏设计、图形渲染、物理模拟、音频处理、脚本系统、网络通信等多个...无论是初学者还是经验丰富的开发者,都可以从中获取到关于游戏引擎架构的深度见解和实践经验。

    游戏引擎全剖析(关于游戏引擎的中文资料)

    ### 游戏引擎全剖析——理解游戏引擎的核心与构建3D世界的奥秘 #### 引言:游戏引擎的诞生与发展 从《毁灭战士》(Doom)的时代开始,游戏开发经历了翻天覆地的变化。这款划时代的游戏不仅因其卓越的游戏体验而...

    《3D 游戏引擎架构》

    综上所述,《3D游戏引擎架构》不仅是一本关于游戏引擎开发的教材,更是一本引导读者进入3D游戏开发世界的钥匙。无论你是想深入理解游戏引擎的工作原理,还是希望掌握构建高质量3D游戏所需的各种技术,这本书都将是你...

    如何学好3D游戏引擎编程

    1. 书籍和教程:初学者可以通过阅读关于游戏引擎编程的书籍和在线教程来获取知识,这些材料可以提供理论基础和实践案例。 2. 网络资源:互联网上有大量的3D游戏引擎开发论坛和社区,可以提供最新的技术资料和解决...

    游戏引擎官方入门自学到提高全218集(1080P中文字幕)

    根据提供的文件信息,我们可以推断出这是一套关于游戏引擎学习的教学视频资料,共计218集,并且具有1080P高清画质及中文字幕,旨在帮助初学者到进阶用户全面掌握游戏引擎的使用技巧。下面将从以下几个方面对这套教学...

    youxiyinqing.rar_youxiyinqing_游戏引擎

    在“youxiyinqing.rar_youxiyinqing_游戏引擎”这个压缩包中,可能包含了关于游戏引擎的详细资料和资源,如www.pudn.com.txt可能是一个链接或文档,提供更多的学习材料,而“游戏引擎”可能是更具体的引擎教程或项目...

    3d游戏引擎vc源代码

    5. **参考文档和社区**:查阅相关文档,参与开发者论坛,获取更多关于游戏引擎开发的技巧和经验。 通过这样的学习过程,不仅可以提升编程技能,还可能激发创新思维,为未来的游戏开发生涯打下坚实基础。不过,要...

    2D格斗游戏引擎Mugen源代码

    Mugen的源代码是编程爱好者和游戏开发者的宝贵资源,通过深入研究这些源代码,可以学习到许多关于游戏引擎设计、图形渲染、物理系统以及游戏逻辑的知识。 一、Mugen引擎架构 Mugen的核心架构基于C语言编写,其设计...

    AI游戏引擎程序设计

    因此,我将提供关于AI游戏引擎程序设计的一般知识点,而不会依赖于给出的文件内容。 AI游戏引擎程序设计的知识点涉及多个方面,包括AI技术在游戏设计中的应用、游戏引擎的基本工作原理、以及如何在游戏引擎中实现AI...

    易语言Horde3D游戏引擎图形渲染引擎示例代码

    易语言是一种专为中国人设计的编程语言,它以简体中文作为语法,降低了编程的门槛,使得更多非专业程序员能够理解和使用。...同时,对于有经验的开发者,这样的示例代码也能提供关于易语言和3D游戏引擎结合的实践参考。

    [三维游戏引擎架构设计].3D.Game.Engine.Architecture

    除了《三维游戏引擎架构设计:构建实时应用与WildMagic》外,Morgan Kaufmann系列还包含了其他几本关于游戏开发的重要参考书籍,包括但不限于: - **《实时碰撞检测》**:由Christer Ericson编写,全面介绍了碰撞...

    BigWorld 游戏引擎实用资料

    《BigWorld游戏引擎实用资料详解》 BigWorld游戏引擎,作为业界知名的游戏开发平台,以其高效、稳定和可扩展性闻名。这套实用资料全面涵盖了BigWorld引擎的开发环境和技术要点,为开发者提供了深入理解与应用该引擎...

    用C++设计游戏引擎

    从给定的文件信息来看,文章标题为“用C++设计游戏引擎”,描述指出这是一个关于用C++设计游戏引擎的完整过程,具有实践价值。标签包括C++、PDF和游戏开发,暗示文章可能包含了C++编程语言在游戏开发领域的应用案例...

    游戏引擎源代码&游戏引擎

    5. **reference**:这可能是游戏引擎的API参考文档,提供了关于引擎提供的各种函数、类和接口的详细信息,帮助开发者调用和集成引擎的功能。 6. **examples**:示例文件夹通常包含使用游戏引擎创建的示例项目,这些...

    HTML5 游戏引擎 csdn

    CSDN(China Software Developer Network)是中国的一个知名IT社区,提供了丰富的资源和讨论区,其中包括关于HTML5游戏引擎的学习资料和技术交流。 在这些压缩包文件中,我们可以看到一些关键的组件和资源,它们是...

    2D游戏引擎--gameEditor

    GameEditor是一款专为2D游戏开发设计的交互式多媒体引擎,它为想要涉足游戏开发的初学者和专业开发者提供了一个直观且易于上手的平台。这个引擎的强大之处在于,它无需用户具备深厚的编程基础,就能创作出具有专业...

    游戏引擎HGE结合Lua脚本 教程.zip

    这个“游戏引擎HGE结合Lua脚本 教程.zip”压缩包提供了关于如何利用HGE与Lua进行游戏编程的详细指导。 首先,我们来看“LUA语言学习教程+lua小脚本还是很像bash shell的.txt”。Lua是一种轻量级的脚本语言,以其...

    android 游戏引擎 rokon

    **Android游戏引擎Rokon详解** Rokon是一款专为Android平台设计的游戏开发引擎,它为开发者提供了构建2D和3D游戏的强大工具。Rokon简化了游戏开发流程,让开发者无需深入底层编程,就能快速创建出具有高质量图形和...

    Game Engine Architecture(游戏引擎架构).PDF

    《Game Engine Architecture》是一本关于3D游戏引擎设计的专业书籍,由资深游戏开发者Jason Gregory撰写。本书深入浅出地介绍了游戏引擎的设计原理与架构模式,为读者提供了一个系统性的视角来理解现代3D游戏引擎的...

Global site tag (gtag.js) - Google Analytics