下载 App

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

2025/10/279 浏览综合

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:

猜你想搜
退休勇者的示例游戏 程序架构
00:04
【退休勇者】GameJam日志 #5:简单的BUG一览截图
【退休勇者】GameJam日志 #5:简单的BUG一览
在这个平台跳跃游戏中,我们复原了一些常见的BUG作为游戏中的机制。接下来我们举其中一部分和大家分享一下~ 1、土狼跳 在许多平台跳跃游戏中,都保留了“边缘保护”的机制,即角色离开平台很短的时间内依旧可以跳跃,来保证跳跃的手感。例如,离开平台5帧依旧可以跳跃。但如果玩家的角色移动较快,就可以在5帧内移动较远距离来实现一个远距离的“大跳”! 2、顶头跳 许多平台跳跃游戏中都有着需要下蹲才能通过的隧道,
官方
4 赞
01:19
【退休勇者】GameJam日志 #3:场景展示截图
【退休勇者】GameJam日志 #3:场景展示
在最近的开发中,我们花了不少心思在背景美术的构建上。我们希望背景不仅仅是“一张图”,而是能随着玩家的移动,带来沉浸感和情绪流动的视觉体验。在这个过程中,我们尝试用分层的方式来构建背景:从最远方的天空与星群,到中景的建筑群,每一层都有其独特的功能与视觉语言。 中景建筑:不只是遮挡 中景建筑不仅用于视觉遮挡,也承担了场景叙事的功能。我们通过模块化的瓦片地图来组合建筑,让它们可以在不同地图中灵活复用。虽
官方
2 赞
【退休勇者】GameJam日志 #6:游戏概览截图
【退休勇者】GameJam日志 #6:游戏概览
耶耶,终于把游戏开发完啦!先给大家展示一下封面~ 没错,我们的游戏就叫“霸哥闪送”,这是一款平台跳跃SpeedRun游戏!在游戏里你需要扮演一位名叫“霸哥”的闪送员,从平台上接单在限时内运送货物。 游戏的背景发生在一个建筑风格非常奇特的城市,楼宇叠加,交通工具不便,只能由送货员11路将货物运送上门。这就导致普通的闪送员根本无法按时完成订单,而只有最顶尖的闪送员才能顺利完成一个个单子! 在送货过程中
官方
3 赞
【退休勇者】GameJam日志 #2:传奇外卖员截图
【退休勇者】GameJam日志 #2:传奇外卖员
大家好,我们是“退休勇者”团队,回来交作业了!在上一篇日志里,我们分享了关于“BUG”的各种脑洞和哲学思考。而今天,我们要向大家介绍我们的游戏本身——一个关于外卖、速度与BUG的故事。 一、从困境到灵感:为何是“传奇外卖员”? 在第一次脑暴会后,我们带着一箩筐点子陷入了新的困境。我们发现,很多想法只是把BUG做成了一个直观的“游戏特性”,比如一个表现奇特的超能力。这缺少了那种“意外发现”的惊喜感,
官方
2 赞
2 回复