Next-generation MMORPG service architecture

10,964 views

Published on

NCsoft의 NCDC 2010과 Nexon의 NDC 10에서 발표한 '차세대 MMORPG 서비스 아키텍처'의 발표 파일입니다.

Published in: Technology

Next-generation MMORPG service architecture

  1. 1. 차세대 MMORPG 서비스 아키텍처<br />NCsoft, Project LF<br />Technical Director김종원<br />
  2. 2. 누구세요?<br />현재<br />NCSoft, 신규 MMORPG의 Technical Director<br />과거<br />한메한글for Windows 개발 참여<br />아래아한글3.0b, 96 등 윈도우 용 어플 개발<br />팔만대장경 전산 입력 및 검색 시스템<br />임베디드JVM,리눅스PDA, 스마트폰 등 개발<br />Ncsoft에 모바일 기기 만든다고 합류<br />마이크로소프트웨어,ZDNet‘망치와모루’컬럼<br />NCDC 2010 Next generation MMORPG service<br />
  3. 3. 요즘 가장 인기 있었던 게임?<br />?<br />NCDC 2010 Next generation MMORPG service<br />
  4. 4. 이 게임 해 본 사람 손들어보세요!!<br />NCDC 2010 Next generation MMORPG service<br />
  5. 5. NCDC 2010 Next generation MMORPG service<br />
  6. 6. NCDC 2010 Next generation MMORPG service<br />
  7. 7. SNS 게임 : We rule<br />귀농 게임 ‘두덕리 온라인’iPhone 버전<br />수익 모델은 Mojo와 게임 내 광고<br />NCDC 2010 Next generation MMORPG service<br />
  8. 8. 하지만…<br />뛰어난 그래픽 디자인 및 클라이언트의 높은 완성도<br />Age of empire 개발자 출신이라는…<br />네트웍 트래픽이 문제<br />점점 자신의 다운 받는 데이터가 계속 증가<br />친구 왕국 방문, 주문 알바<br />로그인 실패, 잦은 서버 다운<br />주문 불가 상황 발생<br />대규모 사용자 이탈<br />NCDC 2010 Next generation MMORPG service<br />
  9. 9. NCDC 2010 Next generation MMORPG service<br />망함!!<br />
  10. 10. Postmortem<br />25레벨이 끝, 그 이후는?<br />만렙 이후가 필요<br />용 키워서 다른 왕국으로 쳐들어가면 좋겠다…<br />사용자가 많아지는 것이 두려운 게임<br />사용자가 늘어날 수록 급격히 증가하는 트래픽<br />Free to play 게임의 한계<br />단일 월드의 시도는 좋았지만<br />안정적으로 운영할 수 있는 서비스 구조 필요<br />NCDC 2010 Next generation MMORPG service<br />
  11. 11. 잠깐, 제목과 다른 내용인데?<br />NCDC 2010 Next generation MMORPG service<br />
  12. 12. 너는 우리의 미래<br />We rule은 미래에 등장할 lightweight MMORPG의 프로토타입이 아니었을까?<br />근거<br />Free to play<br />가벼운 클라이언트 (모바일/ 플래시)<br />비동기 플레이 & 실시간 플레이 & push 통지<br />SNS를 통한 친구 끌어들이기<br />거대 단일 월드<br />NCDC 2010 Next generation MMORPG service<br />
  13. 13. AAA급 MMORPG라면…<br />최고 성능의 그래픽<br />멋진 월드 설정과 배경<br />쿨하고 섹쉬한 캐릭터<br />끝없는 퀘스트<br />최고의 렌더링 엔진<br />실감나는 물리 엔진<br />캐릭터 커스터마이징<br />기타 등등, 기타 등등<br />NCDC 2010 Next generation MMORPG service<br />
  14. 14. 5년 뒤의 NC의 MMORPG는?<br />AAA MMORPG<br />100GB의 클라이언트 패키지<br />2560 x 1440 화면 해상도<br />Unreal 4 엔진 장착<br />VS<br />Lightweight MMORPG<br />별도의 다운로드 없이 바로 플레이<br />모바일부터 데스크탑까지 다양한 화면 크기<br />플랫폼에 따른 다양한 렌더링 엔진<br />NCDC 2010 Next generation MMORPG service<br />
  15. 15. 두 영역을<br />모두 공략?<br />
  16. 16. 으아~~<br />NCDC 2010 Next generation MMORPG service<br />
  17. 17. 他山之石<br />
  18. 18. 요즘 가장 잘 나가는 놈!<br />NCDC 2010 Next generation MMORPG service<br />
  19. 19. NCDC 2010 Next generation MMORPG service<br />
  20. 20. Big bang game company<br />Zynga의 계속 늘어나는 사용자(3월 시점)<br />6천5백만 사용자/일, 2억2천5백만 명/월<br />Farmville은 5개월 동안 2천5백만 명 증가/DAU<br />FishVille은 오픈한 지 1주일 만에 6백만 명 DAU<br />NCDC 2010 Next generation MMORPG service<br />* GDC10 Scaling social games<br />
  21. 21. Zynga’s scaling<br />Scale up – 컴퓨터의 성능을 높이는 것<br />Scale out – 서비스할 컴퓨터를 더 늘리는 것<br />징가의 게임은 DB 하나에서 시작<br />읽기 전용의 DB 복제<br />복수의 마스터 DB<br />DB의 sharding – 수평, 수직<br /><ul><li>CDN과 memcache활용
  22. 22. MMO서버의 sharding및 로드 밸런싱
  23. 23. 용량 계획 수립</li></li></ul><li>Zynga 구조도<br />PHP logic<br />HTTP<br />memcache server<br />Web server<br />MMO server<br />DB server<br />MMO server<br />TCP<br />DB server<br />MMO server<br />DB server<br />Flash-based<br />client<br />My SQL<br />Java logic<br />NCDC 2010 Next generation MMORPG service<br />* GDC10 Scaling social games<br />
  24. 24. 이제까지 NC의 MMORPG는<br />한 월드에 동시 접속 인원을 제한<br />더 많은 사용자를 위해서 복제된 월드를 추가<br />월드간 커뮤니케이션이나 공통 서비스 부족<br />DB의 복제를 통한 단방향 Web 서비스 제공<br />NCDC 2010 Next generation MMORPG service<br />
  25. 25. Case study<br />MMORPG<br />NCSoft’s MMORPG<br />Bluehole’sTera<br />XL games’sArcheAge<br />통합 메신저<br />AION channel chatting system 포함<br />
  26. 26. NC MMORPG의 구성<br />Login server<br />TCP<br />1<br />World 1<br />2<br />World …<br />World N<br />Game server<br />cacheD + Game DB<br />LogD + Log DB<br />MS-SQL<br />NCDC 2010 Next generation MMORPG service<br />
  27. 27. Bluehole의 MMORPG<br />Login server<br />Instance servers<br />1<br />Instance servers<br />Planet<br />2<br />Arbiter server<br />Arbiter server<br />Game DB<br />Chatting<br />Guild<br /> DB cache<br />World 1…N<br />LogD + Log DB<br />World servers<br />NCDC 2010 Next generation MMORPG service<br />*Gametech2010<br />
  28. 28. XL games의 MMORPG<br />Auth server<br />1<br />World <br />2<br />World server<br />Game DB<br />AI server<br />Physics server<br />Instanecezone srv<br />NCDC 2010 Next generation MMORPG service<br />* Gametech 2010<br />
  29. 29. Zone 분할 월드의 서버 구조<br />Logine server<br />Lobby server<br />DB cache<br />Game server<br />Game server<br />Game server<br />DB server<br />NCDC 2010 Next generation MMORPG service<br />
  30. 30. 채널 채팅(통합 메신저)<br />100만명 동시접속 목표 설계<br />A 게임 오픈 시 서버 2 대로 20만 이상 채널 채팅<br />Sharding User<br />Configurationserver<br />Externalserver<br />Internalserver<br />Database<br />Externalserver<br />NCDC 2010 Next generation MMORPG service<br />
  31. 31. 앞의 시스템들의 공통점은?<br />서비스 규모의 확장에 대해 고민하고 있었다<br />
  32. 32. 새로운 서비스의 요구<br />단일 월드<br />단일 경매장<br />통합 인스턴스던전<br />모바일 및 Web과의 연계<br />Facebook, twitter와 연동<br />NCDC 2010 Next generation MMORPG service<br />
  33. 33. 난 너의 모든 것을 알고 싶다!<br />NCDC 2010 Next generation MMORPG service<br />
  34. 34. 현재 서비스 구조에서 가능한가?<br />지금과 같은 MMORPG에서는 어렵다<br />무엇을 준비해야 하는가?<br />게임 기획 단계부터 관련 컨텐츠 구분<br />다양한 요구에 대응할 수 있는 서버 구성<br />확장이 쉬운 DB 선택<br />NCDC 2010 Next generation MMORPG service<br />
  35. 35. 이런 구조면 어떨까?<br />Login server<br />Web/SNS 서비스<br />Other services<br />Game servers<br />Game data<br />Log/async data<br />NCDC 2010 Next generation MMORPG service<br />
  36. 36. 설계 단계 부터 준비<br />컨텐츠 속성에 따른 DB 데이터 구분<br />동기/비동기 데이터<br />웹 연동을 지원하기 위한 구조 설계<br />통합 로깅 시스템<br />게임 플레이 정보, 게임 내 SNS 지원을 정보<br />읽기보다 쓰기가 많은 데이터라는 것이 특징<br />NCDC 2010 Next generation MMORPG service<br />
  37. 37. 확장을 위한 준비<br />게임 서버용 DB에 RDBMS 사용<br />속도 향상을 위해 memcache서버 사용<br />안정성을 위해 DB 이중화<br />DB의 수평적 분할(sharding)을 이용하여 DB 확장 대응<br />비동기 데이터 쓰기에 적합한 NoSQL사용<br />분산 DB를 이용한 데이터 복제<br />NCDC 2010 Next generation MMORPG service<br />
  38. 38. 왜 NoSQL 이 등장하였는가<br />Massive data volume<br />수 만 대의 DB를 사용하는 상황 발생<br />Extreme query workload<br />위 상황에서 RDBMS에서 사용은 무리<br />Schema evolution<br />Schema 변경도 쉬운 일이 아님<br />
  39. 39. Cassandra<br />Google의 Big table과 Amazon의 Dynamo 기반<br />서버간 P2P 연결<br />중첩된 column (super columns) 저장 방식<br />읽기보다는 쓰기가 빈번한 데이터를 저장하는데 효율적<br />CassandraProject<br />처음엔 Facebook, 지금은 Apache에서 개발<br />Java, OpenSource 기반의 분산 DB<br />분산 DB 서버간의 실시간 동기화는 안됨<br />구조가 간단하여 MySQL에 비해 수 천 배 빠름<br />NCDC 2010 Next generation MMORPG service<br />
  40. 40. Case study - Digg<br />NCDC 2010 Next generation MMORPG service<br />
  41. 41. NoSQL 적용 사례 (digg 서비스)<br />Digg가 처했던 어려움 <br />고성능의쓰기 위주에 적합한 DB 구축 필요<br />특성 상 DB에서 데이터 일관성을 포기할 수 있는 상황 <br />Cassandra 선정<br />컬럼 기반, 구조적 문서 저장 가능 <br />모든 노드가 개별적으로 동작, 데이터가 여러 노드 간에 복제된다<br />서버를 추가할 경우 읽기, 쓰기 성능이 선형적으로 증가 <br />NCDC 2010 Next generation MMORPG service<br />
  42. 42. DB의 확장(Sharding)<br />한 대의 DB 머신 성능으로 처리가 불가능할 때<br />수직적 분할<br />테이블마다 다른 DB. 일정 수준 이상의 사용자 증가에는 도움이 안됨<br />수평적 분할(sharding)<br />사용자 id 또는 지역 등으로 DB를 나누어 넣음.<br />사용자가 늘면 더 잘게 나누면 됨<br />나뉘어진 DB간의 join이 쉽지 않음<br />데이터를 중복하여 기록하여 쿼리를 횟수를 줄임<br />DB 확장 계획을 미리 세워 분할 규칙을 수립해야 함<br />NCDC 2010 Next generation MMORPG service<br />
  43. 43. 확장의 함정<br />서비스 상황<br />게임 서버 군 < 웹/업데이트 서버<br />서버 구매 비용 < 서버 운영 비용(IDC)<br />서비스에 사용되는 서버 수 증가<br />시스템의 고장율 증가(MTBF가 짧아짐)<br />해결 방향<br />이중화, 다중화<br />하지만 게임 서버 이중화는 어렵다, 병렬화로 접근하자<br />하지만 DB 캐시 및 DB의 데이터 다중화, 중복 가능<br />고성능의 서버 사용과 효율화로 서버 증가 억제<br />10년 내 core 100 이상의 CPU 등장<br />NCDC 2010 Next generation MMORPG service<br />
  44. 44. Wrap up<br />확장을 고려한 시스템<br />DB 확장 정책 수립<br />NoSQL 사용 고려<br />이중화, 데이터 복제<br />서버의 고성능화 고려<br />NCDC 2010 Next generation MMORPG service<br />
  45. 45. Q & A<br />

×