【Mindustry】 v7 开发进度报告

您所在的位置:网站首页 pic16f627a怎样编程 【Mindustry】 v7 开发进度报告

【Mindustry】 v7 开发进度报告

2023-08-19 20:23| 来源: 网络整理| 查看: 265

Anuke 公布了关于 v7 开发进度的一些内容。

原文: https://store.steampowered.com/news/app/1127400/view/4969164941183463833

以下为译文,若有翻译错误请指出。

简介

正如大家注意到的,自上一次预览版更新已经有几个月了,且上一个稳定版发布也快一年了。那么首先,我将回答一些关于下个版本的常见问题,以及 Mindustry 的总体开发状况。

为什么这次更新隔了这么久?

到目前为止,所有(先前的经典版本)Mindustry 更新都是对现有内容的增量添加或修改。我所做的一切都是为了配合赛普罗战役中现有的方块而设计的。

但在 v7 中就不是这样了——我正在添加一个全新的星球 Erekir。它有自己独特的方块,环境地块,单位,炮塔,运输机制等等。除了某些物品,一切都不同——没有和赛普罗重复的内容,甚至墙壁和传送带都是不同的。

这有点像让整个游戏重新开始。等到这项内容完成后,它将是 Mindustry 史上最大的一次内容更新。为了让你知道这次更新的分量,我列举一些数据:与最新的预览版相比,这次更新添加了 70 多个建筑方块,总共添加了 130 多个新方块——而且我还远远没做完。

另外,我正在(再次)对许多机制进行重大修改——例如战役、单位控制和逻辑。请继续阅读以了解详情。

综合所有这些因素,这次更新将比正常情况下需要更长的时间才能完成,请耐心等待。

v7什么时候发布?

我真的不知道。虽然我已经做完了相当一部分内容,但估计也只占一半。很多机制仍然处于“原型” / “头脑风暴”阶段。

所以我只能说,别指望能很快看到更新。

什么时候发布下一个 pre-alpha/alpha/beta 版本?

向上面说的那样,Erekir 的内容/机制的实现还在早期阶段——这些内容还不能用于测试,且一时半会儿可能也做不好。我想在发布预览版前把整个战役的内容做完。

简而言之:再说一次,我不知道。

Erekir 内容预览

下面透露一些我正在做的内容。这绝不是完整的内容列表。记住,这些单位能(或已经)在开发过程中被大幅度修改——也就是说最终版本可能完全不同,甚至将其删除!

注意,这些 GIF 大多来自 Mindustry 的 Discord #dev-preview 频道,可以考虑加入频道以获取更频繁的更新信息。

单位T1 核心及其对应的核心单位。该单位可以修复方块,但没有任何攻击能力。自带盾的行走式单位,只阻挡前方的飞弹。高度半成品,在发布前武器和腿可能会大改。类似昆虫的小单位,没有特殊能力。其展示了一个新的动画系统。直升机。其发射的导弹在技术上属于单位,并且可以被瞄准。导弹会跟随玩家光标飞行。是的,我终于要介绍坦克了。其进一步展示了新动画系统的功能。另一种较小的坦克方块

如之前提到的那样,Erekir 将有完全不同与赛普罗的方块组。生产/制造树仍在开发中,所以我不会在这里展示它,这里是一些运输系统现在的样子。

物品导管将物品输送到物品导管路由器中。这种路由器只接受一个方向的输入,且设置了物品后可以作为分类器使用。物品导管溢流门。只接受一端的输入。物品导管桥。不能二次连接或叠桥。只向一端输出。物品导管装卸器,只能从一端输入对端输出。光束“钻头”,其连着一种直角电力节点。注意,尽管Erekir上仍有一些地面矿,但光束是收集资源的主要方式。单位控制

可能许多人都知道,Mindustry 的单位控制很垃圾。就目前大家能玩到的最新版而言,有4种单位控制方式,但它们都有重大缺陷:

手动控制:这是控制单位最直观常见的方式。虽然有效,但只能控制1个单位。此外,一旦单位脱离控制,它就会恢复为由正常的AI控制,这使得这种方法无法在任何地方用于移动单位群。

编队:一个不完备的、笨重的、残缺的系统。单位在编队时不仅经常卡在地形上,而且经常会撞到主控单位,编队也会在主控单位死亡时失效。其受到众多单位类型的限制,且即使在低 ping 服务器上也让人觉得很迟钝。

指挥中心:笨重,复杂,缺乏精确性。虽然它们在执行基本任务(例如集合单位)方面在某种程度上很有效,但它们非常不精确(全局控制)、管理繁琐(需要修建)并且非常有限(无法命令单位攻击特定目标)。

逻辑:一个被诅咒的创造,一个错误。虽然就技术而言它是最强大的单位控制方法,但它比游戏中的其他任何东西都要复杂好几个数量级。使用逻辑控制单位要么需要复制粘贴你不理解的蓝图,要么需要花费数小时学习文档资料稀少的定制编程语言。这些都不可接受。即使不谈其复杂性,逻辑控制单位也非常笨重、不直观,并且受到限制(例如缺乏正确的寻路)。玩家不需要知道得怎样编程才能玩好这个游戏。

