모듈화, End-to-end 원칙, 그리고 Fate-sharing

게임 서버처럼 규모가 큰 시스템을 구현할 때, 우리는 일반적으로 관련된 기능을 묶어서 다루게 된다. 그리고 그걸 “모듈 (Module)” 이라고 부른다. 시스템 모듈화는 처음 시스템을 만들 때 모듈단위의 점진적 구현이 가능하게 한다는 점도 있지만, 추후 시스템 갱신 시 손 대야되는 것의 범위를 한정해준다는 점에서 더욱 중요하다. 다시 말해 시스템 기능이 변경 될 때 전체 시스템을 모두 바꾸는 것이 아니라 관련된 모듈만 교체할 수 있는 것이다.

이때문에 모듈은 단순히 관련된 기능의 집합으로서 “적당히” 모아 두는 것이 아니라, *잘 정의된 (well-defined) 최소한의 (minimal)* 인터페이스를 갖도록 구현되어야 한다. 그래야만 모듈이 변경될 때 미치는 영향을 최소화할 수 있고, 모듈 자체도 인터페이스를 유지하는 한 내부 구현에 대해 자유도를 가질 수 있다. 이런 이유로 모듈화는 시스템 구현에 있어서 중요한 원칙 중 하나이다.

그런데 모듈을 단순히 코드 단위로 묶이는 물리적 단위로 생각하는 것보다 프로세스나 기계 혹은 이들의 클러스터 단위로까지 묶일 수 있는 논리적 단위로 생각하는 것이 좋다. 그러니까 같은 서브디렉토리 아래 있는 소스 파일들이나 라이브러리 뿐만 아니라, 특정 유사 기능을 묶어서 프로세스나 기계로 나눠주는 것도 모듈화다. 예를 들면 우리가 게임 서버에서 구글 플레이 인증을 검증하기 위해서 구글 서버에 REST API 로 접근하게 되는데, 이때 API 를 받는 것이 하나의 프로세스일지 한대의 기계일지 기계들의 집합일지 알 수 없지만 (물론 구글이 처리하는 요청량을 볼 때 당연히 기계들의 집합일 것이다) “인증 검증” 이라는 특정 기능을 전담하는 구글 서버는 그것 자체로 하나의 서비스로도 이해될 수 있고, 전체 “게임 시스템”이라는 측면에서는 외부 모듈로도 이해될 수 있다. 그리고 REST API 가 앞에서 설명한대로 그 모듈의 인터페이스고 우리는 구글이 그 인터페이스를 바꾸지 않는 한 구글 엔지니어가 인증 처리를 더 효율적으로 하기 위해서 내부에서 코드를 바꾸는 것에 개의치 않는다.

그러면 모듈은 어떤 단위로 나누는게 좋을까? 그리고 기계단위로까지 모듈이 흩어질 수 있다면 모듈은 어디서 구현되어야 할까? 그리고 모듈이 상태값 (state) 를 가져야될 때 그건 어디에 저장되어야 될까?

모듈을 어떤 단위로 나눌까 하는 문제에 있어 컴퓨터 네트워킹 쪽에서 주로 사용하는 방법은 “계층 (layer)” 단위로 나누는 것이다. 우리가 사용하는 TCP/IP 역시 이 계층화 원칙에 따른 결과물이다. HTTP 로 게임 서버와 통신하는 것을 예로 들어보면, 1) 802.11a/b/g/n/ac 이라는 물리 규격 계층 위에 2) 안정적인 전송을 보장하지는 않지만 최대한 보내려는 노력은 해주는 (best-effort) IP 계층이 존재하고, 3) 그 위에 전송의 안정성을 보장하는 TCP 계층과 4) TCP 연결이 끊기더라도 사용자 정보를 유지할 수 있게 하는 HTTP 세션 계층, 5) 끝으로 그 위에 게임 서버-클라이언트 프로토콜이라는 게임 애플리케이션 계층이 존재하는 것이다.

