inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

Search AI

a* 비용계산

462

H_dong

작성한 질문수 9

0

A*알고리즘이 G는 시작점에서 해당 좌표까지 이동하는데 드는 비용이고 H는 목적지로부터 얼마나 가까운지를 따지는 비용이라고 알고 있었는데

맵매니저를 만들 때 G를 왜 0으로 두는지 잘 이해가 안되고 H는 원래 (목적지까지 남은 X 방향의 타일 + Y 방향의 타일)로 계산했었는데 (목적지까지 남은 X 방향의 타일^2 + Y 방향의 타일^2)으로 바뀐건지 잘 이해가 안됩니다ㅠㅠ

C# unity

답변 2

0

Rookiss

휴리스틱 공식은 스스로 정하는 것이지
꼭 뭘 어떻게 해야 한다는 규칙이 있는 것이 아닙니다.
마찬가지로 G, H 합산한 것을 cost로 치는데
이 또한 스스로 어떻게 우선순위를 판단할지 정하는 부분일 뿐
공식처럼 뭘 하는 것이 아닙니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

A* 알고리즘은 최단 경로를 찾는 알고리즘으로, G는 시작점에서 현재 위치까지의 이동 비용, H는 현재 위치에서 목적지까지의 예상 이동 비용으로 사용되는 것이 일반적입니다.

G를 0으로 둔 이유는 시작점부터 현재 위치까지의 이동 비용이 초기에는 0이기 때문입니다. 즉, 시작점에서 현재 위치까지 이동한 거리를 의미하는 것이 아니라, 현재 위치까지의 총 비용을 나타냅니다.

H는 현재 위치에서 목적지까지의 예상 이동 비용을 결정하는데 사용됩니다. 일반적으로 유클리드 거리(목적지까지 남은 X 방향의 타일^2 + Y 방향의 타일^2의 제곱근)를 사용하지만, 실제로는 다른 형태의 휴리스틱 함수도 사용할 수 있습니다. 이 함수는 목적지로부터 얼마나 가까운지를 계산하는 용도로 사용되며, 좀 더 정확한 예상 비용을 계산하는 데 도움을 줍니다.

따라서 G는 현재 위치까지의 총 비용을, H는 목적지까지의 예상 비용을 나타내는 것이 일반적인 사용 방법입니다. 해당 맵 매니저에서 G가 0으로 두어진 이유와 H가 유클리드 거리의 제곱으로 계산되는 이유에 대해서는 맵 매니저에서 지정한 규칙이나 요구사항 때문일 수 있습니다. 좀 더 자세한 설명을 원하시면 맵 매니저의 개발자에게 문의해보시는 것이 좋을 것 같아요. 어떤 경우에든 도움이 되었으면 좋겠습니다. 감사합니다.

MessagePack

0

87

1

본인 플레이어 이동 관련 질문

0

53

1

Part7 Part9 질문이 있습니다.

0

77

1

.

0

117

1

.

0

108

2

게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제

0

94

1

타일 팔레트 깔았는데도 안돼요

0

124

2

2D로 그냥 만들어도 되나요?

0

86

2

지난 강의와 이어지는게 맞을까요?

0

86

2

순환참조 문제로 인해 발생하는 문제는 없을까요?

0

162

2

유니티 클라와 C++서버연동

0

278

2

멀티플레이 테스트 환경 관련 질문입니다

0

208

3

강의 후반부에 순서 동기화를 위해 잡큐를 사용 안 한 부분 질문입니다!

0

150

2

코드 관련한 몇 가지 질문입니다!

0

153

2

3d 프로젝트 이동 동기화 관련

0

325

4

파트 7 스트레스 테스트 질문 드립니다.

1

190

2

맵 이동 방식

0

134

0

맵 이동 관련해서 질문드립니다.

0

91

1

안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,

0

205

2

안녕하세요. 일전에 질문 드린 포폴 준비 관련 질문의 추가 질문입니다!

0

161

1

[팁] 2024년 기준 버전 이슈?

0

458

1

SendBuffer.cs 삭제 후 대체 되는 부분의 장단점?

1

204

1

지금 강의의 유니티 클라를 IOCP 서버와 연동하는 것

0

337

2

PushAfter 사용 질문

0

193

1