길찾기 시스템 리팩토링 (2019-06-20)
Source
Evernote/Inbox/2019-06-20 길찾기 개선.md
Summary
기존 타일 기반 및 Unity 물리 혼용 방식의 심각한 버그를 해결하기 위해 길찾기 시스템을 노드 기반 그래프 구조로 전면 교체함. 방과 복도를 큰 사각형 영역(노드)으로 정의하고, 노드 내 이동은 직선, 노드 간 이동은 변의 중간 지점을 경유하도록 설계. 실제 맵과 독립된 그래프 레이어를 구성하여 확장성을 확보했으며, 다익스트라 알고리즘을 적용. 성능은 개선되었으나, 이동 불가 위치 인식 오류, 노드 간 이동 시 어색한 경로, 벽 밀착 문제 등 잔여 버그가 존재함.
Key Points
- 기존 타일+물리 혼용 방식의 한계로 인해 노드 기반 그래프 시스템으로 아키텍처 변경
- 방/복도 단위의 사각형 영역을 노드로 정의, 노드 간 연결은 변의 중간 지점을 경유
- 실제 맵 데이터와 분리된 독립적인 그래프 자료구조를 사용하여 확장성 강화
- 다익스트라 알고리즘 적용, 엣지 코스트는 노드 중심점과 엣지 중심점 간 거리로 근사 계산
- 성능 개선 효과 확인, 그러나 이동 불가 위치 인식, 이동 경로 자연스러움, 벽 밀착 등 3가지 주요 버그 잔존