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

More Related Content

What's hot

MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들Hyunjik Bae
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCPSeungmo Koo
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건강 민우
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우
 
게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가Seungmo Koo
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)Seungmo Koo
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 
NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기Hoyoung Choi
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019devCAT Studio, NEXON
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기Seungjae Lee
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 

What's hot (20)

MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
 
게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 

Similar to Next-generation MMORPG service architecture

양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012devCAT Studio, NEXON
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망Vong Sik Kong
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망gueste9d250
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
2015년 마이크로소프트 ComCamp, 리눅스 개발자를 위한 클라우드 Azure
2015년 마이크로소프트  ComCamp, 리눅스 개발자를 위한 클라우드 Azure2015년 마이크로소프트  ComCamp, 리눅스 개발자를 위한 클라우드 Azure
2015년 마이크로소프트 ComCamp, 리눅스 개발자를 위한 클라우드 AzureDennis Kim
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Jinsoo Jung
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?흥배 최
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들Brian Hong
 
JCO 발표자로 - 누구도 들려주지 않는 Service 이야기
JCO 발표자로 - 누구도 들려주지 않는  Service 이야기JCO 발표자로 - 누구도 들려주지 않는  Service 이야기
JCO 발표자로 - 누구도 들려주지 않는 Service 이야기YoungSu Son
 
실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기IMQA
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드Jeongsang Baek
 
온라인 게임과 소셜 게임 서버는 어떻게 다른가?
온라인 게임과 소셜 게임 서버는 어떻게 다른가?온라인 게임과 소셜 게임 서버는 어떻게 다른가?
온라인 게임과 소셜 게임 서버는 어떻게 다른가?Seok-ju Yun
 
모바일게임 1인 QA 업무 경험담
모바일게임 1인 QA 업무 경험담모바일게임 1인 QA 업무 경험담
모바일게임 1인 QA 업무 경험담dgclan
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처hoondong kim
 
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가Hyun-jik Bae
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 jeong seok yang
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea Strike
 
Social game and windows azure platform (final)
Social game and windows azure platform (final)Social game and windows azure platform (final)
Social game and windows azure platform (final)정현 남
 

Similar to Next-generation MMORPG service architecture (20)

양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
2015년 마이크로소프트 ComCamp, 리눅스 개발자를 위한 클라우드 Azure
2015년 마이크로소프트  ComCamp, 리눅스 개발자를 위한 클라우드 Azure2015년 마이크로소프트  ComCamp, 리눅스 개발자를 위한 클라우드 Azure
2015년 마이크로소프트 ComCamp, 리눅스 개발자를 위한 클라우드 Azure
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
What is Game Server ?
What is Game Server ?What is Game Server ?
What is Game Server ?
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
 
JCO 발표자로 - 누구도 들려주지 않는 Service 이야기
JCO 발표자로 - 누구도 들려주지 않는  Service 이야기JCO 발표자로 - 누구도 들려주지 않는  Service 이야기
JCO 발표자로 - 누구도 들려주지 않는 Service 이야기
 
실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기
 
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
 
온라인 게임과 소셜 게임 서버는 어떻게 다른가?
온라인 게임과 소셜 게임 서버는 어떻게 다른가?온라인 게임과 소셜 게임 서버는 어떻게 다른가?
온라인 게임과 소셜 게임 서버는 어떻게 다른가?
 
모바일게임 1인 QA 업무 경험담
모바일게임 1인 QA 업무 경험담모바일게임 1인 QA 업무 경험담
모바일게임 1인 QA 업무 경험담
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
 
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트
 
Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
Rhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_ArchitectureRhea_MMO_SNG_Convergence_Server_Architecture
Rhea_MMO_SNG_Convergence_Server_Architecture
 
Social game and windows azure platform (final)
Social game and windows azure platform (final)Social game and windows azure platform (final)
Social game and windows azure platform (final)
 

More from Jongwon Kim

iOS를 위한 세벌식 블루투스 키보드 제작기
iOS를 위한 세벌식 블루투스 키보드 제작기iOS를 위한 세벌식 블루투스 키보드 제작기
iOS를 위한 세벌식 블루투스 키보드 제작기Jongwon Kim
 
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfNDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfJongwon Kim
 
모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016Jongwon Kim
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)Jongwon Kim
 
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화Jongwon Kim
 
Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010Jongwon Kim
 

More from Jongwon Kim (6)

iOS를 위한 세벌식 블루투스 키보드 제작기
iOS를 위한 세벌식 블루투스 키보드 제작기iOS를 위한 세벌식 블루투스 키보드 제작기
iOS를 위한 세벌식 블루투스 키보드 제작기
 
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdfNDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
NDC21_게임테스트자동화5년의기록_NCSOFT_김종원.pdf
 
모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016모바일 게임 테스트 자동화 Igc 2016
모바일 게임 테스트 자동화 Igc 2016
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)
 
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
KGC 2014 프로파일러를 이용한 게임 클라이언트 최적화
 
Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010
 

Next-generation MMORPG service architecture

  • 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
  • 5. NCDC 2010 Next generation MMORPG service
  • 6. 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
  • 9. 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
  • 16. 으아~~ NCDC 2010 Next generation MMORPG service
  • 18. 요즘 가장 잘 나가는 놈! NCDC 2010 Next generation MMORPG service
  • 19. 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
  • 21.
  • 23.
  • 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
  • 31. 앞의 시스템들의 공통점은? 서비스 규모의 확장에 대해 고민하고 있었다
  • 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
  • 45. Q & A