"9조(블록체인)"의 두 판 사이의 차이

cdc wiki
이동: 둘러보기, 검색
(포스터)
(관련사업비 내역서)
184번째 줄: 184번째 줄:
  
 
===관련사업비 내역서===
 
===관련사업비 내역서===
[[파일:9조_사업비내역서.png|가운데]]
+
[[파일:개발비.jpg]]
  
 
===완료작품의 평가===
 
===완료작품의 평가===

2018년 12월 19일 (수) 11:01 판

프로젝트 개요

기술개발 과제

  • 국문 : 클라우드 서비스를 이용한 게임 스트리밍 서비스
  • 영문 : Game streaming service using cloud service

과제 팀명

  • 9조

지도교수

  • 김진석 교수님

개발기간

  • 2018년 9월 ~ 2018년 12월 (총 4개월)

구성원 소개

  • 서울시립대학교 컴퓨터과학부 2015920040 임원경(팀장)
  • 서울시립대학교 컴퓨터과학부 2015920014 김태현
  • 서울시립대학교 컴퓨터과학부 2014920066 채철민
  • 서울시립대학교 컴퓨터과학부 2013920016 김영탄

서론

개발 과제의 개요

개발 과제 요약

저사양 PC소유 게이머에게 컴퓨팅 파워를 제공함으로써 저사양 PC나 콘솔에서도 적절한 비용를 지불하여 고사양의 게임을 즐길 수 있도록 할 것이다. 고사양 게임의 랜더링 작업을 고성능의 중앙 서버를 통해 수행하고 수행 결과를 인터넷으로 저사양 PC소유자에게 전달하여 컴퓨팅 파워를 제공함으로써 저사양 PC나 콘솔에서도 고사양의 게임을 즐길 수 있도록 하는 클라우드 게임 스트리밍 플랫폼을 구축할 것이다.

개발 과제의 배경

  • 최근 출시되는 게임들이 요구하는 PC 권장사양이 높아지고 있는 가운데 장비 교체 비용에 대한 부담때문에 현재 사용하고 있는 PC를 업그레이드 하지 못하는 사람이 늘고 있다.
  • PC뿐만 아니라 모바일, 게임 콘솔등 다양한 단말들을 통해 게임이 출시되고 있지만, 독점 콘텐츠의 경우 해당 단말을 구매하지 않으면 플레이 할 수 없는 경우가 있다.

개발 과제의 목표 및 내용

  • 콘텐츠를 PC나 모바일에서 원격으로 컨트롤 가능하도록 개발한다.
  • 콘텐츠에 명령을 입력한 결과를 스트리밍 서비스를 이용해 실시간으로 사용자에게 제공한다.
  • 도커를 활용해 단일 플랫폼 기반의 서비스를 다양한 플랫폼에서 이용 가능하도록 설계한다.
  • 원활한 스트리밍이 가능하도록 동영상 재생을 위한 적절한 코덱을 적용한다.
  • 사용자가 쉽게 접근할 수 있도록 범용성에 집중하여 UI/UX를 제작한다.


관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • Playkey
플레이키.jpg

채굴자가 PC를 대여하여 저사양 컴퓨터를 가진 사용자에게 게임을 할 수 있도록 컴퓨팅 파워를 제공하는 플랫폼이다. 플레이키는 원래 클라우드 플랫폼으로써 2~3년간 서비스를 통해서 2017년 기준 유럽에 250만이 넘는 고객을 확보했다. 최근 플레이키는 블록체인을 도입함으로써 공공성 확보 뿐 아니라, 채굴 네트워크를 통해 GPU연산을 저사양 PC, 콘솔을 분배 하도록 하는 플랜을 가지고 있다.

  • Parsec

Parsec은 주로 비디오 스트리밍을 통해 클라우드 기반 게임에 사용되는 데스크톱 캡처 응용 프로그램이다. Parsec을 사용하면 인터넷 연결을 통해 비디오 게임 장면을 스트리밍 할 수 있으므로 PC에서 게임을 실행할 수 있지만 원격으로 재생할 수 있다. Parsec은 대기 시간이 적은 데스크톱 공유 소프트웨어로 사용할 수도 있다. 독점 프리웨어 응용 프로그램 인 Parsec은 최신 운영 체제에서 사용할 수 있다. Parsec은 Amazon Web Services 및 Paperspace에서 호스팅하는 사전 구성된 가상 시스템에 대한 프로비저닝 및 연결을위한 간단한 사용자 인터페이스를 제공한다. 2018년 1 월 Parsec은 Hewlett-Packard와 파트너 관계를 맺고 HP Omen PC를 위해 특별히 설계된 Parsec의 기술을 기반으로하는 무료 클라우드 게임 서비스 인 OMEN Game Stream을 개발했다.

  • OnLive

