게임테크 2014 후기

30
NHN NEXT 손손손

Upload: chaeone-son

Post on 23-Jun-2015

289 views

Category:

Education


2 download

DESCRIPTION

겡미테크 후기

TRANSCRIPT

Page 1: 게임테크 2014 후기

NHN NEXT손채원

Page 2: 게임테크 2014 후기

1. Wwise : A Complete Game Audio Pipeline Solu-tion

2. 영웅의 군단 개발일지

3. Inside Node.js

4. 게임 서버 보안을 위한 라이센스 서버 및 패커 - Sen-tinel LDK, Envelope

5. 모바일 게임 전 BaaS/PaaS 의 구현사례 와 디자인 트레이드 오프

순서

Page 3: 게임테크 2014 후기

1. WwiseGame Audio Engine

Page 4: 게임테크 2014 후기

Fmod 와 같은 사운드 엔진

Page 5: 게임테크 2014 후기
Page 6: 게임테크 2014 후기

강연자가 가장 많이 했던 말

‘wWise 와 함께라면’

게임과 실시간 동기화 사운드 믹싱 가능

이벤트 발생에 따른 사운드 제어 가능

Reduced Programmer Independency

언리얼 엔진과 유니티에 통합 플러그인 제공

ㅋㅋ

Page 7: 게임테크 2014 후기

결론은 홍보더라 !

그런데 툴은 정말로 짱짱맨이었습니다

사운드 트랙 200 개 이하의 소규모 프로젝트에 free 지원

https://www.audiokinetic.com/licensing/free-limited-commercial/

Page 8: 게임테크 2014 후기

2. 영웅의 군단그들은 4 년간 뭘 하고 있었는가

Page 9: 게임테크 2014 후기

그들의 의도

1. PC MMORPG, 모바일에서 즐길 순 없을까 ? - 그래서 다 옮겼다 ( 경매장 , pk 약탈 , 만렙컨텐츠 , pvp, 강화 )

2. 모바일이라서 줄 수 있는 재미를 살리자 ! - SNS 연동 , TCG 스타일의 영웅 시스템 , 아기자기한 UI

3. 엔도어즈만의 개성을 살리자 ! - 120 명 이상의 영웅 , 캐릭터들간의 분노 공유 , 재미있는 세계관

알고보니 없는 게 없는 게임이었다 .. 그리고 떠오른 것 ..

Page 10: 게임테크 2014 후기

!?우 .. 우걀걀 ..

Page 11: 게임테크 2014 후기

그들의 삽질

1. 게임 엔진을 바꿨다 - 겜브리오에서 유니티로

2. 플랫폼을 바꿨다

- PC 에서 모바일로 ;

PC MMORPG 로는 평범해 보이지만 모바일로는 신선하다 !?

3. 내려놓았다

- 실시간 전투

농장 타이쿤과 같은 영지 시스템

제작과 채집 : 완제품을 드랍하기로 .. 훌쩍

Page 12: 게임테크 2014 후기

모바일 , 선입견에 시달리다

모바일 게임은 돈이 많이 들면 안돼 ,하루 빨리 출시해야해 ,

하나 둘 씩 퇴사

쉬운 게 하나 없었다 !

Page 13: 게임테크 2014 후기

모바일 , 도약하다

직관적 UI

노 튜토리얼

페이스북과 연동

미니미니 귀욤귀욤

Page 14: 게임테크 2014 후기

마케팅 , 본질만 보여주자 !

Page 15: 게임테크 2014 후기

3. Node.jsFor Game Server on Web Game

Page 16: 게임테크 2014 후기

Node.Js 란 ?

2009~ 자바스크립트 백엔드 플랫폼

구글의 크롬 V8  자바스크립트 엔진을 기반

이벤트 드리븐 논블럭 IO

Single Thread  기반의 Event Loop 를 기반

오 . 픈 . 소 . 스 .

대규모 요청 처리 가능 !!!

-> 최근 웹게임과 모바일 게임을 위한 서버 플랫폼으로 각광받는 중 !

Page 17: 게임테크 2014 후기

Node.Js 개발 철학

1. 프론트 엔드 언어로 백 엔드도 구현하자 !

2. 퍼포먼스는 소중한 것

3. 이벤트 드리븐 논블럭 IO 로 대규모 요청을 처리하자

4. 성능이 필요할땐 C/C++ 느님의 힘을 빌리자

-> 온라인 게임 개발 철학과 묘하게 닮았다 !! 던데

Page 18: 게임테크 2014 후기

게임 서버에는 어떻게 적용할 수 있나 ?

대규모 IO 바운드 요청에 완전 짱짱 적합해요 !

- 소셜 웹 게임 , 모바일 게임에 효율적

( 모든 요청은 3초 내에 . 실시간이 아니어도 됨 . 전세계에 제공됨 )

대신 실시간 MMORPG 같은 복잡한 CPU 바운드 요청이 잦으면

적합하지 않아요 . CPU 부하를 분할하지 못해요

- 우리에겐 Easy Server 가 있어요

소켓 IO 모듈에는 ..

- string base job 에 최적화되어가는 에코시스템 !

