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

  • View
    6.602

  • Download
    6

  • Category

    Software

Preview:

Citation preview

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

CloudBread 프로젝트 팀

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

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.

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

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

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

위한 스케쥴러 배치(?)

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

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

먼저 경험해본 사람들

https://youtu.be/x1kuy024RyI

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

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

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

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

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

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

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

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

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

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

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

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

- 앱개발에 집중

- 파라미터에맞춰 호출

- 예제테스트 앱제공

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

- 앱의코드는 바뀌지않음

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

- Scale Up – Out 선택은 자유

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

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

- GM 관리자도구 제공

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

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

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

- So What?

목표!50분간 동안

Unity게임서버 구축!

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

시간 관계상

배포먼저 하고 가실게요~

배포 Demo

CloudBread Contributor

https://youtu.be/wBd5glxr_oM

김정현

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

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

게임데이터처리

고민!

어떻게 서버와 통신을?

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

은밀한~ 통신

HTTPREST APIJSON+ Socket 통신(Realtime)

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

HTTP Request 요청 구조

HTTP Response 응답 구조

HTTP 방식 Rest API ~!

{memberID = “member1”

}

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

}

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

HTTP Request 요청 구조

HTTP Response 응답 구조

HTTP 방식 Rest API ~!

{memberID = “member1”

}

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

}

API ???

API 리스트Game Logic = Behavior

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

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

-> wiki –> Behavior 리스트문서

Behavior = 행위Object = 대상

데이터베이스!

회원 : Member

관리자 : Admin

구매 : Purchase

아이템 : Item

멤버아이템 :

MemberItem

게임정보 : GameInfo

스테이지 : Stage

선물 : Gift

공지사항 : Notice

이벤트 : Event

쿠폰 : Coupon

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

-> wiki –> database 디자인문서

클라이어트개발자 <TODO>

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

공지사항 - Notice

공지사항CBSelNotices

이벤트 - Event

이벤트CBSelGameEvents

선물 - Gift

이벤트CBSelGiftItemToMe

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

게임정보CBComSelMemberGameInfoes

랭킹GetMemberRankbyMeberID

GetRangeRankerInfoCBRank-GetTopXRanker

멤버아이템 - MemberItem

구매CBComSelMemberItemPurchase

OK.

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

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

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

Unity Code 구현 Demo

CloudBread Contributorhttps://youtu.be/umWGSm0h8kE

홍윤석

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

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

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

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

CloudBread 성능on

Real “Cloud”

Jmeter Demo

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

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

Facebook과 Google 인증(Authentication)

onPaaS Developer “Cloud”

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

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

onEasy “Cloud”

AES256 Crypt 기본 지원

관리자 화면 기본 지원

DAU, HAU, DARPU 기본 통계 제공

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

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

지난 캠프 / 다음 캠프

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

http://aka.ms/cbfb

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

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

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

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

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

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

Recommended