Dungeon & Fighter

새소식

개발자노트

최적화 개선 사항과 오리진 후속 조치

2017.10.25 14:03 111,284

안녕하세요. 모험가 여러분.

던전앤파이터 프로그램 총괄팀장입니다.

 

올해 초에 2017년 최적화 방향성에 대해서 소개하여 드렸었는데요.

시간이 참 빠르게도 벌써 한 해의 막바지를 지나가고 있습니다. 

 

2017년은 최적화 작업에 있어서 "던파 몸 만들기"라는 타이틀로 프레임 최적화에 우선순위를 두고 진행하였었는데요.

바로 게임 전반에 발생할 수 있는 지연 현상, 렉 관련 개선을 위한 작업들입니다.

 

그럼 지난번 최적화 관련 개발자 노트에 이어서 앞으로 패치 예정이거나 진행 중에 있는 최적화 작업에 대해서 소개하여 드리겠습니다. 

 

 

 프레임 레이트 개선

 

▶ UI 프레임 레이트 최적화 1

많은 모험가분들이 인벤토리나 장비사전 칭호북 등의 UI를 띄워둔 상태에서 프레임 레이트가 현저하게 떨어지는 것을 확인하셨을 텐데요.

아무래도 UI들과 메인게임이 함께 보여지면서 화면에 그리는 로직이 추가될 것이고 이로 인해 프레임 레이트에 영향을 주게 되는 것 입니다.

UI의 경우 정적으로 움직임이 거의 없기 때문에 메인 게임과는 다른 별도의 프레임 레이트를 적용하도록 처리할 수 있었고, 그 결과 UI를 띄워둔 상태에서도 프레임 레이트에 영향을 최소화할 수 있었습니다.

쉽게 말해서 UI는 초당 30번(30FPS), 그리고 메인게임은 초당 60번(60FPS) 그린다는 의미입니다. 

 

 

<세리아 방 (최적화 전)>

 

<인벤토리 띄움 (최적화 전)>

 

<인벤토리 띄움 (최적화 후)> 

 

▶ UI 프레임 레이트 최적화 2 

한가지가 더 있습니다.

인벤토리를 화면상에 보여주기까지 관련된 다양한 이미지들을 하나하나 로딩하고 화면상에 출력하기까지의 과정이 필요한데요.

 

 

 

위 이미지와 같이, 인벤토리 슬롯 이미지를 가져와서 화면에 그려주고 장비/소모품/재료 탭 이미지를 가져와서 그려주고 이어서 필요한 이미지들을 로딩하여 그려줍니다.

 

 

 

그런데 만약에 이 모든 이미지를 통짜 이미지로 만들어서 로딩하고 한 방에 그려준다면 좀 더 빠른 처리가 가능하게 되겠죠?

UI 이미지들에 대한 통짜 이미지, 즉 아틀라스화를 통한 프레임 향상을 가져오게 되었습니다. 

사실 설명은 이미지 두 장으로 간단하게 드릴 수 있지만, 실제 담당하신 개발자분은 많은 준비 기간과 노력의 기간이 있었답니다.

(그렇다고 절대로 알아달라는 것은 아닙니다 ^.^) 

 

아무튼 결과적으로 최종적인 적용 결과는 다음과 같습니다. 

 

<최적화 전>

 

<최적화 1단계: UI 프레임 레이트 별도 적용>

 

 

<최적화 2단계: 이미지 아틀라스화>

 

▶ 프레임 레이트 비효율 개선

마지막으로 하나가 더 있는데요.

현재 던파는 프레임레이트 수치만큼 전체 로직을 반복하여 돌게 되는데, 이 중 의미 없는 부분까지 루프함으로 인한 비효율을 개선하였습니다.

쉽게 말해서 초당 60번만 그려도 되는 것을 100번 이상 그리게 되어 정작 중요한 계산(키 입력/데미지 처리 등등) 로직에서 렉이 발생하는 경우라고 볼 수 있습니다.

던파에서 특히 중요한 재미요소라 할 수 있는 빠른 반응속도, 타격감을 좀 더 살릴 수 있는 개선이라 볼 수 있는데요.

다만 이 부분은 외부 환경에 따라 개선 효과를 확인하기 어렵기 때문에 지속적으로 커뮤니티를 통해서 모험가 여러분의 의견을 경청하도록 할 예정입니다.

 

해당 최적화 내용은 11월 2일(목) 업데이트를 통해서 만나보실 수 있으며 게임 전체적인 프레임 향상에 도움이 될 것으로 기대하고 있습니다. 

 

 

 나이트 2전직 메모리 최적화

 

이번에 소개하여 드릴 내용은 지난 개발자 노트를 통해서도 소개드린 적이 있었던 2차 각성 스킬 메모리 최적화인데요.

