데브허브 | DEVHUB | Crafting Scalable AI for a AAA Souls-Like Game in Unreal Engine | Unreal Fest Stockholm 2025Crafting Scalable AI for a AAA Souls-Like Game in Unreal Engine | Unreal Fest Stockholm 2025
- 언리얼 엔진 기반 AAA 소울라이크 게임 'Lords of the Fallen'의 확장 가능한 AI 시스템 구축 경험을 공유하며, 특히 다양한 적 크기에 대응하는 내비게이션, 데이터 기반 의사 결정, 전투 시스템에 중점을 둡니다. 🎮
- 언리얼 엔진의 기본 Nav Agent 시스템이 다양한 적 캡슐 크기에 비효율적이라는 문제(과도한 내비게이션 데이터 생성, 관리 어려움)를 인식하고, 이를 해결하기 위한 독창적인 접근 방식을 제시합니다. 📏
- '매우 작음'부터 '매우 큼'까지 AI 크기를 분류하고, 가장 작은 크기를 기준으로 단일 내비게이션 메시를 생성한 후, 복잡한 다중 Nav Agent 대신 이 단일 메시 내에 통로 너비 정보를 직접 인코딩하는 방식을 사용합니다. 🗺️
- 쿠킹 과정에서 각 내비게이션 타일을 병렬로 분석하여, 내비게이션 엣지에서 트레이스를 수행해 통로 너비를 측정합니다. 이 너비에 따라 해당 폴리곤에 커스텀 내비게이션 플래그(예: SmallCapsuleFlag)를 부여하여 통로 크기 정보를 저장합니다. 🏷️
- AI가 경로를 계산할 때 자신의 캡슐 크기에 맞는 내비게이션 필터를 적용하여, 자신보다 작은 크기만 통과할 수 있는 통로를 자동으로 제외하도록 합니다. 이를 통해 AI는 적절한 너비의 경로만 사용하게 됩니다. 🚶♂️
- Nav Agent 반지름과 실제 AI 크기 불일치로 인해 발생하는 경로 문제(코너 충돌, 비정상적인 경로)를 해결하기 위해, 언리얼 기본 기능의 한계를 극복하는 독자적인 'Good Enough Path Offset' 알고리즘을 개발했습니다. 📐
- 경로의 Nav Corridor와 Nav Portal Edges를 활용하여 코너를 감지하고, 수직선과 삼각형 기반의 기하학적 계산을 통해 오프셋 방향을 결정합니다. 특히, 닷 프로덕트를 사용하여 오프셋 방향이 내비게이션 메시 내부를 향하도록 보정하는 것이 핵심입니다. ✨
- 'Good Enough Path Offset' 알고리즘이 경로 지점당 최대 두 번의 트레이스를 수행하여 비용이 많이 들 수 있음을 인지하고 있으며, 이에 대한 성능 최적화 방안이 논의될 예정임을 암시합니다. ⚡