관리 메뉴

A seeker after truth

14주차 필기 - game networking 본문

수업 필기/컴퓨터 네트워크(19-1)

14주차 필기 - game networking

dr.meteor 2019. 10. 12. 00:10

2: 멀티 유저가 온라인으로 엮여야…. Mmo game~ 이것은 온라인으로 하는 게임

유니티는 프론트엔드에는 강한 서버이지만 백엔드에선 매우 약함.

3: 결국 5g가 필요한 사람은 컨텐츠를 만드는 사람이다.

두번째로 중요한 사람은 게임을 플레이하는 사람들이다.

Unreal reality… 스트리밍 기술

4: 게임에서 힘들었던 이슈들.

머신 러닝, 딥러닝은입력을 어떻게 주면 출력을 어떻게 준다싶은, API 식으로 바뀌고 있음. 게임하는 사람들은 데이터 분석에 어떻게 접근하고 있는지를 알아볼 것이다.

6: 게임 상의 수많은 이벤트를 만들어 내며, 유저들이 똑같은 상태, 화면을 보고 유지할 수 있도록 하는 것. 게임 상에서 오는 수많은 이벤트들을 처리하는 것. 가장 큰 이 이벤트들의 특징은, 시간 제한이 있단 점이다. Interactive + real time + v/ar … 등등 온갖 것이 합쳐져 있음.

마소 홀로 렌즈는 최신 통신 기술로 이런 것들을 실시간으로 보낼 수도 있음.

그러나 법이 허가할 지는 잘 알 수 없다.

이걸로 뭘 할거냐며 서비스를 제한할 수도 있다.

Interactive 제일 잘하는 회사가 아프리카 티비.

두번째로의 리얼 타임은 under millisecond

7: Master Server (in general) - master server knows about everyone who connected to it

직접적인 입/출력이 없고, 그에 필요한 정보만 나르곤 한다.

데이터 센터, 서버가 많은 곳에서 직접적으로

서버를 앞단에 비치하면 latency가 줄어든다.

8: 마스터 서버. 같은 레벨의 비슷한 사람끼리 모아야 재밌게 할 수 있고, 물리적으로도 실제로 가까이 있어야 관리가 쉽다고 한다. 마스터 서버는 사용자들의 성향을 파악하고 어떤 그룹을 만들지, 어떤 게임 서버들을 할당할지…. 를 고민한다.

마스터서버는 뒷단에서 정말 돌아가는 서버들을 관리하는 녀석을 말한다.

마스터 서버는 사용자의 입력, 등록, 과금, 뒷단 서버 관리.

게임 서버는 실질적인 게임들의 로직이 구현되는 곳이다.

뒤쪽의 게임 서버들이 우리가 이야기할 서버들인데, 서버의 로직을 처리한다. 당연히 cpu, 네트웍 부하가 클 수밖에 없음. 이런 서버들이 특히 해결해주어야 하는 것은 a,b가 서로 부딫혔는지와 같은 물리적인 요소들. 뒤쪽은 스트리밍 서버. 실시간 렌더링. 빛에 대한 렌더링.

결국 cpu 및 네트워크 부하가 높은 애들이 실질적인 게임 부하를 처리.

Mmorpg가 베타 테스트를 하는 이유는, 네트워크 부하 등을 확인하는 용도. 하드웨어 사양을 고민한다.

12: 팀 버너스 리에 의해 solid란 새로운 유형의 인터넷도 탄생했음

피어 투 피어는 서버가 없고 각자 독립적으로, randomly access. 동일하진 않고, 각자 서버 역할을 하는경우가 많. 랜덤 어세스, ad hoc, solid.

Pc, 같은 방, 건물 안에 있는 사람들끼리만 할 수 있는 게임들이 종종 있. 지역 안에서 한정된 유저끼리 할 수 있. 네트워크 부하가 너무 크기 때문에.

이런 게임들은 지역적 제한으로 인해 그 장소 안에 있는 사람들끼리만 하면 된다. 구글. 아마존 이런 애들이 개입할 여지가 없음. 이런 게임들은 비즈니스 모델로써 광고를 인터넷 상으로 제공하거나, 패키지 형태로 다운 받게 하여 파는. 그런 형태가 될 수밖에 없음. 사회적 문제는 있을 수 있음. 그래서 피어 투 피어 게임은 아직도 살아 남았고

최소한 이들 만의 싱크를 맞추는 것은 그래도 했는데

정보량에 따라 네트워크 기술이 감당할 수 없는 수준이 될 수 있음.

주고 받는 정보에 대해 누가 중앙 통제를 해야만 한다면, 만약 a,b가 충돌했는데 시간차 때문에 뭐 한 놈이 죽은…? 뭐 그런

