Skip to content

Repository files navigation

Divers 2045

Strikers 1945의 정신을 계승한 B급 감성 종스크롤 슈팅 액션.

Divers 2045

alt text Play on itch.io: shelldivers.itch.io/divers-2045

  • Engine: Unreal Engine 5.4 (C++ / Blueprint)

프로젝트 구조 및 설계

데이터 · 기능 · 매니저 3개 층으로 역할을 분리했다.

매니저 (Blueprint)   ── 기능들을 조합하고 게임 흐름을 관리
      │  호출·배치
      ▼
기능 (C++ / 언리얼 기능)  ── 이동·공격·AI·이펙트 등 단일 책임 단위
      │  참조
      ▼
데이터 (DataTable)   ── 스탯·밸런싱 수치
구현 방식 역할 예시
데이터 DataTable (FTableRowBase) 밸런싱 수치를 코드 밖으로 분리 → 재컴파일 없이 수정 무기 진화 스탯, 적 스탯, 아이템 드랍
기능 C++ 코드 + 언리얼 기능 성능·정확도가 중요한 단일 동작을 담당 Enhanced Input, Behavior Tree, Niagara, Actor Component
매니저 Blueprint 기능들을 묶어 배치·연결·흐름 제어 스테이지 흐름, 스포너, 탄막 관리자

사용한 언리얼 기능

게임 기능 사용한 언리얼 기능
플레이어 이동·공격·봄 조작 Enhanced Input (IMC + Input Action)
다단계 보스 AI / 공격 패턴 Behavior Tree + Blackboard + AIController
무기 진화·적 스탯·아이템 밸런싱 DataTable 기반 데이터 주도 설계
탄환 트레일 · 격파 이펙트 Niagara
체력 · 아이템 드랍 등 공통 로직 Actor Component
HUD (봄 개수 · 공격 레벨 · 사망) Delegate 이벤트 구독
스테이지 진행 · 난이도 스케일링 상태 머신 + 배경 스크롤 연동
사운드(BGM/플레이어/적/UI) Data Asset 기반 오디오 Config

최적화 — 탄막 처리

평균 300개 이상의 보스 탄막을 프레임 저하 없이 처리하기 위해, 탄환을 개별 Actor로 만들지 않고 중앙 관리자(BossProjectileManager)가 Instanced Static Mesh(ISM) 로 일괄 관리했다.

  • ISM 하나로 모든 탄막을 단일 드로우 콜로 배치 렌더링
  • 탄환을 Actor가 아닌 경량 구조체 배열로 관리 → 개별 Actor/Tick 오버헤드 제거
  • 물리 충돌 대신 커스텀 경량 충돌(플레이어 히트박스 vs 이동 선분)만 검사
  • 화면 밖 탄환 뷰포트 컬링, RemoveAtSwap O(1) 제거, 트랜스폼 일괄 갱신

About

Strikers 1945의 정신을 계승한 B급 감성 슈팅 액션

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages