대각선 이동이 더 많은지도를 탐색하지 못하게 할 수 있습니까?


57

8 개의 방향으로 이동하는 것이 정확히 같은 양의 회전 (체스 보드 스타일 규칙)을 취하는 타일 그리드에서 대각선 이동이 직교 이동보다 더 많은 새 타일을 표시하지 못하게 할 수 있습니까?

예를 들면 다음과 같습니다. 아래 이미지에서 빨간색 상자입니다. 녹색 셀은 현재 볼 수 있습니다 (정사각형 시야). 한 타일의 거리를 여덟 방향으로 이동할 수 있습니다.

북동쪽으로 이동 하면 13 개의 새 타일 (파란색으로 표시)을 탐색하게됩니다. 대신 남쪽으로 이동 하면 7 개의 새 타일 만 탐색합니다 (보라색으로 표시).

위치에 따라 가시성이있는 그리드

각 방향으로의 여행을 탐색에 똑같이 유리하게 만들려면 어떻게해야합니까?


27
이것은 이와 같은 게임 디자인의 근본적인 결함입니다. 대각선 이동을 허용하거나이 문제가없는 16 진 격자와 같은 것으로 전환 할 필요가 없습니다.
Tetrad

1
@Tetrad 당신은 그것이 결함이라는 것에 대해 틀리지는 않지만, 아마도 이런 게임 에서 그것이 얼마나 널리 퍼져 있는지 알지 못할 것입니다 .
Mr. Smith

8
직교 및 대각선 이동이 똑같이 빠른 게임에서는 항상 직각 이동보다 대각선 이동이 더 좋은 것이 있으며 그 반대도 마찬가지입니다. 그것은 하나의 구멍을 꽂으면 다른 구멍이 열리면 해결할 수 없습니다.
Patashu

3
전체 대답은 아니지만 대각선 길이에 비례하여 대각선 이동이 직교 이동보다 오래 걸리게 할 수 있습니까? 둘째, 움직임이 다이아몬드 패턴을 사용하고 시야 거리가 사각형을 사용하는 혼합 솔루션을 가질 수 있습니까?
Vality

2
정답이 아닌 또 다른 대답 : 직교 동작은 현재와 같이 동작하지만 대각선 동작으로 인해 광원이 "퍼지"됩니다. 범위에 들어간 13 개의 사각형 만 모두 표시하지는 않습니다. (또는 그와 같은) 무작위로 결정됩니다.
Snowbody

답변:


67

Dungeons and Dragons 3.5 (펜 및 종이 RPG)에는 이동 및 그리드 기반 반경 계산에 모두 사용되는 솔루션이 있습니다. 대각선 이동 비용은 1.5이며 직교 비용은 얼마입니까? 단위 사각형의 대각선은 약 1.414이므로 1.5는 매우 가깝습니다.

D & D 3.5는 정수 이동 만 지원하므로 실제로 계산되는 방법은 직교 이동 비용이 "1 제곱"입니다. 첫 번째 대각선 이동도 "1 평방"이지만 두 번째 대각선은 "2 평방"입니다. 대각선 이동마다 하나와 두 개의 사각형을 번갈아 가며 사용합니다. 게임 내에서이 이동 규칙을 구현하면 대각선 이동과 관련된 몇 가지 문제를 처리 할 수 ​​있습니다.

이 다이어그램에서 알 수 있듯이이 이동 규칙은 원의 합리적인 근사치를 생성하며 실제 거리와 비교할 때 (시작의 15 단위 이내 인 경우) 1을 넘지 않습니다.

여기에 이미지 설명을 입력하십시오

비전 / 탐사 반경도 이런 식으로 계산되면 대각선 이동 및 대각선 발견은 직교와 거의 비슷하거나 멀어집니다.


내가 제안하고 싶었던 것. 캐릭터가 한 턴에 한 칸만 움직일 수 있다면 (이 질문의 다이어그램에서 보이는 것처럼 보이지만)이 전략은 움직임을 제한한다는 점에서 주목할 가치가 있습니다. 플레이어가 혼란 스럽거나 실망 스러울 수 있지만 턴 사이에 홀수 / 짝수 대각선에 있으면 "기억"할 수 있습니다. 그럼에도 불구하고 이것은 가시성 문제에 효과적입니다.
Alexis Beingessner

5
@AlexisBeingessner, 사실입니다. 질문자는 체스와 같은 움직임을 원한다고 말했지만 이것이 컴퓨터 게임 개발 사이트이기 때문에 좋은 게임 플레이 솔루션을 지적 할 것이라고 생각합니다. 이것이 수수께끼 나 순수한 수학 질문에 더 가깝다면 다른 사이트에서 기대할 것입니다. 이 게임이 불량 게임 인 경우 일부는 이미 다양한 이동 속도를 지원합니다.
Dane

