본문으로 건너뛰기

© 2026 Molayo

r/godot분석2026. 05. 28. 22:53

RTX2080에서 Godot 4로 구현한 5,000명 이상의 좀비 군단 시뮬레이션 (80+ FPS)

요약

Godot 4 엔진에서 5,000명 이상의 좀비 군단을 80 FPS 이상으로 구현하기 위해 CPU 기반 시뮬레이션을 GPU 컴퓨트 셰이더로 전환한 사례입니다. GDScript의 성능 한계를 극복하고자 에이전트 상태를 GPU 스토리지 버퍼에 상주시켜 CPU 부하를 제로로 만들었습니다.

핵심 포인트

  • GDScript의 성능 한계를 컴퓨트 셰이더로 해결
  • GPU 스토리지 버퍼를 활용한 에이전트 상태 관리
  • Flow-field 및 Atomic-binning Boids 기술 적용
  • MultiMesh 버퍼 직접 기록을 통한 CPU 작업량 제거

OpenVAT 애니메이션 좀비, 플로우 필드 경로 탐색 (flow-field pathfinding), 보이드 분리 (boids separation) 및 사격 기능을 포함한 이 시뮬레이션은 원래 WorkerThreadPool을 사용하여 CPU에서 시작되었습니다. 하지만 GDScript가 대규모 환경에서 에이전트별 내부 루프 (inner loops)를 따라가지 못해 약 16 FPS에서 성능 한계에 부딪혔습니다. 이를 해결하기 위해 시뮬레이션 전체를 컴퓨트 셰이더 (compute shader)로 옮겼으며, 에이전트 상태는 GPU 스토리지 버퍼 (storage buffers)에 네이티브하게 상주합니다. 컴퓨트 패스 (compute pass)는 플로우 필드 조향 (flow-field steering)과 아토믹 비닝 보이드 (atomic-binning boids)를 처리하며, RenderingServer.multimesh_get_buffer_rd_rid()를 통해 트랜스폼 (transforms)을 MultiMesh 버퍼에 직접 기록합니다. 그 결과 프레임당 에이전트별 CPU 작업량이 제로(zero)가 되었습니다. 게임플레이 메커니즘을 위해 히트스캔 (hitscan)은 사격 시마다 필요에 따라 버퍼를 읽어오며, 좀비의 죽음은 노이즈 기반 디졸브 셰이더 (noise-based dissolve shader)를 통해 처리됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 r/godot (top/week)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0