SlideShare a Scribd company logo
1 of 32
Download to read offline
게임 서버 구축 방법 비교: GBaaS vs. Self-hosting
G re a t Te c h n o l o g y F o r G re a t G a m e s
D K M o o n
dkmoon@ifunfactory.com
다루는 내용:
Photon 과 GameSparks 에서 보는 GBaaS 의 공통 요소들, 구현/설계상 차이점
다루지 않는 내용:
개개의 GBaaS 구현의 안정성 여부
About This Talk
01.
Great Technology For Great Games
다루는 내용:
Photon 과 GameSparks 에서 보는 GBaaS 의 공통 요소들, 구현/설계상 차이점
다루지 않는 내용:
개개의 GBaaS 구현의 안정성 여부
About This Talk
02.
Great Technology For Great Games
게임 서비스를 위한 Backend-as-a-Service (BaaS)
다시 말해…
“게임 서비스를 위한 제반 인프라를 클라우드 서비스 형태로 제공하는 것”
여기에는…
1) 서버, DB, 네트워크 등 물리적 인프라 (physical components)
2) 게임 시스템 구현을 위한 논리적 프로그래밍 요소 (logical components)
3) 게임 시스템/유저 관리 등 운영 기능이 포함됨 (operational components)
Game Backend-as-a-Service (GBaaS)
03.
Great Technology For Great Games
게임 서비스를 위한 Backend-as-a-Service (BaaS)
다시 말해…
“게임 서비스를 위한 제반 인프라를 클라우드 서비스 형태로 제공하는 것”
여기에는…
1) 서버, DB, 네트워크 등 물리적 인프라 (physical components)
2) 게임 시스템 구현을 위한 논리적 프로그래밍 요소 (logical components)
3) 게임 시스템/유저 관리 등 운영 기능이 포함됨 (operational components)
Game Backend-as-a-Service (GBaaS)
04.
Great Technology For Great Games
게임 서비스를 위한 Backend-as-a-Service (BaaS)
다시 말해…
“게임 서비스를 위한 제반 인프라를 클라우드 서비스 형태로 제공하는 것”
여기에는…
1) 서버, DB, 네트워크 등 물리적 인프라 (physical components)
2) 게임 시스템 구현을 위한 논리적 프로그래밍 요소 (logical components)
3) 게임 시스템/유저 관리 등 운영 기능이 포함됨 (operational components)
Game Backend-as-a-Service (GBaaS)
05.
Great Technology For Great Games
✓ Photon by Exit Games (Hamburg, German, founded in 2003)
✓ GameSparks (Dublin, Ireland, founded in 2013)
✓ PlayFab (Seattle, USA, founded in 2014)
GBaaS Providers
06.
Great Technology For Great Games
✓ Client-Server 모델 + TCP/UDP/HTTP/WS
✓ 코어 구현은 C++
✓ 동일한 시스템이 여러 리전에 레플리케이션되고, 클라이언트가 지역별 게
이트웨이 서버에 접속하는 방식
✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음
✓ API 역시 방을 다루는 방식에 촛점이 맞춰져 있음
✓ 제한된 dashboard 기능
✓ 명시적으로 접속할 게임 버전을 클라이언트가 지정하는 형태
Photon
Introduction
07.
Great Technology For Great Games
✓ Client-Server 모델 + TCP/UDP/HTTP/WS
✓ 코어 구현은 C++
✓ 동일한 시스템이 여러 리전에 레플리케이션되고, 클라이언트가 지역별 게
이트웨이 서버에 접속하는 방식
✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음
✓ API 역시 방을 다루는 방식에 촛점이 맞춰져 있음
✓ 제한된 dashboard 기능
✓ 명시적으로 접속할 게임 버전을 클라이언트가 지정하는 형태
Photon
Introduction
08.
Great Technology For Great Games
✓ Client-Server 모델 + TCP/UDP/HTTP/WS
✓ 코어 구현은 C++
✓ 동일한 시스템이 여러 리전에 레플리케이션되고, 클라이언트가 지역별 게
이트웨이 서버에 접속하는 방식
✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음
✓ API 역시 방을 다루는 방식에 촛점이 맞춰져 있음
✓ 제한된 dashboard 기능
✓ 명시적으로 접속할 게임 버전을 클라이언트가 지정하는 형태
Photon
Introduction
09.
Great Technology For Great Games
✓ Node.js workers pool + MongoDB
✓ 비동기 API 는 WSS, 리얼타임 API 는 TCP/UDP 지원
✓ 동일한 시스템이 여러 리전에 레플리케이션되고, GS 에서 설정한 프라이머
리 리전의 게이트웨이 서버로 클라이언트가 접속하는 방식
✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음
✓ 다만 방을 만드는 방식이 명시적인 방법 외에 Match 나 Challenge 도 가능
✓ 매칭, 랭킹, 그룹핑, 성취 보상, 가상 경제 등에 대한 API 도 지원
✓ Dashboard 상에서 리소스 설정, JS 편집, REST 테스트 가능
✓ 설정의 스냅샷 → 릴리즈 방식으로 버전 관리
GameSparks
Introduction
10.
Great Technology For Great Games
✓ Node.js workers pool + MongoDB
✓ 비동기 API 는 WSS, 리얼타임 API 는 TCP/UDP 지원
✓ 동일한 시스템이 여러 리전에 레플리케이션되고, GS 에서 설정한 프라이머
리 리전의 게이트웨이 서버로 클라이언트가 접속하는 방식
✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음
✓ 다만 방을 만드는 방식이 명시적인 방법 외에 Match 나 Challenge 도 가능
✓ 매칭, 랭킹, 그룹핑, 성취 보상, 가상 경제 등에 대한 API 도 지원
✓ Dashboard 상에서 리소스 설정, JS 편집, REST 테스트 가능
✓ 설정의 스냅샷 → 릴리즈 방식으로 버전 관리
GameSparks
Introduction
11.
Great Technology For Great Games
✓ Node.js workers pool + MongoDB
✓ 비동기 API 는 WSS, 리얼타임 API 는 TCP/UDP 지원
✓ 동일한 시스템이 여러 리전에 레플리케이션되고, GS 에서 설정한 프라이머
리 리전의 게이트웨이 서버로 클라이언트가 접속하는 방식
✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음
✓ 다만 방을 만드는 방식이 명시적인 방법 외에 Match 나 Challenge 도 가능
✓ 매칭, 랭킹, 그룹핑, 성취 보상, 가상 경제 등에 대한 API 도 지원
✓ Dashboard 상에서 리소스 설정, JS 편집, REST 테스트 가능
✓ 설정의 스냅샷 → 릴리즈 방식으로 버전 관리
GameSparks
Introduction
12.
Great Technology For Great Games
✓ 방 (게임 세션) 기반 구현
• 게임의 기본 단위로 “게임 세션” 을 가정
• 게임 세션의 라이프 사이클에 맞춘 API 디자인
• 멀티 플레이의 개념 역시 방 안의 사용자들로 한정
✓ 기본 API 의 후킹과 커스텀 로직을 통한 게임 콘텐츠 구현
• 기본 API 는 게임 로직에 무관한 중립적인 형태
• 콘텐츠 구현을 위해서는 로직을 확장할 수 있는 방식이 필요함
• 두 제품 모두 API 후킹 및 커스텀 로직 확장을 제공함
✓ 동일한 시스템이 여러 리전에 자동 복제
• 소위 말하는 “글로벌 원 빌드”
Photon vs. GS
Commonalities
13.
Great Technology For Great Games
✓ 방 (게임 세션) 기반 구현
• 게임의 기본 단위로 “게임 세션” 을 가정
• 게임 세션의 라이프 사이클에 맞춘 API 디자인
• 멀티 플레이의 개념 역시 방 안의 사용자들로 한정
✓ 기본 API 의 후킹과 커스텀 로직을 통한 게임 콘텐츠 구현
• 기본 API 는 게임 로직에 무관한 중립적인 형태
• 콘텐츠 구현을 위해서는 로직을 확장할 수 있는 방식이 필요함
• 두 제품 모두 API 후킹 및 커스텀 로직 확장을 제공함
✓ 동일한 시스템이 여러 리전에 자동 복제
• 소위 말하는 “글로벌 원 빌드”
Photon vs. GS
Commonalities
14.
Great Technology For Great Games
✓ 방 (게임 세션) 기반 구현
• 게임의 기본 단위로 “게임 세션” 을 가정
• 게임 세션의 라이프 사이클에 맞춘 API 디자인
• 멀티 플레이의 개념 역시 방 안의 사용자들로 한정
✓ 기본 API 의 후킹과 커스텀 로직을 통한 게임 콘텐츠 구현
• 기본 API 는 게임 로직에 무관한 중립적인 형태
• 콘텐츠 구현을 위해서는 로직을 확장할 수 있는 방식이 필요함
• 두 제품 모두 API 후킹 및 커스텀 로직 확장을 제공함
✓ 동일한 시스템이 여러 리전에 자동 복제
• 소위 말하는 “글로벌 원 빌드”
Photon vs. GS
Commonalities
15.
Great Technology For Great Games
✓ 멀티플레이어 Topology 구현: Photon Client-Server vs. GS full mesh
✓ 커스텀 로직 구현 방식
• Webhook 방식: Photon 이 가정한 event 발생시 외부 API 를 호출
• Code injection 방식: GS 는 임의의 JS 코드를 등록하고 이를 호출
✓ Logical components 의 다양성
• Photon: “방” 에 한정
• GS: 매칭, 그룹핑, 랭킹, 성취 및 보상, 가상 화폐 등 다양한 영역 지원
✓ Operational component 유무
• Photon: CCU / Room monitoring에 한정
• GS: logical components 의 설정 및 모니터링이 대쉬보드로 가능
Photon vs. GS
Differences
16.
Great Technology For Great Games
✓ 멀티플레이어 Topology 구현: Photon Client-Server vs. GS full mesh
✓ 커스텀 로직 구현 방식
• Webhook 방식: Photon 이 가정한 event 발생시 외부 API 를 호출
• Code injection 방식: GS 는 임의의 JS 코드를 등록하고 이를 호출
✓ Logical components 의 다양성
• Photon: “방” 에 한정
• GS: 매칭, 그룹핑, 랭킹, 성취 및 보상, 가상 화폐 등 다양한 영역 지원
✓ Operational component 유무
• Photon: CCU / Room monitoring에 한정
• GS: logical components 의 설정 및 모니터링이 대쉬보드로 가능
Photon vs. GS
Differences
17.
Great Technology For Great Games
✓ 멀티플레이어 Topology 구현: Photon Client-Server vs. GS full mesh
✓ 커스텀 로직 구현 방식
• Webhook 방식: Photon 이 가정한 event 발생시 외부 API 를 호출
• Code injection 방식: GS 는 임의의 JS 코드를 등록하고 이를 호출
✓ Logical components 의 다양성
• Photon: “방” 에 한정
• GS: 매칭, 그룹핑, 랭킹, 성취 및 보상, 가상 화폐 등 다양한 영역 지원
✓ Operational component 유무
• Photon: CCU / Room monitoring에 한정
• GS: logical components 의 설정 및 모니터링이 대쉬보드로 가능
Photon vs. GS
Differences
18.
Great Technology For Great Games
✓ 멀티플레이어 Topology 구현: Photon Client-Server vs. GS full mesh
✓ 커스텀 로직 구현 방식
• Webhook 방식: Photon 이 가정한 event 발생시 외부 API 를 호출
• Code injection 방식: GS 는 임의의 JS 코드를 등록하고 이를 호출
✓ Logical components 의 다양성
• Photon: “방” 에 한정
• GS: 매칭, 그룹핑, 랭킹, 성취 및 보상, 가상 화폐 등 다양한 영역 지원
✓ Operational component 유무
• Photon: CCU / Room monitoring에 한정
• GS: logical components 의 설정 및 모니터링이 대쉬보드로 가능
Photon vs. GS
Differences
19.
Great Technology For Great Games
✓ 싱글 플레이 게임에 효과적
• 기본 API 가 콘텐츠 로직을 포함하지 않기 때문에,복잡한 콘텐츠 로직이
필요없고 정형화된 게임 시스템의 싱글 플레이 게임 제작에 효과적
✓ 방 (게임 세션) 기반 멀티 플레이 게임에 효과적
• API 가 방 기반으로 디자인 되었기 때문에, 방의 생성, 검색, 참여, 탈퇴,
종료 상황에 대해서 잘 정의하고 있음
GBaaS
Strength
20.
Great Technology For Great Games
✓ 싱글 플레이 게임에 효과적
• 기본 API 가 콘텐츠 로직을 포함하지 않기 때문에,복잡한 콘텐츠 로직이
필요없고 정형화된 게임 시스템의 싱글 플레이 게임 제작에 효과적
✓ 방 (게임 세션) 기반 멀티 플레이 게임에 효과적
• API 가 방 기반으로 디자인 되었기 때문에, 방의 생성, 검색, 참여, 탈퇴,
종료 상황에 대해서 잘 정의하고 있음
GBaaS
Strength
21.
Great Technology For Great Games
✓ 방 기반이 아닌 게임에 취약
• 오픈월드 등 방 기반이 아닌 시스템을 구현하기 위한 API 존재하지 않음

