작성
·
12
0
강의에서 배운 DFS, BFS, Dijkstra 알고리즘이 주로 “길찾기”나 “맵 탐색”, “던전·퍼즐·퀘스트 생성” 등에 사용된다고 배웠습니다
그런데 일반 서버 개발에서는 이런 그래프 탐색 알고리즘들이 “추천 시스템”, “의존성 그래프 처리”, “네트워크 경로 최적화” 등에 자주 사용되는 걸로 알고 있습니다
그래서 궁금한 점은, 게임 개발에서도 위의 예시 외에 AI, 콘텐츠 로직, 엔진 내부 구조 등 다른 영역에서 DFS, BFS, Dijkstra 같은 탐색 알고리즘이 핵심적으로 쓰이는 사례가 있을까요?
(클라이언트 / 서버 구분 없이 궁금합니다)
답변 2
1
그런데 일반 서버 개발에서는 이런 그래프 탐색 알고리즘들이 “추천 시스템”, “의존성 그래프 처리”, “네트워크 경로 최적화” 등에 자주 사용되는 걸로 알고 있습니다
-> 게임에선 자주 쓸 일이 없지만, 페이스북 같은 SNS를 만들 때 그래프 알고리즘이 많이 쓰이게 됩니다. 예를 들어 친구와 몇 촌인지 알아낸다거나 하는 기능들요. 그 외에 디아블로 던전 생성 알고리즘과 같은 PCG 기술에서 그래프 등이 필요할 수 있고요. C++ 서버 강의에선 데드락 탐지를 그래프 사이클 판별로 구현하기도 했습니다. 사실 그래프로 넘어가면 꽤 고급 지식들이라 일상적인 개발에서는 그다지 쓸 일이 없습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 김태현님.
게임 개발에서 DFS, BFS, Dijkstra 알고리즘을 사용하는 경우는 다양합니다. 강의에서 다루었던 “길찾기” 외에도 아래와 같은 영역에서 쓰일 수 있습니다.
AI 행동 시뮬레이션: 게임 캐릭터의 행동을 결정하는 AI는 특정 목표를 달성하기 위해 경로 탐색 알고리즘을 활용할 수 있습니다. 예를 들어, 적 캐릭터가 플레이어를 추적하는 경로를 계산하거나 특정 패턴을 인식하기 위해 사용될 수 있습니다.
상태 공간 탐색: 게임 내에서 여러 상태를 탐색하고 최적의 행동이나 전략을 선택할 때 이러한 알고리즘을 활용할 수 있습니다. 이는 턴 기반 전략 게임에서 흔하게 볼 수 있습니다.
자동 레벨 생성: 던전이나 맵의 자동 생성 시스템에서 유효한 레이아웃을 생성하고 검증하는 데 그래프 탐색 알고리즘이 사용될 수 있습니다. 이는 랜덤성과 다양성을 강조하는 게임에서 유용합니다.
엔진 구조 최적화: 게임 엔진 내부에서는 메모리 관리나 최적의 데이터 경로 설정을 위해 그래프 탐색 알고리즘을 사용할 수 있습니다. 특히 복잡한 장면 관리나 최적의 데이터 로딩 전략을 구현할 때 도움이 됩니다.
이 외에도 개발자가 구현하고자 하는 시스템의 복잡성에 따라 그래프 탐색 알고리즘을 변형하여 다양한 문제에 적용할 수 있습니다.
아래 관련 질문들도 살펴보시면 도움이 되실 것 같습니다:
- 3d mmorpg에서 맵데이터관리와 길찾기 알고리즘이 궁금합니다!
- BFS는 길찾기 DFS는 어떤걸 만들수있나요??
질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 감사합니다!