3. 2주차 진행사항

  1. 보스 스테이지
  2. 보스 몬스터 “해방된 라르고”
  3. 로딩 매커니즘 개선 - 병렬 처리
  4. Vorbis 라이브러리를 통한 .ogg 파일 로드
  5. 현재 직면한 문제점



1. 보스 스테이지

  • 보스 스테이지는 총 4개의 레벨로 구성되어 있으며, 각각 보스 입장, 컷씬, 전투 스테이지로 나뉜다.

  • 각 스테이지 전환에 카메라 페이드인/아웃을 적용시켰다. 자연스러운 전환을 위해 카메라 이펙트(페이드아웃) 종료 시점을 기준으로 레벨 전환이 이루어진다.

  • 보스 입장 스테이지 “보라해로” 는 우측 끝의 상승기류에 일정 시간 들어가 있으면 컷씬 스테이지로 이동된다.

  • 컷씬 스테이지는 총 2개로, “절벽” 과 “기만을 삼킨 감시탑” 으로 구성되어 있다. 모든 컷씬이 종료되면 보스 전투 스테이지로 이동된다.

  • 보스 전투 스테이지 “부서진 감시탑” 은 보스 몬스터 “해방된 라르고” 와 전투를 진행하게 되며, 플레이어와 상호작용하는 맵 기믹이 존재한다.




alt text

alt text

보라해로

  • 좌측에서 플레이어가 스폰되며, 우측에 상승기류 포탈로 보스 입장을 진행할 수 있다.

  • 기존 레벨의 포탈과 달리 영역 내 플레이어가 일정 시간 존재하면 플레이어를 위로 사출시키는 상호작용 후 레벨 전환이 이루어진다.


alt text

절벽

  • 자동 진행되는 인게임 컷씬 레벨이다.

  • 플레이어의 조작이 불가능하며, 사전에 설정된 동작대로 오브젝트 및 플레이어가 조작된다.


alt text

기만을 삼킨 감시탑

  • 중간까지 자동 진행되는 컷씬 레벨이다.

  • 절벽에 올라와 착지될 때까지 조작이 불가능하며, 이후 조작이 해금된다.

  • 대사 및 연출 후 레벨이 자동으로 전환된다.


alt text

alt text

alt text

부서진 감시탑

  • 보스와의 전투가 진행되는 스테이지 레벨이다.

  • 레벨 시작 시 보스가 스폰되며, 등장 연출과 함께 이어서 전투가 시작된다.

  • 플레이어는 해당 맵에서 “요기 게이지” UI가 좌측 상단에 생기며, 보스 전투에 기믹으로 작용한다.

  • 보스의 위, 아래로 “요기의 바다” 가 존재하며, “요기의 바다” 는 보스의 위치에 따라 이동한다.

  • 플레이어가 “요기의 바다” 위에서 지면에 서 있는 경우, 플레이어의 “요기 게이지”를 증가시킨다.

  • 플레이어가 “요기의 바다” 위에 없거나, 공중에 점프 중인 경우 “요기 게이지”가 지속적으로 감소한다.



2. 보스 몬스터 “해방된 라르고”

  • 보스 몬스터 “해방된 라르고” 는 최초 조우 시 전투 시작과 함께 개막 패턴을 사용하며, 이후 일반 공격 패턴이 이어지다 기믹 수행 조건이 충족되면 특수 공격 패턴을 사용한다.

  • 보스 몬스터의 일반 공격 패턴은 연속으로 같은 패턴을 사용하지 않도록 구현했다.

현재 2주차까지 구현된 내용은 다음과 같다:

  1. 최초 조우시 사용하는 개막 패턴 1종
  2. 일반 공격 패턴에 사용하는 보스 스킬 3종 - 두번 베고 화면 폭발 - 내려찍고 화면 폭발 - 한쪽 끝으로 이동 후 십자 베기


alt text

alt text

alt text