그럼 네트워크에서 하나의 프로토콜 계층이 하나의 모듈 단위라면, 앞에서 말한 “잘 정의된 최소한의 인터페이스” 라는 건 어디에 존재하는 걸까? 정답은 프로토콜 헤더다. 상위 계층은 하위 계층의 기능을 이용하기 위해서 하위 계층의 헤더를 채워야하고 (아마 어떤 독자는 그런 헤더를 직접 채운 적이 없어서 의아해할 수도 있는데, 여러분이 사용하는 소켓 라이브러리가 이 헤더를 채워주고 있다), 하위 계층의 헤더에 존재하지 않는 건 쓸 수 없다. 일부 프로그래머들은 프로토콜 헤더를 통신을 위한 단순한 더미로 인식하고 있는 경우가 많다. 그러나 프로토콜에 있어서 핵심은 헤더라고 해도 과언이 아닐 정도로 특정 프로토콜이 할 수 있는 것과 할 수 없는 것은 헤더 포맷으로 결정 되며, 최대한 단순한 인터페이스라는 측면에서 프로토콜 헤더에 새로운 필드를 추가하는 것은 신중해야된다.

그럼 프로토콜 헤더에 뭔가를 추가하는 것이 신중해야된다고 했는데, 넣어도 되고 안되고는 어떤 기준으로 판단할 수 있을까? 이 기준의 좋은 예가 “End-to-end 원칙”이다. 양쪽 끝단 (end) 이 통신하면서 어떤 기능이 필요하다고 했을 때, 아랫쪽 계층에 그 기능이 들어가도 되는지에 대한 가이드라인인데, 이 원칙은 관점에 따라 여러 방식으로 표현되고 이해될 수 있다.

먼저 해당 계층이 자기의 힘만으로 그 기능을 완벽하게 구현할 수 없다면 그 기능을 넣어서는 안된다. 즉, 불완전한 기능을 넣어서는 안된다는 뜻으로 이해할 수 있다. 불완전한 기능은 쓰기에 부적합해서 어차피 양 끝단 (상위 계층)에서 같은 기능을 직접 만들어야 되는 상황이 발생하기 때문이다.

다른 관점으로는, 만일 해당 기능이 양 끝단 (상위 계층) 에서 충분히 만들 수 있다면 아래 계층에 그 기능을 넣지 말아야 한다. 그러니까 아래 계층은 윗 계층이 할 수 있는 일을 대신하는게 아니라 할 수 없는 일에 집중해야된다는 뜻이다. 다만 예외적으로 높은 성능 향상이 있는 경우는 아래 계층에 포함 시킬 수 있는데, 이때도 해당 기능을 쓰지 않는 다른 상황이 부가적인 오버헤드를 겪어서는 안되야만 한다.

이 원칙은 네트워크 통신의 계층화 뿐만 아니라 다른 경우에도 적용해 볼 수 있는데, 예를 들어 여러 게임에 사용될 공통 라이브러리를 만든다고 했을 때, 어떤 기능이 그게 사용될 게임의 특성을 알아야만 하는 것이라면 일반적으로는 라이브러리에 포함되서는 안되고, 개발 시간 단축이나 라이브러리 내부 구조를 모르고 만들 때 보다 큰 성능 향상의 메리트가 있다면 고려해볼 수 있다. 다만 해당 라이브러리를 쓰는 다른 게임들이 그 기능 때문에 라이브러리를 쓰는게 복잡해지거나 성능 하락을 겪어서는 안된다.

End-to-end 원칙은 네트워크 계층 설계에 핵심적인 원리지만, 사실 현실 세계에서는 이 원칙을 의도적으로 무시하는 경우들이 존재한다. 예를 들어 우리가 사용자들이 가끔씩 광고를 보는 조건으로 무료 WiFi 를 제공한다면 광고를 끼워 넣기 위해서는 양 끝단의 통신 (end-to-end) 에 무선 공유기가 끼어들 수 있어야할 것이다. 또한 우리가 게임을 서비스할 때 로드밸런서를 사용한다면, 게임 클라-서버의 통신이라는 end-to-end 중간에 로드밸런서라는 장비가 끼어든 것이기도 하다. 비슷하게 보안장비나 torrent 트래픽을 별도로 처리하기 위한 QoS 장비들 역시 end-to-end 를 의도적으로 깨는 경우다. 그러나 이런 것들은 end-to-end 원리가 무의미하다는 뜻이 아니라, 커뮤니케이션이라는 본연의 목적 외에 관리 목적 때문에 의도적으로 위반하고 있는 것으로 이해하는 것이 맞을 것 같다.

