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.

2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가

  • Be the first to comment

2013년 7월 현재 트렌드에서의 프라우드넷은 어떻게 적응하고 있는가

  1. 1. 요새 트렌드에서 ProudNet은 어떻게 적응하고 있는가 넷텐션 2013년 7월 현재
  2. 2. 검증 선례 • 100개 이상의 라이선시 • 한국, 중국, 일본, 미국, 독일, 네덜란드, 싱가폴, 태 국, 대만에서 프라우드넷 기반 게임 서버가 가동중
  3. 3. 사용된 PC 온라인 게임 • 마비노기 영웅전, 마계촌 온라인, 레드블러드 온라인, 러스티하츠, 차구차구, 최강의 군단
  4. 4. 사용된 모바일 게임 • 터치파이터, 달을 삼킨 늑대, 천랑, 매직마 스터즈 온라인, 레인오브컨커러스, 크로스 카운터
  5. 5. 요새 서버 트렌드
  6. 6. 2008년 (넷텐션 설립년도) • PC 온라인 • 윈도 서버 • 물리적 서버 • 자체제작 서버툴 • TCP, UDP • 넷마블,피망,한게임,… 2013년 • ...그리고 모바일 • ...그리고 멀티플랫폼 • ...그리고 클라우드 서버 • ...그리고 오픈소스 서버툴 • ...그리고 HTTP • ...그리고 매시업
  7. 7. 우리는 어떻게 대응하는가
  8. 8. • 고객사들이 던지는 요구 명세 채우는 것만으로도 벅찬 상황! ㅠ.ㅠ • 뭐 나쁘지는 않아요. – 실제 수요자들의 명확한 실 제 수요를 맞추는 것임 – 나름 재미있음 -.-;;; Development branch master feature branch (엄청 활발함) 서비스 론칭한 업체들의 굳은 자 버전
  9. 9. • 저희회사에 많이들 지원해주세요 ^.^ • 현재 엔진팀 7명(저 빼고)인데 여전히 바쁨 -0-;
  10. 10. 모바일 • 게임 출시 경험이 몇차례 있는 모바일 게임 업 체들은, 생각보다 성능에 목숨거는 분위기 – 아저씨, 아줌마들의 저사양 폰을 최대한 많이 지원 해야 해서 – 메모리 문제도 엄청 신경씀 – 유니티… 개발도 편하고 퀄러티도 괜찮지만, 성능 미리 생각해서 피하기도 함 • 프라우드넷 비 유니티 버전에 대한 수요가 높 음
  11. 11. • 모바일 게임에서 성능 관련 최대 쟁점 – frame rate (느린 것 말고) 지글거림 문제 – 폰 뜨거워짐, 배터리 문제 – 3G • 게임 개발사들마다 성향이 다르다! – 하이엔드 경험을 위해 60Hz 돌격하는 프로젝트 – 저사양폰+배터리 소모 크게 고려하면서 15Hz로 기는 프로젝트 • 이런 곳은 멀티스레딩 싫어함 -0-  소켓 버퍼가 커야 함 • 10년전 데스크탑 성능이지만, RAM은 속도도 용량 도 거지같음
  12. 12. • 안드로이드에서 Java는 생각보다 발열 문제가 심 각 – 프레임레이트 문제는 둘째치고라도 • 다행히, 구글의 “NDK는 성능 이익이 별로에요~”는 알고 보니 뻥 • 프라우드넷 네트워크 클라이언트 코어는 이미 NDK (C++ API)와 pure Java로 만들어져 있음 • 배터리 문제 때문에, pure Java 버전의 하단은 NDK 로 교체할 예정
  13. 13. • 안드로이드폰마다 조금씩 다른 스펙 – iOS, Android의 소켓 버퍼 최대 크기 – 스레딩 퍼포먼스 – 갤럭시 S4(LTE-A 말고 LTE 국산 모델)의 클럭 resolution • 이미 해결
  14. 14. • 3G vs. Wifi – 게임 하다가 wifi존에서 나간 경우 – 게임 하다가 wifi존에 도착한 경우 – 게임 플레이하다 전화가 온 경우 – 3G 송신큐 제어를 통한 QoS – 3G의 랜덤 랙 => Suporious RTO • 일부는 해결됐고, 나머지는 진행중
  15. 15. 멀티 플랫폼 • C++, C#, ActionScript, UnrealScript, Java • Unity3D, Cocos2D-X, Unreal Engine, Marmalade • iOS Native, Android Java, Android NDK • Adobe Flash • 헉헉…다 만들어놨음 (Unity, Flash만 공식 출시고 나머지는 베타중)
  16. 16. • 다양한 개발 환경 지원 – Visual Studio, Eclipse, XCode, Unity Editor – ProudNet IDL Compiler for Mac OS • 해결
  17. 17. • 플랫폼마다 다른 비동기 네트워크 I/O 모델 – iocp,epoll,kqueue,simple poll (웬 simple poll?  Marmalade 때문에) – 짜증나더라도, epoll,kqueue,simple poll은 • reactor 모듈로, iocp는 proactor 모듈로 이원화 후 • 제각각 케이스를 만들어야 성능에 유리 • syscall과 1:1 대응하기 때문. 모바일에서 성능에 중요한 요소임 • 다 해놨는데, 리팩토링중 -0-;
  18. 18. • Win32 API 쓰던 부분들 다 뜯어냄 • #if 떡칠  최대한 모아놓고 거기서만 #if 떡칠 • 대부분 해놨음. 제일 까다로왔던 부분은 의 외로… string 부분임 -0-;
  19. 19. • QPC/QPF vs. clock_gettime vs. gettimeofday – iOS에서 clock_gettime은 음수랍니다 -0-;;;; – Java는 unsigned integer 사용 불가능 • /dev/random ≠ /dev/urandom • wcslen, wsprintf in NDK  Java는 UTF-32 -0-;; • Mono ≠ .Net Framework – iPhone3GS, iPhone 4에서 일으키는 문제 – Mono Socket.Connect 함수의 버그 • 이것 말고도 많았던 것 같은데 기억이 안남 -0-;;; • 어쨌거나 다 해결.
  20. 20. • 도움말도 .chm에서 웹기반으로 변경 – Mac OS에서는 .chm을 못 엶
  21. 21. • MySQL, MS SQL, Postgre • ADO.NET vs. ADO6  Back to the ODBC • C++/CLI API 구조 변경 – 서버 모듈은 C++/CLI 그대로 유지하되, 네트워크 클라이언트 모듈은 pure C#으로 • 리눅스 서버(아…언제 들어가냥 -0-;;;)
  22. 22. • 여기까지가 최근 반년동안의 이슈였음
  23. 23. 논리적 단일 서버 • 모바일 게임에서 단일 서버는 거 의 필수 • ProudNet DB cache 시스템으 로 논리적 단일 서버는 이렇게 게임 DB 유저계 정 DB DB cache server 게임 DB 유저계 정 DB DB cache server 게임 DB 유저계 정 DB DB cache server 게임 DB 유저계 정 DB DB cache server 게임서버 게임서버 게임서버 매핑DB 매핑DB 매핑DB
  24. 24. 클라우드 서버 • 서비스 중에도 서버 개수를 늘리거나 줄일 수 있게 만들 어야 • 실시간 멀티플레이를 클라우드 서버에서 하면? – 클라우드 서버의 특성상, 언제든지 랙이 생길 수 있음! – 층간 소음 문제이므로 피할 수 없음! – 싫으면 물리적 서버 써야함 – 아니면 타 업체의 서버가 자기 서버의 물리적 서버(하이퍼 바이저)에 입점 못하게 해야 함 (가능하긴 한가? -_-) – 플레이어 위치 동기화에서 P2P를 제한적으로 사용 (그래도 3G는 랜덤 랙 못 피함) • 많은 수의 서버 인스턴스를 두자 • 클라우드 서버에서 매핑 DB는 필수
  25. 25. 다양한 오픈소스 툴킷 • 프라우드넷에서는 – provider 모듈만 제공하거나 • Zabbix, Zookeeper – 혹은, 대체 모듈을 자체제작할라구요 • Redis, memcached • 아직 시작도 못하고 있음! ㅜ.ㅜ • 일단, json provider부터 준비해야하는데 (입사지원좀 해주세요)
  26. 26. 매시업 • 카카오, 페이스북, GREE, 게임센터, 스팀 • 앱스토어, 구글플레이 • 탭조이 • 이것들의 매시업은 소스 형태로 제공할 예정
  27. 27. 감사합니다! • 입사지원 hyunjik.bae@nettention.com • 평가판 문의 www.nettention.com

    Be the first to comment

    Login to see the comments

  • maceo.park

    Jul. 16, 2013
  • ssuserf66ed9

    Dec. 8, 2013
  • ssuser416b39

    Jan. 10, 2014
  • bulkerducks

    Feb. 26, 2014
  • qoosalada

    Sep. 22, 2014
  • jo8937

    Jun. 23, 2015
  • savage69kk

    Jul. 2, 2015
  • joobn

    Nov. 28, 2017

Views

Total views

7,876

On Slideshare

0

From embeds

0

Number of embeds

2,746

Actions

Downloads

0

Shares

0

Comments

0

Likes

8

×