大家好,祝大家在新的一年里万事如意。
回顾 2023
写这篇博客时已经到 2023 年底了,而我们仍在计算模组下载量。虽然大多数下载都是通过内置模组管理器进行的,但有些人喜欢使用下载脚本或 Docker 自动进行异星工厂的下载安装。
其中一些在更新模组时发生崩溃,然后重新启动,再次下载所有模组,但异星工厂验证服务器很可能忽略下载脚本。因此,也许在这个节日期间,您那可怜的电脑在被遗忘的衣柜里漫不经心地一遍又一遍地下载“Power Armor MK3”。
2023 年有:
⚙ 676 651 位用户下载了 44 954 072 个模组。
⚙ 2 043 个新模组和 7 832 个更新的模组。
⚙ 1,368 名活跃的创建者,由 105 名合作者提供支持。
如果您想查看有关您个人模组使用情况的一些统计数据,您可以在此处查看您的个人回顾: https://factorio.com/login?mods=1&next=%2Fprofile%2Frecap%2F2023
去年,我们展示了玩家通常下载的不同模组数量。今年,我想向您展示一些有关今年模组多样性的信息。第一个图表显示了 2023 年发布的不同类别的模组。
第二个图表显示了按模组类别分组的所有 2023 年玩家下载量。
模组变更日志 2023
今年,我们继续提高模组的 ✨ 可发现性 ✨。首先,我们添加了自动的高亮页面 (https://mods.factorio.com/highlights),每周都会智能地选择和推荐有趣的模组。虽然它工作得很好,但仍处于“实验”阶段,我们还没有决定下一步该做什么。
我们重新设计了模组搜索页面并创建了“探索”页面 (https://mods.factorio.com/explore)。它通过分页提供快速、输入即搜索的体验。我们还做了相当多的工作,我想在这里解释其中一些内容:
⚙ 当 Imgur 在 4 月份开始删除图像时,Sanqui 构建了一个系统,可以自动托管发布在模组页面或论坛上的外部图像,从而保留旧的屏幕截图并缩短加载时间。
⚙ 为了降低成本,我们将“探索”页面从 Algolia 迁移到了 Meilisearch
⚙ 我们将模组存储从基于 sftp 的解决方案更改为类似 s3 的对象存储,这应该会提高模组上传端点的可用性 (https://forums.factorio.com/viewtopic.php?f=189&t=104732)。
对模组管理器做出改进
模组是异星工厂不可或缺的一部分,我们付出了巨大的努力,致力于给大家提供良好的模组管理体验。然而,第三方模组的体验一直要逊色于基础游戏,虽然体验“好”,但并不是“很棒”,还有许多小问题尚未解决。从 2.0 开始,我们将在游戏中附带多个内置模组,因此模组管理器和依赖项管理现在已归入“基本游戏体验”范畴。由于我个人有丰富的建造模组的经验,我对改善玩家和模组创作者的模组管理器很感兴趣,并且我非常熟悉当前系统的痛点。我列出了需要改进的目标,并开始解决它们。
模组依赖项错误
试想一下:您刚为 Krastorio 2 配置了模组列表后开始新游戏。在您不知情的情况下,您意外启用了 Power Armor MK3 模组,但Krastorio 2 已将其标记为不兼容。直到通关一个小时后,你才意识到Krastorio 2 的内容缺失,你必须放弃保存并从头开始。无论是作为玩家还是作为模组创作者,我都曾多次经历过这种情况。
在 1.1 中,游戏不会在发生冲突时通知您,而是默默地加载续模组。这导致许多模组创作者忽视了依赖项,并且当模组有很多依赖项时用户会抱怨游戏太繁琐。与此相关的问题非常普遍,所以太空探索会发现问题,并通知用户缺少哪些模组。
当发生依赖项错误时,异星工厂 2.0 会通知您,并且在问题得到解决之前不会允许游戏加载。
配置->重启->配置->重启
既然是依赖方面的问题,那我们需要修复出现问题的工作流程。 在 1.1 中,发生错误时,您有两个选项:禁用受影响的模组,或禁用所有模组。如果想要解决问题,则需要启用模组、更改模组版本或更新模组,那么您首先需要禁用模组以允许加载游戏,然后才能访问模组管理器 GUI 界面来解决问题。这样的模组工作方式非常烦人,因此我编写了一个命令行模组管理器来避免游戏不断重新启动 (https://github.com/raiguard/fmm)。
解决方案很简单:在 2.0 中,我添加了一个新的“模组管理”按钮,你可以访问模组管理器 GUI 界面,包括所有模组门户功能。您可以在上面的截图中看到它。
安装模组
在 1.1 中,模组管理器的安装栏看起来相对简单:一个包含一些基本排序/过滤选项的模组列表,以及一个用于显示模组详细信息的信息窗格。游戏会获取整个模组列表并立即创建整个列表,但这会导致游戏处于调试模式时出现明显的性能问题。
随着模组网站上新的探索页面的出现 (https://mods.factorio.com/explore),模组网站和游戏内置模组浏览器之间的差异变得更大。我已经习惯了在网站上搜索和寻找模组的流程,只有在找到我需要的模组后才在游戏中搜索它。如果游戏具有相同的搜索和过滤功能,那不是很好吗? 2.0 具有一个全新的探索选项,可以做到这一点。
星期五报道 #391 - 2023 回顾:安装模组
注意:按标签对模组进行过滤的功能尚未在新 GUI 中实现,但在 2.0 版本中将会实现。
在制作新界面时,我必须考虑几个因素。出于性能和网络原因,每次获取整个模块列表的 1.1 方法并不是一个很好的解决方案,并且在客户端用 C++ 重新编写复杂的搜索算法将导致网站搜索和游戏内搜索之间出现不可避免的差异,这不会带来良好的用户体验。另一方面,添加的模组搜索 API 将确保网站和游戏内搜索结果的一致性。
我们采用了服务器端方法。为了快地启动和运行,我选择在 Go 语言中搭建一个模拟服务器,该服务器将从现有的模组网站 API 中获取数据并以新格式提供服务。得益于 Go 内置的 HTTP 库和非常易于使用的 JSON 解析,只花了几个小时就让这个服务器在我的笔记本电脑上启动并运行。当我做好了探索功能时,我能够根据需要自由调整 API,而无需占用任何 DevOps 时间。这让我可以花时间对模组管理器界面进行清理和重构,以使探索选项更易于实现,并为将来的更多的改进铺平道路。
客户端搭建完成后,Vinzenz 就需要开发 API。模拟服务器很稳定,在针对 API 进行测试时只发现了一些小问题,功能合并也相对顺利。
未来的计划
这些改进已经解决了我对模组管理器最大的不满。虽然我的任务清单还远未完成,但为了尽快向大家提供 2.0,我的大部分计划将推迟到更高版本发布之后。请继续关注更多的游戏内容!
#开发日志# #自动化# #基地建设# #steam游戏#