July 17, 2026

Stacks、对话样式与通往 itch.io 的道路

journal

首先:抱歉这段时间没能及时更新。过去几周照旧有点失控:我修复了很多小问题,跑了几次支线任务,准备了启动器,处理了 creator beta 的审批流程,但没有在每次补丁发布时都做好沟通。

所以这一篇比一般的发布说明范围更广。下面的一些改动已经通过较小的 Steam 补丁上线,但我还是想把它们汇总到这里,因为它们属于同一个更大的脉络。

最大的一些变化是新的 Stacks、不同的 Dialogue StylesStory Previews、启动器以及新的创作者测试审批流程。本文会对这些功能做一些更详细的说明。

版本: 应用:v0.17.0 - API:v0.19.3-d59486d3

用于物品、对话与场景的 Stacks

用于物品、对话与场景的 Stacks

Stacks 引入了可重用的内容池,用于 itemsscenes、细节场景和 dialogues。它们可以在使用它们的上下文中进行管理,包括故事、章节、场景、对话和物品。

之所以实现这个功能,是因为随机或可重用内容需要一个独立于消费它的单个 action 的结构。没有这种分离,创作者必须在动作内部直接定义所有可能的结果,或者在多个地方重复相同的列表。

Stacks 可用于随机的物品奖励(类似战利品表)、随机场景选择、可选细节场景或对话变体。一个故事可以只定义一次内容池,让玩家的动作在需要时从中抽取。

最初我因为一个功能需求从物品集合入手。但很快就发现这对很多不同场景都有用,所以我采用了更通用的方法。

引入不同的对话样式

引入不同的对话样式

Dialogues 现在支持多种显示样式:默认、聊天、电话和终端。编辑器包含用于配置对话显示样式的控件。

之所以实现这个,是因为并非所有对话都适合相同的视觉呈现。直接对话、电话通话和终端交流虽然使用相同的底层对话逻辑,但它们需要不同的展示规则。

这个改动可以在保留对话内容于对话系统内的同时改变其对玩家的呈现方式。播放处理也针对说话人名称、头像、背景、选项和滚动进行了更新,使这些样式表现得更一致。

请注意,目前除了 default 之外还没有内联预览来展示对话样式。未来版本会加入该功能。当然,你在开发时仍然可以测试你的对话。

现在可以创建 Story Previews

现在可以创建 Story Previews

Story previews 现在可以在故事进入完整的 release workflow 之前创建。故事页面可以可见,即便故事本身还没有作为已发布版本上线。把它当作先发布 Steam 页面,再发布游戏的方式。

实现这一点是因为创作者需要一种方式,在发布正式版本之前展示他们正在制作的内容。它也为市场和故事页面工作流提供了在故事对玩家开放之前可以验证的东西。

这可以用来准备公开的 story page、分享一个进行中的上架条目,并在发布前检查故事的呈现方式。预览发布现在会运行相关的故事与页面检查,checks system 也在发布前处理更多缺失内容的情况。

被选中的 Story Previews 将始终自动发布到 Talescape 的 Discord 和其他社交媒体渠道。

启动器与桌面应用

Talescape 启动器是为即将到来的 itch.io 发布专门准备的。它不需要 Steam key,但在 Creator Beta 期间,你的账户仍需先解锁才能使用。这个过程可能需要最多 24 小时。

这个启动器的工作方式不同于捆绑的 Steam 应用。它远程加载应用逻辑,这可能导致首次启动稍慢。作为回报,大多数更新不再需要手动下载,因为应用会通过启动器流程自我更新。

之所以实现这个,是为了让 Talescape 能够在 Steam 之外可用,并为从封闭测试迁移到创作者测试做准备。启动器会在下一步公开测试时一并发布。

元素的内联创建与编辑

元素的内联创建与编辑

现在可以从元素和模型浏览器直接创建相关元素。缺失的 charactersitemsvariables 及类似资源可以在需要时创建并在原位编辑。