packet base job 에는 퍼포먼스가 떨어져요 ㅠ

C++ 과 바인딩이 쉬워요 ~

- 성능이 필요할 때는 언제든지

Page 19: 게임테크 2014 후기

개발환경

3 년 전까지만 해도 VI 로 코딩할 정도로 열악했으나 ,

Webstorm 이 정식으로 지원해주기 시작했다 !

Visual Studio 에 애드온이 생겼다 !

오픈 소스라 에코시스템 짱짱맨 . 없는 게 없다능 .

결론 : 모바일 게임 , 웹 게임 서버 개발시 node.js 를 떠올려 보자

Page 20: 게임테크 2014 후기

4. 라이선스 서버와 패커

For Game Server

Page 21: 게임테크 2014 후기

라이선스 서버가 모지모지 ?

한국에 하드웨어 형태의 라이선스 서버를 두고 실제 서비스하는 서버를 일정 주기마다 갱신하는 형태

패커는 멀까염 ?

DLL 인젝션 , 리버스 엔지니어링과 같은 공격이 우려될 때 실행파일과 서버를 예쁘게 보호해주는 역할을 한다 !

Page 22: 게임테크 2014 후기

열심히 들었는데 .. 이런거 비싸서 잘 안쓴대요 .. 구교수님이 ..

80% 가 홍보였다 !!

Page 23: 게임테크 2014 후기

5. BaaS/PaaS && Design Tradeoff for Mobile Game

서비스와 설계

Page 24: 게임테크 2014 후기

Baas/Paas 란 ?

Backend As A Serviece백엔드를 제공한다 ! 기존 서버에 드는 시간과 노력을 단축할 수 있어요

Ex ) Baas.io

Platform As A Serviece플랫폼을 제공한다 ! 데이터나 어플리케이션 사용 가능 . API 를 제공

Ex ) Windows Azure, 구글 앱 엔진 , 아이튠즈 , Force.com

Page 25: 게임테크 2014 후기

서비스 설계와 Tradeoffs

서비스 특성에 맞는 설계를 하자 . 그리고 그에 따른 Tradeoffs 가 있다 ! 확장성 , 개발 시간 , 안정성 , 운영 비용 등 고려 !

1. Transport Layer

2. Stateless Server vs Stateful Server

3. Write/ Cache Policy

4. Consistency/ Isolation

등등 .

Page 26: 게임테크 2014 후기

Transport Layer

HTTP

많은 수의 모바일 게임이 요기에 해당 . json xml protobuf 등 함께 사용

잘 정의된 프로토콜인 만큼 안정성이 짱짱맨 . 프레임웍과 라이브러리가 많다 !

서버 수의 확장이 쉽지만 양방향 통신이 안되고 프로토콜 자체의 오버헤드가

있다 .

리버스 엔지니어링이 쉽다 .

Custom

특정 게임에 특화시킬 수 있고 , C C# Node.js 등을 이용해 개발한다 .

커스텀 메시지 , json, protopuf, thrift 등의 메시지 전송을 한다 .

실시간 양방향 통신이 가능하다 .

리버스 엔지니어링이 비교적 어렵다 .

복잡하고 생산성이 떨어지며 , 서버 확장이 쉽지 않다

Page 27: 게임테크 2014 후기

Server Logic

Stateless대부분의 웹 어플리케이션 서버 .

게임메시지를 처리하기 위해 데이터 저장소 계층에 접근해야함 .

데이터 베이스 계층이 복잡해진다 .

게임 서버 크래시에 안전하고 서버의 수평적 확장이 쉽다 .

Statefulpc 온라인 게임 서버처럼 서버에 유저 상태를 유지한다

데이터 베이스 제어가 비교적 간단하다

게임 서버간 동기화하는 프로토콜이 들어간다 .

실시간 이벤트나 서버생성 이벤트가 쉽다

서버 크래시 발생 시 해결이 복잡하고 서버 확장이 어렵다

Page 28: 게임테크 2014 후기

Database

게임 특징에 따른 데이터베이스 설계를 한다 !

게임 서버는 쓰기 위주이므로 , 서버 분산과 데이터 포맷에 관한 정책을 잘 세운다 .

Page 29: 게임테크 2014 후기

Case Study1. 아마존 웹 서비스

- 일반적 웹서비스 구성에 필요한 요소가 모두 있다

게임적인 요소는 모두 개발자 손 .

백엔드로 이용한다면 , 여러 빌딩 블록을 제공한다 .

Write-intensive 한 처리를 dynamo-db 에 넘겨서 좋다 .

2. Google app engine

- 구글 게임 플랫폼과 연동 . 강력한 analytic 도구 .

웹 서비스 기반 게임서버 장시간 비동기 작업 가능

언어가 파이썬 , 자바 , 고 , php 로 제한

프로그래밍 모델 (응답 방식 , 라이브러리 , 응답 시간 ) 제한

3. 구글 플레이 게임 서비스

- realtime 기반의 방에 기반한 게임 지원 . 턴 방식 게임 지원 .

메시지 기반 , 소켓 인터페이스는 안드로이드 기반 .

Page 30: 게임테크 2014 후기