끝으로 분산 환경에서 상태값(state)은 어디에 저장하는 것이 좋을까? 이에 대한 가이드라인이 Fate-sharing 원칙인데, Fate-sharing 원칙은 상태값을 이용하는 객체가 상태값을 관리하게 해서 둘이 운명을 공유하게 (fate-sharing) 해야된다는 뜻이다. 이는 해당 객체가 죽는 경우 상태값을 지워줘야 되는데, 만일 상태값이 다른 곳에 저장 된 경우, 해당 객체가 죽었는지 살았는지를 계속 확인하지 않는 한 죽은 객체의 상태값이 남을 수 있기 때문이다. 우리가 모바일 게임을 개발해서 TCP/IP 연결을 맺더라도 이 연결에 대한 소켓 정보는 게임 서버와 스마트폰의 OS 레벨에서 저장이 될 뿐 중간에 거치게 되는 라우터에는 저장이 되지 않는 것도 이 원칙에 의한 것이다. 그리고 이처럼 중간에 있는 객체가 상태에 대한 정보를 가지고 있지 않으면, IP 가 중간에 포워딩 경로를 바꿀 수 있는 것처럼, 양 끝단 (end-to-end) 은 중간에 커뮤니케이션 경로를 바꾸는 등 자유도가 높아질 수도 있다.

만일 Fate-sharing 원칙을 적용하기 어려운 경우 대안으로 저장되는 상태값을 soft-state 로 유지하는 방법도 가능하다. Soft-state 는 상태값이되 일정 시간이 지나면 사라지는 상태값으로써, 상태값을 쓰는 객체가 주기적으로 상태값을 갱신하게끔 해서 만일 그 객체가 죽는 경우 일정 시간 뒤에는 상태값이 자동으로 소멸되는 것을 보장한다.

이로써 지난 세번의 컬럼을 통해 시스템 설계에 대한 전반적인 이야기를 했다. 첫 컬럼에서는 시스템 설계에 있어서 우선 순위 설정에 따라 시스템의 모습이 달라짐을, 두번째 컬럼에서는 이 관점에서 TCP/IP 가 어떤 우선 순위로 설계 되었는지를, 그리고 이번 컬럼에서는 시스템 설계에 적용되는 일반적 원칙들을 살펴보았다. 다음 컬럼에서는 본격적으로 게임 서버에 대해서 이야기 나누도록 하겠다.

아이펀팩토리 문대경 대표

[GDC 2016] GDC 2016 엑스포 현장공개!

개발자들의 축제! GDC 2016 엑스포 현장공개!

GDC 로비
▲ 출처 : Officail GDC / GDC의 열기를 느낄 수 있는 로비의 모습

▲ GDC EXPO 도입

올해로 30회를 맞이한 세계 최대 규모 게임 개발자 컨퍼런스인 ‘GDC(Game Developers Conference) 2016’ 엑스포 정문의 모습입니다. GDC는 세계에서 가장 큰 규모의 개발자 축제로 게임업계에 종사하는 수 많은 개발자들의 지식과 정보를 공유할 수 있는 자리입니다. 업계 가장 최신 트렌드를 볼 수 있는 장소입니다. 거기다 전 세계의 개발자들을 한자리에서 만나 볼 수 있다니 이만큼 매력적인 일이 있을까요? 보통 첫날은 조금은 한산하기 마련인데 개막 첫 스타트부터 열기가 가득한 모습이었습니다.

아이펀팩토리는 이번 GDC 2016 에 한국공동관 전시 부스로 참여하였습니다.
개발자들의 열정과 열기가 가득한 GDC 엑스포 생생한 현장의 모습, 아이펀팩토리가 담아보았습니다.

▲ GDC  입장을 위해 등록데스크에줄서 있는 모습 

GDC 입장을 위해 길게 늘어선 줄입니다. 개발자분들의 열기를 한껏 느낄 수 있는 풍경이었습니다.

▲ GDC 한국공동관(좌)/ 한국공동관안에 아이펀팩토리 부스(우)

GDC 엑스포의 중앙 명당자리에 위치한 한국 공동관의 모습입니다. 이번 GDC 한국 공동관에는 ‘아이펀팩토리’를 비롯하여 각종 기술 솔루션업체부터 국내 게임 개발사, 그리고 대세 중의 대세인 VR까지 다양한 한국 기업의 참가로 다채롭게 이루어졌습니다.

7▲ GDC 아이펀팩토리 부스 미팅 중인 모습

플래쉬 애니메이션으로 재밌게 제작하여 방문객들의 눈길을 사로잡은 아이펀팩토리의 서비스 운영툴 ‘아이펀 디플로이’의 소개영상입니다. 혹시 서비스 운영툴 ’아이펀 디플로이’가 궁금하신분들은 이곳을 클릭해 주세요. (아쉽게도 아이펀 디플로이 소개영상은 영문으로만 지원하고 있습니다. )

 

