<p>OpenApoc 不会为每个任务生成全系列的 OG 地图</p>

创建于 2019-06-28  ·  3评论  ·  资料来源: OpenApoc/OpenApoc

正如在 #396 中特别提到的关于贫民窟地图的问题,OpenApoc 没有为每个建筑物和区域类型生成完整范围的地图的问题是全面的

OpenApoc 应该能够创建相当多的选项,但它似乎没有

@Istrebitel的 youtube 视频还表明,至少在他的 OpenApoc 构建中,地图生成器正在创建更多种类的战区......这似乎从未进入过主干或自测试以来已被禁用

需要进一步调查

理想情况下,我们应该提供 OG 所做的所有地图组合,但也允许更多的可能性和各种地图尺寸

地图似乎是根据 OG 中的小队规模进行缩放的,但带有“随机”元素,这意味着小队人数很少仍然会出现在非常大的地图上......

!BUG! low priority Enhancement Feature Request Help Wanted

最有用的评论

来自 istrebitel 的进一步更新

是的,我想我几乎做到了 - 更大的地图可以容纳更多的敌人。
生成代理的工作方式是将地图分成 LOS
块,用于寻路、LOS 计算和
同时产卵。 地图块中的每个图块都属于
LOS块之一,都是箱形的。 然后是全球
设置是否可以在某个边缘退出或进入地图,例如
每张地图。 基于此,LOS块要么符合条件要么不产生
一定效忠的单位。 块中设置了一组值
管理这个。 这些值应该在
论坛或附加到项目的 txt 文件中。 如果我记得
正确,玩家单位、外星单位、
敌对单位,平民单位,也许平民 x-com 人员有
分开一个,也许不是,我不记得了,我确实记得
有一个特殊的方块用于生成女王。

因此,根据小队大小选择地图大小的方法是
智能地研究块,看看哪个块提供了多少
产生机会并以此为基础进行判断,或者可能是香草
刚刚有一个类似于“如果超过 X 则使用 Y 大小”的硬编码黑客

还有一件事要注意,我不认为我解决了这个问题,方式
制作了一些方块,敌对方的重生点可以在 LOS
相互之间,例如 MARSEC 仓库,您经常可以看到一个
许多来自入口点的 marsec 安全重生点。 游戏
以某种方式确保您永远不会出现这种情况
敌人的损失。 你可以背靠背生成,也就是说,一旦你的单位
移动一点他们会看到对方,但你不能和敌人一起产卵
已经在洛杉矶。 从逻辑上讲,游戏应该以某种方式
根据此块是否存在,排除重生点或 LOS 块
由已经产生的单位观察到。 那么从逻辑上讲,可能会发生
生成理论开阔场图,纸面上有足够的
spawn 点会生成所有参与单位,但随后不会
有足够的方块来生成每个单位,因为任何生成的单位都可以看到
整个街区。 我认为在香草中没有这样的开放领域
块,所以这永远不会发生,但最有可能的是修改
我们必须为此做好准备。

所有3条评论

这是 Isrebitel 对地图生成的回应

根据我的记忆,原始游戏文件中有一个块列表,例如 9 或 18 个不同的用于贫民窟的块,每个块都有最小和最大出现次数,并且地图大小本身被定义为具有最小和最大可能大小. 然后生成器随机选择块并将其匹配在一起,从而产生随机映射。