대부분의 Roguelike 게임은 턴 기반으로 보이지만 실제로 시간 구성 요소가 있으므로 대각선으로 이동하면 다른 이동을 수행하기 전에 다른 객체가 반응하는 데 더 많은 시간이 있습니다.
Kos

67

시야각의 모양을 변경해야합니다.

따라서 어떤 방향 으로든 이동할 때 동일한 수의 새로운 사각형이 표시됩니다.

한 가지 가능성이 있습니다.

그리드 예


5
흥미있는; 나는 다이아몬드 시야를 고려한 적이 없다. 그러나이 관점에도 문제가 있습니다. 대각선으로 여행하는 동안 적을 발견하면 직교하는 경우보다 훨씬 더 가깝기 때문에 지금 대각선으로 여행하는 것이 끔찍한 생각입니다.
Mr. Smith

43
@ mr.smith, 그렇습니다. 그것은 새로운 문제이지만, 나는 당신의 오래된 문제를 해결했습니다 ...
ChargingPun

실제로 당신은; 질문에 충분히 구체적이지 않은 것 같습니다.
Mr. Smith

8
여기에 원형이 도움이 될까요?
amitp

3
@amitp이 있다 원형은 - 당신의 거리 함수가 맨해튼 거리를 제공했다.
Daniel Wagner

27

대각선과 직교 운동이 거의 같은 영역을 나타내려면 가지 가 필요합니다 (각각 다른 답이나 의견에서 이미 제안 된 것).

  1. 대략 원형 시야 범위 :

    의사-원형 시야 범위 이미지

    그 자체만으로는 두 유형의 이동에 대해 정확히 동일한 영역을 나타내지는 않습니다. 예를 들어 위의 이미지에서 직교 이동은 9 정사각형을 나타내고 대각선 이동은 13을 나타냅니다. 그래도 예제에서 정사각형보기 영역의 13/7 비율보다 낫습니다.

    실제로, 뷰 반경이 증가함에 따라, 대각선 / 직교 스텝 당 노출 된 영역의 비율은 원형 영역에 대해 √2 ≈ 1.414 인 경향이있는 반면, 정사각 영역에 대한 동일한 비율은 2에 해당하는 경향이 있습니다.

  2. 느린 대각선 움직임 :

    실제 생활에서 사각형을 가로 질러 대각선으로 걷는 것은 측면 중 하나를 따라 걷는 것보다 오래 걸립니다. 실제로는 약 √2 ≈ 1.414 배가 걸립니다. 게임의 움직임이 현실감을 느끼게하려면 게임에서도 그렇게해야합니다.

    실제로 3/2 = 1.5는 √2의 근사치입니다. 따라서 각 직교 스텝에 2 개의 시간 단위를 사용하고 각 대각선 스텝에 3을 사용하도록 할 수 있습니다. 위의보기 영역 예에서, 이것은 직교 운동에 대해 시간 단위당 9/2 = 4.5 공개 제곱을 생성하고 대각선 이동에 대해 시간 단위당 13/3 = 4.33 공개 제곱을 산출합니다. 아주 가까이?

    또는 직교 이동을 위해 "1 단계 = 1 시간 단위"를 유지하려는 경우 Dane이 제안한 D & D 시스템 과 같은 것을 사용 하고 매 초 대각선 단계마다 추가 회전을 소비 할 수 있습니다. (그렇다면 모든 단위에 얼마나 많은 대각선 단계를 취했는지 명시해야합니다. 그렇지 않으면 E, NE, E, NE, ... 와 같은 악용으로 끝날 수 있습니다 . . 의도 한 것보다 더 빠르게 탐색 할 선수를 허용 운동 순서.)


이러한 악용을 방지하는 쉬운 방법은 대각선 이동 비용이 두 틱이 걸린 같은 방향으로 이동하는 경우를 제외하고는 두 틱이 필요하다는 것입니다.
supercat

1
@supercat : 맞습니다. 그러나 E, NE, E, NE, ... 시퀀스 는 직선 직교 / 대각선 이동보다 탐색 효율이 현저히 떨어 집니다.
Ilmari Karonen

그것은 그 순서를 덜 효율적으로 남겨 둘 것입니다. 모든 탐사 방법이 똑같이 효율적이어야하는 것은 아닙니다. 실제로, 방향 변경에 대한 시간 벌칙을 갖는 것은 나쁘지 않을 수 있으며, 전후의 이동이 이중 대전 대각선 인 경우에는 제외됩니다.
supercat

2
나는 얼마 전에 비슷한 것을했고 직교 운동은 평방 당 2 개의 "틱"을, 대각선 운동은 3을 소비함으로써 그것을 해결했다.
메이슨 휠러

11

그리드를 사용하고 있으며 사용자가 진행중인 방향을 알고 있으므로 방향에 따라 이전 답변을 수정하고 다른 시야를 사용하는 데 아무런 제약이 없습니다.