특히 스킬과 관련한 메모리 및 렉 문제는 최근 다양한 개선 노력들이 있었으며 여전히 부족한 부분들은 있으나 많은 부분에서 가시적인 효과들을 확인할 수 있었습니다.

 

이번 드래곤나이트와 팔라딘의 경우에도 2차 각성 스킬 자체의 메모리 사용량과 렉 문제가 확인이 되어서 우선적으로 최적화 작업을 진행하였고,

그 결과 아래와 같은 효율을 기대할 수 있게 되었습니다.

 

전직명

최적화 전

최적화 후

효율

드래곤나이트

90MB

22MB

76%

팔라딘

50MB

13MB

74%

 

해당 작업 역시 11월 2일(목) 업데이트에 포함될 예정이며, 관련하여 모험가분들의 불편함을 최소화하는데 도움이 되었으면 합니다.

 

 

 프레임 성능 향상

 

위에서 소개하여 드린 내용은 주로 저사양 또는 권장 사양의 모험가분들께 도움 되는 최적화라고 한다면 이번에 소개하여 드릴 내용은 CPU 성능이 좋은 모험가분들에게 좀 더 나은 프레임 레이트 성능에 도움을 드릴 수 있는 최적화라고 볼 수 있습니다.

이번 최적화 작업과 관련하여 던파 클라이언트 로직을 다음 세 가지로 구분할 수 있는데 해당 로직들은 순차적으로 반복되면서 처리하는 구조를 이루고 있습니다.

 

1. 데이터를 로딩하는 "로딩 로직"

2. 데미지, 확률, 이동 등 일련의 계산을 위한 "업데이트 로직"

3. 화면에 "그리는 로직"

 

▶ "로딩 로직"과 "그리는 로직" 분리

게임 내에서 등장하는 수많은 오브젝트들을 로딩하고 모니터에 그려주기까지 과정을 순차적으로 처리하게 되는데요 오브젝트의 수가 많아서 로딩 로직에 부하가 생긴다면 그리는 로직에도 영향을 주어 지연 현상이 발생을 하게 됩니다.

하여 멀티 스레드를 활용한 스레드 분리를 통해 로직을 명확히 나누어 어느 한 쪽이 지연되었을 때 다른 한 쪽이 같이 느려지는 영향을 최소화 할 수 있도록 개선 중에 있습니다.

 

▶ "업데이트 로직"과 "그리는 로직" 분리

던파가 오랜기간 서비스되면서 의도치 않게 업데이트 로직과 그리는 로직이 일부 혼용되어 사용이 되어 왔었고 이로 인해 프레임 레이트 관리에 상당한 어려움이 있었습니다.

이 역시 좀 더 나아가 멀티 스레드를 활용하여 그리는 로직을 분리하고 서로 간에 영향을 최소화할 수 있도록 개선 중에 있습니다.

 

해당 작업들은 지난 몇 년 전부터 인지하고 있는 문제였으나 클라이언트 근간을 건드려야 하는 작업이기에 잘 못 수정할 경우 오히려 예상치 못한 버그를 양산할 수도 있기 때문에 매우 조심스럽고 보수적으로 접근할 수밖에 없었습니다.

하여 2017년 초부터 여러 가지 문제 가능성에 대한 검증 테스트를 통해서 현재는 가시적인 성과들을 확인하게 되었으며 2018년 상반기에는 적용이 가능할 것으로 예상하고 있습니다.

또한 해당 로직에 대한 최적화로 당장의 프레임 성능 향상보다는 장기적 관점에서의 위험요인을 제거하는 중요한 업데이트가 될 것이라 판단하고 있습니다.

 

 

수년간 던파를 서비스하면서 좀 더 빠르게 모험가분들께 새로운 재미와 컨텐츠를 제공해드리는 과정에서 의도치 않게 게임 환경을 저해하는 문제들이 발생하였고 결과적으로는 오히려 모험가분들께 불편함을 드리는 상황들이 발생을 해 왔었습니다.

하여 우선적으로 시급하다고 생각해왔던 메모리 문제와 순간 렉 이슈들을 해결하기 위해서 노력해왔었고 지난 개발자 노트들을 통해서 그 결실들을 하나하나 소개하여 드렸었습니다.

 

물론 모험가분들마다 느끼는 체감이 다르고 원하시는 부분이 각각 다르기 때문에 100% 만족을 드리지는 못했을 것이라 생각됩니다만 앞으로의 개발 과정에서 발생하는 의도치 않았던 문제점들에 대해서 모험가분들의 불편함을 최소화하기 위해서 최선을 다할 것이며, 추후에도 게임내 버그를 비롯하여 기술적 과제들에 대해 지속적으로 개선해 나갈 수 있도록 최선을 다하겠습니다. 

 

