내일배움캠프 90일차 - 언리얼 C++ 멀티플레이 팀프로젝트: 미니게임파티 5~6일차

언리얼엔진5 C++ 기반 멀티플레이 게임 팀 프로젝트 제작

작업내용 요약

폭탄 생성→폭발을 반복하여 한명씩 탈락하고 최후의 1인까지 진행하는 게임규칙을 제작하였다.

게임 탈락 효과부터 게임규칙 종료까지 구성

기존의 플레이어 탈락 시 사용되던 액터 컴포넌트를 만들어 사용하는 대신 모든 클라이언트에게 이미 주어져있고 개개인이 소유를 하고 있는 PlayerState에 규칙 피드백을 추가하여 탈락 시 어떤 효과를 줄 것인지 구현하였다.

이전에 플레이어 탈락시 어떤 클라이언트가 탈락하는지 커스텀 LOG 매크로를 통해 확인하고, 탈락한 클라이언트의 캐릭터는 메시의 콜리전을 Ragdoll화하고, 피직스 시뮬레이션과 AddImpluse()를 적용해 튀어오르는 연출을 적용했었다. 이 효과는 서버에서 전달하는 Multicast이기 때문에 모든 클라이언트에게 보여질 것이다.

노란색 박스는 2~3일차때 만든 코드를 활용한 것이다.

이를 반복해서 최후의 1인이 남을 때까지 반복한 후 승자 메세지를 출력한 후 미니게임을 종료하면 된다. 이것이 해당 게임의 기본적인 승리 규칙이 될 것이다.

또한 이 과정에서 폭탄은 계속해서 생겨나고, 폭발하는 것을 반복하는데, 이를 계속 Spawn으로 처리하는 것은 낭비이다. 따라서 하나의 변수에 등록해서 재사용할 수 있게 끔 풀링작업을 실시하였다.

게임모드.h 의 BombActor 클래스 등록

게임모드 생성 시 BombActor 스폰 및 등록

폭탄 작동 시 시각적으로 표시된다.

폭발 시 시각적으로 숨겨진다.

위 작업들을 통해 얻을 수 있는 결과는 다음과 같다.


댓글

이 블로그의 인기 게시물

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

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