你们好,我们想谈谈 2.0 基础游戏更新中的远程视图。这是后面能够谈论太空平台和行星的基础之一,让我们开始吧!
远程视图
在 FFF-362 (https://factorio.com/blog/post/fff-362) 中,我们解释了改进远程幽灵建筑的原因,因为它随着蜘蛛机甲的存在而变得更加重要。随着太空时代扩展版中行星和太空平台的引入,远程建筑的重要性变得更加重要,因为你不可能同时出现在任何地方。我们的目标是能够使用远程视图来完成您在本地可以完成的所有操作。其动机还在于尽可能消除本地和远程建筑之间的不一致,因此您的肌肉记忆在任何地方都几乎相同。
远程开启
在当前的 1.1 版本中,您无法远程打开组装机器来更改配方、打开插入器来设置过滤器等。但您可以使用“蓝图技巧”来远程执行此操作。这与上一篇 FFF-379 (https://factorio.com/blog/post/fff-379) 中描述的远程连接电线的问题类似。因此我们对每个实体实现了远程打开的功能,这仅适用于 1.1 中的火车站和机车。这允许您在实体中配置任何内容,但显然,您不能只是将您的库存物品传送到那里。
请注意远程视图左侧的幽灵选择器。
幽灵物品
由于我们希望让您能够做几乎所有事情,因此我们需要一种远程处理物品的方法。游戏测试的最大动机是能够添加燃料以停下火车,从不属于一些物品的地方删除随机物品,以及添加/升级/删除模块。因此,解决方案是,您只需单击库存槽中的幽灵光标即可制作幽灵物品,该物品将由本地建筑机器人运送到该槽位。拆除也是如此,使用摧毁十字并命令机器人将其取出。
完整视频的链接在下面: https://cdn.factorio.com/assets/blog-sync/fff-380-add-remove-ghost-module.mp4
旋转物品
在 1.1 中,您已经可以远程更改实体的方向。问题是,你只能通过幽灵重建实体来做到这一点,而仅使用旋转“R”按钮并不起作用,这与本地建造相比又会造成了另一个不一致。我们内部有很多关于“现实方向”和“未来方向”的逻辑的讨论,很多地方都要考虑,而且总是带来越来越多的问题。
旋转指令也无法给出皮带是否旋转/连接的良好反馈。
在解决与此相关的另一个问题时,我们意识到将旋转固定为一个即时动作可能是出路。因为它不会过多破坏沉浸感,并且为我们和玩家大大简化了一切,所以我们就这么做了。
完整视频的链接在下面:https://cdn.factorio.com/assets/blog-sync/fff-380-rotate-from-remote-view.mp4
打开幽灵
一旦我们允许远程配置实体,就会出现一个新的恼人的问题。在本地,您可能习惯于只构建一台组装机并立即对其进行配置。但对于远程构建,你必须放置幽灵,等机器人去建造它,然后你才能配置它。令人惊讶的是,从技术上来说,允许打开幽灵并配置它们并不困难。
完整视频的链接在下面:https://cdn.factorio.com/assets/blog-sync/fff-380-opening-ghosts.mp4
绘制蜘蛛机甲和设备的蓝图
你无法远程完成的另一件事是建造蜘蛛机甲,或重新配置它们的装备。主要的技术成本是添加装备幽灵,所以当你设计蜘蛛时,机器人可以将装备安装到蜘蛛机甲中。
完整视频的链接在下面:https://cdn.factorio.com/assets/blog-sync/fff-380-blueprint-spidertron.mp4
额外的好处是,你现在可以将幽灵装备放入你的盔甲中,这样你就不必一次性订购盔甲所需的东西,这种情况在扩展中由于品质而发生得更多。
幽灵图块上的幽灵实体
这对于平台构建尤其重要,因此您无需等待所有空间平台图块都被运送到天空进行物理构建,就能够将幽灵实体放置在其顶部。即使在这种情况之外,能够在幽灵垃圾填埋场上建造幽灵实体也是我们和很多玩家的长期愿望。
完整视频的链接在下面:https://cdn.factorio.com/assets/blog-sync/fff-380-ghost-entities-on-ghost-tiles.mp4
摧毁
摧毁器的 ALT+D 快捷键现在已经成为我肌肉记忆的一部分,但仍然存在能够使用挖掘按钮在本地删除实体但不能远程删除实体的不一致之处。这就是为什么现在您可以远程“挖掘”实体以标记它们以进行摧毁。
完整视频的链接在下面:https://cdn.factorio.com/assets/blog-sync/fff-380-deconstruct-with-mine.mp4
远程查看文档
由于行星和太空平台的存在,我们必须找到一种方法来远程移动到不同地方。在右侧放置一个新按钮用作进入这些地方会很便利。
这让您可以在 GUI 中看到不同位置的预览,并可以通过视图按钮“跳转”到那里。
但在我们开始玩的时候,我们感觉这个系统很糟糕。 例如,如果您想检查某个星球上的某些内容,然后切换到平台,那么您必须执行操作:
行星 GUI → 选择行星 → 查看 → 关闭 → 平台 GUI → 选择平台 → 查看 → 关闭
此外,行星 GUI 中的预览有点引诱你直接在那里做一些事情,就好像它已经是远程视图一样。 因此,我们一再觉得点击非功能性预览小部件是愚蠢的。
解决方案是将所有内容集成在一起。 每当您打开远程视图(地图)时,你可以通过左侧显示的行星/平台进行选择,因此您可以正常使用远程视图并执行所有操作,还可以在地点之间切换。
所以前面的例子被简化为:
远程查看→选择星球→选择平台→关闭
这就是为什么乍一看访问星球/平台旅行,以及平台的创建有点不直观的原因。从长远来看,它的效果会更好。 另外,我们对火车使用了相同的策略,所以它只是一个“粘合”到远程视图的 GUI,这样您就可以用通常的方式与所选火车周围的世界进行交互,而不是只看到地图,而这个地图是不可交互的。
幽灵着色器
您可能已经注意到之前的图像/视频中的幽灵看起来与您可能熟悉的有点不同。在基础游戏发布之前,修饰幽灵实体的外观就一直困扰着我们。在 1.1 中,幽灵被简单地绘制为半透明,没有额外的耀斑。它可以发挥作用,但可能会变得有些混乱且难以区分。由于远程交互在太空时代中发挥着重要作用,因此这是一个发挥 GPU 硬件功耗的绝佳机会。我承担起为幽灵注入一些活力和清晰度的责任。
着色或不着色
在处理房间时,最大的问题是颜色变化/色调。许多实体仅通过颜色来区分,例如插入器和后勤箱。如果幽灵是有颜色的,那么当它们是幽灵时就很难区分它们。然而,在我们的测试过程中,越来越明显的是,将幽灵作为一个整体与真实的实体区分开来是迄今为止更重要的特征。你往往更关心它是不是幽灵,而不是它是什么类型的幽灵。我们确实有一些技巧来明确颜色。
完整视频的链接在下面:https://cdn.factorio.com/assets/blog-sync/fff-380-ghost-side-by-side.mp4
解剖幽灵
我们渴望发挥着色器的全部威力,我们尝试了多种类型的扭曲、蓝图网格、危险条纹、怪异的静态表达方式、南瓜灯,但最终决定使用不引人注目的叠加。而不是简单将色调相乘,也就是图像根据亮度进行分割。我们选择的方式让每个部分都应用了自己的一组颜色混合模式,可以提高阴影上的蓝色系数,而无需完全洗掉中间色调和高光。
拼图的第二块是闪烁的扭曲。在正常情况下,2D 游戏图片会被修剪为矩形边界。 为了给自己更多的工作空间并避免剪切,我必须找到一种方法来追溯拉伸每个幻影矩形,同时将图片保持在正确的位置。 理想情况下,无需重写流程中每个实体的绘制函数。 而且,之前的幽灵图其实并不需要传递它在地图上的具体位置。 就我而言,效果必须绝对贴近世界,而不是浮动的。 (要不然,真的会头晕)
黄色表示添加的矩形边距,它允许纹理在不剪切的情况下变形。
为了获得实际的数字来驱动图片序列,我决定使用单形噪音图片模型。异星工厂的地图坐标可能会变得巨大,以至于我无法将它们塞进我能找到的任何备用视频内存中。最简单的解决方案是每隔几个方块平铺效果。为了适应这一点,我必须修改单纯形噪声的内部工作原理并考虑将图块接缝。
在更新之前,许多实体很难辨认。例如,远程建立这个炼油厂会让你的眼睛感到疲劳。
但代价是什么?
虽然 GPU 可以极快地执行大量操作,但电脑发送指令的连接却非常狭窄。这种全息图效果非常漂亮,但如果它让游戏变得不稳定,那就不好了。因此,保持每条指令的大小较小至关重要。幸运的是,标准异星工厂绘制调用中有几个未使用的数字,用于非常具体的事物,例如树叶在风中移动。这使我能够将所有必要的信息打包在一起,而不会增加绘制调用的大小!
还有一件事
由于我们现在给幽灵着色,我们可以用它来向玩家提供一些额外的信息。比如,当幽灵被分配给机器人来建造时,它们会改变色调,因此您一眼就能看出是否有机器人在工作和/或网络中是否有所需的材料。
完整视频的链接在下面:https://cdn.factorio.com/assets/blog-sync/fff-380-different-ghost-tint.mp4
#异星工厂# #wube software# #开发日志# #steam游戏# #pc游戏# #单机游戏# #多人游戏# #策略游戏推荐# #自动化# #基地建设# #沙盒# #异星工厂 资讯#