我可以防止对角线运动探索更多地图吗?


57

在沿着8个方向中的任意一个方向进行完全相同的旋转(棋盘样式规则)的磁贴网格中,是否可以防止对角移动显示比正交移动更多的新磁贴?

例如:您是下图中的红色框。目前,您可以看到绿色的单元格(方形视野)。您可以在八个方向中的任何一个方向上移动一个图块的距离。

如果您向东北移动,您将探索13个新的图块(以蓝色显示)。如果您改为向南移动,则将仅探索7个新图块(以紫色显示)。

可视性取决于位置的网格

如何使每个方向的旅行对探索都同样有利?


27
这是此类游戏设计的根本缺陷。您需要要么不允许对角线移动,要么切换到不存在此问题的类似六角网格的东西。
Tetrad 2014年

1
@Tetrad您认为它是一个缺陷并没有错,但是您可能没有意识到它在这样的游戏中如此普遍。
Smith先生

8
在正交和对角线运动都同样快的任何游戏中,总会有一些东西对角线运动比正交运动更好,反之亦然。这只是不可解决的-如果您将一个孔塞进另一个孔中,则会打开。
Patashu 2014年

3
不是一个完整的答案,但是在您的游戏中是否可能使对角线移动的时间比与对角线​​长度成比例的正交移动时间更长?其次,您可以有一个混合的解决方案,其中运动使用菱形图案,视图距离使用方形图案?

2
另一个不太正确的答案:正交移动的行为与现在相同,但是对角移动会使光源变得“模糊”-它不能显示刚刚进入范围的所有13个正方形,而只有七个(或左右),随机确定。
Snowbody 2014年

Answers:


67

《龙与地下城3.5》(纸和纸RPG)提供了一种用于移动和基于网格的半径计算的解决方案:对角线移动的成本是正交成本的1.5。由于单位正方形的对角线约为1.414,因此1.5非常接近。

由于D&D 3.5仅支持整数移动,因此实际计算的方式是正交移动的成本为“一个平方”。您的第一个对角线移动也仅花费“一个正方形”,但是第二个对角线移动则花费“两个正方形”。您为每个对角线移动交替一个和两个正方形。在游戏中实施此运动规则将解决对角运动的一些问题。

如该图所示,该运动规则创建了一个合理的圆近似值,并且与真实距离相比(距离起点15个单位以内)的偏移量也不会超过1。

在此处输入图片说明

如果您的视力/探索半径也以这种方式计算,则对角线移动和对角线发现将与正交发现差不多。


正是我想建议的。尽管值得注意的是,如果角色每转一圈只能移动一个空间,则该策略在限制移动方面会失败(从问题的图表中可以看出这种情况?)。如果它们在转弯之间位于奇/偶对角线上,则可以“记住”,尽管这可能会使玩家感到困惑/沮丧。无论如何,这对于可见性问题非常有效。
亚历克西斯·贝辛斯纳2014年

5
@AlexisBeingessner,是的。发问者的确表示他想要象棋一样的动作,但我认为由于这是一个计算机游戏开发网站,所以我会指出一个好的游戏解决方案。如果这更多是一个谜或纯数学问题,我希望在另一个站点上也可以。如果这是针对流氓的游戏,则其中一些已经支持变化的移动速度。
Dane 2014年

大多数Roguelike游戏看似是回合制,但实际上具有时间成分,因此,如果您沿对角线移动,则其他对象将有更多的时间做出反应,然后再执行其他移动。
科斯2014年

67

您需要更改视场的形状。

这样,当您沿任何方向移动时,都可以看到相同数量的新正方形。

这是一种可能性:

网格示例


5
有趣; 我从来没有考虑过钻石的视野。但是,这种观点也存在问题。现在走对角线是一个可怕的主意,因为如果您在对角线旅行时发现一个敌人,那么与您一直在正交移动相比,它会更接近您。
Smith先生

43
@ mr.smith,是的,这是一个新问题,但是我已经解决了您的旧问题……
ChargingPun

确实你做到了;似乎我对这个问题不够具体。
Smith先生

8
圆形对您有帮助吗?
2014年

3
@amitp这一个圆形-假设您的距离函数是曼哈顿距离。
Daniel Wagner 2014年

27

