下载 App

开发者日志#4:工欲善其事——存档系统

2025/10/2317 浏览综合
大家好,这里是黄昏喵喵工作室!
在上一篇日志中,我们介绍了功能强大的状态机组件(State Machine),用来管理各种角色、物件甚至流程的状态转换。
这样一来,我们就能够轻松配置出更加复杂的游戏关卡,但同时也带来了一个问题:我们该如何准确地记录这些状态,比如任务进行到哪一步了,物品有没有被拾取?
所以,我们今天就来了解一下游戏世界的存档系统(Save Game)。

存什么?

不同类型的游戏对存档功能复杂程度的要求可能会存在差异,但至少都要实现最基础的功能:记录关键信息(比如游戏进度、玩家数值等),然后在需要的时候能够读取并还原。
UE中提供了USaveGame作为一个存档结构的基类,开发者可以在自定义的子类中按照游戏设计增加成员变量。在保存时,游戏存档通常以 .sav 文件的形式存储在特定的目录中,允许同时存在多个文件。
TapTap
在触发存档时,我们会通过消息系统向世界广播一个事件,需要保存信息的物件收到消息后,向存档结构中写入数据,然后再将存档保存到硬盘上,这样就实现了存档机制。

怎么存?

游戏的一条存档信息本质上可以看作一个被序列化的记录文本,存、读、判空等行为则通过GameplayStatics提供的标准函数实现,开发者可以在功能层面进一步封装实现存档记录的增删改查(数开人的DNA动了)。
  • 保存数据到插槽 :UGameplayStatics::SaveGameToSlot(SaveGameInstance, TEXT("SlotName"), 0);
  • 加载存档 :UMySaveGame* LoadedGame = Cast<UMySaveGame>(UGameplayStatics::LoadGameFromSlot(TEXT("SlotName"), 0));
  • 检查存档是否存在:bool bExists = UGameplayStatics::DoesSaveGameExist(TEXT("SlotName"), 0);

进展

目前我们已经完成了存档模块的代码实现,并和UI的按钮事件进行了绑定。
TapTap
另外,虽然目前我们的关卡还没有搭建好,但已经先行测试了游戏流程的触发和存读档。至今为止,我们已经将程序上搭建好的基础模块串联到一起,实现了一个非常通用的链路:
  • 事件触发 ——> 广播事件(通过Message System) ——> 状态更新 (State Machine) ——> 自动存档(Save Game

下期预告

至此,《工欲善其事》系列的技术分享就结束了。接下来,我们会展开具体关卡的搭建,游戏的画面表现和游玩体验也会逐渐丰满起来。下一篇,我们将分享在游戏主角的设计和测试过程中的碎碎念,敬请期待!
猜你想搜
代号 黄昏喵喵 存档系统
黄昏喵喵工作室#开发者日志#1:主题解读与实现方案截图
黄昏喵喵工作室#开发者日志#1:主题解读与实现方案
黄昏喵喵工作室 大家好!为了参加这次TapTap聚光灯Gamejam,我们一共拉拢了三名不愿透露真实姓名的神秘程序,0美术0策划,用这样一种新奇的队伍组成来挑战这次的主题——“你确定这不是BUG吗?” 至于工作室?那当然是由我们家的猫主子亲自命名的啦~ 作为第一篇开发者日志,我们的发布时间着实算晚,最主要的原因还是队伍里的成员们各有各的忙。。。另一方面,点开主题页duang大一个“BUG?”跳脸的
2 赞
开发者日志#2:工欲善其事——消息系统截图
开发者日志#2:工欲善其事——消息系统
大家好,这里是黄昏喵喵工作室! 这是迟到的第二篇开发者日志,距离我们上一篇已经过去一周了——别担心,我们还没失联! 近况 我们小队根据技术偏好,选择了 UE5 来作为开发使用的游戏引擎。 过去的一周,我们主要在打基础。虽然关卡上暂时还看不到“可见”的进展,但一批底层组件已经初步成型。这些系统将在之后的开发中发挥至关重要的作用,让开发事半功倍! 我们接下来会用几篇开发者日志,来介绍这些组件。今天要介
官方
4 赞
1 回复
开发者日志#3:工欲善其事——状态机截图
开发者日志#3:工欲善其事——状态机
大家好,这里是黄昏喵喵工作室! 在上一篇日志中,我们为游戏加入了一套 消息系统,让各个模块之间的交流更顺畅。 而今天,我们要带来一个能让游戏逻辑更高效、更直观地组织起来的强力工具——状态机组件(State Machine)! 状态机是什么? 还记得上期展示的那个小测试吗? 那扇测试用的门,其实就是由状态机驱动的。 它有两个状态:“开” 和 “关”。 当状态切换时,对应的逻辑就会自动执行。 不只是门
官方
3 赞
2 回复
开发者日志#7:优化玩家体验截图
开发者日志#7:优化玩家体验
大家好,这里是黄昏喵喵工作室! 在【办公区异常】首发版发布后,开发团队仍在继续对游戏进行测试和调整。 我们注意到,游戏在前期引导和部分关卡的内容密度上未能达到预期,影响了整体的游戏体验。为此,我们紧急发布了本次更新,旨在解决这些问题。 【主要更新内容】 新增功能 新增操作指引:在主菜单增设“操作说明”页面,明确了核心按键配置。 优化视觉引导:游戏内所有关键文本类物品在角色靠近时会以边缘高亮的方式显
官方
1 赞
开发者日志#6:冲刺72小时!截图
开发者日志#6:冲刺72小时!
大家好,这里是黄昏喵喵工作室! 经过72小时的极限开发,我们终于在今天打好了第一个完整的游戏包体! 虽然上一篇日志发布时我们已经基本确定好了关卡和流程,但实际开发起来还是困难重重啊…… 核心玩法 上期日志的角色介绍已经剧透了调查员是持有配枪的——没错,最初的设计里我们希望将射击战斗作为核心。 为此我们起初投入了大量精力学习了GAS系统(Game Ability System)。然而GAS虽然强大但
官方
2 赞