OnLive는 2009년 GDC에서 발표된 기술이다. 2010년에는 윈도우와 Mac 등의 데스크탑을 대상으로 서비스를 시작하였다. OnLive의 주력제품은 클라우드 게임 서비스로 가입자가 게임을 단말에 설치하지 않고 렌트하여 플레이하거나 데모플레이를 하는 것이었다. 게임은 로컬장치에서 랜더링 하지 않고 OnLive의 클라이언트 소프트웨어를 이용해 서버에서 랜더링 한 후에 스트리밍을 통해 동영상으로 전달되었다. 서비스는 PC, 모바일, TV, 게임 콘솔의 장치를 통해 사용가능했다. 키보드와 마우스를 사용하는 PC와 달리 TV와 모바일 장치는 마이크로콘솔과 연동되는 전용 무선 컨트롤러를 사용해 동작했다. 네트워크 대역폭의 한계로 인하여 데이터센터로부터 1000마일까지만 서비스가 가능했기에 2012년 기준 5곳의 데이터센터를 건설해서 운용했다. 또한 원활한 영상 서비스를 위해 자체개발한 비디오 압축칩, 자체 비디오 코덱을 사용했다. 2015년에 OnLive의 관한 특허를 Sony에 판매하여 모든 서비스를 종료하였다.

  • GaiKai

GaiKai는 2008년 네덜란드에서 창립되었다. 게임의 디지털 배급을 위해 개발되었으며 기존의 게임서비스를 대체하기보다는 새로 나온 게임 타이틀에 대한 홍보시장을 목표로 하였다. 데모 OnLive와 마찬가지로 서버 상에서 비디오 게임을 실행시키고 랜더링된 결과를 인터넷을 통해 사용자에게 전달한다. 그러나 사용자 단말에 설치된 Java 또는 Adobe Flash,Silerlight 플러그인 사용해 동영상 스트리밍을 하기 때문에 별도의 코덱이 아닌 표준 동영상 코덱(MPEG-4, H.264)를 통해 동작이 가능하다. 사용자는 별도의 장비나 소프트웨어의 설치 없이 웹브라우저를 통해 데모 게임을 실행할 수 있었고 개발자 입장에서는 게임 코드가 외부에 유출되지 않고 패치나 업글레이드가 용이한 장점이 있다. 또한 트위터나 페이스북 상의 링크를 공유해 친구들과 멀티플레이가 가능하도록 설계되었다.

  • 스팀 스트리밍 서비스

게임 플랫폼 스팀에서 제공하는 서비스로 “Steam in-home streaming”이라고도 한다. 집안에 2대의 컴퓨터가 있는 경우 같은 계정으로 같은 네트워크에 있는 두 컴퓨터를 스팀 클라이언트에 로그인 한 뒤에 게임을 실행하면 된다. 이를 통해 Window 전용 게임을 다른 OS의 PC로도 플레이가 가능하다. 또한 “스팀링크”라는 것이 존재하는데, 스팀링크는 별도의 공유기를 통해 스팀이 설치된 PC와 TV를 연결하는 기기이다. 유선으로 공유기와 PC를 연결하고 Wifi로 휴대폰을 연결한 뒤 휴대폰 상의 스팀 앱을 통해 동작을 입력하고 그 결과를 TV화면에 보여준다. 저렴한 가격에 콘솔기기를 가진듯한 효과를 얻을 수 있지만 어느 정도 PC사양과 네트워크 사양을 갖춰야 한다는 단점이 있다.

시장상황에 대한 분석

  • 목표시장

최근 출시되는 게임들이 요구하는 PC 권장사양이 높아지고 있는 가운데 장비 교체 비용에 대한 부담 때문에 현재 사용하고 있는 PC를 업그레이드 하지 못하고 사양이 부족해서 해당 게임을 즐기지 못하거나, 특정 게임이 콘솔이나 PC에서만 게임이 동작하여 전용 단말 없이는 그 게임을 즐기지 못하는 경우가 발생하고 있다. 이들이 게임을 플레이 할 수 있도록 컴퓨팅 파워를 제공하여 수익을 창출하거나 혹은 게임을 구매하기 전에 데모 플레이를 제공하여 해당 게임의 구매 결정을 도와주는 역할을 할 수 있을 것이다.

  • 목표시장의 성장추세
규모 그래프.jpg

