[置顶]游戏引擎开发与应用最佳 实践 【引擎开发篇】 之三 :模块功能描述与设计抽象思想(设计)

另提供网络远程语音视屏的技术培训,包括: .net 、cocos2d、xna 、sqlsever、C++编程与技巧 、IOS游戏开发、ANDROID游戏开发相关的技术培训 300 元一个月,周一至周五 每天晚上8:30~9:30 详情请联系QQ:371741579 email:czjone@126.com 架构师技术培训群: 57230994

 

   进入正文之前先鄙视一个博客园,【发布到博客园首页(6小时内只能在网站首页发布1篇随笔)】  ,我不能一次写完了连续发啊。不知道你们是什么 逻辑?  

 

首先上一个架构的总体图。这个图描述的是整个游戏模块间相互关系,功能与作用,整个框架的设计可以算是把oop的设计思想发挥到了很高的一个境界,什么抽象,解偶,数据驱动,这些思想在本框架中都有比较深入的使用案例。华丽而不偏离实际使用。(图有点大,请来耐心等待...)

 

另提供网络远程语音视屏的技术培训,包括: .net 、cocos2d、xna 、sqlsever、C++编程与技巧 、IOS游戏开发、ANDROID游戏开发相关的技术培训 300 元一个月,周一至周五 每天晚上8:30~9:30 详情请联系QQ:371741579 email:czjone@126.com 架构师技术培训群: 57230994

 

特殊说明:

整个引擎使用的是数据驱动模式,基本上不会在逻辑中出现任何与数据有关的编码。

  最左边的那部分是游戏框架的核心部分, 包括:引擎需要的环境初始化与环境管理,时间管理器,资源管理器,声音管理器,渲染器(这个在最开始的时候考虑到与3d游戏的兼容性,就直接把把所有的位置,颜色,区域相关的描述做成了一个四维向量。)

核心实现与代码:

  中间的绘制管理器,只是对是对框架中的渲染的器的一个再次封装,作用是实现不同类型的动画:动画对象(animal),数据动画(数据驱动动画),脚本等。

  装载器:其实就是我们游戏中的一个插件管理器。开发者在开发完成后把相应的插件丢到我们的环境中就能直接运行。

  同一类游戏的抽象:这个模型实际就是我们的领域驱动模型,因为这是正对一个行业的游戏的逻辑驱动,也可以理解成mvc的 contnrol 部分。 图中的通信就是单片机的一个远程控制器。这个会根据业务的需要发送一些数据,用来驱动游戏的正常运转,并把功能模块化。

  车标游戏:这个就是具体的游戏,最后根据不同的游戏表现,生产出来的就一实际的游戏,也就是一个插件的实现。

  通信协议部分:分成两部分来考虑,一是数据安全传输的传输层,这个其实是tcp中的应用 层,我们在一个非可靠的传层的基础上实现一个可靠的数据传输框架,由于游戏的特殊性,我们是与短片机通信我们使用的是com串口通信,所以有这样一个层来保证数据的可靠性,在tcp中,实际只有协议层了。协议层:分析接收到的数据把转换成具有一个数据格式的数据,这儿不做数据分析,只做数据的分包,解包。

下一节用代码的形式来阐述实现。 

未完 待续 ....

本文为原创,博客园为唯一官方博客,转载请说明出处....

若有问题请发 邮箱 czjone@126.com 或者加qq:371741579

 

另提供网络远程语音视屏的技术培训,包括: .net 、cocos2d、xna 、sqlsever、C++编程与技巧 、IOS游戏开发、ANDROID游戏开发相关的技术培训 300 元一个月,周一至周五 每天晚上8:30~9:30 详情请联系QQ:371741579 email:czjone@126.com 架构师技术培训群: 57230994

 

 

posted @ 2013-12-30 11:05  czjone  阅读(675)  评论(2编辑  收藏  举报