이는 추후에 추가해서 해결 될 수 있는 것이 아닌 구조적인 문제에 가까움
✓ 로직 확장이 어려움
• Webhook 은 외부 시스템에 별도로 state 를 복제/관리해야됨을 의미
• Code injection 은 대규모 코드의 작성이 어렵고, cloud 상에 올라간 코
드의 확인 및 버전 관리도 힘듦
✓ MMO 지원에 취약
• 방 기반 API 는 거의 필연적으로 브로드캐스팅 방식을 사용함
• 상황에 따라 패킷 전송 범위를 다르게 정하는 것은 콘텐츠 로직의 도움 없
이 시스템 만으로 구현하는데 한계가 있음
GBaaS
Weakness
22.
Great Technology For Great Games
✓ 방 기반이 아닌 게임에 취약
• 오픈월드 등 방 기반이 아닌 시스템을 구현하기 위한 API 존재하지 않음

이는 추후에 추가해서 해결 될 수 있는 것이 아닌 구조적인 문제에 가까움
✓ 로직 확장이 어려움
• Webhook 은 외부 시스템에 별도로 state 를 복제/관리해야됨을 의미
• Code injection 은 대규모 코드의 작성이 어렵고, cloud 상에 올라간 코
드의 확인 및 버전 관리도 힘듦
✓ MMO 지원에 취약
• 방 기반 API 는 거의 필연적으로 브로드캐스팅 방식을 사용함
• 상황에 따라 패킷 전송 범위를 다르게 정하는 것은 콘텐츠 로직의 도움 없
이 시스템 만으로 구현하는데 한계가 있음
GBaaS
Weakness
23.
Great Technology For Great Games
✓ 방 기반이 아닌 게임에 취약
• 오픈월드 등 방 기반이 아닌 시스템을 구현하기 위한 API 존재하지 않음

