클라우드 기반 unity 게임 서버 구축, 60분이면 충분하다

63
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다! CloudBread 프로젝트 팀 김대우 / 홍윤석 / 김정현 / 한바환 http://aka.ms/cbp

Upload: dae-kim

Post on 16-Apr-2017

6.600 views

Category:

Software


6 download

TRANSCRIPT

Page 1: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

클라우드 기반Unity 게임 서버 구축, 60분이면 충분하다!

CloudBread 프로젝트 팀

김대우 / 홍윤석 / 김정현 / 한바환http://aka.ms/cbp

Page 2: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

This project released under the MIT license.CloudBread project is not responsible for software that damages or corrupts your service. This website is a guide to Open Source Software. Although we test applications we cannot guarantee their safe use. Download and use the programs at your own risk.This open source software is CloudBread team project and this is not associated with company or organization.

Page 3: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

- 게임만 개발하기도 바빠요ㅠㅠ

Page 4: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

- 서버 확장하니 클라이언트코드 대박 체인지!! ㅠㅠ

Page 5: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

- 인증처리(?), 암호화 처리(?)관리자 도구(?), 실시간 통신(?)DAU, ARPU 등 통계 분석(?)을

위한 스케쥴러 배치(?)

Page 6: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

- 게임서버 가격이 어마무시(!)기능 추가/변경도 불가(!)

API들을 직접 만들 생각하니ㅠㅠ

Page 7: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

먼저 경험해본 사람들

https://youtu.be/x1kuy024RyI

Page 8: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
Page 9: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

게임만 개발하기도 바빠요ㅠㅠ

A. 클라이언트 앱 개발에만 집중API 파라미터만 맞춰서 호출

Page 10: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

- 게임서버 가격이 어마무시(!)기능 추가/변경도 불가(!)

API들을 직접 만들 생각하니ㅠㅠ

A. 무료 오픈소스 프로젝트(MIT)100여개의 로직 기본 제공

오픈소스 : 원하는 기능 추가/수정이 간편

Page 11: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

- 서버 확장하니 클라이언트 코드대박 체인지!! ㅠㅠ

A. 서버가 확장되어도클라이언트 코드는 변경 없음

Page 12: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

- 인증처리(?), 암호화 처리(?)관리자 도구(?), 실시간 Socket 통신(?)

DAU, ARPU 등 통계 분석(?)을위한 스케쥴러 배치(?)

A. CloudBread가 모두 기본 제공지속적으로 기능 추가/확장 중

Page 13: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

무료 오픈소스프로젝트 - CloudBread

- 앱개발에 집중

- 파라미터에맞춰 호출

- 예제테스트 앱제공

- REST 호출함수 만들 필요없음

- 앱의코드는 바뀌지않음

- IaaS보다진화한 PaaS 클라우드

- Scale Up – Out 선택은 자유

- 서비스구조에맞는 기능 선택

- 보안구조 / 데이터 암호화선택 가능

- GM 관리자도구 제공

- 기본배치(DAU, HAU, DARPU) 제공

- 무료기술 교육제공(헤카톤/캠프)

(대부분이미 다 만들어진)무료 오픈소스(MIT) 프로젝트모바일 게임과 앱에 최적화된 게임 서버 엔진

Page 14: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

- So What?

Page 15: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

목표!50분간 동안

Unity게임서버 구축!

Page 16: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

1. 게임서버 엔진2. 서버 배포3. 서버와 통신4. Unity Code 구현5. 성능, 인증, 암호화

Page 17: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

시간 관계상

배포먼저 하고 가실게요~

Page 18: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

배포 Demo

CloudBread Contributor

https://youtu.be/wBd5glxr_oM

김정현

Page 19: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

1. 게임서버 엔진2. 서버 배포3. 서버와 통신4. Unity Code 구현5. 성능, 인증, 암호화

Page 20: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

제가 참 좋아하는“국민 게임”

Page 21: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

게임데이터처리

Page 22: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

고민!

어떻게 서버와 통신을?

Page 23: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

클라이언트디바이스와CloudBread 게임서버의

은밀한~ 통신

Page 24: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

HTTPREST APIJSON+ Socket 통신(Realtime)

Page 25: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

이벤트 조회 API : SelGameEvents 를 호출한다.

HTTP Request 요청 구조

HTTP Response 응답 구조

HTTP 방식 Rest API ~!

{memberID = “member1”

}

