메뉴 바로가기 콘텐츠 바로가기

[정보] 최적화 BEFORE & AFTER!

2015년 11월 24일 오전 12시 0분 조회: 40570
안녕하세요. GM워릭입니다.

지난 11월 5일, “11월 업데이트 그리고 겨울!”이라는 공지를 통해
최적화 개선 작업에 대해 예고해 드렸는데요,



드디어!
11월 26일(목)에 대규모 개선 작업이 진행됩니다.

그 동안 많은 분께서 최적화 개선을 바라셨던 만큼
궁금하신 게 너무나 많을 것 같아요!

오늘 그 궁금증을 빠짐 없이 풀어드리고자
바키님을 모시고 심층 인터뷰를 진행해 보았습니다.


※ 처음 영상 재생 시, 버퍼링으로 조금 느릴 수 있습니다.
다시 재생해서 보시면 개선된 모습을 확연하게 느낄 수 있을거에요. 




[워릭] 지금 이 인터뷰를 보시는 분들이 가장 궁금한 것은 

“과연 끊김현상(렉)이 얼마나 개선되는가?”일 것 같습니다. 얼마나 개선되는지 설명해 주실 수 있을까요?


[바키] 네. 말보다는 직접 보여드리는 게 좋을 것 같아 영상을 준비했습니다.

개선 전과 개선 후를 동시에 비교해 보시면 쉽게 체감하실 수 있을 것 같습니다.


<트라이아 1채널에서 촬영한 영상입니다.>







[워릭] 오! 끊김현상이 확실히 없어졌네요! 사람들이 몰리는 곳에서는 끊김현상이 자주 발생했었거든요.

그런데 이 영상을 보신 분들께서는, 한 편으로 “왜 이제서야?”라는 느낌을 받으실 것 같아요.

그 동안 최적화 작업이 지체될 수 밖에 없었던 이유가 있는 건가요?


[바키] 최적화 개선 작업은 굉장히 많은 분야를 포함하고 있는데요,

시스템의 전체적인 구조를 바꾸지 않고 개선할 수 있는 문제는

여러 번의 업데이트를 통해 몇 가지 기능을 이미 반영해 놓았습니다.

환경설정의 “다른 캐릭터의 스킬 이펙트 숨기기”는 그 중 하나일 뿐이죠.


이와 달리 근본적인 구조를 변경해야만 하는 최적화 영역은

라이브 서비스 중에는 바로 바로 반영하기 어려웠던 것이 사실입니다.

이러한 밑바탕을 섣불리 손 대면 어떤 결과를 초래할 지 짐작하기가 어렵거든요.


따라서 많은 테스트가 필요할 수 밖에 없었고, 실제로 그 동안 수많은 테스트를 진행했습니다.

그 결과, 이제는 라이브 서비스에 반영해도 안정적인 수준에 판단되어,

라이브 클라이언트에 반영하기로 결정하게 된 것입니다.







[워릭] 비록 공지되지는 않았지만 그 동안 최적화 개선 작업은 꾸준히 진행해 오셨고

전체적인 구조의 변경을 위해 많은 테스트를 해왔다는 말씀이시네요. 이제 그 결실이 반영되는 것이고요.

그 동안 “싱글코어의 사용, DirectX 버전, 캐릭터의 프로필 이미지 다운로드”가

끊김현상의 주요 원인으로 지적되었습니다. 어떤 부분이 개선된 것인가요?


<일일퀘스트 대상인 로로와 무무스를 향해 가는 장면입니다.>



[바키] DirectX 버전의 경우, 솔직하게 말씀드리자면 개선이 어렵습니다.

DirectX 버전이 달라지면 클라이언트의 코드도 많은 변경이 필요하고,

DirectX 9에 최적화되어 있는 리소스도 변경이 필요하기 때문인데요, 

이는 개선의 영역을 넘어, 게임을 다시 만드는 것에 버금가는 것이기에 사실 상 변경이 불가능합니다.


하지만 많은 분들이 DirectX를 지적해 주셨던 배경은

역시나 끊김현상에 대한 아쉬움과 개선을 바라는 마음이었다고 생각하거든요,

그렇다면 꼭 DirectX 개선이 아니더라도, 끊김현상을 개선할 수 있기 때문에

다른 방법을 사용했고, 그 결과 위의 영상들 처럼 실제로 끊김현상은 최소화되었습니다.







[워릭] 위 영상들을 보면 실제로 개선 전에는 끊김현상이 보이지만,

개선 후 영상에서는 끊김현상이 보이지 않네요. 말씀하신 “다른 방법”의 효과인 건가요?

       

[바키] 네. 이번 업데이트를 통한 개선점을 정리하면 이렇습니다.


① 멀티코어의 활용성 개선

② 캐릭터 로딩 방식 변경

③ 서버와 클라이언트 간의 통신 방식 최적화

④ 전체적인 UI와 하우징 최적화


문제의 원인 중 일부를 멀티코어를 이용해 해결할 수 있었기 때문에 

이번 업데이트를 통해 멀티코어 활용도를 향상시키게 되었습니다. 

업데이트 로직을 멀티코어에서 실행할 수 있도록 처리해서, 더 나은 성능을 보여주고 있습니다. 


그리고 캐릭터 로딩 방식도 순차적으로 변경했고요.

그 결과 앞 선 영상들처럼, 

이제 필드 보스를 사냥할 때도 끊김현상이 대폭 감소하게 됩니다.

물론 많은 분께서 지적해 주셨던 프레임 드롭도 크게 개선되었고요.







[워릭] 아! 그렇군요. 많은 분들께서 말씀하셨던 프레임 드롭도 26일(목)을 기점으로 개선된다는 말씀이시군요?