이는 추후에 추가해서 해결 될 수 있는 것이 아닌 구조적인 문제에 가까움
✓ 로직 확장이 어려움
• Webhook 은 외부 시스템에 별도로 state 를 복제/관리해야됨을 의미
• Code injection 은 대규모 코드의 작성이 어렵고, cloud 상에 올라간 코
드의 확인 및 버전 관리도 힘듦
✓ MMO 지원에 취약
• 방 기반 API 는 거의 필연적으로 브로드캐스팅 방식을 사용함
• 상황에 따라 패킷 전송 범위를 다르게 정하는 것은 콘텐츠 로직의 도움 없
이 시스템 만으로 구현하는데 한계가 있음
GBaaS
Weakness
24.
Great Technology For Great Games
✓ Strength
• 로직 확장이 자유로움
• 구현 가능한 시스템에 제약이 없음
• 병목 디버깅 / 튜닝 용이
• 따라서 복잡한 로직의 게임이나 MMO 등에 적합
✓ Weakness
• 기초적인 것만 돌려보기 위해서도 초기 작업량이 많음
Self-hosting
Strength & Weakness
25.
Great Technology For Great Games
✓ Strength
• 로직 확장이 자유로움
• 구현 가능한 시스템에 제약이 없음
• 병목 디버깅 / 튜닝 용이
• 따라서 복잡한 로직의 게임이나 MMO 등에 적합
✓ Weakness
• 기초적인 것만 돌려보기 위해서도 초기 작업량이 많음
Self-hosting
Strength & Weakness
26.
Great Technology For Great Games
✓ GBaaS 는 서버/DB/네트워크 등 물리 요소를 다루지 않아도 되기에 편리함
✓ GBaaS 는 게임 시스템 구현을 위한 논리 요소를 “단순화”하여 쓰기 쉽게함
✓ GBaaS 의 운영 요소 유무는 안정성 만큼이나 중요하게 고려되어야 함
✓ GBaaS 의 단순화된 논리 요소는 게임 로직의 확장을 어렵게 함
✓ GBaaS 의 이런 장단점으로 싱글 플레이/방 기반 멀티플레이에 적합도 높음
✓ 서버 직접 운영은 단순화의 부족으로 초기 작업량이 많을 수 있음
✓ 그러나 다양한 시스템의 구현과 로직의 확장이 용이함
✓ 또한 블랙박스 요소의 감소로 디버깅이 용이함
Conclusion
27.
Great Technology For Great Games
✓ GBaaS 는 서버/DB/네트워크 등 물리 요소를 다루지 않아도 되기에 편리함
✓ GBaaS 는 게임 시스템 구현을 위한 논리 요소를 “단순화”하여 쓰기 쉽게함
✓ GBaaS 의 운영 요소 유무는 안정성 만큼이나 중요하게 고려되어야 함
✓ GBaaS 의 단순화된 논리 요소는 게임 로직의 확장을 어렵게 함
✓ GBaaS 의 이런 장단점으로 싱글 플레이/방 기반 멀티플레이에 적합도 높음
✓ 서버 직접 운영은 단순화의 부족으로 초기 작업량이 많을 수 있음
✓ 그러나 다양한 시스템의 구현과 로직의 확장이 용이함
✓ 또한 블랙박스 요소의 감소로 디버깅이 용이함
Conclusion
28.
Great Technology For Great Games
✓ GBaaS 는 서버/DB/네트워크 등 물리 요소를 다루지 않아도 되기에 편리함
✓ GBaaS 는 게임 시스템 구현을 위한 논리 요소를 “단순화”하여 쓰기 쉽게함
✓ GBaaS 의 운영 요소 유무는 안정성 만큼이나 중요하게 고려되어야 함
✓ GBaaS 의 단순화된 논리 요소는 게임 로직의 확장을 어렵게 함
✓ GBaaS 의 이런 장단점으로 싱글 플레이/방 기반 멀티플레이에 적합도 높음
✓ 서버 직접 운영은 단순화의 부족으로 초기 작업량이 많을 수 있음
✓ 그러나 다양한 시스템의 구현과 로직의 확장이 용이함
✓ 또한 블랙박스 요소의 감소로 디버깅이 용이함
Conclusion
29.
Great Technology For Great Games
(MMO and non-session based games) PC/MMO is about 27% of total game market.
Addressable Market Size Difference
30.
Great Technology For Great Games
Source: Newzoo report, June, 2016
DK Moon
dkmoon@ifunfactory.com
www.ifunfactory.com
THANKS!
G r e a t Te c h n o l o g y F o r G r e a t G a m e s , i F u n Fa c t o r y