한국콘텐츠진흥원에서 제공하는 2017년 대한민국 게임백서에 따르면 2016년 국내 게임시장 규모는 10조 8945억 원으로 5조 1436억 원을 기록한 2007년 이후로 지속적으로 성장해왔다. 특히 2016년 매출액 기준 온라인 게임이 4조 6464억 원(점유율 42.6%)으로 전체 게임시장에서 차지하는 비중이 가장 큰 것으로 나타났고, 모바일 게임도 4조 3301억 원(점유율 39.7%)로 온라인 게임시장 못지않은 규모를 보여줬다. 뒤이어 비디오게임, PC게임이 각각 2627억, 323억의 매출을 기록했다. 다만 주목해야 할 점은 PC게임시장이 전년대비 –14.8%의 성장률을 보인 반면, 모바일 게임시장이 전년대비 24.3%의 성장률을 보여줬다는 점이다. 이를 통해 게이머들이 PC게임 보다는 모바일 게임에 좀 더 관심이 있다는 것을 알 수 있었다. 또한 비디오게임의 경우 전년대비 무려 58.1%의 성장률을 보여주면서 비교적 비디오게임의 성적이 저조했던 우리나라에서는 꽤 의외의 결과라고 할 수 있다. 이를 통해 게이머들이 더 이상 PC에만 한정되지 않고 모바일, 게임 콘솔 등 다양한 플랫폼에서 제공하는 다양한 게임을 즐기는 것을 택하고 있다는 것을 알 수 있다.

설명

위와 같이 국내 게임시장이 점차 성장해 가는 가운데 세계 게임시장 또한 2016년에 1428억 1400만 달러를 기록하며 전년 대비 6.4% 성장하는 결과를 보여주고 있다. 이렇게 다양한 플랫폼에서 게임을 하길 원하는 사용자들을 위해 다양한 기업이 게임 스트리밍 시장에 진입했다. Steam의 경우 “Steam Link”라는 자체 개발한 공유기를 통해 개인용 컴퓨터를 이용해 스트리밍을 지원하도록 하고 구글, 삼성과 제휴를 맺어 Android 마켓, 갤럭시 Apps에서 연결이 가능하도록 하였고 삼성 스마트 TV에서도 스팀링크를 App을 설치할 수 있게 했다. 또한 비디오 그래픽회사인 nvidia에서는 “NVIDIA GRID”라는 클라우드 게이밍 시스템을 발표하여 다양한 단말에서 실행 가능한 멀티플랫폼 게임 시스템을 구축하였다.

  • 마케팅 전략

- 최근에 출시된 모바일 게임들도 PC게임 못지않게 사양이 점점 증가하면서 오래된 저사양의 휴대폰으로는 게임을 플레이 할 수 없는 상황이 자주 발생하고 있다. 최신 휴대폰의 경우 100만원을 호가하는 가격으로 게임을 위해서 구매하기엔 부담스러운 가격일수 있다. 이를 해결하기 위해서 PC에서 모바일 게임을 작동시켜주는 다양한 앱플레이어들이 생겼지만 본래 화면터치를 사용하여 동작하도록 설계된 게임을 키보드, 마우스를 통해 조작을 해야 하는 어색함이 있고 일부 게임의 경우 앱플레이어를 지원하지 않아 플레이 할 수 없는 경우도 있다. 또한 앱플레이어를 사용할 경우 PC를 켜야 하므로 언제 어디서든 즐길 수 있다는 모바일 게임의 특징이 사라지는 단점이 생긴다. 그러므로 저사양의 모바일 유저에게 위와 같은 것을 적극 어필하여 적은 구독료로 이용할 수 있는 서비스를 제공하면 큰 관심을 얻을 수 있을 것이다.