此功能的目的是减少编辑器中的上下文切换。当一个 action、conditionscene element 或对话需要另一个资源时,创作者不应该必须离开当前工作区,在别处创建缺失资源,然后再返回继续工作。

这在构建关联的 story logic 时很有帮助。创作者可以在保持当前流程的同时添加缺失的依赖,然后继续配置需要这些资源的场景、对话或动作。玩家端的改动也改善了更大的库存、可见的 timers 和对 Stacks 有感知的动作行为。

Steam 成就

Steam 成就

现在已为 Steam 正确设置成就。你可以在 user settings 中将你的 Talescape 成就与 Steam 同步。

实现这一点的原因是 Talescape 将在四个平台上线,成就进度不应该仅限于内部 Talescape 账户。Steam 是第一个使用此同步流程的平台,但相同的平台化方法将来可以用于其他平台。

这有助于玩家在 Talescape 之外保持进度一致,并让成就在不同发行平台间有更清晰的作用。未来会陆续添加更多成就。

已完成本地化

应用现在已翻译为法语、意大利语、西班牙语(西班牙)、葡萄牙语(巴西)和简体中文。

之所以实现这一点,是为了让更多创作者可以用自己偏好的语言使用应用界面。翻译由翻译服务完成,因此某些措辞可能还需校正。

这有助于在更广泛发布之前用更多语言测试应用。书面文档也已更新并翻译。视频仍将保持英文。

其他更改与错误修复

编辑器体验

  • 删除资源现在会乐观更新列表,等待时间更短。
  • 对话表格行会直接打开其关联内容。
  • 改进了商城头图和缩略图选择。
  • 可选的物品图片说明得更清楚,并在回退时使用物品图标。
  • 添加了按需重新加载故事数据的维护选项。
  • Bugfix:创建场景现在会选择正确的场景类型。
  • Bugfix:发布与提交发布的模态框现在可以正常关闭。
  • Bugfix:媒体编辑表单现在可以再次保存。
  • Bugfix:故事媒体删除现在异步执行。之前尝试删除非常大的故事时会导致问题。
  • Bugfix:同一媒体现在可以多次分配给同一元素。

媒体与 Asset Packs

  • 上传时音频文件会被优化并转换为单声道 MP3,除非禁用了优化。
  • 上传时图片文件会被优化并转换为 WebP,除非禁用了优化。
  • 单文件上传限制提高到 32 MB。
  • 在 asset-pack 导入模态中添加了全选或取消全选按钮。
  • 当导入 asset-pack 会超过故事存储限制时添加了警告。
  • 失败或部分失败的 asset-pack 导入现在会返回更清晰的通知。
  • 待审或需复核的媒体现在会在媒体卡和编辑表单中显示标记。

发布检查

  • 创建场景时不再强制需要背景。缺失背景将在发布前被检查。
  • 创建物品时不再强制需要图标或图片。缺失视觉元素将在发布前被检查。
  • 商城截图校验现在会产生警告而非错误。

商城

  • 故事市场的年龄分组过滤仅在用户明确允许成人内容时才展示成人内容。
  • 当第一个玩家完成故事后,故事会自动标记为已测试。目前每次新发布会重置该状态。
  • Bugfix:修复了市场导出数据中缺失作者名的问题。

故事播放器

  • 添加了库存搜索和分页功能。
  • 添加了可见计时器显示并带有紧急状态样式。
  • 改进了玩家动作执行和清理行为。
  • debug menu 重构为日志、库存、变量、事件和计时器标签页。

成就

  • 已为应用配置 Steam 成就。
  • 可从用户设置触发成就同步。
  • 成就同步使用的平台集成方法将来可支持其他平台。

接下来计划

下一个里程碑是即将到来的 itch.io 发布。这会为 Talescape 增加一个公共发行渠道,并让项目在当前测试者群体之外更容易被发现。

同时,测试阶段也将从封闭阶段向更开放的 creator beta 过渡。审批仍将是流程的一部分,但下一阶段旨在包含更多创作者和更多面向公众的故事预览。