More Related Content

What's hot

오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성Hyunjik Bae
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기Sang Heon Lee
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직Hoyoung Choi
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버준철 박
 
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...Amazon Web Services Korea
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지강 민우
 
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Amazon Web Services Korea
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability흥배 최
 
NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기Hoyoung Choi
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편준철 박
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 

What's hot (20)

오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성라이브 서비스를 위한 게임 서버 구성
라이브 서비스를 위한 게임 서버 구성
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기
 
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직중앙 서버 없는 게임 로직
중앙 서버 없는 게임 로직
 
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
 
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
Gaming on AWS - 1. AWS로 글로벌 게임 런칭하기 - 장르별 아키텍처 중심
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
 
NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기NoSQL 위에서 MMORPG 개발하기
NoSQL 위에서 MMORPG 개발하기
 
Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편Python 게임서버 안녕하십니까 : RPC framework 편
Python 게임서버 안녕하십니까 : RPC framework 편
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 

Similar to 게임서버 구축 방법비교 : GBaaS vs. Self-hosting

Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Jinuk Kim
 
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021Amazon Web Services Korea
 
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...Amazon Web Services Korea
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기YEONG-CHEON YOU
 
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다Dae Kim
 
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...Amazon Web Services Korea
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2Amazon Web Services Korea
 
Provisioning Dedicated Game Server on Kubernetes Cluster
Provisioning Dedicated Game Server on Kubernetes ClusterProvisioning Dedicated Game Server on Kubernetes Cluster
Provisioning Dedicated Game Server on Kubernetes ClusterJinwoong Kim
 
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...OpenStack Korea Community
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER Engineering
 
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS ::: Game...
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS :::  Game...AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS :::  Game...
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS ::: Game...Amazon Web Services Korea
 