▲ 일렉스 홍보관(Clash of Kings)

GDC 엑스포에서 굉장히 반가운 얼굴을 볼 수 있었습니다.  바로 손예진씨와 소지섭씨인데요!  GDC 클래시 오브 킹즈(Clash of kings)부스로 참여한 일렉스 홍보관에서는 광고모델인 두 사람의 모습을 볼 수 있는 광고영상이 플레이되었습니다.  타국 광고판에서 만난 연예인의 모습은 지인을 만난 것처럼 반가웠습니다.

 

▲ GDC 플레이에서 게임을 체험하고 있는 모습

GDC 참관객들을 위한 휴게 공간과 중소 게임 개발사들의 다양한 게임을 즐길 수 있는 ‘GDC 플레이’ 이벤트 부스 입니다. 직접 게임을 체험해 볼 수 있어 다양한 게임을 즐길 수 있었습니다.

 

▲ 컬러감이 돋보이는 구글 부스

멀리서도 눈에 딱 띄는 구글의 아이덴티디가 돋보이는 구글 부스 입니다. 구글의 메인 컬러들의 조합으로 꾸며진 구글 부스는 경쾌함이 느껴지는 장소였습니다.

 

▲ IGF 인디 개발사 부스(좌) / 인디게임 체험중인 개발자들(우)

VR과 함께 이번 GDC 2016에서 주목을 받은 이슈 중 하나인 인디게임 부스입니다. 전 세계 인디게임을 소개하는 부스로 자리에서 직접 게임을 즐겨보고 설명을 들을 수 있었습니다.

 

이번 GDC 2016에서 가장 큰 이슈 한 가지를 꼽는다면 당연 VR이라 말씀드릴 수 있을 만큼 대다수의 참가부스에서 VR을 만나볼 수 있었습니다. GDC의 부대행사로 VRDC(Virtual Reality Developers Conference)도 열리고 행사장 안에 VR Lounge를 만들어 10여개의 게임을 VR로 체험해볼 수도 있었고 엑스포에 참여한 기업들 중에서도 VR 기기나 그와 관련된 소프트웨어를 소개하는 업체가 꽤 많았을 정도로 게임업계의 VR에 대한 뜨거운 관심을 느낄 수 있었습니다.

15▲ 플레이스테이션 VR 체험 공간

GDC 전시회장 한가운데에 위치한 플레이스테이션의 체험공간입니다. 모바일 앱으로 예약 신청을 하고도 몇 시간씩 줄을 서서야 겨우 입장을 할 수 있었는데요. 그만큼 VR에 관심도가 높음을 느낄 수 있었습니다.

 

16▲ 에픽게임즈 단독 부스

GDC에서 가장 주목 받은 VR을 놓치지 않고 에픽게임즈도 VR개발툴을 공개했습니다. 곧 테스트를 ‘파라곤’과 VR에디터 등에 대한 개발자들의 많은 관심을 알 수 있듯이 에픽게임즈의 부스는 굉장히 붐볐습니다.

 

오큘러스▲ 오큘러스 VR 체험관

오큘러스의 VR 체험관의 모습입니다. 최신 오큘러스만의 VR 기술을 선보여 개발자들의 폭발적인 호응을 볼 수 있었던 부스였습니다.

 

18▲ XBOX 로비바

사우스홀 로비에 크게 자리잡고 있는 마이크로소프트 로비바입니다. Xbox 체험 공간과 함께 한쪽에선 간단한 마실거리(주류도 있었어요)를 판매하여 굉장히 자유로운 분위기의 부스였습니다.

 

19-1▲ 인텔 게임 체험 존

인텔에서도 체험 공간을 운영하고 있었어요. 실제로 탑승한 것 같은 리얼리티를 느낄 수 있는 게임 체험존이 준비되어 있었습니다.

 

▲ 이탈리아 공동관

이탈리아 공동관에서도 많은 개발자들의 미팅이 이루어지고 있었습니다. 세계 각국의 개발자들을 한 자리에서 만나볼 수 있는 GDC의 매력이 한껏 느껴지지 않나요?

 

24▲ GDC Career Center

세계 여러 나라의 기업들이 취업상담 부스에 모여 숨은 인재를 찾기 위해 채용박람회인 ‘커리어센터’도 열리고 있었습니다. 인재를 찾고 있는 기업이 간단한 기업소개를 할 수 있는 시간을 갖고 관심 있는 구직자들이 찾아가서 듣는 형식의 채용박람회였습니다.

 