개막 패턴

  • 전투 스테이지 레벨 입장 후 보스 몬스터와 최초 조우시 한번만 발동하는 패턴이다.

  • 붉은색으로 경고되는 구역은 플레이어가 해당 위치에 있는 경우 피격되며, 캐스팅 시간은 차오르는 것으로 표현된다.

  • 장판형 데미지 스킬은 플레이어 오브젝트의 지상 위치값을 통해 피격을 판정한다.

  • 화면 일부분을 차지하는 화면 폭발 패턴은 플레이어의 피격 범위가 해당 범위와 닿는 경우에 피격된다.

  • 충돌형 데미지 스킬은 플레이어 오브젝트의 충돌체가 타격 충돌체와 충돌 여부를 통해 피격을 판정한다.


alt text

alt text

alt text

alt text

두번 베고 화면 폭발

  • 보스 몬스터의 첫번째 일반 공격 패턴이다.

  • 첫번째와 두번째 베기 공격은 화면에 검흔을 남기며, 2초 뒤에 해당 위치에 공격 판정이 들어간다.

  • 첫번째와 두번째 검흔은 공격 당시 플레이어의 위치를 기준으로 일정 범위 내 랜덤한 각도로 생성되며, 동시에 생성되는 검흔 끼리는 랜덤하지만 비슷한 각도로 생성된다.

  • 충돌형 데미지 스킬이기에 플레이어 충돌체와 검흔의 교차 여부에 따라 피격을 판정한다.

  • 마지막으로 두 개의 화면 폭발이 생성되는데, 플레이어 현재 위치를 기준으로 정해진 폭, 랜덤한 각도로 생성된다.


alt text

alt text

alt text

alt text

내려찍고 화면 폭발

  • 보스 몬스터의 두번째 일반 공격 패턴이다.

  • 시전 시 보스 몬스터는 공격 위치를 지정하고, 점프 준비를 한다.

  • 일정 시간 뒤 보스는 점프하여 지정된 공격 위치로 이동한다.

  • 이 때, 보스 몬스터는 실제로 점프하여 공중 판정이기에, 장판 스킬에 데미지를 입지 않고, 피격 충돌체 또한 본체를 따라 이동한다.

  • 마지막에 생성되는 두 화면 폭발 영역은 보스 몬스터의 착지 위치에 따라 결정되며, 각도는 일정 범위 내에서 랜덤하게 결정된다.


alt text

alt text

alt text

한쪽 끝으로 이동 후 십자 베기

  • 보스 몬스터의 세번째 일반 공격 패턴이다.

  • 시전 시 보스 몬스터는 공격 위치를 지정하고, 즉시 해당 위치의 화면 끝쪽 중 한 곳으로 점프한다.

  • 세로로 지정된 구역의 공격이 먼저 발동하며, 그 후 가로로 지정된 공격은 “요기의 바다” 안전지대 만큼 공격한다.



3. 로딩 매커니즘 개선 - 병렬 처리

  • 텍스처 로딩에 과도한 시간을 소요하는것을 해결하기 위해 스레드풀을 이용해 멀티 로딩을 구현했다.

  • 텍스처 앨범 별로 스레드풀 로딩을 적용했기에 앨범 각각의 로딩 시간을 절반 가량 줄일 수 있었다.



4. Vorbis 라이브러리를 통한 .ogg 파일 로드

  • 사운드 리소스를 바로 사용할 수 있도록 라이브러리를 추가해서 Direct Sound 에 사용할 수 있도록 적용했다.



5. 현재 직면한 문제점

  1. 프레임 드랍 현상이 매우 심하다.
  • 최저 약 10 FPS, 평균 약 20 FPS 로 매우 낮은 프레임을 보인다.

  • 프레임 문제로 인해 십자 베기 패턴은 이펙트를 제거했다.

  • UI, 플레이어 스킬 등 추가될 렌더링 요소가 아직 많으므로, 대책 강구가 시급하다.


  1. 매우 긴 로딩 시간
  • 멀티 스레드 로딩을 적용했지만 여전히 로딩이 짧지는 않다.

  • 보스 스테이지와 보스 패턴, 이펙트 리소스 로딩에 약 2분 40초가 소요되며, 추후 여유가 되면 더 줄일 방법을 생각해 보자.

  1. 미구현 목록
  • 요기 게이지에 따른 기믹 패턴 “절단”

  • 주기적 특수 페이즈 패턴 1개 이상

  • 보스 몬스터 사망 및 그로기