예를 들어, 기본 방향으로 이동할 때 모서리를 포함하도록 필드를 확장하고 대각선 케이스에서 각 끝의 두 정사각형을 축소하여 각각 9 정사각형을 찾을 수 있습니다.

조명 작동 방식에 따른 다른 대안은 앤티 앨리어싱과 함께 더 나은 원 근사법을 사용하여 일부 사각형을 부분적으로 표시하는 것입니다.


그것은 흥미로운 절충안입니다. 대각선으로 이동하면 일반적으로 보이는 모든 셀이 표시되지는 않습니다. 당신은 차례를 기다리거나 (그 세포들이 탐험되도록) 계속 움직일 수 있습니다.
Mr. Smith

8
"이전 답변"은 어느 것입니까?
Mooing Duck

7

고정 된 시야 범위를 갖기보다는 플레이어의 가시성 영역이 플레이어가 향한 방향과 마지막 몇 턴 동안 플레이어가 향한 방향에 따라 달라지는 것은 어떻습니까 (북쪽으로 이동 한 플레이어는 즉시 한 걸음 남쪽으로 이동하지만 해당 방향으로 최대 시청 거리를 얻기 위해 몇 번 돌릴 수 있습니다). 좁은 복도에서 북쪽으로 큰 방으로 향하고 북쪽으로 계속 여행하는 플레이어는 가시성이 동쪽과 서쪽으로 제한되어있을 것입니다. 플레이어가 움직임을 멈 추면 플레이어의 현재 시력 반경 내에있는 보이지 않는 영역을 시스템이 자동으로 "탐사"하도록 할 수 있지만, 플레이어가 활발히 움직이고있는 동안 시야가 더 제한되어야합니다.


3

보다 복잡한 시야에 대한 대안으로 (위에서 논의한 것처럼 그리드 기반 레이아웃의 제약으로 인해 자체 문제가 추가됨) 신중하지 않은 게임에서 움직임의 영향을 모방하려고 할 수 있습니다 그리드. 자유로운 움직임이 가능한 경우, 한 단위의 대각선 이동은 정사각형 격자로 볼 수있는 ~ 1.41 단위의 이동이 아니라 정확하게됩니다.

파괴적인 그리드를 잃지 않고 단일 유닛 이동을 강요 할 수는 없지만 (게임 디자인을 상당히 크게 변경시킬 수 있음) 아마도 추가 이동을 추적하고 나중에 이동을 떨어 뜨릴 수 있습니다. 1.00 해당 유닛이 이동을 건너 뛰도록합니다. 또는 다른 방법으로 : 대각선을 보통으로 간주하고 각 수평 또는 수직 이동에 대해 0.41을 더하고 1보다 큰 경우 이동 이동 크레딧을 추가하십시오 (또는 대각선 이동의 경우 1.41).

매끄럽고 공정하게 보이게하는 방식으로 플레이어에게이를 제시하는 방법에주의해야합니다. 멀티 휴먼 플레이어 시나리오에서 이러한 변경은 플레이어가 전략적으로 활용하는 것이 될 수 있습니다. 문제가 될 수도 있고 이것을 게임 메카닉과 혼합 할 수있는 자연스러운 방법이있을 수도 있습니다 (아마도 플레이어가 작은 것을 저장할 수 있음) 나중에 신속하게 반응하고 해당 풀에 추가 0.41 초의 이동 피드를 가져 오는 데 사용할 수있는 "사용되지 않은 이동 크레딧"금액.

이것은 플레이어 컨트롤 개체가 매 턴마다 한 유닛보다 이동 한 경우에 가장 효과적입니다. 예를 들어, 3 개의 이동 지점이 3 개의 수평 이동으로 사용되거나 나중에 풀에 0.16 개의 왼쪽이있는 2 개의 대각선 이동으로 사용될 수 있습니다. 1.00에 도달하면 플레이어는 "자유로운"호 / 매우 이동하고 1.41에서 자유 대각선을 얻습니다. 플레이어가이 에너지를 오래 보관하거나 쌓아 올리는 것을 막기 위해 그 시점에서 사용하거나 잃어 버릴 수 있도록 여분의 1.5를 모자를 씌울 수 있습니다.

분명히 이것은 완전히 바람직하지 않은 게임 규칙에 대한 합병증이며, 컴퓨터 화되지 않은 게임에는 비실용적이지만 게임의 기존 규칙 내에서 작동하게 할 수 있다면 필요없이 이동 방향 사이의 탐색 차이를 제한합니다 그리드 형식을 버립니다.


2

플레이어가 위, 아래, 왼쪽 또는 오른쪽으로 한 칸만 대각선으로 움직일 경우 두 칸을 움직일 수 있습니다. 그것은 심지어 완전히 밖으로되지는 않았지만 훨씬 더 가깝습니다.


이것은 좋은 생각이지만 나는 단순히 대각선 운동을 금지하는 것과 같다고 생각합니다 (대각선은 단지 두 개의 직교 이동이므로)
Vality
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.