[바키] 네. 물론입니다. 갑작스런 프레임 드롭도 대폭 개선됩니다.

실제로 아래의 영상에서 FPS(Frame Per Second)이 상당히 개선됐다는 것을 보실 수 있습니다.

FPS가 개선 전보다 1.5배 ~2배 가량 높아졌다는 것을 볼 수 있습니다.


<프레임 드롭의 차이를 느껴 보세요.>


특히 위와 같은 하우징의 경우,

모험가님들께서 지속적으로 수정할 수 있는 공간이기 때문에 최적화가 어려웠는데요,

이번 업데이트로 실내 맵에서도 최적화가 이루어지기 때문에

자신의 집이나 다른 분의 집에서도 쾌적하게 플레이하실 수 있습니다.







[워릭] 결국 DirectX 지원 방식을 바꾸지 않더라도

멀티코어 활용이나 다른 방법을 통해서도 끊김현상이나 프레임 드롭을 개선할 수 있고,

실제로 그렇게 하셨다는 말씀이군요. 그런데 아까 말씀하신 “로딩 방식 변경”이라는 것은 구체적으로 어떤 건가요? 


[바키] 이것도 영상을 보면서 말씀드리겠습니다.


<OX 퀴즈 입장 시의 로딩 속도를 비교해 보세요.>







[워릭] 확실히 로딩 시간이 많이 줄었다는 것을 느낄 수 있네요. 

그런데 [After] 영상에서 잠시나마 다른 캐릭터들이 하얀 마네킹으로 보였는데요, 이것은 왜 그런 거죠?


[바키] 네. 로딩 시간의 감소와 하얀 이미지가 “로딩 방식의 변경”과 관련이 있습니다.


지금까지는 맵에서 새로운 캐릭터를 만나게 되면

아이템 로딩, 프로필 다운로드, UGC 디지인 다운로드, 오브젝트 출력 등

많은 작업이 한꺼번에 동시에 처리되었습니다. 이 과정에서 끊김현상이 발생한 것이죠.

비유하자면 한 번에 너무 많은 음식을 먹어서 소화불량에 걸리는 것입니다.




지금까지는 하나의 메인 쓰레드에서 

요청에 대한 처리과정과 게임루프가 동시에 진행되었지요.

하지만 이번 개선을 통해, 요청에 대한 처리 과정을 별개의 로딩 쓰레드로 분리해 내고

메인 쓰레드에서는 게임 루프만 처리하도록 변경했습니다.


즉 캐릭터의 로딩 프로세스를 최적화하고

로딩을 분산시켜서 순차적으로 처리되게 변경한 것이죠. 

그 결과 끊김 현상도 제거되고 로딩 시간도 한 결 짧아졌습니다.


이 처리과정에서 다른 캐릭터들이 잠시 마네킹 이미지로 보일 수 있지만,

위 OX 퀴즈와 같이 한꺼번에 많은 캐릭터들이 갑자기 나타나지 않는 이상,

자주 경험하기는 어려울 것입니다. 물론 이 영역도 계속 고쳐나갈 예정입니다. 조금만 기다려 주세요. ^^







[워릭] 이번 업데이트로 최적화 개선 작업은 모두 종료되는 것인가요?


[바키] 최적화는 꾸준히 진행돼야 할 영역이기 때문에

단 한 번의 업데이트로 끊김현상을 100% 없애기가 어렵습니다.

따라서 앞으로도 다양한 테스트를 통해 

클라이언트 성능을 높일 수 있는 방법을 찾고 개선할 예정입니다.


몇 가지만 예로 들면, 메이플스토리2의 특성 상,

캐릭터들이 (UGC를 포함하여) 다양한 의상을 입고 있기 때문에

최적화가 까다로운 점도 있는데요, 이 역시 개선해 나갈 생각입니다.


또한 이번 업데이트에는 

유저의 PC에 맞게 최적화 옵션이 자동으로 조정되는

[자동 최적화 사용]이라는 기능도 [환경설정 > 최적화] 옵션에 추가됩니다.

이와 같은 기능을 앞으로도 보강하여 프레임 레이트를 더욱 높일 계획입니다.








[워릭] 이 인터뷰를 보고 계신 분들… 그 밖에 최적화 개선 소식을 들은 모든 분들께서

정말 많은 기대를 하고 계실 것 같습니다. 바키님도 그분들의 기대감을 느끼고 계시겠지요. 

솔직히 심적 부담이 크지요? 마지막으로 한 말씀 부탁드립니다.


[바키] 몇 개월 전쯤인가? 던전 입장을 위해 파티에 들어갔지요.

파티원 추가 모집을 위해 기다리던 중, 파티원분들께서 최적화 이야기를 하시더군요.

메이플스토리2는 최적화가 가장 큰 문제라고... 왜 안 고치는지 모르겠다고...

다른 파티원분들도 맞는 이야기라며 공감하셨고요. 저는 마음이 많이 무거웠지요.


하지만 아무리 마음이 무겁고 후회가 들어도... 결국 갈 길은 하나로 정해져 있는 것 같습니다.

묵직하게 열심과 최선을 다 하는 길이겠지요.






아직 미흡한 시스템이 있다면...개선하고...또 개선해서 좋은 시스템을 만들어 가다 보면...
우리 유저분들께서도 자연스레 인정해 주실 거라 생각합니다.

마지막으로 한 마디를 해야 한다면…
과거에도 그랬고, 지금도 그렇고, 앞으로도 같을 것 같습니다.

“열심히 하겠습니다. 그리고 잘하겠습니다. 진심입니다.”

감사합니다.