세계 각국의 다채로운 게임과 국경없는 기술공유의 축제였던 GDC 2016, 이번 GDC 2016 출장으로 전 세계 개발자들의 노하우를 한자리에서 볼 수 있었던 멋진 경험이었습니다. 내년에 더 풍성해진 아이템들을 기대해보며 포스팅은 이만 줄이겠습니다.

– 아이펀팩토리 사업팀 훈남 1호 –

[GDC 2016] 아이펀팩토리 개발자가 말하는 “GDC 2016 최고의 이슈”

아이펀팩토리 개발자가 말하는 “GDC 2016 최고의 이슈”

1. 대세 중의 대세 VR 체험기 – 파라노말 액티비티(htc vive)

2016년도의 GDC의 가장 큰 화제는 단연코 VR기기를 이용한 게임들이었습니다. 회장 한 켠에 마련된 데모 시연 부스에서는 컨퍼런스 참여자들이 직접 게임을 해볼 수 있도록 준비가 되어있었습니다. 컨퍼런스 첫날인 월요일에 예약을 했음에도 불구하고 수요일까지 모든 예약이 꽉 차 있을 정도로 열기를 느낄 수 있었습니다. 다행히 목요일에 기회가 되어 파라노말 액티비티 게임을 VR로 즐길 수 있었습니다.

VR1
▲ 파라노말 액티비티 VR 체험 모습

 

VR▲ 세계적인 유튜브 스타로 발돋음 할 아이펀팩토리 미녀 개발자님의 VR 체험 모습 / 유튜브 13만 조회 돌파 / 출처 : 유튜브 ICN – Paranormal Activity  (체험영상 보기)

VR 추가2파라노말액티비티 실제 사용자 화면 / 출처 : 유튜브 ICN – Paranormal Activity (체험영상 보기)

진행은 일반적인 호러게임의 큰 요소를 충실히 따릅니다. 오디오를 이용한 긴장감과 시야를 제대로 확인할 수 없는 어둠, 적절한 곳에 놀라는 요소를 배치하여 게이머의 긴장감과 스릴을 극대화 시킵니다. 데모에서 게이머는 손전등 하나를 들고 불이 꺼진 대저택을 탐험하다 여러 이상 현상을 만나게 됩니다. 짧은 플레이타임이었지만 일반적인 PC게임과 비교했을 때 손색없을 정도의 분위기와 구성이었습니다. 다만 시야를 돌리면 더 이상 보이지 않는 모니터와는 다르게 시야를 돌려도 게임 내 공간이라 심약자에겐 충분한 주의가 필요할 듯 보였습니다. 실제로 시연에 참여한 여러 게이머들이 컨트롤러를 집어 던지거나 주저앉는 등 일반적 호러게임 혹은 영화에서 보일 수 있는 반응보다 더 격렬한 반응을 보여 주변을 즐겁게 해주기도 했습니다. 본인에겐 즐거운 경험이었을지는 모르겠지만요.

이 외에도 에베레스트를 등반하는 게임, 매가 되어 비행을 경험하는 게임 등 많은 새로운 컨셉의 게임이 회장 내 부스를 메우고 있어, VR 기기에 대한 열기를 확인할 수 있었습니다. 취재진의 열기 또한 뜨거웠는데요, IGN과 같은 여러 게임 매체에서도 취재를 나와 열기를 더했던 시간이었습니다.  이러한 열기가 많은 개발사들의 참여로 이어져 2017년 GDC에는 더 많은 VR 게임들이 소개되길 바랍니다.

– 아이펀팩토리 개발팀 차도녀 작성 –

 


 2. diablo post mortem – David Brevik

david brevik  1
▲ 출처 : Official GDC / 전설적인 개발자 ‘데이비드 브레빅’의 강연 모습

GDC 세션 중 가장 인기가 많은 세션을 고르라면 해당 세션을 빼놓고 얘기 할 순 없을 겁니다. 97년에 출시된 게임임에도 불구하고 수많은 사람들로 인산인해를 이룬 건, 이들에게 있어 이 전설적인 게임은 이들의 인생에 큰 획을 그었거나 지금의 직업을 선택하게 된 계기가 되었기 때문이겠죠. 실제로 세션 종료 후 Q&A 시간에 많은 이들이 자신의 학창시절이 디아블로로 인해 얼마나 망가졌나 웃으며 고백하는 시간이 되기도 했습니다.

