도서 정리/유니티로 만드는 게임 개발 총론

[유니티로 만드는 게임 개발 총론]8장. 외부 연결 메커니즘

dukh 2023. 9. 4. 16:39
본문의 모든 내용과 이미지의 저작권은 '페니 드 빌' 저자의 유니티로 만드는 게임 개발 총론 도서에 있습니다.

8-1. 외부 연결 기초

  • 게임을 디자인 할 때는 고사양의 게임 콘솔 및 데스크탑은 물론 저성능의 모바일 기기까지 고려해야 함
    • 확실하게 차별화된 게임 개발 경험을 만들어야 하는 어려움이 있음
  • 스마트폰이 보편화된 최근, 게임 제작사들은 게임을 즐겨보지 않았던 일반 소비자의 관심을 끌기 위해 노력
    • 인간-컴퓨터 상호작용(Human-Computer Interaction; HCI) 기술을 적용해야 함
    • 태블릿 화면에서 손가락을 움직이거나 팔다리 움직임을 추적하는 등, 독특한 사용자 경험을 창조할 수 있는 여지가 무궁무진 함
  • 다양한 플랫폼 연동에도 신경써야 함
    • 플레이어들은 게임 경험을 친구들과 공유할 수 있게 되었음

8-2. 햅틱과 외부 모션

  • 햅틱(Haptic)이란 단어는 ‘촉감’을 의미하는 그리스어에서 유래했음
  • 플레이어들은 게임을 하면서 화면, 키보드, 컨트롤러 등을 만지지만 컴퓨터 게임에서는 여전히 촉감이 부족
  • 콘솔 컨트롤러나 모바일 기기에서는 진동 기능이 추가되어 게임에서 햅틱을 경험할 수 있게 됨
  • 진동은 최근에도 가장 널리 사용되는 터치 피드백
    • 최초로 진동 피드백을 선보인 게임기기는 닌텐도 64의 ‘럼블팩(Rumble Pak)’과 플레이스테이션의 ‘듀얼 쇼크 아날로그 컨트롤러(Dual Shock Analog Controller)’였음

럼블팩(Rumble Pak)
듀얼 쇼크 아날로그 컨트롤러(Dual Shock Analog Controller)

  • 2003년, 소니는 플레이스테이션2 용 웹캠 ‘아이토이(EyeToy)’를 출시, 게임 콘솔에 부착하여 플레이어의 움직임을 추측할 수 있게 됨

아이토이(EyeToy)

  • 2010년 마이크로소프트는 ‘키넥트(Kinect)’를 출시하여 운동학적으로 상호 작용하여 플레이어가 이제까지 경험할 수 없었던 몰입의 경지에 이르게 했음
    • 화면 앞에서 픽셀 그리드에 맞춰 끊임없이 투사되는 적외선 레이저를 사용해 전신 3D 모션 캡쳐를 제공
    • 현재 키넥트는 최대 6명을 동시에 추적하고, 얼굴과 음성을 인식할 수 있음

키넥트(Kinect)

  • 현재 최신 외부 연결 기기는 ‘오가닉 모션(Organic Motion)’에서 개발한 ‘스테이지 시스템(Stage System)
    • 실시간 모션 캡쳐에 활용되며, 미래에는 플레이어가 중앙에 위치하고 사방의 벽에 게임을 투사하는 게임 구현 가능
    • 카메라 6대를 활용하여 전신 3D 서라운드 모션과 구조를 캡쳐

스테이지 시스템(Stage System)

8-3. 모바일 하드웨어 기능 활용

  • 원래 스마트폰은 게임을 하라고 만든 기기가 아니지만, 게임이 모바일 플랫폼에서 큰 인기를 누리고 모바일 하드웨어가 발전함에 따라 내장된 기능을 활용하는 게임이 많아짐
  • 주로 터치 스크린 및 내장 모션 센서, 위치 기반 서비스와 상호 작용 함

1. 가속도

  • 가속도계(Accelerometer)는 가속력을 측정하는 장치, 매우 작은 회로관이 중력을 감지해서 기울기 각도를 측정하고, 움직임과 진동을 인식해 이동 속도를 측정함
    • 최신 모바일 기기에서는 ‘미소전자기계(Microelectromechanical)’ 시스템 가속도계가 탑재
    • ‘닌텐도 위 리모트’와 ‘눈챠크 컨트롤러’ 및 ‘플레이스테이션3 컨트롤러’에도 가속도계가 탑재
  • 가속도 데이터는 게임에서 화면 방향을 바꾸거나 행동을 묘사할 때 사용할 수 있음

