

근데 초장기 프로젝트라 4년은 걸릴듯 ㅋㅋㅋ
2안만들고 1그래픽을 다시만든다고함
- 마비노기1 엔진 교체... 나오 비교... jpg
- 마비노기 언리얼5 영상
이왜진
- 현직개발자) 언리얼 전환이 허풍이 아닌이유
|
(명함 인증)
현직 개발자게이다.
난 게임쪽은 아닌데, 나도 2년동안 '차세대프로젝트' 라고해서 기존 그지같은 코드를 갈아엎고,
유지보수가 용이한 깔끔한 코드로 변경하되
기능은 동일한 제품을 만드는 작업을 회사에서 진행했었음.
처음에는 마비노기를 언리얼 엔진으로 갈아엎는다길래 나도 이게 무슨 개소린가 했는데,
곰곰히 생각해보니 생각보다 현실성 있어서 글을 적게 됨.
이 글은 아래의 순서대로 작성할 예정임.
- 언리얼 엔진으로 갈아타게 된 계기
- 차세대 프로젝트 성공의 핵심 키포인트
- 언리얼 엔진으로 갈아타겠다는 경훈이 말이 허풍이 아닌이유
## 언리얼 엔진으로 갈아타게 된 계기

뻔하지 않겠음? 카트라이드 드리프트 망해서지 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
라고하면 너무 예측에 불과하고.
생각보다 예전부터 준비는 많이 하고있었음.
https://job.incruit.com/jobdb_info/jobpost.asp?job=2212060000321
올해 초에 올라온 데브캣의 공고인데, 연구직같은 일을 하는 조직을 뽑는다고 공고가 올라옴.
이것저것 많은 시도는 해보고있었다는거임
그 와중에 카드립이 망해버리니까 사업적으로도 새로운 게임을 만들지 말고 마비노기를 갈아엎자는 결론이 나오게 된걸거임
사내에서도 당연히 가발 만들던 꼬라지보면 찬성했을건 당연했을거임
## 차세대 프로젝트 성공의 핵심 키포인트

( 차세대 프로젝트가 리팩토링과 100프로 일치하는건 아니지만 쓸 짤이 없어서..)
내가 차세대 프로젝트를 했을 때, 존나 힘들었던게 뭔놈의 프로젝트가 기획서가 없었음.
동작을 우리가 코드 다 뜯어가지고 파악하는 과정을 거쳤음.
이런짓을 하면 무슨일이 생기냐면, 분명 옛날 거랑 똑같은걸 만들어야하는데,
개선한다고 구라치고 똑같은걸 못만들고 병신같은걸 만들기 시작함
이런걸 피하기 위해서 꼭필요한게, 바로 "테스트 수트" 임
테스트 수트는 이 프로그램이 제대로 돌아가는지 확인하기 위해 각종 테스트로 무장해놓은 장치라고 이해하면됨.
원래는 자동화된거만 치긴하는데, QA가 빡세게 돌아가는 조직이라면 QA가 테스트 수트의 역할을 할수있음
테스트 수트가 잘 구비되어있다면, 개발자가 실수로 동작하나 몇개 빼먹더라도
"님, 이거 잘못짰는데요?" 라고 누군가 알려주기 때문에, 개발자가 큰 신경을 들이지 않고 빠르게 개발해도
테스트 수트가 없었던것에 비해 더 좋은 퀄리티를 만들수 있다는 장점이 있음.
우리도 QA아니었으면 아마 차세대 프로젝트 망했을듯...
## 언리얼 엔진으로 갈아타겠다는 경훈이 말이 허풍이 아닌이유
이 문단은 여러 얘기를 해야해서 다시 목차를 나눠봄
- 이미 준비되어있는 테스트수트
- 준?비 되어있는 언리얼엔진 개발
- 기존 모델을 언리얼 엔진으로 옮기기
### 이미 준비되어 있는 테스트 수트

한동안 넥슨게임들 전부 64비트 화 하겠다고 나선거 기억날거다.
몇가지 버그가 분명히 있긴했으나, 다행히 1달내에 잘 고쳐졌던걸로 기억난다
여기서 프로그래밍을 조금만 배운 사람이라면, "그냥 32비트 전용 클라이언트를 64비트 용으로 컴파일하면 그만아닌가요?"
라고 말할 수 있는데, 놀랍게도 맞는 말이다.
동작이 잘못되어서 온갖 좆버그를 니가 다 책임질수 있다면 말이다.
그래서 필요한게 테스트 수트다. 아까 차세대 프로젝트의 핵심 성공요인에서 계속 부르짓던 그 테스트 수트다.
이런 작업들은 대체적으로 개발자가 생각보다 할게 없음에도 어디에 좆버그가 터질지 예측이 안되기때문에
기존 동작이 잘 돌아가는지 확인할 방법이 필요하다.
하다못해 full QA라도 돌렸으니 그래도 아직까지 마비노기가 잘돌아가고 있는것 아닐까 싶다.
그래서 다행히 핵심성공요인이라고 강조한 테스트수트는 당연히 있을것이라고 생각함
### 준?비 되어있는 언리얼엔진 개발
당연히 다들 걱정했을 부분임. 마비노기 모바일은 시발 유니티인데 갑자기 웬 언리얼이냐?? 라고 할수 있다.

