본문으로 바로가기

KGC 2013 참관기 - 둘째날

category 프로그래밍/KGC 참관기 2013. 9. 27. 00:55

첫째날 주요 부스행사는 거의 다 참여하였기에 바로 강연장으로 향하였습니다.


[둘째날 시간표]



첫번째 강연, '게임엔진 교체를 통한 게임 업그레이드 과정 (위메이드)' 를 들었습니다.

제가 지금 사용해본 게임엔진은 유니티 엔진이 전부지만, 차후에 어떠한 프로젝트에서 어떠한 이유로(극단적인 예를들자면 엔진제작사가 도산한다던가하는..) 엔진을 교체해야만 할 경우, 혹은 더 나은 엔진으로 플랫폼을 옮기는 그러한 연유가 생길 수도 있을 것 같다는 생각으로! 강연을 들어보았습니다.

위메이드에서 개발한 이카루스라는 게임을 예시로 크라이엔진1에서 크라이엔진3로 교체하는 과정에 대한 내용이었습니다. 아예 서로다른 제작사의 엔진이 아닌 엔진 버전업에따른 교체라는 점에 있어서 조금 실망(?)도 했지만 아직 접해보지 못해본 크라이엔진에 대한 부분설명도 들을 수 있었습니다. 위메이드에서는 이카루스는 크라이엔진1의 지나친 고사양화로 인한 문제들로 인해 이를 해결하기위해 안정화와 최적화를 초점으로 맞추고 크라이엔진3로의 업그레이드 작업을 단행했다고 합니다.


크라이엔진은 초기에는 고퀄리티 그래픽의 게임엔진을 목표로 출시했지만, 최근에는 이러한 고퀄리티의 그래픽을 보여주면서 최적화에 대한 부분쪽으로 발전하는 경향을 보이고 있습니다.


이러한 업그레이드는 같은 엔진의 버전교체여서 유사한 환경이라는 혜택도 작용했지만, 근본적으로 프로젝트의 구조적인부분에 대한 정리가 잘 되어있었기때문에 엔진업그레이드가 가능했다고 합니다. 이런 작업에 대한 일종의 팁으로는 우선 해당교체엔진에 대한 요구사항으로 컨버팅 후 수정작업을 최소화 하여야 한다고 합니다.



두번째 강연, '게임보안 : 안티-치트, 안티-봇, 안티-서버복제 그리고 솔루션 (엔시큐어)'로 본인도 몇몇 게임들을 크랙버전으로 사용해본 경험이 있고, 온라인게임상에서 버그를 악용 혹은 치팅프로그램을 통해서 플레이하는 유저들을 본 경험이 있습니다. 따라서 이러한 게임보안쪽에 관심이 많았던 터, 강연을 듣게 되었습니다.

현재 많은 게임 제조사들이 PC보단 콘솔에서 출시하는 경향이 많은데 (최근의 예를 들자면 GTA5) 이는 콘솔보단 PC가 리버스 엔지니어링에 취약하기 때문이며 이런 리버스엔지니어링으로 인한 피해가 매출감소에 직접적으로 영향을 주기때문이라고 하였습니다. 게임은 일반 소프트웨어와 달리 어플리케이션의 취약점 뿐만이 아닌 무결성 위협이 존재하며, 이 무결성 위협은 소스코드의 수정으로 해결이 불가능한 영역이라고 합니다. 일반적인 게임의 보안위협은 무결성 결점을 이용한 방법들이 많으며, 이러한 위협을 막기위한 안티 리버싱 기술들에대해서 소개하는 강연이 이어졌습니다.


간단하게 살펴보자면 안티리버싱 기술로는 소스코드내부 텍스트나 바이너리들을 난독화하여 분석작업을 방해하는 방법과, 프로그램의 커다란 흐름차트를 의도적으로 몇번 꼬아서 흐름을 난독화하는 방법, 디버거 사용감지, 체크섬을 통한 변조감지, 자가수리 방법등이 소개되었습니다.


강연을 듣다 보니 이러한 안티-리버싱기술들을 적용한 게임 핵감지 엔진들을 적용한 게임들의 퍼포먼스가 급격하게 떨어지는지에 대한 원인이 이런점들 때문이었구나 라는 생각도 들었습니다. (펑크부스터나가 적용된 게임들이 대표적이죠... D:)

결론은 안티-치트/봇/리버싱을 위해서는 프로그램의 분석을 봉쇄해야하며 이러한 분석봉쇄방법도 주기적으로 교체하여 분석을 어렵게 하여야 하여야 한다는 점이었습니다. 특히 스마트폰어플리케이션이나 게임같은 경우 프레임워크단위에서 프로그램이 만들어지고 하는 경향이 많은데 프레임워크단에서의 리버싱은 네이티브단에서 제작된 프로그램에 비해 리버싱이 매우 손쉬운편이므로 앞으로 이부분에 대한 문제해결도 필요할 것이라고 하였습니다. (인기있는 앱의 리버싱 비율이 iOS의 경우 92%가 Android의 경우 100%라고 하니까 말이죠)



