GameFramework开发脚手架之 专栏目录

148 阅读3分钟

为什么要做二次封装

GameFramework 框架本身是个很优秀的,完整的商用框架,覆盖到了常用开发的各个功能模块,扩展性也相当出色。但框架本身稍显复杂,对上手框架不是太友好。

  1. GameFramework 是比较底层的框架,要考虑到不同游戏的需求,所以导致接口量很大,而且混合了不同游戏的场景,理解难度大。
  2. GameFramework 使用了大量的接口和继承,这两种方式对底层框架来说也许是必要的(增加框架的控制力),但同时也大大增加框架的复杂度,因为接口和继承都意味着实现的不确定性。复杂度 = 不确定性。
  3. 有很多超大类,融合了太多职责。比方 ResourceManager 有差不多6000行的代码。其实建议可以按业务职责进行代码聚合和分类会更好一点。

框架太复杂,接口多,理解和调试难度高,会造成团队里不同的成员对框架的理解和使用不一致,增加多人开发项目的管理难度。所以就萌生了对其进行二次封装的想法,大致思路是

1.对GameFramework的功能组件,再封装一层单例管理类 XXXMgr。

  • 统一通过GameCompMgr获取GameFramework的功能组件。
  • 业务层只能调用 XXXMgr,到时如果想改用自己的框架,只要把接口重新实现一次就可以了。
  • XXXMgr封装了对框架组件的使用接口,只保留开发常用的,必要的接口,有需要再开放新的接口。这有利于保证团队对框架使用的一致性,而且接口少了,且和业务贴合,更容易理解。

2.代码根据实际业务功能来组织,而不是按分层来组织。这样代码会更模块化几点,更内聚一点,方便实现业务功能实现的一致性。耦合度低,功能的新增和移除也更容易。

一.专栏介绍

  1. 本专栏参考自 PassionY 的 GameFramework专栏目录,可以看成是对它的补充,所以基本会按照相同的目录结构,更多从使用的角度来进行补充。读者可以两边参考着来学习GameFramework这个框架,相当于两个不同的角度。

  2. 项目 github地址,通过二次封装,重构 starforce 的实现。可以先check out 出来跑一下,我用的是 Unity 2021.3.6f1 版本。但应该是2017之后的都支持,没有实测过。

二.GameFramework 参考资料

GameFramework 官网

GameFramework 源码

GameFramework示例-StarForce

PassionY 的 GameFramework专栏目录

三.专栏目录(这里会按发布文章陆续整合进来)

GameFramework 开发脚手架之 项目的目录结构介绍

GameFramework 开发脚手架之 游戏启动

GameFramework 开发脚手架之 Procedure 流程管理

GameFramework 开发脚手架之 Config全局配置

GameFramework 开发脚手架之 Setting配置存档

GameFramework 开发脚手架之 DataTable配置表模块

GameFramework 开发脚手架之 DataTable配置表 导表工具

GameFramework 开发脚手架之 Resource资源管理器

GameFramework 开发脚手架之 Network网络框架

GameFramework 开发脚手架之 Network网络模块 工具链