2025-04-18 KPT회고

별빛에소원을·2025년 4월 18일

TeamSparta-Unreal1기-TIL

목록 보기
75/90
post-thumbnail

Keep - 현재 만족하고 있는 부분

  • 팀 분위기가 매우 좋다
  • 마지막 패키징에서 버그가 많이 줄어서 만족한다.
  • 기획단계에서 설계했던 것들이 대부분 구현이 되어서 좋다.
  • 시작레벨(로비레벨)에서 게임시작 부분이 카메라 워킹에 따라 매끄럽게 진행되어서 굿
  • 캐릭터를 선택하면 랜더링Depth로 인해 외곽선이 설정되고 몽타주가 play되면서 실제 게임(로스트아크 캐릭선택창 & 디아블로 캐릭선택창) 처럼 구동이 되어서 멋지다.
  • 세션초대 및 클라이언트가 해당 게임세션에 직접 참가가 가능해서 유동적.
  • 역동적인 로코모션, 스킬 16개 및 홀딩 및 pose, select animation 등 완벽하진 않지만 만족스럽게 나온 것 같아 좋았다.
  • 게임모드가 잘 구현이 되었고 여러가지 다양한 모드가 있어서 즐거웠다.
  • 상점시스템이 들어오면서 매 게임 모드마다 다른 무기를 사용할 수 있어서 지루하지 않았다.
  • 모드가 많다보니 컨텐츠가 많았고 3주만에 만든 것 치고 게임 볼륨이 매우 커서 놀람
  • 노예 검투사가 해방된다는 게임 스토리가 잘 녹여져 있고 판타지를 접목시켜 참신한 게임이 된 것 같아 좋았다.
  • 마지막 엔딩 시퀀스가 예쁘게 잘 적용이 되었고 엔딩크래딧도 열심히 한 만큼 멋지게 나와서 굿
  • UI가 전체적으로 세련되었다. 전체적인 분위기랑 맞게 적용되어서 게임자체가 세련된 것 같다.
  • 게임 플로우가 전체적으로 흐름을 끊지 않고 루프로 잘 돌아간다
  • 만들어진 템플릿을 가져와 사용해서 업무 효율적이었다.
  • 처음 업무 분배가 각자가 원하는 방향으로 적절하게 되었다.
  • 모든 팀원이 긍정적인 마인드를 가진 것과 서로가 서로를 칭찬하는 분위기가 좋았다.
  • 안 되는 부분이 있을 때 숨기지 않고 다른 팀원들에게 공유한 점이 좋았다.
  • 캐릭터의 애니메이션이 대전 게임에 맞게 생동감 있게 구현된 점이 좋았다.
  • 패키징 후 QA 작업을 다 같이 하면서 게임에 대해 이해하고 즐길 수 있어 좋았다.
  • 다른 사람이 작성한 코드를 분석하고 필요한 부분과 필요하지 않은 부분을 구분해 필요한 기능을 구현하는데 활용할 수 있어 좋았다.
  • 데이터테이블을 사용하여 데이터를 쉽게 관리하는 방법을 알 수 있었다.

Problem - 불편하게 느끼는 부분

  • 다수의 인원이 멀티 플레이를 진행할 때 게임 로직에 문제가 생긴 부분이 아쉬웠다.

  • 거의 대부분의 로직이 C++이 아닌 블루프린트로 구현되어 있어 성능적인 부분이 아쉬웠다.

  • 불규칙하게 접속하는 플레이어 컨트롤러마다 폰 빙의 타이밍이 달라서 이를 정확히 감지하는 방법을 몰랐고, 임시방편으로 Delay를 삽입해 타이밍 문제를 해결하려 한 점이 아쉬웠다. (게임 시작 흐름이 불안정해지고 버그가 발생한 원인이라고 생각한다.)

  • 멀티 플레이어 환경에서 언제 어떤 RPC를 사용하고 리플리케이션을 사용할 지에 대한 지식이 완전하지 않았다. 그래서 로직에 문제가 생겼을 때 디버깅 하여 고치는 것이 어려웠다.

  • 블루프린트에서 구현된 함수를 C++ 코드에서 호출하는 것이 어려웠다.

  • 에디터에서는 잘 작동하지만 막상 패키징을 하여 작동하면 인터넷 환경 및 BandWidth 등 물리적인 한계로 인해 이상하게 돌아갈 때가 많은데 디버깅이 쉽지않아 힘들었다.

  • 디버깅이 쉽지 않다보니 여전히 잔버그들이 많았고 프로젝트 시간이 데드라인에 가까워 지면서 모두 고치지 못하는게 아쉽다.

  • 템플릿을 활용하다보니 멀티플레이 네트워크 환경을 처음부터 구축하는게 아니라서 온전하게 멀티환경을 체득하는 것이 힘들었다.

  • 기존 템플릿이 블루프린트로 작성되어 이후 확장도 블루프린트 노드로 하는 경우가 많았고 그러다 보니 최적화가 쉽지않아서 아쉬웠다.

  • 스킬모션의 경우 RootMotion 애니메이션을 쓰는 경우가 많은데 일관되지 않고 다양한 루트로 애니메이션을 들고오니 Idle 과 skill 애니메이션의 Root rotation이 너무 어색하지 않게 Blend 하는데 힘들었다.

  • 싱글플레이에서는 편하게 구현에만 신경쓰면 됐었지만 멀티플레이 환경에서는 서버로 돌아가야 되는 로직인지 클라이언트에 할당해야하는 멀티캐스트인지 계속 생각하면서 로직을 설계해야하니깐 힘들었다.

  • RPC를 남발하여 Traffic OverHead 가 많이 일어남. Reliable도 남발하면서 최적화에 좋지 않았음.

  • 게임 설정 창을 만들지 않아서 유저가 PC 환경에 따른 설정 변경을 하지 못했다.

  • 테스트 게임 모드를 만들지 않아서 팀원들이 기능을 테스트 할 때 많이 힘들었다.

  • 기본 템플릿을 사용하다보니 연결된 로직들이 많아서 중복적으로 실행되는 부분이 많았다.

Try - Problem 에 대한 해결책, 당장 실행 가능한 것

  • 블루프린트에서 구현된 함수를 C++ 코드에서 호출하기 위해 Unreal Interface를 사용했다.
  • 테스트 해야 할 기능들을 파악한 뒤 테스트 전용 게임 모드를 미리 만들어 놓는다.
  • 네트워크 환경에서 GameFramework가 어떻게 작동되는지 다시 확인하고 최대한 많이 적용해보면서 머리속에서 추상화하여 익숙해지는 과정이 필요하다.
  • 리플리케이션과 OnRep을 이용해 동기화할 수 있는 경우 RPC 대신 사용해야 한다.
  • DCC Tool(Maya, Blender)을 이용하여 Blend 하는 애니메이션의 Root Rotation을 수정한다. 혹은 일관된 외부 애니메이션을 이용한다. 외부에서 가져오는 스켈레톤을 프레임마다 키를 찍으면서 변경하는건 너무 힘들기 때문
  • Unreal Insight Session Browser를 이용해 Bandwidth를 확인한다.
  • 시간이 길다면 서로의 업무를 이해하면서 진행하는게 작업속도도 빨라지고 실력향상에도 도움이 될 것 같다.
profile
취미로 게임하는사람

0개의 댓글