david brevik  2
▲ 출처 : Official GDC / 강연장을 가득 채운 개발자들의 열기

그런 디아블로를 당시 리드 프로그래머였던 데이비드 브레빅이 시작부터 끝까지 하나하나 직접 해부해주었습니다. 개발 뒷 이야기는 덤. 이번 세션을 통해 백발의 개발자는 디아블로는 둠이나 넷핵과 같은 여러 게임에서 영감을 받았다고 고백했는데요, 그 중 하나가 바로 엑스컴이었습니다.

처음 기획은 isometric 형식의 턴제 게임이었답니다. 이를 위해 엑스컴에서 말그대로 “스크린샷처럼 타일을 찍어” 붙여 넣었다더군요. 그래서 지금도 타일 크기를 비교하면 두 게임이 동일하다고 합니다. 하지만 개발이 진행되던 중 게임의 기획이 턴제에서 실시간 액션으로 바뀌었고 리드 프로그래머로써 많은 불만을 가졌다고. 하지만 그런 불만은 개발이 끝나고 스켈레톤을 워해머로 내려침과 동시에 희열로 바뀌었답니다. “It was awesome!”

그 외에도 많은 뒷 이야기들로 세션 참여자들을 즐겁게 해주었는데요, 그는 캐릭터 제작에만 25분이상이 걸리는 기존 RPG게임들을 싫어해서 단순한 UI를 고집했답니다. 이를 위해 한 것이 “엄마 테스트”. “우리 엄마가 이걸 할 수 있나?”라는 명제를 가지고 접근을 하여 지금의 직관적인 디아블로 UI가 탄생했습니다.

지금 30-40대 게이머들에게 있어서 디아블로는 듣기만 해도 흥분되는 단어일겁니다. 디아블로2의 문이 활짝 열리는 그 순간에 피씨방에선 환호성이 터져 나왔을 정도였으니까요. 그리고 앞서 얘기했던 것처럼 많은 분들의 학창시절 성적을 지옥으로 끌고 간 주범이며, 불법복제의 범람의 시작이었습니다. 실제로 세션 참가자 중 한 분은 자신의 불법복제 사실을 고백하며 브레빅에게 뒤늦게나마 게임 값을 지불하기도 했습니다. 그 분도 자신의 강렬한 경험을 그런 일로 더럽히고 싶지는 않으셨던 거겠죠. 저 역시 제작자를 직접 만나 뒷 이야기를 듣고 세션장 안의 그 많은 사람과 같은 경험을 공유하였다는 사실에 가슴이 벅차 오르는 시간이었습니다. 앞으로도 더 많은 사람들에게 전율을 느끼게 해주길 기대합니다.

– 아이펀팩토리 개발팀 곱창집 아들 작성 –

 


 3. 5 mistakes by good teams that produce bad free-to-play games – Don Daglow

댄 더글로 사진
▲ 출처 : Don Daglow blog / Don Daglow의 프로필 사진

게임계의 살아 있는 전설을 만나는 시간이었습니다. Don Daglow. 퍼스널 컴퓨터가 발명되기도 전인 1971년부터 게임을 디자인한 사람이며, 최초의 컴퓨터 야구 게임의 개발자이자, 첫번째 컴퓨터 RPG 개발자이며 페르시아의 왕자 개발에도 관여했으며 네버윈터 나이츠와 에버퀘스트, 월드 오브 워크래프트를 만든 전설입니다. 연혁과 위업을 늘어놓자면 한도 끝도 없겠군요. 운 좋게도 저는 이번 GDC를 통해 이분의 조언을 듣는 기회를 가지게 되었습니다.

사실 세션을 듣고 난 뒤, 개인적으로 느끼기에 이 교훈들은 Free-To-Play 게임들에만 국한된 것이 아니라고 생각합니다. 이 분의 경험을 통해 삶 속에 녹아있는 교훈들을 전해준다는 느낌을 받았기 때문이죠.

서두는 게임의 진정한 악은 비즈니스 모델이 아니라는 이야기로 시작했습니다. 오히려 비즈니스 모델을 수립하고 그에 대한 추정치(KPI같은)들로 게임의 방향을 결정하는 것이 진짜 위험한 일이라고 말했죠. 이러한 추정치들에 사로잡히다 보면 생각이 제한되고 이로 인해 정작 해야 되는 행동들을 하지 못하는 경우가 생길 수 있다고 전했습니다.