要强制 OpenApoc 生成巨大或微小尺寸的地图,您可以编辑这些“XYZ 块的数量”数字,无论它从哪里读取它们,或者只是在代码中快速更改它们(读取静态而不是从文件中读取,即始终生成一个 4x4x1 的贫民窟地图,而不是生成文件中为贫民窟设置的任何内容)。
更详细的解释是:

  • 每个地图都有自己的块大小
  • 每张地图都是由块构成的。 块是模板 - 例如,不同类型的贫民区,或不同类型的 x-com 基础块。 这些随机放在一起形成一张地图
  • 块在块中具有可变大小。 例如,我认为有一个tileset,豪华公寓,它有一个1x1x2的街区(电梯),一个1x2x1的街区(走廊)和许多1x1x1的街区(公寓​​本身)。 UFO 是简单的 2x2x2 地图,其中只有一个 2x2x2 块。 等等。
  • 每个块都有最小和最大出现。 对于豪华应用程序示例,电梯块的最小出现次数为 1,否则可能会生成没有此块的地图,并且楼层将是
    由于没有电梯,只有公寓和一层走廊,因此在没有地形破坏的情况下无法进入
  • 每个地图在所有轴上都有一个最小和最大大小,以块为单位(或者它可能只是随机添加或减去 1 到典型的块大小?我不记得了)
  • 地图生成的算法是未知的,没有逆向工程,所以我从头开始构建它,它似乎工作接近香草
  • AFAIK,我的算法首先会列出强制块列表并将它们全部随机放置
  • 然后它制作一个剩余块的列表(剩余最大出现次数> 0)并随机放置这些块中的一个,直到地图完成
  • 如果它不能放置,它会四处移动以腾出空间,就像俄罗斯方块一样(但通常这种情况永远不会发生)
  • 如果无法制作地图,则使用其他尺寸重试
  • 然后放弃并吐出错误(通常,香草地图模板永远不会达到这一点)
  • 当它放置所有块时,它会生成地图本身
  • 创建地图对象并使用基于块的对象(墙壁、装饰、物品生成点等)填充地图

来自 istrebitel 的进一步更新

是的,我想我几乎做到了 - 更大的地图可以容纳更多的敌人。
生成代理的工作方式是将地图分成 LOS
块,用于寻路、LOS 计算和
同时产卵。 地图块中的每个图块都属于
LOS块之一,都是箱形的。 然后是全球
设置是否可以在某个边缘退出或进入地图,例如
每张地图。 基于此,LOS块要么符合条件要么不产生
一定效忠的单位。 块中设置了一组值
管理这个。 这些值应该在
论坛或附加到项目的 txt 文件中。 如果我记得
正确,玩家单位、外星单位、
敌对单位,平民单位,也许平民 x-com 人员有
分开一个,也许不是,我不记得了,我确实记得
有一个特殊的方块用于生成女王。

因此,根据小队大小选择地图大小的方法是
智能地研究块,看看哪个块提供了多少
产生机会并以此为基础进行判断,或者可能是香草
刚刚有一个类似于“如果超过 X 则使用 Y 大小”的硬编码黑客

还有一件事要注意,我不认为我解决了这个问题,方式
制作了一些方块,敌对方的重生点可以在 LOS
相互之间,例如 MARSEC 仓库,您经常可以看到一个
许多来自入口点的 marsec 安全重生点。 游戏
以某种方式确保您永远不会出现这种情况
敌人的损失。 你可以背靠背生成,也就是说,一旦你的单位
移动一点他们会看到对方,但你不能和敌人一起产卵
已经在洛杉矶。 从逻辑上讲,游戏应该以某种方式
根据此块是否存在,排除重生点或 LOS 块
由已经产生的单位观察到。 那么从逻辑上讲,可能会发生
生成理论开阔场图,纸面上有足够的
spawn 点会生成所有参与单位,但随后不会
有足够的方块来生成每个单位,因为任何生成的单位都可以看到
整个街区。 我认为在香草中没有这样的开放领域
块,所以这永远不会发生,但最有可能的是修改
我们必须为此做好准备。

有关与此问题相关的其他内容,请参阅 #396

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

FilmBoy84 picture FilmBoy84  ·  3评论

FilmBoy84 picture FilmBoy84  ·  3评论

FilmBoy84 picture FilmBoy84  ·  3评论

FilmBoy84 picture FilmBoy84  ·  3评论

Quickmind01 picture Quickmind01  ·  3评论