- 2017년에 3월 출시된 “배틀그라운드”라는 게임은 배틀로얄이라는 신선한 장르와 다양한 변수들을 특징으로 전 세계적으로 엄청난 인기를 얻었다. 그러나 출시 당시 최적화문제로 높은 사양의 PC스펙을 요구하였기 때문에 게임은 3만원인데 제대로 플레이하려면 본체를 구매하기 위해 100만원이 더 든다는 우스갯소리도 있을 정도였다. 이는 개인뿐만 아니라 PC방을 운영하는 사업자들에게도 큰 타격을 줬었는데 배틀그라운드를 플레이 할 수 없는 피시방은 사람들이 찾지 않았기 때문에 점포마다 여러 대의 PC를 업그레이드 하느라 엄청난 비용이 소모되었다. 그런데 또 안타까운 것은 그런 배틀그라운드의 열기가 금세 사그라졌다는 것이다. 실제 배틀그라운드는 18년 1월까지만 하더라도 동시접속자 320만명을 달성하고 국내 PC방 점유율 1위를 굳건하게 지켰지만 18년 11월 현재, 동시접속자 80만명에 국내 PC방 순위도 크게 추락하고 있다. 만약 배틀그라운드 열풍 당시에만 클라우드 게이밍 서비스를 구독하고 인기가 줄어든 다음에는 구독해지를 했다면 PC방 사업자들은 많은 돈을 절약할 수 있었을 것이다. 이렇게 PC방과 같이 여러 대의 PC를 운용하는 사업자에게 클라우드 게임 스트리밍 서비스를 적극적으로 홍보하면 많은 수익을 거둘 수 있을 것으로 예상된다.


개발 과제의 기대효과

기술적 기대효과

  • 사용자 입장에서는 추가적인 장비 설치 없이 모바일이나 콘솔에서 고품질 3D 어플리케이션을 실행할 수 있고, 프로그램을 단말이 아닌 서버에 설치하고 업데이트 하므로 사용자는 용량 부담 없이 편하게 게임을 즐길 수 있다.
  • 회사 입장에서는 게임 패치 및 업그레이드 적용이 데이터 센터의 서버에서 이루어지기 때문에 업그레이드가 용이하고 불법 복제의 위험이 없다. 또한, 사용자의 이용 패턴을 서버에 저장하여 게임 콘텐츠 개선이나 오류 디버깅에 이용할 수 있다.

경제적, 사회적 기대 및 파급효과

  • 별도로 장비를 구입하지 않아도 고사양 게임을 플레이 할 수 있게되어 PC방과 같이 다수의 PC를 사용하는 영업장의 경우 PC 업그레이드 비용이 감소하여 창업 및 유지가 지금보다 수월해질 것이다.
  • 저사양의 모바일로도 최신게임을 즐길 수 있게 되어서 게임을 위해서 고가의 휴대폰을 구매하지 않아도 될 것이다.


기술개발 일정 및 추진체계

개발 일정

개발일정.jpg

구성원 및 추진체계

  • 임원경 - 팀장, 웹 개발
  • 김태현 - 소프트웨어 테스트
  • 채철민 - 스트리밍 서비스 구축
  • 김영탄 - 소프트웨어 유지보수

설계

설계사양

제품의 요구사항

  • Client가 요청한 계산을 대신 수행할 수 있는 고성능의 PC 또는 서버
  • Streaming Delay를 감소시키기 위한 원활한 유무선 네트워크(속도 100mbps 이상)
  • 고화질 영상을 서비스하기 위한 데이터 압축기술

개발 환경

  • 하드웨어

- 100mbps 이상의 속도를 유지할 수 있는 네트워크 환경

- i5 이상의 CPU를 가진 PC

  • 개발 환경

- Windows10 운영체제

- .NET Framework

- Amazon Web Service

- Docker

개념설계안

  • 개념설계
개념설계.jpg

클라이언트가 서버에 게임에 대한 계산요청을 전송하면 서버는 해당 계산을 대신 수행한 결과를 영상으로 클라이언트에게 전송한다. 이때 효율적인 실시간 영상 전송을 위해 다양한 압축기술을 활용한다. 게임을 진행하면서 클라이언트가 키보드나 마우스 동작과 같은 명령을 입력하면 서버는 이를 인식하고 그에 대한 알맞는 계산을 수행한다.


사용 관련 기술 및 알고리즘

  • 실시간 스트리밍 기술
흐름.png