要使对角线和正交运动显示出大致相同的区域,您需要件事(仅在另一答案或评论中已经建议了其中每一项):

  1. 大致圆形视场范围

    伪圆形视野范围的图像

    就其本身而言,这不会为两种类型的运动提供完全相同的显示区域。例如,在上图中,正交移动显示9个正方形,而对角线移动显示13个正方形。尽管如此,它仍然比示例中的正方形视图区域的13/7比率更好。

    实际上,随着视图半径的增加,圆形区域每对角线/正交步长的显示区域比例趋于√2≈1.414,而正方形视图区域的比例趋于2。

  2. 较慢的对角运动

    在现实生活中,对角线走过一个正方形场比沿着一侧走需要更长的时间。实际上,它花费的时间大约是√2≈1.414倍。如果您想让游戏中的动作逼真,那么您也应该在游戏中做到这一点。

    实际上,3/2 = 1.5是√2的一个很好的近似值。因此,您可以使每个正交步长采用两个时间单位,而使每个对角步长采用三个时间单位。在上面的示例视图区域中,对于正交运动,每个时间单位产生9/2 = 4.5显露平方,对于对角线运动,每个时间单位产生13/3 = 4.33显露平方。非常接近,是吗?

    另外,如果要坚持“ 1步= 1时间单位”进行正交运动,则可以使用Dane建议的D&D系统之类的方法,并使第二个对角线步多消耗一圈。(但是,如果这样做,则确实需要给每个单元一个明确的计数器,以表明它们已执行了多少对角线步骤;否则,最终可能会遭受诸如E,NE,E,NE等的攻击。 。运动序列允许玩家探索比预期更快。)


防止此类攻击的一种简单方法是说,对角线移动的成本要花费两个滴答声,除非先朝同一方向移动需要两个滴答声。
supercat 2014年

1
@supercat:是的,但是这会使E,NE,E,NE,...序列的探索效率明显不如直角正交/对角线运动,这也可能是不希望的。
Ilmari Karonen 2014年

这样会使序列的效率降低,但是那又如何呢?并非所有探索方法都应同样有效。实际上,对方向变化进行时间惩罚可能并不坏,而在前后移动为双电荷对角线的情况下可以免除罚款。
supercat 2014年

2
不久前,我做了类似的事情,我通过使正交运动的成本为每平方两个“ ticks”,对角运动的成本为三个来解决了这一问题。
梅森惠勒2014年

11

由于您使用的是网格并知道用户正在朝哪个方向前进,因此没有任何限制您适应先前的答案并根据方向使用不同的视野。

例如,当您沿基本方向旅行时,可以扩展该字段以包括角,并在对角线情况下将其在两端分别缩小两个正方形,以便每个覆盖9个正方形。

根据照明工作方式的另一种选择是使用具有抗锯齿效果的更好的圆近似值,以部分显示一些正方形。


这是一个有趣的折衷。如果您沿对角线行驶,则通常不会看到所有的单元格。您可以等待转弯(以探索那些单元格)或继续移动。
Smith先生

8
哪个答案是“先前的答案”?
Mooing Duck

7

玩家的视野范围不是固定的观看范围,而是取决于玩家所面对的方向,以及玩家最近几圈所面对的方向(向北移动的玩家可能能够立即向南走,但可能需要转几步才能在该方向上获得最大观看距离。一个从狭窄的走廊往北进入一个大房间并继续向北行驶的玩家,东西向的视野有限,也许应该这样。当玩家停止移动时,可以让系统自动“探索”玩家当前视线半径以内的看不见的区域,但是当玩家积极移动视野时,应该更加限制视野。


3

作为更复杂的视野的替代方案(如上所述,由于基于网格的布局的局限性,它又增加了自身的问题),您可以尝试在不基于谨慎的游戏中模拟运动的效果网格。在可能发生自由运动的情况下,一个单位的对角线运动就是那个单位,而不是正方形网格所见的〜1.41个单位的运动。

虽然您不能在不失去原有的网格的情况下强迫单个单位运动(这会极大地改变游戏设计),但也许您可以跟踪所采取的额外运动并在以后放下步:跟踪额外的0.41s,一旦它们合计更多,则1.00令该单位跳过动作。或反过来说:将对角线视为正常,将每个水平或垂直移动相加0.41s,并在大于1时给予额外的移动功劳(对角线移动为1.41)。

您需要注意如何以一种既平滑又公平的方式向玩家展示此内容。在多人游戏场景中,此类更改可能会成为玩家从策略上加以利用的东西-这可能是个问题,或者可能存在一种自然的方式将其与游戏机制混合使用(也许允许玩家存储少量他们可以用来在稍后的时间快速做出反应的“未使用的移动信用”数量,并将额外的0.41秒的移动信用馈入(或从中取出)该池。

如果玩家控制实体每转移动一个单位以上,则效果最佳。例如,可以将三个运动点用作三个水平运动,或者将两个对角线运动用作池中的0.16,以备后用。一旦达到1.00,玩家将获得“免费”的水平/垂直移动,并在1.41获得免费的对角线。您可以将额外费用的上限设置为1.5,以强制该费用在该时间点被使用或丢失,以阻止玩家将这种存储的能量保留很长时间或使其堆积。

显然,这是对您的游戏规则的复杂化,这可能是完全不希望的,并且对于非计算机游戏来说是不切实际的,但是如果您可以使其在您游戏的现有规则内工作,则将限制移动方向之间的探索差异,而无需放弃网格格式。


2

如果它们向上,向下,向左或向右移动,并且只能对角移动一个,则可以使播放器移动两个空间。它不会完全消除,但距离会更近。


这是个好主意,但我相信等同于简单地禁止对角线移动(因为对角线只是两个正交移动)
价2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.