세번째 강연, 'Unity 2D (유니티코리아)' 로 최근 유니티가 2D 개발툴까지 포함하여 새로운 버전을 내놓는다고 화제가 된 적이 있엇는데, 그 2D 부분에 대한 소개였습니다. 많은 사람들이 강연장을 찾았고, 자리가 없어서 서서 참관하시는 분들도 많았습니다.(본인 포함) 강연은 기술적인 부분보다 2D기능에 대한 소개가 주를 이뤄 조금은 아쉬웠습니다. 추가된 2D를 위한 기능은 다음과 같았습니다.


- 유니티 2D는 기존 에셋들 중 2D Toolkit과 PlayerMaker가 합쳐진 형태

- 2D 만을 위한 2D 카메라 뷰 추가

- 2D 이미지들을 위한 Depth와 Layer 기능 추가

- 2D 애니메이션은 메카님을 사용

- 2D 이미지를 바탕으로 하는 충돌체 영역기능 추가 (이미지의 모양에 따라 충돌체가 설정됨)


아직 4.3 클로즈 베타버전이라 세부항목들은 추가 및 수정될 수 있다고 하였습니다. 그리고 기존 플러그인 에셋(2D Toolkit 등..)의 정책에 대해서는 유니티가 그러한 기능들을 추가하여 플러그인을 잠식해 나가는 것이 아닌, 플러그인 제작사들도 유니티 자사의 고객인 만큼 공생관계로 갈 것임을 밝혔습니다.



네번째 강연, '소프트웨어 개발에서 버그관리의 모든 것 (블리자드)' 로 들었던 강연 중 유일하게 사진과 동영상촬영이 금지되었던 강연으로 무언가 블리자드에서 중요한 부분을 소개(자사의 프로토타입 게임으로 예시를 든다던가하는 것)하는 가 설레였던 강연이었지만, 그런 내용은 없었던! 강연이었습니다. 그간 몇몇 프로젝트를 해보면서 다양한 버그들에 대한 경험을 가졌었는데, 버그는 어떻게든 해결은 해서 문제없이 프로젝트를 마쳤지만, 보다 효율적이고 정석적인 버그관리 프로세스가 궁금했기에 이 강연을 듣게되었습니다.


버그란? 에러(인지하지 못한 에러 상황)를 잘못 핸들링할 경우 발생되는 것.


이러한 버그에 대한 연구는 차트/그래프를 통해서 어떤 모듈이나 영역에서 문제가 자주 발생되는 지 빈도를 파악 후 해당 모듈이나 영역의 버그 빈도가 높을 경우 모듈의 폐기혹은 다시짜기를 통해서 해결하는 것이 이상적이며, 크리티컬한 버그 같은 경우에는 개발목록과 일정에 추가하여 차후에 해결할 수 있는 방향으로 프로젝트 관리를 하는 것이 좋다고 하였습니다. 


- Right Process

- Zero Bug Policy

- One Box Testing

- Embedded QA

- Technical Debt

- Morning Bug Review Meeting


어찌보면 당연한 내용이었지만 가장 인상깊었던 부분은 Technical Debt 부분이었는데, 개발자가 프로젝트 개발시 사소한 부분(무시해도 좋다고 생각하는 자잘한 부분)이 차후 버그로 발전할 수 있으며(대부분 버그로 결국은 진화!), 팀 회의시에 이러한 부분들을 빚(Debt)로 쌓아놓고 차근차근 해결해나가야 한다는 점이었습니다. 마지막으로 강연자님께서 버그에 대한 자신나름의 세가지 원칙을 제시하였는데요, 다음과 같았습니다.


1. Make It Easy to Test

2. Test All the Time

3. Fix Root Cause


이렇게 두번째 강연 참관을 마쳤습니다. 5시부터 진행된 유니티 경품추첨 행사에 참여했기 때문에 마지막 세션 강연은 듣질 못하였습니다. :P 다행히!! 강연은 못 들었지만, 일행이 유니티 나잇 티켓에 당첨되어 행사 종료후 유니티 나잇에 참여할 수 있었습니다.



유니티 나잇, 유니티에서 주최한 행사로 KGC 일정 종료후 마련된 행사였습니다. 사전에 유니티커뮤니티등을 통해 홍보와 초대장 등이 배포되었으며 행사의 목적은 유니티 사용자간의 네트워킹모임의 장으로 마련되었습니다. 다만, 모두들 배고팠기에  배고픔을 채우는 장으로 ..  아무튼, 자유로운 분위기 속에서 마음것 배를 채웠습니다. (피자 3판이 20초만에 사라지는 기적!)


[행사장에는 간단한 요리와 간식들이 준비되어 있었습니다. (맥주도 함께!!)]



[유니티 높으신 분(아시아총괄 책임자분)과 사진도 찍을 수 있었습니다]


정말 배부르게 먹고 (테이블을 초토화!) 귀환할 수 있었습니다. 이렇게 두번째날 일정도 종료되었고 마지막 날만이 남았습니다. 


ps. 유니티에서 한국 공식 교육기관과 일종의 자격증인 인증제도를 본격적으로 시행할 움직임을 보이고 있습니다. 유니티 자격증이 실제 커리어에 어떤 도움이 될 지 모르지만 유니티 교육과 자격증에 관심을 가져봐도 좋을 것 같습니다.


'프로그래밍 > KGC 참관기' 카테고리의 다른 글

KGC 2013 참관기 - 셋째날(마지막)  (0) 2013.09.28
KGC 2013 참관기 - 첫째날  (0) 2013.09.25