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

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

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

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

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

    特殊说明:

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

      最左边的那部分是游戏框架的核心部分, 包括:引擎需要的环境初始化与环境管理,时间管理器,资源管理器,声音管理器,渲染器(这个在最开始的时候考虑到与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

  • 相关阅读:
    HashCode和equal方法
    Quartz.NET 学习笔记整理(一)
    XAML学习笔记(一)
    【转】21个经典的哲理故事
    关于List<T>集合中的差集
    batch files
    Maintenance Plans in MS SQL 2005
    Telerik
    What is DeltaCopy
    How to Insert Values into an Identity Column in SQL Server
  • 原文地址:https://www.cnblogs.com/czjone/p/2d-2.html
Copyright © 2011-2022 走看看