{EventID =“eventID1”, EventName=“크리스탈1”, 기간=…EventID =“eventID2”, EventName=“좋은템1”, 기간=…EventID =“eventID13, EventName=“보너스아이템”, 기간=…

}

Page 26: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

이벤트 조회 API : SelGameEvents 를 호출한다.

HTTP Request 요청 구조

HTTP Response 응답 구조

HTTP 방식 Rest API ~!

{memberID = “member1”

}

{EventID =“eventID1”, EventName=“크리스탈1”, 기간=…EventID =“eventID2”, EventName=“좋은템1”, 기간=…EventID =“eventID13, EventName=“보너스아이템”, 기간=…

}

API ???

Page 27: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

API 리스트Game Logic = Behavior

Game Logic -> APIAPI 추가, 수정이간편!

Page 28: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

Behavior 리스트http://aka.ms/cbp

-> wiki –> Behavior 리스트문서

Page 29: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

Behavior = 행위Object = 대상

데이터베이스!

Page 30: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

회원 : Member

관리자 : Admin

구매 : Purchase

아이템 : Item

멤버아이템 :

MemberItem

게임정보 : GameInfo

스테이지 : Stage

선물 : Gift

공지사항 : Notice

이벤트 : Event

쿠폰 : Coupon

Page 31: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

CloudBread DB 디자인http://aka.ms/cbp

-> wiki –> database 디자인문서

Page 32: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

클라이어트개발자 <TODO>

-API를파라미터에맞춰호출

Page 33: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

공지사항 - Notice

Page 34: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

공지사항CBSelNotices

Page 35: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

이벤트 - Event

Page 36: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

이벤트CBSelGameEvents

Page 37: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

선물 - Gift

Page 38: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

이벤트CBSelGiftItemToMe

Page 39: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

게임정보-GameInfo, 랭킹-Rank, 아이템-Item

Page 40: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

게임정보CBComSelMemberGameInfoes

랭킹GetMemberRankbyMeberID

GetRangeRankerInfoCBRank-GetTopXRanker

Page 41: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

멤버아이템 - MemberItem

Page 42: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

구매CBComSelMemberItemPurchase

Page 43: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

OK.

Unity에서 어떻게 API를 호출할까?

“게임”내에서 어떻게 API를 호출할까?

Page 44: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

1. 게임서버 엔진2. 서버 배포3. 서버와 통신4. Unity Code 구현5. 성능, 인증, 암호화

Page 45: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

Unity Code 구현 Demo

CloudBread Contributorhttps://youtu.be/umWGSm0h8kE

홍윤석

Page 46: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

1. 게임서버 엔진2. 서버 배포3. 서버와 통신4. Unity Code 구현5. 성능, 인증, 암호화

Page 47: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

Unity 호출 방식도 OK.하지만, 게임서버로 성능이 그만큼 나와?

동접이 초당 X,000은 되어야….

Page 48: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

RPS(Request per Second) 6,000건도 가뿐!

CloudBread 성능on

Real “Cloud”

Page 49: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

Jmeter Demo

Page 50: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

Google ID, Facebook, Microsoft account& KAKAO(구현 중)

이런 인증은 요즘 게임에서 기본으로…

Page 51: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

Facebook과 Google 인증(Authentication)

onPaaS Developer “Cloud”

Page 52: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

암호화(Encryption) 기능, 관리 도구와실시간 Socket 통신, 통계 처리도 있어야…

Page 53: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

암호화, 관리도구, 실시간 Socket 통신, 통계

onEasy “Cloud”

Page 54: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

AES256 Crypt 기본 지원

Page 55: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

관리자 화면 기본 지원

Page 56: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

DAU, HAU, DARPU 기본 통계 제공

Page 57: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

Github -> CloudBreadwiki -> (한글)개발자 가이드

여기에서 시작하세욥!http://aka.ms/cbp

Page 58: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

지난 캠프 / 다음 캠프

Page 59: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

Onoffmix : CloudBread“3차 캠프” 참여자 모집 중

http://aka.ms/cbfb

Page 60: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

스토리를 만들어가는 사람들

Page 61: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

이 모든 스토리의 시작http://aka.ms/cbp

더 많은 사람들과 모임http://aka.ms/cbfb

함께 스토리를 이어나갈“Contributor”를 모십니다

Page 62: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다

“함께 생각과 경험을 나누는”

더 많은 사람들과 모임http://aka.ms/cbfb

Page 63: 클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다