OBS Studio는 단순히 영상을 녹화, 방송하는 툴이다. 내부에서 영상 화질이나 bitrate, audio 및 압축 기법을 설정할 수 있으며 촬영된 영상을 RTMP 방식으로 AWS medialive에 보낸다. RTMP는 미리 데이터를 다운 받지 않고 시청하고 있는 프레임만 전송하는 기법으로, 이미 시청한 데이터는 폐기한다. OBS Studio에서 AWS medialive로 영상을 인코딩해서 전송하는데 H.264 코덱을 사용하지 않고 X.264를 사용해서 전송한다. 굳이 X.264를 사용한 이유는 X.264가 H.264에 비해 인코딩 성능이 앞서고 영상 압축시에 소모하는 자원이 H.264에 비해 적어서 저사양 장비를 가지고 있는 Client가 사용하기 더 적합할 것으로 예상되었기 때문이다. AWS meidallive는 입력된 영상을 압축 및 인코딩 하는 AWS 서비스이다. OBS Studio로부터 영상을 받게 되면 사용자가 여러 화질에서 시청이 가능하도록 화질에 따라서 여러 개의 output을 만들어 서비스 유형에 맞게 재인코딩을 진행한다. 인코딩을 실시할 때 H.264를 사용하며 여러 출력 유형의 인코딩된 영상을 medialpackage로 보낸다. AWS mediapackage는 AWS medialive에서 생성된 output 영상들을 뿌려주는 역할을 한다. 이때 여러 output 영상들을 HLS 방식으로 Client에게 서비스 할수 있게 m3u8의 확장자를 지닌 여러개의 URL을 생성해준다. HLS는 하나의 영상을 시간단위로 조각낸 ts파일을 재생목록 파일인 m3u8과 함께 HTTP를 통해 전송하는 방식으로 별도의 영상변형을 요구하지 않아 서버 비용이 절약된다. 이렇게 생성된 URL을 이용해 웹에서 동작이 가능해진다.


상세설계 내용

  • Usecase Diagram
    • 9조 UseCaseDiagram.png
  • UI Diagram - CAM UI
    • 9조 UIDiagram - CAM UI.png
    • Checkbox (On-Off):
      • Localization Mode: 기존 특징점만을 이용한 Tracking 활성화 여부
      • Show Points: CAM Frame 위에 특징점 출력 여부
      • Show Model: CAM Frame 위에 AR 모델 출력 여부
    • Button:
      • Set AR Model: 클릭 시, 인식할 사물과 부착할 AR 모델을 설정할 수 있는 창을 띄운다.
      • Start SLAM: 클릭 시, 영상 열기 창을 띄우고 영상을 선택하면 해당 영상에 대해 슬램 알고리즘을 실행한다.
      • Exit: 클릭 시, 해당 프로그램을 종료한다.
    • CAM Frame: 슬램 알고리즘이 실행되면 화면에 영상을 출력한다. 화면의 아래 쪽에 슬램 알고리즘의 상태를 출력하고 체크박스 설정에 따라 특징점과 AR 모델을 화면 위에 출력한다.
  • UI Diagram - MAPPING UI
    • 9조 UIDiagram - Mapping UI.png
    • Checkbox (On-Off):
      • Show Key Frames: Mapping Frame 위에 Key Frames 출력 여부
      • Show Graph: Mapping Frame 위에 Covisibility Graph 출력 여부
    • Button:
      • Save Mapped Model: 클릭 시, 경로를 입력할 수 있는 창을 띄운다. 경로가 입력되면 해당 경로에 맵핑 정보가 담긴 파일을 저장한다.
      • Load Mapped Model: 클릭 시, 파일을 열 수 있는 창을 띄운다. 파일을 선택하고 올바른 파일 형식이라면 해당 모델을 로드한다. Localization Mode가 on일 때만 사용가능하다.
      • Reset: Mapping Frame을 초기화한다.
    • Mapping Frame: 슬램 알고리즘이 실행되고 SLAM ON 상태가 되면 추정한 카메라의 위치를 중심에 두고 인식된 특징점들을 카메라의 시점에 따라 회전시켜 화면에 출력한다. 체크박스 설정에 따라 Key Frame과 Covisibility Graph를 화면 위에 출력한다.

결과 및 평가

완료 작품의 소개

프로토타입 사진 혹은 작동 장면

  • 원격제어 시스템

원격제어.jpg

  • 스트리밍 서비스

- 메인페이지

메인페이지.jpg

- 스트리밍

스트리밍1.jpg

스트리밍2.jpg

포스터

포스터.jpg

관련사업비 내역서

개발비.jpg

완료작품의 평가

완료평가2.jpg


향후평가

  • 깊이 카메라 등을 활용하기 힘든 드론을 비롯한 모노 카메라를 이용한 드론의 자율 주행이나 장애물 인식 기능 자체 또는 모니터링 기능에 해당 기술을 적용할 수 있을 것으로 전망하였다. 추출한 맵 정보들은 포인트 클라우드에 mesh를 만들어 적절한 가공을 거쳐 모델링을 하면 영화 또는 VR 등에 사용할 수 있는 가상공간의 모델로 이용될 수 있을 것으로 전망하였다. 인식한 물체에 AR 모델을 부착하는 기능은 물체의 레이블별로 구별되는 AR 모델을 붙이거나 하는 방식을 이용하여 AR을 이용한 증강현실 전시관을 비롯한 다양한 응용에서 활용할 수 있을 것으로 전망하였다.