다음으로 오리진 후속 조치와 관련한 내용이 있는데요.

이 부분은 던전 컨텐츠 담당자에게 마이크를 넘기도록 하겠습니다.

 

 

 오리진 후속 조치


안녕하세요. 모험가 여러분. 

던전앤파이터 던전 컨텐츠 담당자입니다.

 

오리진 업데이트된 지 두 달이 된 현재까지 내부 테스트와 모험가분들이 많은 제보로 오리진 업데이트에 많은 사항을 개선하고 있는데요.

업데이트 이후 모험가분들의 게임 진행 상황과 의견들을 여러모로 분석했을 때, 다음과 같은 부분에 대한 개선이 시급하다고 판단되었습니다.

 

- 시나리오 던전 파티 플레이 불가

- 시나리오 던전 진행 시 씬 스킵 불가 (계정당 1회)

 

이에, 위의 사항들을 개선하기 위해 크게 두 가지 방향으로 업데이트를 준비하고 있었는데요.

첫 번째는 싱글 플레이를 기준으로 설계했던 플레이 동선과 씬 연출을 파티 플레이가 가능하도록 개선하는 작업,

두 번째는 씬 스킵을 언제든 할 수 있도록 개선하고 다시 진행해보고 싶은 시나리오 던전을 다시 플레이해볼 수 있는 기능을 추가하는 작업

이렇게 두 가지의 계획을 11월 업데이트를 목표로 작업을 진행하고 있으며, 상세한 내용은 아래에 설명해 드리도록 하겠습니다.

 

▶ 시나리오 던전 파티 플레이 가능

순차적으로 연결되는 시나리오 진행 흐름의 혼선 방지와 몰입도 향상을 위해 시나리오 던전에서는 파티를 제한하였으나

현재 모험가분들의 불편사항 해소와 원활한 성장 구간 던전 플레이를 위해 시나리오 던전에서 파티플레이가 가능하도록 조정할 예정입니다.

추가로, 파티 플레이로 시나리오 퀘스트를 클리어하면 공유 퀘스트 경험치을 얻을 수 있는 시스템은 오리진 업데이트 이전과 동일하게 유지하되

고레벨 캐릭터가 저레벨 공유 퀘스트 클리어 보상 획득 시 추가 가중치로 인해 높은 경험치를 얻었던 현상은 수정될 예정입니다.

 

▶ 퀘스트 다시 보기 기능 추가

현재 시나리오 씬이 재생될 때 계정 단위로 무조건 1회 스킵이 불가능한 시스템을 개선하여

씬을 제한 없이 스킵할 수 있게 변경하고, 스킵하여 보지 못하거나 다시 보고 싶은 씬이나 시나리오 던전은 퀘스트북에 '퀘스트 다시 보기' 기능을 추가하여 언제든 감상할 수 있도록 작업이 진행 중입니다.

또한, 씬 재생 시 배속기능에 토글기능을 추가하여 한번 설정한 배속을 동일하게 유지하여 씬을 감상할 수 있도록 할 예정입니다.

단, 튜토리얼 던전과 각성 던전에 재생되는 씬은 던전의 특성상 스킵이 불가능한 점 양해 부탁드립니다.

 

위의 변경 사항에 대해 궁금한 내용이 많으실 거 같은데요. 

빠른 시일 내에 업데이트를 통해 선보일 수 있도록 하겠습니다.

 

그리고 이 자리를 빌어, 오리진 업데이트에 보내주셨던 많은 관심과 응원 그리고 의견에 감사의 말씀을 전합니다.

더욱 노력하여 던전앤파이터의 재미를 더할 수 있도록 최선을 다하겠습니다.

 

감사합니다.

개발자노트

  • 아스라한 : 안개의 신, 무 퍼스트 서버 안내드립니다. (138) 2024.04.17 46,752
  • 안녕하세요. 라이브 디렉터 박종민입니다. (234) 2024.03.13 93,002
  • 아이템, 파밍 관련 개선 사항에 대해 말씀드립니다 (595) 2024.02.14 140,931
  • 아라드 패스 방향성에 대해 말씀드립니다. (1,881) 2024.01.17 138,236
  • 콘텐츠 보상 방향성에 대해 말씀드립니다. (346) 2024.01.03 131,446
  • 개발자 수의 던파 편의성 개선 이야기 13회 (99) 2023.12.06 82,898
  • 미스트기어 개선 사항에 대해 말씀드립니다 (507) 2023.12.06 146,970
  • 미스트 기어 세트 옵션에 대해 말씀드립니다 (699) 2023.11.22 98,990
  • 신규 레기온 어둑섬 업데이트 안내 (1,144) 2023.11.01 163,475
  • 개발자 수의 던파 편의성 개선 이야기 12회 (117) 2023.10.18 106,493