Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

4

Share

Download to read offline

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

Download to read offline

2017 아이펀팩토리 Dev Day 발표영상
강연주제 : 게임서버 구축 방법비교 : GBaaS vs. Self-hosting

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

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

  1. 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. 2. 다루는 내용: Photon 과 GameSparks 에서 보는 GBaaS 의 공통 요소들, 구현/설계상 차이점 다루지 않는 내용: 개개의 GBaaS 구현의 안정성 여부 About This Talk 01. Great Technology For Great Games
  3. 3. 다루는 내용: Photon 과 GameSparks 에서 보는 GBaaS 의 공통 요소들, 구현/설계상 차이점 다루지 않는 내용: 개개의 GBaaS 구현의 안정성 여부 About This Talk 02. Great Technology For Great Games
  4. 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. 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. 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. 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. 8. ✓ Client-Server 모델 + TCP/UDP/HTTP/WS ✓ 코어 구현은 C++ ✓ 동일한 시스템이 여러 리전에 레플리케이션되고, 클라이언트가 지역별 게 이트웨이 서버에 접속하는 방식 ✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음 ✓ API 역시 방을 다루는 방식에 촛점이 맞춰져 있음 ✓ 제한된 dashboard 기능 ✓ 명시적으로 접속할 게임 버전을 클라이언트가 지정하는 형태 Photon Introduction 07. Great Technology For Great Games
  9. 9. ✓ Client-Server 모델 + TCP/UDP/HTTP/WS ✓ 코어 구현은 C++ ✓ 동일한 시스템이 여러 리전에 레플리케이션되고, 클라이언트가 지역별 게 이트웨이 서버에 접속하는 방식 ✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음 ✓ API 역시 방을 다루는 방식에 촛점이 맞춰져 있음 ✓ 제한된 dashboard 기능 ✓ 명시적으로 접속할 게임 버전을 클라이언트가 지정하는 형태 Photon Introduction 08. Great Technology For Great Games
  10. 10. ✓ Client-Server 모델 + TCP/UDP/HTTP/WS ✓ 코어 구현은 C++ ✓ 동일한 시스템이 여러 리전에 레플리케이션되고, 클라이언트가 지역별 게 이트웨이 서버에 접속하는 방식 ✓ 게임의 전체 흐름이 방의 생성 → 플레이 → 종료에 맞춰져 있음 ✓ API 역시 방을 다루는 방식에 촛점이 맞춰져 있음 ✓ 제한된 dashboard 기능 ✓ 명시적으로 접속할 게임 버전을 클라이언트가 지정하는 형태 Photon Introduction 09. Great Technology For Great Games
  11. 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. 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. 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. 14. ✓ 방 (게임 세션) 기반 구현 • 게임의 기본 단위로 “게임 세션” 을 가정 • 게임 세션의 라이프 사이클에 맞춘 API 디자인 • 멀티 플레이의 개념 역시 방 안의 사용자들로 한정 ✓ 기본 API 의 후킹과 커스텀 로직을 통한 게임 콘텐츠 구현 • 기본 API 는 게임 로직에 무관한 중립적인 형태 • 콘텐츠 구현을 위해서는 로직을 확장할 수 있는 방식이 필요함 • 두 제품 모두 API 후킹 및 커스텀 로직 확장을 제공함 ✓ 동일한 시스템이 여러 리전에 자동 복제 • 소위 말하는 “글로벌 원 빌드” Photon vs. GS Commonalities 13. Great Technology For Great Games
  15. 15. ✓ 방 (게임 세션) 기반 구현 • 게임의 기본 단위로 “게임 세션” 을 가정 • 게임 세션의 라이프 사이클에 맞춘 API 디자인 • 멀티 플레이의 개념 역시 방 안의 사용자들로 한정 ✓ 기본 API 의 후킹과 커스텀 로직을 통한 게임 콘텐츠 구현 • 기본 API 는 게임 로직에 무관한 중립적인 형태 • 콘텐츠 구현을 위해서는 로직을 확장할 수 있는 방식이 필요함 • 두 제품 모두 API 후킹 및 커스텀 로직 확장을 제공함 ✓ 동일한 시스템이 여러 리전에 자동 복제 • 소위 말하는 “글로벌 원 빌드” Photon vs. GS Commonalities 14. Great Technology For Great Games
  16. 16. ✓ 방 (게임 세션) 기반 구현 • 게임의 기본 단위로 “게임 세션” 을 가정 • 게임 세션의 라이프 사이클에 맞춘 API 디자인 • 멀티 플레이의 개념 역시 방 안의 사용자들로 한정 ✓ 기본 API 의 후킹과 커스텀 로직을 통한 게임 콘텐츠 구현 • 기본 API 는 게임 로직에 무관한 중립적인 형태 • 콘텐츠 구현을 위해서는 로직을 확장할 수 있는 방식이 필요함 • 두 제품 모두 API 후킹 및 커스텀 로직 확장을 제공함 ✓ 동일한 시스템이 여러 리전에 자동 복제 • 소위 말하는 “글로벌 원 빌드” Photon vs. GS Commonalities 15. Great Technology For Great Games
  17. 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. 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. 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. 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. 21. ✓ 싱글 플레이 게임에 효과적 • 기본 API 가 콘텐츠 로직을 포함하지 않기 때문에,복잡한 콘텐츠 로직이 필요없고 정형화된 게임 시스템의 싱글 플레이 게임 제작에 효과적 ✓ 방 (게임 세션) 기반 멀티 플레이 게임에 효과적 • API 가 방 기반으로 디자인 되었기 때문에, 방의 생성, 검색, 참여, 탈퇴, 종료 상황에 대해서 잘 정의하고 있음 GBaaS Strength 20. Great Technology For Great Games
  22. 22. ✓ 싱글 플레이 게임에 효과적 • 기본 API 가 콘텐츠 로직을 포함하지 않기 때문에,복잡한 콘텐츠 로직이 필요없고 정형화된 게임 시스템의 싱글 플레이 게임 제작에 효과적 ✓ 방 (게임 세션) 기반 멀티 플레이 게임에 효과적 • API 가 방 기반으로 디자인 되었기 때문에, 방의 생성, 검색, 참여, 탈퇴, 종료 상황에 대해서 잘 정의하고 있음 GBaaS Strength 21. Great Technology For Great Games
  23. 23. ✓ 방 기반이 아닌 게임에 취약 • 오픈월드 등 방 기반이 아닌 시스템을 구현하기 위한 API 존재하지 않음
 이는 추후에 추가해서 해결 될 수 있는 것이 아닌 구조적인 문제에 가까움 ✓ 로직 확장이 어려움 • Webhook 은 외부 시스템에 별도로 state 를 복제/관리해야됨을 의미 • Code injection 은 대규모 코드의 작성이 어렵고, cloud 상에 올라간 코 드의 확인 및 버전 관리도 힘듦 ✓ MMO 지원에 취약 • 방 기반 API 는 거의 필연적으로 브로드캐스팅 방식을 사용함 • 상황에 따라 패킷 전송 범위를 다르게 정하는 것은 콘텐츠 로직의 도움 없 이 시스템 만으로 구현하는데 한계가 있음 GBaaS Weakness 22. Great Technology For Great Games
  24. 24. ✓ 방 기반이 아닌 게임에 취약 • 오픈월드 등 방 기반이 아닌 시스템을 구현하기 위한 API 존재하지 않음
 이는 추후에 추가해서 해결 될 수 있는 것이 아닌 구조적인 문제에 가까움 ✓ 로직 확장이 어려움 • Webhook 은 외부 시스템에 별도로 state 를 복제/관리해야됨을 의미 • Code injection 은 대규모 코드의 작성이 어렵고, cloud 상에 올라간 코 드의 확인 및 버전 관리도 힘듦 ✓ MMO 지원에 취약 • 방 기반 API 는 거의 필연적으로 브로드캐스팅 방식을 사용함 • 상황에 따라 패킷 전송 범위를 다르게 정하는 것은 콘텐츠 로직의 도움 없 이 시스템 만으로 구현하는데 한계가 있음 GBaaS Weakness 23. Great Technology For Great Games
  25. 25. ✓ 방 기반이 아닌 게임에 취약 • 오픈월드 등 방 기반이 아닌 시스템을 구현하기 위한 API 존재하지 않음
 이는 추후에 추가해서 해결 될 수 있는 것이 아닌 구조적인 문제에 가까움 ✓ 로직 확장이 어려움 • Webhook 은 외부 시스템에 별도로 state 를 복제/관리해야됨을 의미 • Code injection 은 대규모 코드의 작성이 어렵고, cloud 상에 올라간 코 드의 확인 및 버전 관리도 힘듦 ✓ MMO 지원에 취약 • 방 기반 API 는 거의 필연적으로 브로드캐스팅 방식을 사용함 • 상황에 따라 패킷 전송 범위를 다르게 정하는 것은 콘텐츠 로직의 도움 없 이 시스템 만으로 구현하는데 한계가 있음 GBaaS Weakness 24. Great Technology For Great Games
  26. 26. ✓ Strength • 로직 확장이 자유로움 • 구현 가능한 시스템에 제약이 없음 • 병목 디버깅 / 튜닝 용이 • 따라서 복잡한 로직의 게임이나 MMO 등에 적합 ✓ Weakness • 기초적인 것만 돌려보기 위해서도 초기 작업량이 많음 Self-hosting Strength & Weakness 25. Great Technology For Great Games
  27. 27. ✓ Strength • 로직 확장이 자유로움 • 구현 가능한 시스템에 제약이 없음 • 병목 디버깅 / 튜닝 용이 • 따라서 복잡한 로직의 게임이나 MMO 등에 적합 ✓ Weakness • 기초적인 것만 돌려보기 위해서도 초기 작업량이 많음 Self-hosting Strength & Weakness 26. Great Technology For Great Games
  28. 28. ✓ GBaaS 는 서버/DB/네트워크 등 물리 요소를 다루지 않아도 되기에 편리함 ✓ GBaaS 는 게임 시스템 구현을 위한 논리 요소를 “단순화”하여 쓰기 쉽게함 ✓ GBaaS 의 운영 요소 유무는 안정성 만큼이나 중요하게 고려되어야 함 ✓ GBaaS 의 단순화된 논리 요소는 게임 로직의 확장을 어렵게 함 ✓ GBaaS 의 이런 장단점으로 싱글 플레이/방 기반 멀티플레이에 적합도 높음 ✓ 서버 직접 운영은 단순화의 부족으로 초기 작업량이 많을 수 있음 ✓ 그러나 다양한 시스템의 구현과 로직의 확장이 용이함 ✓ 또한 블랙박스 요소의 감소로 디버깅이 용이함 Conclusion 27. Great Technology For Great Games
  29. 29. ✓ GBaaS 는 서버/DB/네트워크 등 물리 요소를 다루지 않아도 되기에 편리함 ✓ GBaaS 는 게임 시스템 구현을 위한 논리 요소를 “단순화”하여 쓰기 쉽게함 ✓ GBaaS 의 운영 요소 유무는 안정성 만큼이나 중요하게 고려되어야 함 ✓ GBaaS 의 단순화된 논리 요소는 게임 로직의 확장을 어렵게 함 ✓ GBaaS 의 이런 장단점으로 싱글 플레이/방 기반 멀티플레이에 적합도 높음 ✓ 서버 직접 운영은 단순화의 부족으로 초기 작업량이 많을 수 있음 ✓ 그러나 다양한 시스템의 구현과 로직의 확장이 용이함 ✓ 또한 블랙박스 요소의 감소로 디버깅이 용이함 Conclusion 28. Great Technology For Great Games
  30. 30. ✓ GBaaS 는 서버/DB/네트워크 등 물리 요소를 다루지 않아도 되기에 편리함 ✓ GBaaS 는 게임 시스템 구현을 위한 논리 요소를 “단순화”하여 쓰기 쉽게함 ✓ GBaaS 의 운영 요소 유무는 안정성 만큼이나 중요하게 고려되어야 함 ✓ GBaaS 의 단순화된 논리 요소는 게임 로직의 확장을 어렵게 함 ✓ GBaaS 의 이런 장단점으로 싱글 플레이/방 기반 멀티플레이에 적합도 높음 ✓ 서버 직접 운영은 단순화의 부족으로 초기 작업량이 많을 수 있음 ✓ 그러나 다양한 시스템의 구현과 로직의 확장이 용이함 ✓ 또한 블랙박스 요소의 감소로 디버깅이 용이함 Conclusion 29. Great Technology For Great Games
  31. 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. 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
  • wind0725

    Apr. 11, 2018
  • ssuser4903d8

    Jul. 10, 2017
  • choeungjin

    May. 6, 2017
  • dkmoon

    Apr. 3, 2017

2017 아이펀팩토리 Dev Day 발표영상 강연주제 : 게임서버 구축 방법비교 : GBaaS vs. Self-hosting

Views

Total views

4,565

On Slideshare

0

From embeds

0

Number of embeds

875

Actions

Downloads

16

Shares

0

Comments

0

Likes

4

×