나도 동의는 한다...
그러나 언리얼이 유니티에 비해서 갖는 장점이 있음
유니티에서는 코루틴, 가비지 컬렉션과 같은 최?신 기술들을 이용해서
개발자들이 쓰레드관리라던가 메모리 관리라던가를 쉽게 해주는 장치들을 가지고있는 환경에서 개발해야한다.
그러나 우리의 마비노기는 무려 19년전 만들어진 틀딱 코드 플레이오네 기반.
당연히 낭만있게 쓰레드관리와 메모리 관리를 직접했을거고,
코드는 최대한 이런 낭만있는 시절의 코드에 맞춰서 제작되어있을것이다.
물론 최대한 다 코드를 드러내서 최?신 기술을 접목시키러 갈수도있지만
언리얼이 있는 시점에서 클라이언트의 핵심 동작들을 바꾸는 모험까진 하지 않은 모양이다.
그렇다면 이제 그래픽 작업은 결국 새로 처음부터 해야하는건데...
난 다행히 이번 쇼케이스를 보고 안심했다.

마비노기가 그렇게 울부짖던 카툰렌더링이라는 말 기억하지?
3D게임의 대부분의 그래픽처리는
데이터 쪼가리로 만들어져있는 3D 폴리곤 -> 모니터에 뿌려주는 렌더링
의 과정을 따르게된다.
이 때 렌더링을 어떻게 결정짓냐에 따라서 같은 3D폴리곤, 같은 엔진이어도 완전히 다른게임을 만들수있다.
극단적인 예시가 길티기어임

길티기어라는 2D 격투게임은, 완벽한 애니풍 그래픽을 구현했으나 이 모든 게임들은 전부 3D로 구현되어 있다.
길티기어팀도 언리얼엔진에 렌더링 마개조를 해서 3D 모델을 2D처럼 보이게 성공한거임
마비노기도 쇼케이스에서 보여준건 생각보다 그래픽 질감이 원작과 유사하다는 인상을 많이 받았음
물론 한계는 있긴함. 배경같은걸 안보여줘서 최적화 이슈가 있을수도있고
배경이 복잡한 맵에서는 최적화는 둘째치고 쉐이더같은 세부 값들은 더 건들이긴해야함
그래도, 저 정도 되어있으면 마비노기 팀이 언리얼 엔진에 대한 이해도가 어느정도되어있으며,
렌더링 과정과 클라이언트의 다른 동작을 독립적으로 해도 무방할 정도까진 온거임
즉, 빠르게 개발을 착수하기 좋은 환경까진 온거임
### 기존 모델을 언리얼 엔진으로 옮기기
물론 새로만들수도있다고 생각은 함. 맵이나 몹정도는 걍 이참에 새로만들수도있지만
우리가 돈주고 가챠로 뽑은 옷들은 그럴수없겠지?
근데 이거는 전혀 걱정할 필요가 없는게..

니들 다 언팩해서 가지고 놀고다녔었자나 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
우리도 하는걸 왜 못함?
라는걸 좀더 기술적으로 얘기하면, 각 회사들마다 3D 데이터를 텍스트 파일로 저장하는 방식이 조금씩다름.
그래서 이걸 각 회사의 툴들로 옮기기 위해서는 변환(컴파일) 작업이 필요한데...
이게 언팩에서 에셋추출해서 가지고 놀던 과정과 정확히 같다.
그래서 사실, 이부분은 전혀 걱정할 필요가 없는것이다.
## 결론
경훈이가 1~2년내에 언리얼 적용한다는 호언장담을 할정도면
적어도 언리얼 적용을 하기위해서 어떤 작업들이 필요한지는 로드맵은 내부적으로 다 그려놓은 상태라는건데,
나도 따로 (내추측이지만) 로드맵을 그려보니 생각보다 이미 마비노기 팀내에서 준비된 작업들이 많아서 놀랐음

생각보다 언리얼 엔진 적용 1~2년 안에 된다는 현실적인 얘기인듯하니,
그러니 우리는 안심하고 던전 좆뺑이만 치면됨. ^^
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.