게임 '닌텐도 위 스포츠'에서는 가속도계의 데이터를 이용해 야구 방망이를 휘두를 수 있음

2. 방향

  • 가속도계는 방향도 측정할 수 있음
    • 가속도계가 기기에 고정되어 있기 때문에 기기와 방향이 동일하다고 가정하여 계산
    • 기기는 위, 아래, 세로, 가로, 뒤집은 세로, 뒤집은 가로 총 6개 중 하나의 방향을 기록
  • 방향 데이터는 여러 어플리케이션에서 화면 회전을 결정

3. 웹 서비스

  • 모바일 기기에서는 인터넷에 접속해 웹 서핑과 이메일 송수신이 가능
  • 이는 게임 내에서 이메일을 보내거나 웹사이트에서 데이터를 구하는 등의 방식으로 활용될 수 있음
  • 대표적인 웹 서비스 연동 기능이 ‘광고’
  • 게임 서버 관련 WWW 호출은 속도가 무척 느리기 때문에 실시간 게임에서는 권장하지 않음

4. 위성위치확인시스템(GPS)

  • 스마트폰과 태블릿 PC에는 GPS 수신기가 탑재되어 있음
  • 실시간 위치 정보를 게임 데이터로 이용하여 실제 플레이어가 이동하면 게임에 반영

GPS를 이용하는 게임 '패러랠 킹덤(Parallel Kingdom)'

5. 증강 현실(AR)

  • 증강현실은 1968년부터 상용화되어 있었지만, 애플리케이션에 본격적으로 적용되기 시작한 것은 2006년 이후
    • 데스크톱, 노트북의 웹캠이 대중화되고 성능이 높아진 것이 그 이유
    • 특히 3D 게임 관련 기술이 발전하면서 고품질 오브젝트와 애플리케이션을 효율적으로 통합할 수 있게 됨
  • 플레이어가 존재 하는 실세계가 카메라를 통해 화면으로 전송되어 가상 게임 캐릭터와 통합
  • 실제 세계에 가상의 오브젝트를 정확히 배치하기 위해서는 사용자의 위치와 방향을 정확히 판별할 하드웨어와 소프트웨어가 필요

AR을 사용하는 게임 '포켓몬 GO'

8-4. 소셜 메커니즘

  • 최근 모바일 기기, 데스크톱, 콘솔 등 어떤 기기를 활용하더라도 소셜 요소를 배제하기 어려움
    • 엑스박스 라이브, 페이스북 등의 소셜 요소를 사용하여 정보 및 데이터 공유
  • 온라인 소셜 네트워크는 게임사가 아닌 다른 회사가 개발한 서비스이기에 게임에 그들의 시스템을 결합시키는 일이 쉽지는 않지만, 각자의 코드에 넣어 사용할 수 있는 애플리케이션 프로그래밍 인터페이스(API)를 제공

1. 트위터

  • 트위터는 사람들이 140자 길이의 메시지를 웹사이트에 게시하는 웹 서비스
  • 메시지는 특정인을 향한 것이 아니며 자신의 생각을 사이버 공간에 자유롭게 게시하는 수단
  • 트위터에는 다른 애플리케이션에서 데이터를 가져갈 수 있는 자체적인 API가 있음
  • 트위터에서 받아온 데이터는 JSON 형식으로 되어있으며 키 : 데이터 형식을 취함

인증 과정

  1. 사용자 계정에 접근 허용을 요청하는 메시지를 애플리케이션에서 트위터로 전송
  2. 사용자의 웹 브라우저가 열리고 사용자에게 현재 사용 중인 애플리케이션이 트위터 계정에 접근해도 괜찮겠냐고 물음
  3. 접근을 허락하면 PIN 번호를 부여받고, 사용자는 이 PIN 번호를 애플리케이션에 입력
  4. 애플리케이션은 트위터에 메시지를 보내 PIN 번호를 사용 중이라고 알림
  5. 트위터가 이 PIN 번호가 정확하다고 판단하면, 개인화된 인증 토큰을 애플리케이션에 전송
  6. 토큰은 애플리케이션 내에 저장되어 사용자가 인증 과정을 다시 거치지 않아도 되게 함