또한 게임에 있어서 첫날 화려하고 할 것이 많은 것보다 시간이 지날 수록 부담이 적고 쉽게 익숙해질 수 있는 게임이 낫다고 봤습니다. 전자의 경우는 얼핏 보기엔 화려해 보이지만 유저의 입장에선 시간이 지날수록 이러한 것들은 고통이 될 수 있다는 게 근거였습니다.

그리고 요즘 많은 개발사들이 포럼의 유저 피드백을 중요시 여기는데, 물론 이 또한 중요하지만 그에 못지 않게 중요한 것이 수치, 통계 그리고 데이터라고 했습니다. 포럼에 활동적으로 피드백을 올리는 유저는 플레이하는 유저들 중에서도 매우 한정적인 집단이기 때문에, 이러한 얇은 유저층에 휘둘리게 된다면 오히려 놓치는 것이 많을 것이니 그보다 데이터에 집중하는 것이 나을 것이라고 했습니다. 하지만 또한 이러한 숫자들이 모든 것을 알려주지는 않을 것이라며 두 가지 방식을 적절히 섞어 사용하는 것을 제안하기도 했죠.

이번 GDC는 여러 방면에서 지평을 넓힐 수 있는 좋은 기회였습니다. 특히나 이러한 경험이 많은 원로 게임 개발자들의 생각을 엿보고 조언을 들을 수 있는 시간이야말로 무엇과도 바꿀 수 없는 소중한 것이었던 것 같습니다. 어떻게 보면 이러한 조언들은 단순히 게임 개발에만 국한되는 것이 아니고 조금 생각을 달리하면 삶에도 적용할 수 있는 그런 것들이었습니다. 어느 한 분야의 정점에 달하면 그 끝은 하나로 귀결된다고들 하던데 정말로 그러한가 봅니다. 기회가 된다면 이분의 다른 세션들도 들어보았으면 좋겠네요. 이로써 GDC 2016 참여 후기를 마칩니다.

– 아이펀팩토리 개발팀 곱창집 아들 작성 –

[GDC 2016]“GDC 번 외 맛집 탐방”


아이펀팩토리 GDC 탐방기 “GDC 번외 맛집 탐방”

[ 한끼도 한식을 먹지 않으면 입안에 가시가 돋는 한국여성개발자의 GDC 맛집 추천 ]

내년 GDC 2017 방문 계획이 있는 분들에게 강력 추천 드리는 한식 매니아도 푹 빠진 미쿡 맛집코스
지금 시작합니다!

Super Duper Buger
영업시간: 오전 07:30 ~ 오후 11:00
위치: 721 Market St, San Francisco, CA 94103 미국

1
▲두꺼운 패티가 먹음직스러운 Super Duper 버거
이른 아침 배는 고프고 문 연 곳은 없고 배가 고프시다면 슈퍼두퍼 버거를 찾아가세요! 만사 OK입니다!! 슈퍼 두퍼의 햄버거는 미니 사이즈가 우리나라 일반 햄버거 사이즈라 한국에서 1인분으로 배부른 사람이라면 미니 사이즈 버거를 강력 추천 드립니다.(물론 1인분의 기준은 모두 다르겠지만 평균을 기준으로 생각해 주세요^^) 그냥 미니가 미니가 아니랍니다. 체인점이지만 수제버거의 맛이 나며!!(ㅇ_ㅇ)
한입 베어 물었을 때 입안 가득 풍미가 느껴지는 육즙을 느낄 수 있는 패티가 인상적인 버거입니다. 게다가 아침에 문을 연 식당이 없을 때 오전 7: 30분부터 영업을 하는 곳이라 바쁜 출장일정에도 여유롭게 식사를 해결하실 수 있어요.

 

Boudin Bakery

영업시간: 오전 07:00 ~ 오후 05:30
위치: 170 O’Farrell St, San Francisco, CA 94102 미국
2
▲든든한 샌드위치와 고소한 클램 차우더
GDC의 세션 시작이 9시 반이므로 7시부터 영업을 시작하는 Boudin Bakery에서도 아침을 먹을 수 있었어요. 체인점이기 때문에 구글 맵에서 Boudin Bakery를 검색을 하면 모스콘 센터 근처 여러 지점을 쉽게 찾으실 수 있어요. 게다가 Boudin Bakery에는 클램 차우더가 굉장히 유명한 곳이에요. 조개와 부드러운 스프의 조화! 찬 바람이 부는 요즘 같은 날씨에 피로를 싹 날려주는 맛이에요. 샌프란시스코에 오면 Boudin Bakery의 클램차우더를 꼭 먹어야 한다는 말이 있을 정도로 강력 추천 드리는 메뉴입니다.