여기서 피어 투 피어를 설명하는 이유는, 클라우드 컴퓨팅 중 엣지 컴퓨팅(서버 전진 배치)이 게임 기술로 가게 되면, 기지국 옆에 게임 서버가 붙는그래서 모양은 ??일지 모르지만 실제 동작은 피투피 게임. 이유는, 고난도 게임은 사람들끼리 같이 하고 싶어 하지만, 자기들끼리 그러는 거면 뭐 굳이라고 한다.

컨텐츠 면에서의 웹, 그리고 http 모듈 측면의 웹. 브라우저 측면에서는 별 관심 없음. 이게 웹파에서 가르치는 것. 웹은 페이지가 아닌 parameter를 실어 나르는.

인터넷 웹 언어 자바 -> 자스(ajax) -> 웹 브라우저 위에서 하는 웹 소켓. 그러나 유행 이제 지났지. -> web real time communication. 이게 화상 통화 시스템 만드는 거 20~30줄이면 되는 것이니까. 이걸 기반으로 수많은 게임들과 피어 투 피어도 이런 식으로 구현하는 경우가 많다.

피어 투 피어는 엄청난 기술이다. 정교한 작업과 보안을 원하는 경우에는 씨플플. 이건 주로 금융쪽에서 많이 쓰는 기술.

피어 투 피어라고 서버가 아예 없는 것은 아니고, 대장 역할을 하는 애가 있고, 얘가 희생하는..

Web RTC. 이를 사용하게 되면 카메라나 마이크를 통해 화상 회의를 보여주는

17: 포톤은 그냥 릴레이 서버. 메시지 주고받는 정도전면 배치에 있는 것들이 하는 일이 적고 비교적 단순한 것들

릴레이 서버란, 같은 공간, 같은 세션 안에 있는 애들한테만 전달하는 것.

앞쪽은 resolution을 높게, 뒤쪽은 낮게. 그 이유는너무 게임 이야기

퍼블릭 인터페이스네트워크 부하가 대충 이 정도까지 도달할 수 있겠군하는

디터미니스틱 = 정해진 시간 안에 정해진 일을 완수하는 것. 운체 때 배웠던 그런 느으낌 ...

20: 구글 Agones – 소웨, 오픈소스는 돈 안내고 많이 쓰세요 대신 클라우드는 돈 내고 쓰세요.

작년 말 구글이 클라우드 agones란 것을 발표했다. Dedicated server, scalable(클라우드를 쓰는 이유), 오픈 스택이 아닌 컨테이너 테크놀로지(=scalable!!!!!!!!!!! 핵심이다) 기반 여기서 멀티 유저 플레이 게임 서버를 쓸 것이다.

구글이 게임에 대해 뭘 알아? 그래서 유비소프트라는 곳과 같이 한다.

21: 매치 메이크 = 유저 정보를 분석, 매치하는

어떤 게임 로직이 동작해야 하는지를 선택하는 서버가 서버 매니저. 매치 메이킹을 마치면 제대로 된 서버를 찾거나 매치시키는 과정을 거쳐 사용자가 게임을 하게 되는 것이다.

매치 메이커 서버에 접속하여 사용자의 서버, 지역 선호도에 따라 매치가 일어나….

22: 실질적인 게임을 동작시키는하나가 선택되거나 실행되어야 한다 하면, 서버 매니저가 그 서버를 가동하거나 선택하는게임 서버의 IP 어드레스를 보내주는 절차

여기서 당연히 합법적/돈 지불 완료?/ 국가 정보-플레이 가능 국가? 등등의 정보는 당연히 계산한다.

23: 구글 같은 데서 광고를 어떻게 올리고, 어디에 올리는 지에 대한 정보는 이미 문서로 굉장히 잘 정리되어 있다. 구글이 잘 되어 있는 api는 광고 api. 이를 사용해 구글이 주는 광고를 띄운다면, 사용자에게 굳이 과금을 안 하겠다하는 방식으로 비즈니스 모델을 만들 수도 있다.

이 페이지에서는 agones controller와 과정을 핵심으로 설명했는데 제대로 듣지는 못함

24: 리눅스 위에 리눅스 (가상머신) 올리면 성능 저하 30%. 애플 연구 자료에 있었다.

25: 아고네스 자체는 뭘 많이 하진 않지만, 구글에서 제공하는 것이기 때문에 구글 계정 정보나 본인의 카드 정보 등을 입력해야 한다는…. 도커는 클라우드를 대신할 서버로 먼저 사용이 됐음. 본인이 필요한 것들에만 묶어서 설치되고 지우면 제거된다. 이 목적으로 제일 먼저 쓰였고, 내가 만든 오픈소스를 배포하는 것 말고도

Pip conda virtualenv를 사용했을 때의 문제점. 본인만 지우지 딴 놈까지 지우진 않는다. 그래서 내가 필요한 것과 같이 묶어서 설치된다. 는 걸로 개선.