[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
 
어그로월드 Season1 - Aggro World season 1
어그로월드 Season1 - Aggro World season 1어그로월드 Season1 - Aggro World season 1
어그로월드 Season1 - Aggro World season 1bingoori
 
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 -  박성훈 NEOWIZ 팀장,...[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 -  박성훈 NEOWIZ 팀장,...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...Amazon Web Services Korea
 
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 Amazon Web Services Korea
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3Amazon Web Services Korea
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012devCAT Studio, NEXON
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetesNAVER D2
 

Similar to 게임서버 구축 방법비교 : GBaaS vs. Self-hosting (20)

Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
Gametech 2014: 모바일 게임용 PaaS/BaaS 구현 사례와 디자인 트레이드오프
 
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
 
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...7.	게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...
 
Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기Azure로 MMO게임 서비스하기
Azure로 MMO게임 서비스하기
 
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
 
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
아마존의 관리형 게임 플랫폼 활용하기: GameLift (Deep Dive) :: 구승모 솔루션즈 아키텍트 :: Gaming on AWS ...
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
AWS 클라우드 기반 게임 아키텍처 사례 - AWS Summit Seoul 2017
 
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2
AWS로 게임의 공통 기능 개발하기! - 채민관, 김민석, 한준식 :: AWS Game Master 온라인 세미나 #2
 
Provisioning Dedicated Game Server on Kubernetes Cluster
Provisioning Dedicated Game Server on Kubernetes ClusterProvisioning Dedicated Game Server on Kubernetes Cluster
Provisioning Dedicated Game Server on Kubernetes Cluster
 
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
[OpenInfra Days Korea 2018] (Track 4) Provisioning Dedicated Game Server on K...
 
NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황NAVER의 웹/HTML5환경 대응 현황
NAVER의 웹/HTML5환경 대응 현황
 
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS ::: Game...
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS :::  Game...AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS :::  Game...
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS ::: Game...
 
[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...
 
어그로월드 Season1 - Aggro World season 1
어그로월드 Season1 - Aggro World season 1어그로월드 Season1 - Aggro World season 1
어그로월드 Season1 - Aggro World season 1
 
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 -  박성훈 NEOWIZ 팀장,...[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 -  박성훈 NEOWIZ 팀장,...
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | 코드 기반으로 인프라 운영하기 - 박성훈 NEOWIZ 팀장,...
 
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3 AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
AWS로 게임 기반 다지기 - 김병수, 박진성 :: AWS Game Master 온라인 세미나 #3
 
성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3성공적인 게임 런칭을 위한 비밀의 레시피 #3
성공적인 게임 런칭을 위한 비밀의 레시피 #3
 
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
양승명, 다음 세대 크로스플랫폼 MMORPG 아키텍처, NDC2012
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
 

More from iFunFactory Inc.

2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표iFunFactory Inc.
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTOiFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석iFunFactory Inc.
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 iFunFactory Inc.
 
[아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP [아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP iFunFactory Inc.
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트iFunFactory Inc.
 
유니티 쉐이더 단기속성
유니티 쉐이더 단기속성유니티 쉐이더 단기속성
유니티 쉐이더 단기속성iFunFactory Inc.
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기iFunFactory Inc.
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버iFunFactory Inc.
 
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기iFunFactory Inc.
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교iFunFactory Inc.
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.
 

More from iFunFactory Inc. (20)

2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
 
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
 
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
 
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
 
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
 
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
 
[아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP [아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
유니티 쉐이더 단기속성
유니티 쉐이더 단기속성유니티 쉐이더 단기속성
유니티 쉐이더 단기속성
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
 
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 

게임서버 구축 방법비교 : GBaaS vs. Self-hosting

  • 1. 게임 서버 구축 방법 비교: GBaaS vs. Self-hosting G re a t Te c h n o l o g y F o r G re a t G a m e s D K M o o n dkmoon@ifunfactory.com
  • 2. 다루는 내용: Photon 과 GameSparks 에서 보는 GBaaS 의 공통 요소들, 구현/설계상 차이점 다루지 않는 내용: 개개의 GBaaS 구현의 안정성 여부 About This Talk 01. Great Technology For Great Games
  • 3. 다루는 내용: Photon 과 GameSparks 에서 보는 GBaaS 의 공통 요소들, 구현/설계상 차이점 다루지 않는 내용: 개개의 GBaaS 구현의 안정성 여부 About This Talk 02. Great Technology For Great Games
  • 4. 게임 서비스를 위한 Backend-as-a-Service (BaaS) 다시 말해… “게임 서비스를 위한 제반 인프라를 클라우드 서비스 형태로 제공하는 것” 여기에는… 1) 서버, DB, 네트워크 등 물리적 인프라 (physical components) 2) 게임 시스템 구현을 위한 논리적 프로그래밍 요소 (logical components) 3) 게임 시스템/유저 관리 등 운영 기능이 포함됨 (operational components) Game Backend-as-a-Service (GBaaS) 03. Great Technology For Great Games
  • 5. 게임 서비스를 위한 Backend-as-a-Service (BaaS) 다시 말해… “게임 서비스를 위한 제반 인프라를 클라우드 서비스 형태로 제공하는 것” 여기에는… 1) 서버, DB, 네트워크 등 물리적 인프라 (physical components) 2) 게임 시스템 구현을 위한 논리적 프로그래밍 요소 (logical components) 3) 게임 시스템/유저 관리 등 운영 기능이 포함됨 (operational components) Game Backend-as-a-Service (GBaaS) 04. Great Technology For Great Games
  • 6. 게임 서비스를 위한 Backend-as-a-Service (BaaS) 다시 말해… “게임 서비스를 위한 제반 인프라를 클라우드 서비스 형태로 제공하는 것” 여기에는… 1) 서버, DB, 네트워크 등 물리적 인프라 (physical components) 2) 게임 시스템 구현을 위한 논리적 프로그래밍 요소 (logical components) 3) 게임 시스템/유저 관리 등 운영 기능이 포함됨 (operational components) Game Backend-as-a-Service (GBaaS) 05. Great Technology For Great Games
  • 7. ✓ Photon by Exit Games (Hamburg, German, founded in 2003) ✓ GameSparks (Dublin, Ireland, founded in 2013) ✓ PlayFab (Seattle, USA, founded in 2014) GBaaS Providers 06. Great Technology For Great Games
  • 8. ✓ Client-Server 모델 + TCP/UDP/HTTP/WS ✓ 코어 구현은 C++ ✓ 동일한 시스템이 여러 리전에 레플리케이션되고, 클라이언트가 지역별 게 이트웨이 서버에 접속하는 방식 ✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음 ✓ API 역시 방을 다루는 방식에 촛점이 맞춰져 있음 ✓ 제한된 dashboard 기능 ✓ 명시적으로 접속할 게임 버전을 클라이언트가 지정하는 형태 Photon Introduction 07. Great Technology For Great Games
  • 9. ✓ Client-Server 모델 + TCP/UDP/HTTP/WS ✓ 코어 구현은 C++ ✓ 동일한 시스템이 여러 리전에 레플리케이션되고, 클라이언트가 지역별 게 이트웨이 서버에 접속하는 방식 ✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음 ✓ API 역시 방을 다루는 방식에 촛점이 맞춰져 있음 ✓ 제한된 dashboard 기능 ✓ 명시적으로 접속할 게임 버전을 클라이언트가 지정하는 형태 Photon Introduction 08. Great Technology For Great Games
  • 10. ✓ Client-Server 모델 + TCP/UDP/HTTP/WS ✓ 코어 구현은 C++ ✓ 동일한 시스템이 여러 리전에 레플리케이션되고, 클라이언트가 지역별 게 이트웨이 서버에 접속하는 방식 ✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음 ✓ API 역시 방을 다루는 방식에 촛점이 맞춰져 있음 ✓ 제한된 dashboard 기능 ✓ 명시적으로 접속할 게임 버전을 클라이언트가 지정하는 형태 Photon Introduction 09. Great Technology For Great Games
  • 11. ✓ Node.js workers pool + MongoDB ✓ 비동기 API 는 WSS, 리얼타임 API 는 TCP/UDP 지원 ✓ 동일한 시스템이 여러 리전에 레플리케이션되고, GS 에서 설정한 프라이머 리 리전의 게이트웨이 서버로 클라이언트가 접속하는 방식 ✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음 ✓ 다만 방을 만드는 방식이 명시적인 방법 외에 Match 나 Challenge 도 가능 ✓ 매칭, 랭킹, 그룹핑, 성취 보상, 가상 경제 등에 대한 API 도 지원 ✓ Dashboard 상에서 리소스 설정, JS 편집, REST 테스트 가능 ✓ 설정의 스냅샷 → 릴리즈 방식으로 버전 관리 GameSparks Introduction 10. Great Technology For Great Games
  • 12. ✓ Node.js workers pool + MongoDB ✓ 비동기 API 는 WSS, 리얼타임 API 는 TCP/UDP 지원 ✓ 동일한 시스템이 여러 리전에 레플리케이션되고, GS 에서 설정한 프라이머 리 리전의 게이트웨이 서버로 클라이언트가 접속하는 방식 ✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음 ✓ 다만 방을 만드는 방식이 명시적인 방법 외에 Match 나 Challenge 도 가능 ✓ 매칭, 랭킹, 그룹핑, 성취 보상, 가상 경제 등에 대한 API 도 지원 ✓ Dashboard 상에서 리소스 설정, JS 편집, REST 테스트 가능 ✓ 설정의 스냅샷 → 릴리즈 방식으로 버전 관리 GameSparks Introduction 11. Great Technology For Great Games
  • 13. ✓ Node.js workers pool + MongoDB ✓ 비동기 API 는 WSS, 리얼타임 API 는 TCP/UDP 지원 ✓ 동일한 시스템이 여러 리전에 레플리케이션되고, GS 에서 설정한 프라이머 리 리전의 게이트웨이 서버로 클라이언트가 접속하는 방식 ✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음 ✓ 다만 방을 만드는 방식이 명시적인 방법 외에 Match 나 Challenge 도 가능 ✓ 매칭, 랭킹, 그룹핑, 성취 보상, 가상 경제 등에 대한 API 도 지원 ✓ Dashboard 상에서 리소스 설정, JS 편집, REST 테스트 가능 ✓ 설정의 스냅샷 → 릴리즈 방식으로 버전 관리 GameSparks Introduction 12. Great Technology For Great Games
  • 14. ✓ 방 (게임 세션) 기반 구현 • 게임의 기본 단위로 “게임 세션” 을 가정 • 게임 세션의 라이프 사이클에 맞춘 API 디자인 • 멀티 플레이의 개념 역시 방 안의 사용자들로 한정 ✓ 기본 API 의 후킹과 커스텀 로직을 통한 게임 콘텐츠 구현 • 기본 API 는 게임 로직에 무관한 중립적인 형태 • 콘텐츠 구현을 위해서는 로직을 확장할 수 있는 방식이 필요함 • 두 제품 모두 API 후킹 및 커스텀 로직 확장을 제공함 ✓ 동일한 시스템이 여러 리전에 자동 복제 • 소위 말하는 “글로벌 원 빌드” Photon vs. GS Commonalities 13. Great Technology For Great Games
  • 15. ✓ 방 (게임 세션) 기반 구현 • 게임의 기본 단위로 “게임 세션” 을 가정 • 게임 세션의 라이프 사이클에 맞춘 API 디자인 • 멀티 플레이의 개념 역시 방 안의 사용자들로 한정 ✓ 기본 API 의 후킹과 커스텀 로직을 통한 게임 콘텐츠 구현 • 기본 API 는 게임 로직에 무관한 중립적인 형태 • 콘텐츠 구현을 위해서는 로직을 확장할 수 있는 방식이 필요함 • 두 제품 모두 API 후킹 및 커스텀 로직 확장을 제공함 ✓ 동일한 시스템이 여러 리전에 자동 복제 • 소위 말하는 “글로벌 원 빌드” Photon vs. GS Commonalities 14. Great Technology For Great Games
  • 16. ✓ 방 (게임 세션) 기반 구현 • 게임의 기본 단위로 “게임 세션” 을 가정 • 게임 세션의 라이프 사이클에 맞춘 API 디자인 • 멀티 플레이의 개념 역시 방 안의 사용자들로 한정 ✓ 기본 API 의 후킹과 커스텀 로직을 통한 게임 콘텐츠 구현 • 기본 API 는 게임 로직에 무관한 중립적인 형태 • 콘텐츠 구현을 위해서는 로직을 확장할 수 있는 방식이 필요함 • 두 제품 모두 API 후킹 및 커스텀 로직 확장을 제공함 ✓ 동일한 시스템이 여러 리전에 자동 복제 • 소위 말하는 “글로벌 원 빌드” Photon vs. GS Commonalities 15. Great Technology For Great Games
  • 17. ✓ 멀티플레이어 Topology 구현: Photon Client-Server vs. GS full mesh ✓ 커스텀 로직 구현 방식 • Webhook 방식: Photon 이 가정한 event 발생시 외부 API 를 호출 • Code injection 방식: GS 는 임의의 JS 코드를 등록하고 이를 호출 ✓ Logical components 의 다양성 • Photon: “방” 에 한정 • GS: 매칭, 그룹핑, 랭킹, 성취 및 보상, 가상 화폐 등 다양한 영역 지원 ✓ Operational component 유무 • Photon: CCU / Room monitoring에 한정 • GS: logical components 의 설정 및 모니터링이 대쉬보드로 가능 Photon vs. GS Differences 16. Great Technology For Great Games
  • 18. ✓ 멀티플레이어 Topology 구현: Photon Client-Server vs. GS full mesh ✓ 커스텀 로직 구현 방식 • Webhook 방식: Photon 이 가정한 event 발생시 외부 API 를 호출 • Code injection 방식: GS 는 임의의 JS 코드를 등록하고 이를 호출 ✓ Logical components 의 다양성 • Photon: “방” 에 한정 • GS: 매칭, 그룹핑, 랭킹, 성취 및 보상, 가상 화폐 등 다양한 영역 지원 ✓ Operational component 유무 • Photon: CCU / Room monitoring에 한정 • GS: logical components 의 설정 및 모니터링이 대쉬보드로 가능 Photon vs. GS Differences 17. Great Technology For Great Games
  • 19. ✓ 멀티플레이어 Topology 구현: Photon Client-Server vs. GS full mesh ✓ 커스텀 로직 구현 방식 • Webhook 방식: Photon 이 가정한 event 발생시 외부 API 를 호출 • Code injection 방식: GS 는 임의의 JS 코드를 등록하고 이를 호출 ✓ Logical components 의 다양성 • Photon: “방” 에 한정 • GS: 매칭, 그룹핑, 랭킹, 성취 및 보상, 가상 화폐 등 다양한 영역 지원 ✓ Operational component 유무 • Photon: CCU / Room monitoring에 한정 • GS: logical components 의 설정 및 모니터링이 대쉬보드로 가능 Photon vs. GS Differences 18. Great Technology For Great Games
  • 20. ✓ 멀티플레이어 Topology 구현: Photon Client-Server vs. GS full mesh ✓ 커스텀 로직 구현 방식 • Webhook 방식: Photon 이 가정한 event 발생시 외부 API 를 호출 • Code injection 방식: GS 는 임의의 JS 코드를 등록하고 이를 호출 ✓ Logical components 의 다양성 • Photon: “방” 에 한정 • GS: 매칭, 그룹핑, 랭킹, 성취 및 보상, 가상 화폐 등 다양한 영역 지원 ✓ Operational component 유무 • Photon: CCU / Room monitoring에 한정 • GS: logical components 의 설정 및 모니터링이 대쉬보드로 가능 Photon vs. GS Differences 19. Great Technology For Great Games
  • 21. ✓ 싱글 플레이 게임에 효과적 • 기본 API 가 콘텐츠 로직을 포함하지 않기 때문에,복잡한 콘텐츠 로직이 필요없고 정형화된 게임 시스템의 싱글 플레이 게임 제작에 효과적 ✓ 방 (게임 세션) 기반 멀티 플레이 게임에 효과적 • API 가 방 기반으로 디자인 되었기 때문에, 방의 생성, 검색, 참여, 탈퇴, 종료 상황에 대해서 잘 정의하고 있음 GBaaS Strength 20. Great Technology For Great Games
  • 22. ✓ 싱글 플레이 게임에 효과적 • 기본 API 가 콘텐츠 로직을 포함하지 않기 때문에,복잡한 콘텐츠 로직이 필요없고 정형화된 게임 시스템의 싱글 플레이 게임 제작에 효과적 ✓ 방 (게임 세션) 기반 멀티 플레이 게임에 효과적 • API 가 방 기반으로 디자인 되었기 때문에, 방의 생성, 검색, 참여, 탈퇴, 종료 상황에 대해서 잘 정의하고 있음 GBaaS Strength 21. Great Technology For Great Games
  • 23. ✓ 방 기반이 아닌 게임에 취약 • 오픈월드 등 방 기반이 아닌 시스템을 구현하기 위한 API 존재하지 않음
 이는 추후에 추가해서 해결 될 수 있는 것이 아닌 구조적인 문제에 가까움 ✓ 로직 확장이 어려움 • Webhook 은 외부 시스템에 별도로 state 를 복제/관리해야됨을 의미 • Code injection 은 대규모 코드의 작성이 어렵고, cloud 상에 올라간 코 드의 확인 및 버전 관리도 힘듦 ✓ MMO 지원에 취약 • 방 기반 API 는 거의 필연적으로 브로드캐스팅 방식을 사용함 • 상황에 따라 패킷 전송 범위를 다르게 정하는 것은 콘텐츠 로직의 도움 없 이 시스템 만으로 구현하는데 한계가 있음 GBaaS Weakness 22. Great Technology For Great Games
  • 24. ✓ 방 기반이 아닌 게임에 취약 • 오픈월드 등 방 기반이 아닌 시스템을 구현하기 위한 API 존재하지 않음
 이는 추후에 추가해서 해결 될 수 있는 것이 아닌 구조적인 문제에 가까움 ✓ 로직 확장이 어려움 • Webhook 은 외부 시스템에 별도로 state 를 복제/관리해야됨을 의미 • Code injection 은 대규모 코드의 작성이 어렵고, cloud 상에 올라간 코 드의 확인 및 버전 관리도 힘듦 ✓ MMO 지원에 취약 • 방 기반 API 는 거의 필연적으로 브로드캐스팅 방식을 사용함 • 상황에 따라 패킷 전송 범위를 다르게 정하는 것은 콘텐츠 로직의 도움 없 이 시스템 만으로 구현하는데 한계가 있음 GBaaS Weakness 23. Great Technology For Great Games
  • 25. ✓ 방 기반이 아닌 게임에 취약 • 오픈월드 등 방 기반이 아닌 시스템을 구현하기 위한 API 존재하지 않음
 이는 추후에 추가해서 해결 될 수 있는 것이 아닌 구조적인 문제에 가까움 ✓ 로직 확장이 어려움 • Webhook 은 외부 시스템에 별도로 state 를 복제/관리해야됨을 의미 • Code injection 은 대규모 코드의 작성이 어렵고, cloud 상에 올라간 코 드의 확인 및 버전 관리도 힘듦 ✓ MMO 지원에 취약 • 방 기반 API 는 거의 필연적으로 브로드캐스팅 방식을 사용함 • 상황에 따라 패킷 전송 범위를 다르게 정하는 것은 콘텐츠 로직의 도움 없 이 시스템 만으로 구현하는데 한계가 있음 GBaaS Weakness 24. Great Technology For Great Games
  • 26. ✓ Strength • 로직 확장이 자유로움 • 구현 가능한 시스템에 제약이 없음 • 병목 디버깅 / 튜닝 용이 • 따라서 복잡한 로직의 게임이나 MMO 등에 적합 ✓ Weakness • 기초적인 것만 돌려보기 위해서도 초기 작업량이 많음 Self-hosting Strength & Weakness 25. Great Technology For Great Games
  • 27. ✓ Strength • 로직 확장이 자유로움 • 구현 가능한 시스템에 제약이 없음 • 병목 디버깅 / 튜닝 용이 • 따라서 복잡한 로직의 게임이나 MMO 등에 적합 ✓ Weakness • 기초적인 것만 돌려보기 위해서도 초기 작업량이 많음 Self-hosting Strength & Weakness 26. Great Technology For Great Games
  • 28. ✓ GBaaS 는 서버/DB/네트워크 등 물리 요소를 다루지 않아도 되기에 편리함 ✓ GBaaS 는 게임 시스템 구현을 위한 논리 요소를 “단순화”하여 쓰기 쉽게함 ✓ GBaaS 의 운영 요소 유무는 안정성 만큼이나 중요하게 고려되어야 함 ✓ GBaaS 의 단순화된 논리 요소는 게임 로직의 확장을 어렵게 함 ✓ GBaaS 의 이런 장단점으로 싱글 플레이/방 기반 멀티플레이에 적합도 높음 ✓ 서버 직접 운영은 단순화의 부족으로 초기 작업량이 많을 수 있음 ✓ 그러나 다양한 시스템의 구현과 로직의 확장이 용이함 ✓ 또한 블랙박스 요소의 감소로 디버깅이 용이함 Conclusion 27. Great Technology For Great Games
  • 29. ✓ GBaaS 는 서버/DB/네트워크 등 물리 요소를 다루지 않아도 되기에 편리함 ✓ GBaaS 는 게임 시스템 구현을 위한 논리 요소를 “단순화”하여 쓰기 쉽게함 ✓ GBaaS 의 운영 요소 유무는 안정성 만큼이나 중요하게 고려되어야 함 ✓ GBaaS 의 단순화된 논리 요소는 게임 로직의 확장을 어렵게 함 ✓ GBaaS 의 이런 장단점으로 싱글 플레이/방 기반 멀티플레이에 적합도 높음 ✓ 서버 직접 운영은 단순화의 부족으로 초기 작업량이 많을 수 있음 ✓ 그러나 다양한 시스템의 구현과 로직의 확장이 용이함 ✓ 또한 블랙박스 요소의 감소로 디버깅이 용이함 Conclusion 28. Great Technology For Great Games
  • 30. ✓ GBaaS 는 서버/DB/네트워크 등 물리 요소를 다루지 않아도 되기에 편리함 ✓ GBaaS 는 게임 시스템 구현을 위한 논리 요소를 “단순화”하여 쓰기 쉽게함 ✓ GBaaS 의 운영 요소 유무는 안정성 만큼이나 중요하게 고려되어야 함 ✓ GBaaS 의 단순화된 논리 요소는 게임 로직의 확장을 어렵게 함 ✓ GBaaS 의 이런 장단점으로 싱글 플레이/방 기반 멀티플레이에 적합도 높음 ✓ 서버 직접 운영은 단순화의 부족으로 초기 작업량이 많을 수 있음 ✓ 그러나 다양한 시스템의 구현과 로직의 확장이 용이함 ✓ 또한 블랙박스 요소의 감소로 디버깅이 용이함 Conclusion 29. Great Technology For Great Games
  • 31. (MMO and non-session based games) PC/MMO is about 27% of total game market. Addressable Market Size Difference 30. Great Technology For Great Games Source: Newzoo report, June, 2016
  • 32. DK Moon dkmoon@ifunfactory.com www.ifunfactory.com THANKS! G r e a t Te c h n o l o g y F o r G r e a t G a m e s , i F u n Fa c t o r y