Top Banner
NHN NEXT 손손손
30

게임테크 2014 후기

Jun 23, 2015

Download

Education

Chaeone Son

겡미테크 후기
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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 후기