본인이 만든 소웨를 깃으로 배포할 뿐만 아니라 도커로 묵어서 함께 뭐 배포? 한담에

그래서 울나라도 게임이 도커, 쿠버네테스 형태로 만들어져 배포될 것이고, contributer들과 교류하면서 지식을 쌓을 수 있을 것이다.

게임도 agones 밑에 대동단결하여 게임에 관련된 것을 총출동하여 배포해보자 하는 것이 구글의 꿈이다.

26: optimal datacenter(블록체인 집단들은 비슷한 것을 피투피로 만들 것이다.)

고는 티시피 서버를 딴 거 말고 고로 짜면 10 배 이상의뭐를거의 매출이 10….

파이썬은 하이 퍼포먼스보다는 머신 러닝 등과 접목하려고 하는 경우가 많다.

28: 오픈소스. 네트워크의 괴로움을 잊어버리라고 할만큼 이것이 괴로운 것이다.

29: 기능들. Mit license = 니가 이걸 갖고 무슨 짓을 해도 괜찮아. 하는 오픈소스 라이선스 종류

33: 이런 게임 엔진 회사들로 인해 데스크탑 회사들이 굉장히 위협받음. . 중국 샤오미는 게임 전용 휴대폰이 있다. 최근 asus가 발표하고 있는 노트북은 막강한 엔진과 그래픽이 들어가 있….

37: 유니티는 멀티 플레이어 ~를 포기

구글 클라우드 플랫폼에서 게임을 짜는 방법게임의 매치 메이킹게임의 전처리는 게임 앱 엔진, 로직은 컴퓨터 엔진을 써라(=ec2로 제공받는 컴터 자원)

42: GPC가 마스터 서버 역할, 데디케이티드 서버는 뭐? 뒤쪽 서버.

백엔드 파트는 잊어버려도 된다…?

구글의 크롬 브라우저 = 랩탑 게임 클라이언트 뭐시기 2번째 그림

구글 스타디아 = 콘솔 3번째 그림

43: “데이터 분석을 해본 적이 있냐구”… 그럼 그 데이터들은 뭐 어디서 나오는 것이며데이터 자체에 대한 정보가 구체적이어야 한다.

45: 게임 데이터를 모두 집어넣고 분석하는 것은 우리가 제공해줄테니 너는 그냥 만들고 쓰면 돼~

46: 맵 리듀스 = 하둡 등을 이용하는, 분산 데이터 시스템!!!

본인이 관심 있는 분야에서의 클라우드 서비스 적용 사례를 설명해보시오” -> 아는 한도 내에서 설명이 잘 되어야함

55: 이젠 dedicated servr를 쿠버네티스로 감싸고… ”무지공산

오픈스택보다 도커 쿠버네티스가 좋은 이유: 실행 시간 차이가 너무 심함. 오픈 스택 30, 도커는 5. 즉 부팅 시간. 두번쨰로는, 이 아이가 죽을 것 같은데이 소웨를 저쪽 서버로 보내는데 걸리는 시간 도커는 10, 오픈 스택은 5~10.

66: 위에 것이 부하가 더 적고, 아래에 있는 것은 모든 게임이 동영상화 되어 전달되고, 뭐는 마우스 이벤트 이런 것들만 처리하고 보낸다. 사운드 이런 것도 서버에서 내려온다. 브라우저 입장에서는 그냥 키보드와 마우스 입력만 있는 TV와 같은 것.

이것을 가장 먼저 시작한 회사가 바로 소니. 요즘은 publicion 기반이 아닌 subscription 방식. 넷플릭스가 월정액제. 소니가 네트워크를 통해 ~를 다운 받고 ~하는 걸…. CPU와 메인 보드에 꽃는 작업을….

69: 하웨는 xbox. 이를 서버화하여 서버에 올릴 것이며 사용자가 여기 접속해서 필요한 만큼 사용하는이렇게 해서 마소가 누릴 수 있는 장점

 

[쿠키런 발표자료]

Tcp, ip는 보통 커널에다가 짠다. 리눅스 등등. 회사에서 커널을 열자고 하면 엄청난 후폭풍을 맞는다.

그래서 결국 http3.0후보인 QUIC으로 그 솔루션을 택했다. 네이버가 2016년에 이 일을 겪고 해결한 것이거든.

퀵이 크로뮴에 있다고 하니 갔다. 프로그램을 짜기 위해 직접서버쪽으로는 구글이 막 열지 않음. 구글은 소스코드 공개에 폐쇄적인 집단이다.

GoQuic!!!

Tcp/http 속도 올릴 수 없을까 고민 -> 찾아보고 고민해보고 공부해본다 -> 새로 짬

지연의 fluctuation이 줄어든 것도 매우 훌륭.

게임 서버를 어케 도입, 그걸 도입하는 회사들이 겪은 문제

이론과 오픈 소스가 게임 산업을 타겟팅했을 때 어떻게 되는지.