내일배움캠프 54일차 - 언리얼 C++ 팀프로젝트: 타워 디펜스 4~5일차

언리얼엔진5 C++ 기반 슈터 게임 팀 프로젝트 제작

어제의 문제

에디터가 주기적으로 크래시나는 문제가 발생. 나에게만 발생했던 현상으로 그래픽 드라이버를 최신버전으로 업데이트로 해결됨.

오늘의 작업

주로 총기와 관련된 작업을 진행하고 있으며 약간 긴 여정이 될 것이라고 생각한다. 이전의 시스템은 캐릭터에서 직접적으로 적에게 대미지를 주는 방식이나 이번 업데이트가 끝난다면 총기의 스펙과 발사 매커니즘을 경유해서 총기별로 다른 방식으로 적에게 대미지를 주게 될 것이다.

아직은 총기시스템과 연동이 채 이루어지지 않아 테스트용 총기 메시만 붙여놓은 상태이다.

업데이트에 포함될 총기 시스템에서는 총기의 종류는 DataTable에서 관리하게 될 것이며, Base가 되는 구조체를 상속하여 총기의 발사 작동방식에 따라(단발형 무기, 연사형 무기, 산탄 무기 등) 각자 다른 자식구조체를 사용하는 DataTable 여러 개로 분류하여 관리하게 될 것이다.

DataTable에 사용가능한 Base구조체(좌)
Base구조체를 상속한 단발총기 구조체(우)

DataTable을 사용한 이유

하나의 총기에는 여러개의 변수가 필요하며, 생성 시에 많은 매개변수를 입력해야 한다. 그렇게 많은 매개변수를 짊어진 총기가 여럿일 때 추가로 필요한 매개변수가 필요하게 되면 매개변수 순서를 정렬해야 할 필요가 생겨날 수도 있고, 매개변수의 추가로 인해 순서가 바뀌게 되면 수 많은 총기의 입력 매개변수 순서를 다시 한번 정리하는 데에서 유지보수 비용이 크게 들 것이다. 따라서 총기의 변수를 순서에 상관없이 관리해줄 수 있고 한눈에 모든 종류를 내다볼 수 있는 DataTable이 채택된 것이다.

앞으로 필요한 기능

총기시스템 연동 완성, 총기의 종류(DataTable) 늘리기, 총기로 몬스터 타격시 파티클 남기기 등

댓글

이 블로그의 인기 게시물

내일배움캠프 사전캠프 - 사전캠프설 연휴 커피 파밍 이벤트 작품 [ EXTREMITY ]

내일배움캠프 29일차 - 커리어데이 2일차 : 클라이언트 프로그래머로서 포트폴리오, 입사준비팁