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