有些事必须要做。于是我做了如下更改:

编队功能已经被完全移除。

指挥中心已经被移除。

Erekir 上不能用逻辑块。它们或许会或不会留在赛普罗。(ohno)

一种新的类似 RTS 的单位控制系统已经被引入

我一直在暗示要添加它们,但在尝试了机制后,我确信 RTS 控制是最好的前进方式。

这是它目前在游戏中的表现:

现在,我知道这会引发许多问题,例如:

这将如何影响 PvP?

单位会像其他一些 RTS 游戏那样有子命令(“自由开火”、“巡逻”)吗?

建造类/维修类/挖矿类单位也可以控制吗?如果可以,怎么控制?

没有编队怎么实现辅助建造?

这是否意味着战争迷雾也将被引入?

玩家如何在建筑和单位之间切换,以及控制?

我现在不会回答这些问题,且对于大多数这类问题我也没有好的答案——但如果我回答了,我的回答意味着整个开发路线有所改变。我要说的是,目前我正努力让事情尽可能简单。在我的测试中,即使是目前最简单的 RTS 控制系统也比游戏之前的任何东西都要好。

逻辑“世界处理器” / “地图脚本”

这是我一直在开发的一个相对较小的功能,用于战役地图。本质上,它们是用来撰写地图脚本的处理器。

它们只能在地图编辑器中放置或交互,并且只是为地图制作者设计的。

世界处理器目前可以做以下事情;根据需要我可能会添加更多功能:

生成单位。

设置方块。

在任何位置getblock方块/建筑物。

制造爆炸。

显示玩家通知或任务目标。

平移和缩放取景器,用于过场剧情。

传感任何块而无需连接。

有限地设置游戏规则,例如照明、建造速度和波次。

世界处理器意味着被放置在地图的一个角落;虽然它们是属于队伍的方块,但它们不能在编辑器之外被访问、射击、破坏或选中。请注意,它们只是具有特殊指令的逻辑处理器——这不是一个新的编程语言或脚本系统。

下面是使用世界处理器实现的“过场剧情”的简单演示。注意,此处为了简单起见,触发器是一个开关,但在大多数情况下,触发器是玩家无法直接控制的其他东西。

一些世界处理器能做的事例:

给玩家显示一个特殊目标,例如“摧毁建筑 X”,传感方块何时被摧毁,并根据此该事件执行动作。

根据时间或任何其他变量在任何位置生成自定义波次。

仅当玩家达成特定目标时才启用敌人基地功能,例如在 X 波中幸存下来。

自定义游戏模式中的昼夜循环。

“防御”目标,如果未能保护目标,则摧毁玩家核心。

内部 / 模组 API 修改

除了上述所有内容之外,我还一直致力于改进模组 API、修复不一致之处以及添加更多功能供模组制作者使用。不幸的是,这样也会破坏绝大多数旧模组——在与社区讨论后,我得出的结论是:这是唯一的出路。

以下例子是我迄今为止的一些更改——一切仍可能有变化。如果你不是模组制作者,可随意跳过本节。

武器/单位/炮塔动画系统

炮塔、单位和武器现在支持局部动画。 它们可以单独旋转或移动,具体取决于它们的进程值,通常是武器预热或重装。

坦克射击动画特写:

Code (minus the blades, which are defined in a loop):(水平有限,这句实在是不会翻。下方涉及太多专用词我翻不准,建议大家看原文)

武器、炮塔和单位

武器和炮塔长期以来一直受到不一致的功能集和 API 的困扰。我试图为子弹模式和射击行为实施统一的系统以改善这种情况。

这意味着:

炮塔和单位现在可以拥有任意数量的炮管。

单位现在支持类似双管炮的双重射击模式。

蜂巢和气旋炮塔现在有 3 个真正的炮管,而不是到处乱喷子弹。

Java/JS 模组可以轻松地为其炮塔定义复杂的子弹模式,而无需创建炮塔或武器。

例如,以下是新的蜂巢子弹模式:

“shoot”是每个武器和炮塔的一个字段,用于定义其子弹模式。下图定义了一个 3 炮管射击模式。

结果:

也可以将射击模式链接在一起,做成这样的东西(只是示范!):

可以使用自定义移动回调创建子弹。例如,这种模式会创建两个以螺旋线移动的子弹:

消耗机制和发电机

方块消耗系统已被重写,以允许这些功能:

多液体消耗

多个相同类型的消耗器,例如两种消耗物品

不依赖于特定方块类型的 过滤器/效率 消耗

大多数旧的发电机类 - SingleTypeGenerator、BurnerGenerator、ItemLiquidGenerator 和 DecayGenerator - 已被单个类 ConsumeGenerator 取代。例如,火力发电机的新定义如下所示:

绘制

DrawBlock 系统已被扩展以支持更多块类型,包括发电机、泵和炮塔。

这意味着不再需要为自定义绘图行为扩展这些类。所有绘图特定的 GenericCrafter 子类(冶炼厂、培养机、...)已被删除。此外,所有 DrawBlock 子类都已模块化。例如,这是在 GenericCrafter(或generator)上定义冶炼厂绘制实现的方式:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3