[置顶]游戏引擎开发与应用最佳 实践 【引擎开发篇】 之三 :模块功能描述与设计抽象思想(设计)
另提供网络远程语音视屏的技术培训,包括: .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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2009-12-30 QQ http协议