【退休勇者】GameJam日志 #4:程序架构

2025/10/276 浏览综合

1、引言

在GameJam里谈程序架构好像有点奢侈,但是一个足够灵活的程序架构能够使功能开发更加快速、稳定,再大的项目也能井井有条。而一个好的程序架构也不是一蹴而就的,是一次次开发使用过程中不断发现问题迭代而来的。今天我们要给大家展示的就是我们日常改进而来的程序架构。

2、整体架构概览

TapTap
架构概览
如图所示,我们的架构可以简单分为两个层级:数据层和UI层。其中,数据层由GameManager驱动,GameManager是一个继承MonoBehaviour的全局单例,管理着所有其他Manager的生命周期。游戏中的不同系统被简单划分为不同的Manager,根据需要各自持有一个DataCtrl对象用来保存数据。而数据通过DataManager根据需求在游戏开始时加载或是懒加载到对应模块里。UI是一个相对独立的层级,所有UI的生命周期由UISystem控制,包括加载卸载、UI栈处理等。

3、数据与配置管理

在游戏中需要动态读取、存储的存档数据之外,还有一类静态数据的处理也是游戏开发中老生常谈的问题。没错,就是游戏中需要读取的各自配表。
TapTap
配表
因为我们的游戏一般都是单机游戏,所以我们采用了Unity自带的SO(ScriptableObject)来存储静态配置。但是SO不方便编辑,于是我们又采用了从Excel到SO的工作流,并在游戏运行时将SO读取到内存。
TapTap
Excel到SO的转换

4、关键工具

在整体开发中,我们也使用了JKFrame来加快游戏的开发进程。JKFrame整合了许多常用的组件,如UI管理、音效管理、资源加载等,可以避免重复造轮子的时间。例如我们队伍使用的SO转换工具也是在JKFrame的工具基础上改进的,增加了对列表、自定义数据结构、嵌套数据结构的支持;也改进了UI管理系统,使窗口支持多种初始化方式。如果大家感兴趣也可以看文章末尾的github链接,了解一下这个好用的工具~

5、尾声

非常感谢大家能看到这里(),如果大家对于自己项目的程序架构也有所心得,欢迎来评论区讨论~

Ref:

猜你想搜
退休勇者的示例游戏 程序架构
2