2. 페이스북

  • 페이스북의 사용자 인증 과정은 트위터와 비슷
  • 페이스북은 XCode와 비주얼 스튜디오 프로그래밍을 위한 C++과 C# 인터페이스까지 제공
  • 플레이어의 계정을 인증하는 과정은 트위터와 마찬가지로 웹 기반 요청을 통해 처리
  • 트위터에 비해 규모가 훨씬 크고 얻을 수 있는 데이터도 방대
  • 페이스북도 트위터와 마찬가지로 JSON 형식의 데이터를 반환

3. 오픈페인트(OpenFeint)

  • 모바일 게임만을 위해 개발된 소셜네트워크 플랫폼
  • 2009년 아이폰과 아이패드의 iOS용으로 출시됐으며, 안드로이드도 지원
  • 개발자들이 순위표, 포럼, 실시간 채팅, 보상, 최고 점수 경쟁 등의 기능을 손쉽게 통합할 수 있는 API 세트를 제공
  • 2012년 11월에 서비스 중단

인증 과정

  1. 오픈페인트 개발자 사이트에서 계정 생성 후, 게임 등록
  2. 애플리케이션 정보 탭에서 애플리케이션 ID와 제품 키, 제품 비밀번호를 발급받아 입력
  3. 게임이 오픈페인트 기능에 접근 가능

8-5. 게임 출시

  • 과거, 소규모 독립 개발자들은 대형 퍼블리셔와 컨택하여 투자를 요청한 다음 로열티를 받고 엄격한 계획과 출시 일정에 맞춰야 했음
  • 최근도 이런 상황이 있긴 하지만, 다양한 선택권이 주어졌음

1. 앱스토어 출시

  • 앱스토어는 중개 과정을 생략하고 개발자의 게임을 소비자들에게 직접 전달
  • 앱스토어에서 판매되는 iOS와 맥용 애플리케이션은 소비자가 인터넷으로 구배해서 직접 다운로드가 가능
  • 앱스토어용으로 개발된 애플리케이션은 XCode 컴포넌트로 개발해야 함

출시 과정

  1. 앱스토어에 애플 개발자로 등록
  2. 개발이 완료된 애플리케이션을 승인 받기 위해 애플에 제출, 2주 정도의 시간이 소요
    • 제출 전에는 애플이 애플리케이션 승인 시 참조하는 체크리스트를 확인하는 것이 좋음
  3. 승인이 되면 출시, 미승인 시 수정 후 다시 제출
    • 애플은 모든 앱에 약 30%의 수수료를 뗌(국가에 따라 조금씩 다름)

2. 구글 플레이 스토어 출시

  • 앱스토어에 비해 좀 더 수월
  • 구글 계정으로 플레이 스토어 앱 판매 권한을 구매하면 출시 가능
  • 앱스토어와 마찬가지로 승인 기간이 있음
  • 애플리케이션 개발 후, 안드로이드 SDK로 빌드해야만 출시 가능
  • 플레이 스토어에서는 개발자가 애플리케이션 가격을 자유롭게 책정할 수 있고, 판매 시 거래 수수료 30%가 구글에 지불됨

3. 콘솔 출시

  • 마이크로소프트, 닌텐도, 소니 등의 게임 콘솔 제조사들은 게임 발매에 대한 다양한 규칙과 규제 사항을 가지고 있음
    • 닌텐도는 게임 스튜디오가 애플리케이션 양식 인증을 완료해야 공식 개발자로 인정
    • 마이크로소프트는 엑스박스, 윈도우 데스크톱 및 모바일 게임 개발에 필요한 XNA 게임 스튜디오 개발 키트를 무료로 제공
  • 플레이스테이션이나 엑스박스의 공식 개발자가 되는 장벽은 매우 높음
    • 많은 경력의 팀을 보유하고 있고, 5개 정도의 AAA급 타이틀 발매 경험이 있음을 퍼블리셔에게 입증해야 함
    • 개발 키트의 가격은 개당 약 10,000 달러부터 시작

4. 스팀 출시

  • 스팀은 데스크톱 컴퓨터에서 실행되는 소프트웨어 클라이언트로 구성되어 있으며 배포, 저작권 및 멀티플레이어 기능을 관리
  • 대형 퍼블리셔와 독립 개발사들의 게임을 함께 취급하고 있음
  • 스팀 공식 홈페이지에서 게임을 스팀에 출시하는 방법을 확인할 수 있음
Steamworks - Build & Distribute Your Games on Steam