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

홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
QooJuice
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
devCAT Studio, NEXON
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
 

What's hot (20)

홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
 
게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가게임서버프로그래밍 #8 - 성능 평가
게임서버프로그래밍 #8 - 성능 평가
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 

Similar to Next-generation MMORPG service architecture

스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
스마트폰 앱 백-엔드 솔루션 개발을 위한 Node.js 실전 가이드
Jeongsang Baek
 
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가
Hyun-jik Bae
 
이희영, 글로벌 원빌드 모바일 게임 런칭과 라이브 개발, NDC2016
이희영, 글로벌 원빌드 모바일 게임 런칭과 라이브 개발, NDC2016이희영, 글로벌 원빌드 모바일 게임 런칭과 라이브 개발, NDC2016
이희영, 글로벌 원빌드 모바일 게임 런칭과 라이브 개발, NDC2016
devCAT Studio, NEXON
 

Similar to Next-generation MMORPG service architecture (20)

게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망
 
게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망게임 서버 기술 현황 및 전망
게임 서버 기술 현황 및 전망
 
[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)
 
이희영, 글로벌 원빌드 모바일 게임 런칭과 라이브 개발, NDC2016
이희영, 글로벌 원빌드 모바일 게임 런칭과 라이브 개발, NDC2016이희영, 글로벌 원빌드 모바일 게임 런칭과 라이브 개발, NDC2016
이희영, 글로벌 원빌드 모바일 게임 런칭과 라이브 개발, NDC2016
 

More from Jongwon 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