**클램 차우더 주문 시 주의사항! 꼭 브레드 볼, 빵 그릇에 담아달라고 하세요. 빵과 함께 먹어야 더 완벽한 맛을 느낄 수 있습니다. 그리고 빵까지 드셔야 식사 대용으로 든든한 한끼를 드실 수 있어요.

그리고 아이스 아메리카노

유럽에는 아메리카노가 없다. 하지만 미국에는 있다! 하지만.. 전 뜨거운 커피를 좋아하지 않는데 이 카페에는 아이스 아메리카노가 없었어요. GDC 참석을 위해 샌프란시스코에 머무는 일주일간 늘 아이스 아메리카노 주문을 시도해보았지만 아이스가 없다고 하는 가게가 많이 있었어요.

 

TAP 415
영업시간: 오전 11:30~오후 9:30
위치: Westfield San Francisco Centre,845 Market St,San Francisco, CA 94103,미국

3
TAP 415의 점심 메뉴
TAP 415는 GDC 컨퍼런스가 열리는 모스콘 근처에서 점심을 먹기 위해 쏟아져 나온 인파로 인해 줄을 서기 싫어서! 찾아 헤매다 만난 레스토랑이에요. 쇼핑몰의 꼭대기 층에 위치하고 있으며 이곳에는 TAP 415가 아닌 차이니즈 레스토랑 등의 다른 레스토랑들도 있고 사람이 붐비지 않아 쾌적한 식사가 가능하지만,,,, 식당을 찾느라 쇼핑몰을 배회하였던 기억이 나네요. 그래도 여유로운 식사를 즐기고 싶으신 분들은 TAP 415로 고고!!!

 

Sotto Mare
영업시간: 오전 11:30~오후 9:30
위치: Westfield San Francisco Centre,845 Market St,San Francisco, CA 94103,미국

5
▲ 2인분의 든든한 양과 신선한 해산물 요리가 특징인 Sotto Mare
이탈리아 음식과 해산물을 좋아한다면 꼭 가봐야 하는 곳이에요. GDC 컨퍼런스가 열리는 곳에서 조금 떨어져있긴 하지만 Uber 나 택시를 탄다면 충분히 가까운 거리에 위치해 있어요. 한가지 주의 사항이 있다면 메뉴중에 2인이 먹기에 충분하다고 적혀있는 경우 사실 그대로를 믿어야 해요. 양은 매우 충분했고.. 먹다가 남기면.. 할머니 웨이트레스에게 혼꾸녕이 날수도 있어요. 오이스터는 동쪽과 서쪽 지역을 구분해서 팔고 있는데 동쪽에서 난 굴이 더 크고 맛이 있어서 서쪽 굴보다는 약간 비싸게 팔고 있었어요. 음식이 굉장히 맛있었는데 먹으면서 자꾸 한국 생각이 나더라구요. 여기 굴도 충분히 맛있었지만 한국 굴의 신선한 맛이 떠올라 한국이 그리워지는 순간이었습니다.

마지막으로 한식매니아인 본인은 한끼라도 한식을 먹기 위해 한인타운으로 컵라면(!?)을 구하기 위한 파티를 꾸려 원정을 떠났어요. 하지만 가는 길이 우범지역을 통과해야만 하는 길이였고 그 길은 매우 위험했어요. 길을 가면 갈수록 전에 본적 없는 풍경들이 펼쳐져 점점 포기하고 싶었지만 두려운 마음을 꾹 누르고 오직 컵라면만을 생각하며 목숨을 걸고 한인타운에 가서 컵라면 아이템을 획득에 성공했습니다!

성공의 기쁨도 잠시

호텔 근처 세븐일레븐에도 라면을 판다는 사실에 굉장히 슬퍼졌습니다.
(목숨을 건 컵라면 원정은 무슨 의미가 있었을까요…)
컵라면은 멀리 갈 필요도 미리 싸갈 필요도 없으니 저와
같은 모험을 하시지 않길 바랍니다.

 

내년 GDC 2017을 가시는 분들에게 좋은 정보공유가 되었기를 바라며 음식사진을 계속 보고 있으니 당장 나가서 먹고 살이 찔 것만 같아 이만 포스팅을 마치겠습니다.

– 아이펀팩토리 개발팀 한식 매니아 작성 –