KR102669187B1 - 비디오 게임에서의 공유 제어와 전달 제어의 분기 - Google Patents

비디오 게임에서의 공유 제어와 전달 제어의 분기 Download PDF

Info

Publication number
KR102669187B1
KR102669187B1 KR1020237010120A KR20237010120A KR102669187B1 KR 102669187 B1 KR102669187 B1 KR 102669187B1 KR 1020237010120 A KR1020237010120 A KR 1020237010120A KR 20237010120 A KR20237010120 A KR 20237010120A KR 102669187 B1 KR102669187 B1 KR 102669187B1
Authority
KR
South Korea
Prior art keywords
video
video game
input
control
game
Prior art date
Application number
KR1020237010120A
Other languages
English (en)
Other versions
KR20230044557A (ko
Inventor
저스틴 벨트란
딜런 버틀러
알렉산더 자제빈스키
Original Assignee
소니 인터랙티브 엔터테인먼트 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/993,603 external-priority patent/US10898802B2/en
Application filed by 소니 인터랙티브 엔터테인먼트 엘엘씨 filed Critical 소니 인터랙티브 엔터테인먼트 엘엘씨
Publication of KR20230044557A publication Critical patent/KR20230044557A/ko
Application granted granted Critical
Publication of KR102669187B1 publication Critical patent/KR102669187B1/ko

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/847Cooperative playing, e.g. requiring coordinated actions from several players to achieve a common goal
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/86Watching games played by other players

Abstract

클라우드 게임 컴퓨터에 의해 비디오 게임을 실행하는 단계; 상기 실행중인 비디오 게임으로부터 생성된 비디오를 네트워크를 통해 1차 클라이언트 장치로 스트리밍하는 단계; 상기 네트워크를 통해 상기 비디오를 상기 1차 클라이언트 장치로부터 하나 이상의 2차 클라이언트 장치들로 스트리밍하는 단계; 입력 어그리게이션 서버에 의해 상기 네트워크를 통해, 상기 2차 클라이언트 장치들로부터 입력 데이터를 수신하는 단계; 상기 입력 어그리게이션 서버에 의해 상기 네트워크를 통해, 상기 2차 클라이언트 장치들로부터의 상기 입력 데이터를 상기 1차 클라이언트 장치로 전송하는 단계로서, 상기 1차 클라이언트 장치는 상기 2차 클라이언트 장치들로부터의 상기 입력 데이터를 상기 1차 클라이언트 장치에서 생성된 입력 데이터와 결합함으로써 결합 된 입력 데이터를 생성하도록 구성되는, 상기 전송하는 단계; 상기 클라우드 게임 컴퓨터에 의해 상기 네트워크를 통해, 상기 결합된 입력 데이터를 수신하는 단계; 상기 클라우드 게임 컴퓨터에 의해, 상기 결합된 입력 데이터를 적용하여 상기 비디오 게임의 실행을 구동하는 단계를 포함하는 동작들을 포함하는 방법이 제공된다.

Description

비디오 게임에서의 공유 제어와 전달 제어의 분기{BIFURCATION OF SHARED CONTROLS AND PASSING CONTROLS IN A VIDEO GAME}
본 개시는 비디오 게임과 같은 대화형 어플리케이션에서의 공유된 제어 및 전달 제어의 분기에 관한 것이다.
비디오 게임 산업은 수년에 걸쳐 많은 변화들을 보여왔다. 컴퓨팅 성능이 확장됨에 따라, 비디오 게임 개발자들도 역시 이러한 컴퓨팅 성능 증진을 이용하는 게임 소프트웨어를 만들어냈다. 이를 위해, 비디오 게임 개발자들은 정교한 연산과 수학을 통합하여 매우 상세하고 매력적인 게임 경험들을 생성하는 게임들을 코딩해 왔다.
예시적인 게임 플랫폼들은 소니 플레이스테이션®, 소니 플레이스테이션2®(PS2), 소니 플레이스테이션3®(PS3), 및 소니 플레이스테이션4®(PS4)가 있으며, 그 각각은 게임 콘솔 형태로 판매된다. 잘 알려진 바와 같이, 게임 콘솔은 디스플레이(일반적으로 텔레비전)에 연결하고 핸드헬드 컨트롤러들을 통해 사용자 상호작용을 가능하게 하도록 설계된다. 게임 콘솔은 CPU, 집약적인 그래픽 동작들을 처리하기 위한 그래픽 합성기, 지오메트리 변환을 수행하기 위한 벡터 유닛 및 기타 글루 하드웨어, 펌웨어 및 소프트웨어를 포함한 특수 처리 하드웨어로 설계된다. 게임 콘솔은 게임 콘솔을 통해 로컬 플레이를 위한 게임 디스크들을 받기 위한 광 디스크 리더로 더 설계될 수 있다. 사용자가 인터넷을 통해 다른 사용자들과 대화식으로 플레이 할 수 있는 온라인 게임도 가능하다. 게임 복잡도가 플레이어의 흥미를 계속 끌면서, 게임 및 하드웨어 제조업체는 추가적인 상호작용 및 컴퓨터 프로그램들을 가능하게 하기 위해 계속해서 혁신을 해왔다.
컴퓨터 게임 산업의 성장 추세는 사용자와 게임 시스템 간의 상호작용을 증가시키는 게임을 개발하는 것이다. 보다 풍부한 상호작용 경험을 할 수 있는 한 가지 방법은 플레이어의 움직임들을 추적하고 이러한 움직임들을 게임의 입력들로 사용하기 위해 게임 시스템에 의해 움직임이 추적되는 무선 게임 컨트롤러들을 사용하는 것이다. 일반적으로 말하자면, 제스처 입력은 컴퓨팅 시스템, 비디오 게임 콘솔, 스마트 기기 등과 같은 전자 장치가 플레이어에 의해 이루어진 일부 제스처에 반응하고 전자 장치에 의해 캡쳐되는 것을 말한다.
보다 몰입감 있는 대화형 경험을 할 수 있는 또 다른 방법은 헤드 장착 디스플레이(HMD)를 사용하는 것이다. 헤드 장착 디스플레이는 사용자에 의해 착용되며, 가상 공간 보기와 같은 다양한 그래픽들을 표시하도록 구현될 수 있다. 헤드 장착 디스플레이에 표시되는 그래픽들은 사용자의 시야의 대부분 또는 심지어 전체를 커버할 수 있다. 따라서, 헤드 장착 디스플레이는 HMD가 사용자의 움직임들에 반응하는 방식으로 가상 환경의 3차원 실시간 뷰를 렌더링함에 따라, 시각적으로 몰입할 수 있는 가상 현실 경험을 사용자에게 제공할 수 있다. HMD를 착용한 사용자는 모든 방향들에서 움직임의 자유가 제공되며, 이에 따라 HMD를 통해 모든 방향들에서의 가상 환경 뷰가 제공될 수 있다.
이러한 맥락에서 본 개시의 구현예들이 발생한다.
본 개시의 구현예들은 비디오 게임과 같은 대화형 어플리케이션에서 공유된 제어의 분기 및 제어의 전달에 관한 장치들, 방법들 및 시스템들을 포함한다.
일부 구현예들에서, 클라우드 게임 컴퓨터에 의해 비디오 게임을 실행하는 단계; 상기 실행중인 비디오 게임으로부터 생성된 비디오를 네트워크를 통해 1차 클라이언트 장치로 스트리밍하는 단계; 상기 네트워크를 통해 상기 비디오를 상기 1차 클라이언트 장치로부터 하나 이상의 2차 클라이언트 장치들로 스트리밍하는 단계; 입력 어그리게이션 서버에 의해 상기 네트워크를 통해, 상기 2차 클라이언트 장치들로부터 입력 데이터를 수신하는 단계; 상기 입력 어그리게이션 서버에 의해 상기 네트워크를 통해, 상기 2차 클라이언트 장치들로부터의 상기 입력 데이터를 상기 1차 클라이언트 장치로 전송하는 단계로서, 상기 1차 클라이언트 장치는 상기 2차 클라이언트 장치들로부터의 상기 입력 데이터를 상기 1차 클라이언트 장치에서 생성된 입력 데이터와 결합함으로써 결합 된 입력 데이터를 생성하도록 구성되는, 상기 전송하는 단계; 상기 클라우드 게임 컴퓨터에 의해 상기 네트워크를 통해, 상기 결합된 입력 데이터를 수신하는 단계; 상기 클라우드 게임 컴퓨터에 의해, 상기 결합된 입력 데이터를 적용하여 상기 비디오 게임의 실행을 구동하는 단계를 포함하는 동작들을 포함하는 방법이 제공된다.
일부 구현예들에서, 상기 결합된 입력 데이터는 상기 비디오 게임에서 단일 플레이어의 활동을 제어하기 위한 단일 입력 스트림을 정의한다.
일부 구현예들에서, 상기 결합된 입력 데이터는 상기 1차 클라이언트 장치에 동작 가능하게 연결되는 단일 컨트롤러 장치에 매핑되는 명령들을 정의한다.
일부 구현예들에서, 상기 결합된 입력 데이터에 의해 정의된 상기 명령들은 상기 단일 컨트롤러 장치의 제1 입력 장치에 매핑된 제1 명령 및 상기 단일 컨트롤러 장치의 제2 입력 장치에 매핑된 제2 명령을 포함하고, 상기 제1 명령은 상기 단일 컨트롤러 장치에서 상기 제1 입력 장치의 활성화로부터 개시되고, 상기 제2 명령은 상기 2차 클라이언트 장치들 중 하나에 동작 가능하게 연결된 2차 컨트롤러 장치에서 입력 장치의 활성화로부터 개시된다.
일부 구현예들에서, 상기 2차 컨트롤러 장치에서 상기 입력 장치의 활성화로부터 개시되는 상기 제2 명령은 상기 입력 어그리게이션 서버를 통해 상기 2차 클라이언트 장치에 의한 상기 단일 컨트롤러 장치의 상기 제2 입력 장치의 원격 가상 트리거링을 정의한다.
일부 구현예들에서, 상기 비디오를 상기 1차 클라이언트 장치로부터 상기 하나 이상의 2차 클라이언트 장치들로 스트리밍하는 단계는 상기 1차 클라이언트 장치 및 상기 하나 이상의 2차 클라이언트 장치들을 포함하는 피어-투-피어 네트워크를 통해 발생한다.
일부 구현예들에서, 상기 실행중인 비디오 게임으로부터 생성된 상기 비디오는 가상 환경 뷰를 정의한다.
일부 구현예들에서, 클라우드 게임 컴퓨터에 의해 비디오 게임을 실행하는 단계; 비디오 서버에 의해 네트워크를 통해, 상기 실행중인 비디오 게임으로부터 생성된 비디오를 1차 클라이언트 장치 및 하나 이상의 2차 클라이언트 장치들로 스트리밍하는 단계; 입력 어그리게이션 서버에 의해 상기 네트워크를 통해, 상기 1차 클라이언트 장치로부터의 입력 데이터 및 상기 2차 클라이언트 장치들로부터의 입력 데이터를 수신하는 단계; 상기 입력 어그리게이션 서버에 의해, 상기 1차 클라이언트 장치로부터의 상기 입력 데이터 및 상기 2차 클라이언트 장치들로부터의 상기 입력 데이터를 사용하여 결합된 입력 데이터를 생성하는 단계; 상기 입력 어그리게이션 서버에 의해, 상기 결합된 입력 데이터를 상기 클라우드 게임 컴퓨터로 전송하는 단계; 상기 클라우드 게임 컴퓨터에 의해, 상기 결합된 입력 데이터를 적용하여 상기 비디오 게임의 실행을 구동하는 단계를 포함하는 방법이 제공된다.
일부 구현예들에서, 상기 결합된 입력 데이터는 상기 비디오 게임에서 단일 플레이어의 활동을 제어하기 위한 단일 입력 스트림을 정의한다.
일부 구현예들에서, 상기 결합된 입력 데이터는 상기 1차 클라이언트 장치에 동작 가능하게 연결되는 단일 컨트롤러 장치에 매핑되는 명령들을 정의한다.
일부 구현예들에서, 상기 결합된 입력 데이터에 의해 정의된 상기 명령들은 상기 단일 컨트롤러 장치의 제1 입력 장치에 매핑된 제1 명령 및 상기 단일 컨트롤러 장치의 제2 입력 장치에 매핑된 제2 명령을 포함하고, 상기 제1 명령은 상기 단일 컨트롤러 장치에서 상기 제1 입력 장치의 활성화로부터 개시되고, 상기 제2 명령은 상기 2차 클라이언트 장치들 중 하나에 동작 가능하게 연결된 2차 컨트롤러 장치에서 입력 장치의 활성화로부터 개시된다.
일부 구현예들에서, 상기 2차 컨트롤러 장치에서 상기 입력 장치의 활성화로부터 개시되는 상기 제2 명령은 상기 입력 어그리게이션 서버를 통해 상기 2차 클라이언트 장치에 의한 상기 단일 컨트롤러 장치의 상기 제2 입력 장치의 원격 가상 트리거링을 정의한다.
일부 구현예들에서, 상기 실행중인 비디오 게임으로부터 생성된 상기 비디오는 가상 환경 뷰를 정의한다.
일부 구현예들에서, 비디오 게임을 실행하도록 구성된 클라우드 게임 컴퓨터로서, 상기 실행중인 비디오 게임으로부터 생성된 비디오가 네트워크를 통해 1차 클라이언트 장치로 전송되고, 상기 1차 클라이언트 장치는 상기 비디오를 상기 네트워크를 통해 상기 1차 클라이언트 장치로부터 하나 이상의 2차 클라이언트 장치들로 스트리밍하도록 구성되는, 상기 클라우드 게임 컴퓨터; 상기 2차 클라이언트 장치들로부터의 입력 데이터를 상기 네트워크를 통해 수신하도록 구성된 입력 어그리게이션 서버로서, 상기 입력 어그리게이션 서버는 상기 네트워크를 통해, 상기 입력 데이터를 상기 2차 클라이언트 장치들로부터 상기 1차 클라이언트 장치로 전송하도록 더 구성되며, 상기 1차 클라이언트 장치는 상기 2차 클라이언트 장치들로부터의 상기 입력들을 상기 1차 클라이언트 장치에서 생성된 입력 데이터와 결합함으로써 결합된 입력 데이터를 생성하도록 구성되는, 상기 입력 어그리게이션 서버; 상기 1차 클라이언트 장치로부터 상기 네트워크를 통해 상기 결합된 입력 데이터를 수신하도록 구성된 상기 클라우드 게임 컴퓨터로서, 상기 클라우드 게임 컴퓨터는 상기 결합된 입력 데이터를 적용하여 상기 비디오 게임의 상기 실행을 구동하도록 더 구성되는, 상기 클라우드 게임 컴퓨터를 포함하는 시스템이 제공된다.
일부 구현예들에서, 상기 결합된 입력 데이터는 상기 비디오 게임에서 단일 플레이어의 활동을 제어하기 위한 단일 입력 스트림을 정의한다.
일부 구현예들에서, 상기 결합된 입력 데이터는 상기 1차 클라이언트 장치에 동작 가능하게 연결되는 단일 컨트롤러 장치에 매핑되는 명령들을 정의한다.
일부 구현예들에서, 상기 결합된 입력 데이터에 의해 정의된 상기 명령들은 상기 단일 컨트롤러 장치의 제1 입력 장치에 매핑된 제1 명령 및 상기 단일 컨트롤러 장치의 제2 입력 장치에 매핑된 제2 명령을 포함하고, 상기 제1 명령은 상기 단일 컨트롤러 장치에서 상기 제1 입력 장치의 활성화로부터 개시되고, 상기 제2 명령은 상기 2차 클라이언트 장치들 중 하나에 동작 가능하게 연결된 2차 컨트롤러 장치에서 입력 장치의 활성화로부터 개시된다.
일부 구현예들에서, 상기 2차 컨트롤러 장치에서 상기 입력 장치의 활성화로부터 개시되는 상기 제2 명령은 상기 입력 어그리게이션 서버를 통해 상기 2차 클라이언트 장치에 의한 상기 단일 컨트롤러 장치의 상기 제2 입력 장치의 원격 가상 트리거링을 정의한다.
일부 구현예들에서, 상기 비디오를 상기 1차 클라이언트 장치로부터 상기 하나 이상의 2차 클라이언트 장치들로 스트리밍하는 단계는 상기 1차 클라이언트 장치 및 상기 하나 이상의 2차 클라이언트 장치들을 포함하는 피어-투-피어 네트워크를 통해 발생한다.
일부 구현예들에서, 상기 실행중인 비디오 게임으로부터 생성된 상기 비디오는 가상 환경 뷰를 정의한다.
본 개시의 측면들 및 이점들은 본 개시의 원리들을 예로서 예시하는 첨부 도면들과 함께 취해진 다음의 상세한 설명으로부터 명백해질 것이다.
본 개시는 첨부된 도면들과 관련하여 수행된 다음의 설명을 참조하여 더 잘 이해될 수 있다:
도 1은 본 개시 내용의 구현예들에 따라, 여러 사용자들 사이에서 단일 플레이어 세션의 제어 분기를 개념적으로 예시한다.
도 2는 본 개시의 구현예들에 따라, 사용자 그룹 사이에서 비디오 게임 엔티티의 제어의 전달을 개념적으로 예시한다.
도 3은 본 개시의 구현예들에 따라, 비디오 게임에서 다양한 가상 캐릭터들을 제어하는 사용자 팀들을 개념적으로 예시한다.
도 4a는 본 개시의 구현예들에 따라, 비디오 게임에 대한 협력적 입력을 관리하기 위한 시스템을 예시한다.
도 4b는 본 개시의 구현예들에 따라, 비디오 게임에 대한 협력적 입력을 관리하기 위한 시스템을 예시한다.
도 5는 본 개시의 구현예들에 따라, 비디오 게임의 분할 컨트롤러 게임플레이를 수행하기 위한 방법을 예시한다.
도 6은 본 개시의 구현예들에 따라, 팀원들이 비디오 게임에서 주어진 가상 캐릭터/엔티티를 제어하기 위해 서로 대체될 수 있는, 팀 비디오 게임을 위한 방법을 예시한다.
도 7은 한 구현예에 따라, 클라이언트 시스템과 인터페이싱하는 HMD 사용자 및 제2 스크린이라고 하는 제2 스크린 디스플레이에 콘텐트를 제공하는 클라이언트 시스템의 일례를 도시한다.
도 8은 본 개시의 다양한 구현들에 따른 게임 시스템(1600)의 블록도이다.
본 개시의 다음의 구현예들은 비디오 게임과 같은 대화형 어플리케이션에서 공유된 제어의 분기 및 제어의 전달에 관한 장치들, 방법들 및 시스템들을 제공한다. 그러나, 본 개시가 현재 설명된 특정 세부사항들의 일부 또는 전부 없이 실시될 수 있다는 것은 당업자에게 명백할 것이다. 다른 경우에, 본 개시를 불필요하게 모호하게 하지 않기 위해 주지의 프로세스 동작들은 상세히 설명되지 않았다.
광범위하게 말하자면, 본 개시의 구현예들은 비디오 게임 엔티티들 및 캐릭터들의 공유 제어를 통해 협력적 게임을 촉진하는 다양한 방법들 및 시스템들을 제공한다. 예를 들어, 일부 구현예들에서, 단일 플레이어의 세션 제어는 둘 이상의 원격 사용자들 간에 분기된다. 예를 들어, 한 사용자는 캐릭터에 대해 주어진 동작을 제어할 수 있는 반면, 다른 사용자는 동일한 캐릭터에 대해 다른 액션을 제어한다. 이러한 액션들은 단일의 1차 컨트롤러 장치의 다양한 입력 장치들에 매핑될 수 있음이 이해될 것이다. 따라서, 입력 장치들의 제어는 사용자 사이에서 분할된다. 사용자들이 서로 멀리 떨어져 있으므로, 그 입력들은 집계된 다음 단일 플레이어의 세션에 대한 단일 입력 스트림으로 적용될 수 있다.
다른 구현예에서, 캐릭터 또는 다른 비디오 게임 엔티티의 제어는 한 사용자에서 다른 사용자에게 전달될 수 있다. 일부 구현예들에서, 많은 사용자들이 있고 제어는 라운드 로빈 방식으로 전달된다. 이러한 방식으로, 사용자 팀의 각 구성원은 캐릭터 또는 비디오 게임 엔티티를 제어할 차례가 주어진다.
개념을 확장하면, 다른 구현예들에서, 사용자 팀은 비디오 게임에서 제한된 수의 캐릭터들을 제어할 수 있다. 즉, 비디오 게임에서 제어할 수 있는 특정 수의 캐릭터들과, 팀에서 더 많은 수의 사용자들이 있다. 주어진 시간에, 팀의 다른 사용자들은 캐릭터들 중 각기 다른 캐릭터들을 제어하도록 배정될 수 있다. 예를 들어, 팀장은 비디오 게임에서 주어진 캐릭터와 관련하여 한 사용자를 다른 사용자로 대체할 수 있다.
설명의 용이함을 위해, 본 개시 전반에 걸쳐 비디오 게임에서 주어진 캐릭터의 제어에 대한 참조가 이루어질 것이다. 그러나, 현재 설명된 개념은 비디오 게임의 캐릭터들뿐만 아니라 비디오 게임에서 주어진 사용자에 의해 제어 가능한 임의의 엔티티에 적용된다는 것이 당업자들에 의해 이해될 것이다. 따라서, 캐릭터라는 용어는 주어진 사용자가 제어할 수 있는 비디오 게임의 임의의 다른 엔티티와 상호 교환 적으로 사용될 수 있다. 그리고 보다 구체적으로, 캐릭터 또는 엔티티는 전통적으로 단일 사용자에 의해 제어되는 것이다.
도 1은 본 개시 내용의 구현예들에 따라, 여러 사용자들 사이에서 단일 플레이어 세션의 제어 분기를 개념적으로 예시한다. 비디오 게임이 실행되고 비디오 게임의 실행에 의해 생성된 비디오가 참조 번호 100에 표시된다. 일부 구현예들에서는 비디오 게임은 클라우드 게임 기계에 의해 실행되는 반면, 다른 구현예들에서는 비디오 게임은 게임 콘솔 또는 개인용 컴퓨터, 또는 다른 컴퓨팅 장치와 같은 로컬 클라이언트 기계에 의해 실행된다는 것이 이해될 것이다. 주어진 사용자에 대한 비디오 게임의 세션을 찾기 위한 비디오 게임 실행. 예를 들어, 예시된 구현예를 참조하면, 비디오 게임의 세션은 사용자(112)에 의한 게임플레이에 대해 정의될 수 있다. 예를 들어, 사용자(112)는 비디오 게임의 실행을 개시할 수 있으므로, 인스턴스화된 세션은 사용자(112)와 연관된다.
정규 게임플레이 시나리오에서, 사용자(112)는 예를 들어, 실행중인 비디오 게임에 의해 정의된 가상 환경에서 캐릭터(102)(또는 다른 비디오 게임 엔티티)를 제어하기 위해 실행중인 비디오 게임에 입력을 제공하도록 컨트롤러 장치(106)를 동작시킬 수 있다. 예시된 구현예에서, 컨트롤러 장치(106)는 조이스틱(108), 버튼(110) 및 트리거(111)와 같은 다양한 입력 장치들을 포함하는 것으로 도시된다. 게임플레이의 정상적인 단일 사용자 모드에서, 단일 컨트롤러 장치(106)의 입력 장치들로부터의 모든 입력들은 사용자(112)에 의해 제어된다.
그러나, 본 개시의 구현예들에 따르면, 다중 사용자 게임플레이 모드가 제공되며, 이에 의해 입력들이 분기되어 제어를 위해 다른 사용자들에게 할당될 수 있다. 즉, 다른 사용자들은 원격 방식으로 컨트롤러 장치(106)의 일부들을 가상으로 제어하도록 인에이블된다. 예를 들어, 제한 없이, 예시된 구현예를 참조하면, 추가 사용자들(114 및 116)은 컨트롤러 장치(106)의 일부분들을 제어하는 능력이 제공된다. 예를 들어, 1차 사용자(112)는 조이스틱(108)을 제어할 수 있는 반면, 2차 사용자(114)는 버튼(110)을 제어하고, 다른 2차 사용자(116)는 트리거(111)를 제어한다. 조이스틱(108), 버튼(110) 및 트리거(111)는 각각 비디오 게임에서 상이한 기능들 또는 액션들에 대응될 수 있다는 것이 이해될 것이다. 예를 들어, 조이스틱(108)은 캐릭터(102)의 움직임(예를 들어, 달리기, 걷기 등)을 제어하도록 매핑될 수 있고, 버튼(110)은 점프 또는 펀치 등과 같은 캐릭터(102)의 액션들을 제어하도록 매핑될 수 있으며, 트리거(111)는 캐릭터(102)에 의한 사격 액션(예를 들어, 무기 발사)을 제어할 수 있다. 이러한 방식으로, 각각의 사용자들(112, 114 및 116)은 비디오 게임에서 캐릭터(102)에 대한 특정 활동 서브셋을 제어하는 임무를 부여 받는다. 단일 사용자 모드에서는, 이러한 모든 활동들이 1차 사용자(112)에 의해 제어될 것이지만, 현재 설명된 다중 사용자 모드에서는, 다중 사용자들이 이러한 방식으로 캐릭터(102)의 제어를 공유함으로써 협력적인 게임플레이에 참여할 수 있다.
사용자들(112, 114 및 116)은 서로 원격으로 멀리 떨어져 있으며, 따라서 사용자들(114 및 116)은 1차 사용자의 컨트롤러 장치(106)의 입력 장치들을 물리적으로 제어하지 않는다는 것을 알 수 있을 것이다. 오히려 각각의 사용자들(114 및 116)은 본 개시의 시스템들을 통해 자신의 로컬 환경에서 실행중인 비디오 게임의 비디오(100)를 볼 수 있으며, 자신이 할당된 컨트롤러 장치(106)의 입력 장치들의 입력과 동일한 명령 기능에 매핑되는 입력을 제공하는 것이 가능하게 된다. 이러한 방식으로, 사용자(114)는 버튼(110)에 매핑되는 기능들을 원격으로 그리고 가상으로 제어할 수 있는 반면, 사용자(116)는 트리거(111)에 매핑되는 기능들을 원격으로 그리고 가상으로 제어할 수 있다.
광범위하게 말하자면, 각각의 2차 사용자들(114 및 116)은 자신의 각각의 컨트롤러 장치들을 동작시킬 수 있으며, 각각의 사용자들(114 및 116)로부터의 입력들은 컨트롤러 장치(106)를 동작시키는 사용자(112)로부터의 입력들과 함께 전송 및 집계되어 결합된 입력 스트림이 컨트롤러 장치(106)에서만 발생되는 것처럼 실행중인 비디오 게임으로 전송되는 결합된 입력 스트림을 제공할 수 있다. 따라서, 비디오 게임의 세션이 단일 플레이어, 즉 1차 사용자(112)에 대해 정의될 수 있는 반면, 추가 사용자들(114 및 116)은 게임 플레이에 조인할 수 있으며 비디오 게임에서 캐릭터(102)의 제어 가능한 액션들의 일부의 제어가 제공될 수 있다.
일부 구현예들에서, 1차 사용자(112)는 2차 사용자들(114 및 116)을 그들의 세션에 조인하도록 초대할 수 있다. 또한, 1차 사용자(112)는 사용자들(114 및 116)에게 권한을 부여하고 설명된 바와 같이 게임 플레이의 일부분들을 제어하도록 할당할 수 있다. 일부 구현예들에서, 1차 사용자(112)는 제어를 분할하는 방법, 즉 어떤 특정 명령들이 어느 특정 2차 사용자들에게 할당될 것인지를 결정하는 것이 가능하게 된다.
일부 구현예들에서, 2차 사용자들(114 또는 116)은 컨트롤러를 공유할 것을 요청하거나 초대받기 전에 먼저 1차 사용자(112)에 의한 비디오 게임의 게임 플레이를 관전할 수 있다. 예를 들어, 사용자들(112, 114 및 116)은 소셜 네트워크 상의 친구들일 수 있고, 서로가 게임플레이 또는 온라인에 참여하고 있는 때를 볼 수 있다. 사용자들은 서로의 게임플레이에 대한 알림들을 받을 수 있으므로, 관전할 수 있는 액세스를 얻어 현재 설명된 바와 같은 분기 제어에 참여할 수도 있다.
현재 설명된 단일 플레이어의 게임플레이의 분기 제어에 대한 개념은 멀티플레이어 게임 세션 시나리오로 확장될 수 있다. 예를 들어, 도 1의 구현예를 계속 참조하면, 비디오 게임에서 캐릭터(104)를 제어하는 또 다른 1차 사용자(126)가 있을 수 있다. 도시된 바와 같이, 사용자(126)는 캐릭터(104)의 액션들을 제어하기 위해 비디오 게임에 입력을 제공하도록 구성되는 다양한 입력 장치들을 갖는 컨트롤러 장치(118)를 동작시킨다. 그러나, 상기에 설명된 개념과 유사하게, 일부 구현예들에서는, 캐릭터(104)의 제어는 여러 사용자들 사이에서 분기될 수 있다. 따라서, 예를 들어, 추가 사용자들(128 및 130)은 실행중인 비디오 게임의 비디오(100) 및 또한 1차 컨트롤러 장치(118)의 입력 장치들에 매핑되는 명령들의 제어 일부를 제공받을 수 있다. 예를 들어, 1차 사용자(126)가 컨트롤러 장치(118)의 조이스틱(120)을 제어하는 반면, 사용자(128)는 버튼(122)을 제어할 수 있고, 사용자(130)는 트리거(124)를 제어할 수 있다. 상기에 언급된 바와 같이, 2 차 사용자들(128 및 130)은 이들이 원격으로 멀리 떨어져 위치되므로, 버튼 및 트리거를 물리적으로 제어하지 않는다. 그러나, 이들은 버튼 및 트리거에 할당되는 명령들에 매핑되는 입력을 제공하여, 조이스틱120)을 조작하는 1차 사용자(126)로부터의 입력과 결합될 때, 결합된 입력이 캐릭터(104)의 액션들을 제어하기 위해 컨트롤러 장치(118)에서 발생되는 것처럼 실행중인 비디오에 대한 단일 입력 스트림으로 표시되도록 한다.
현재 설명된 분기된 제어 방식은 일반적으로 단일 플레이어 게임 설정의 경우보다 더 많은 사용자들이 주어진 비디오 게임의 게임플레이에 참여하는 것을 가능하게 할 수 있음을 알 수 있을 것이다. 게다가, 이는 게임플레이에 새로운 동역학을 제공할 수 있다. 예를 들어, 비디오 게임에서 주어진 캐릭터 또는 엔티티의 제어를 공유하는 사용자들은 비디오 게임의 목표를 달성하기 위해 자신의 활동들을 조정하는 도전을 즐길 수 있다. 더욱이, 단일 캐릭터 또는 엔티티를 협력적으로 제어하는 사용자 그룹은 팀을 형성하고, 마찬가지로 비디오 게임에서 다른 캐릭터 또는 엔티티를 협력적으로 제어하는 다른 팀들과 경쟁할 수 있다.
추가 구현예들에서, 버튼이나 기타 입력 장치들 및 명령들이 할당되는 방법을 정의하는 주어진 게임에 대한 템플릿들이 있을 수 있다. 일부 구현예들에서, 사용자들은 템플릿들의 승인(예를 들어, 좋아요(like), 찬성(thumbs up) 등)을 투표하거나 평가하거나 표시할 수 있다. 일부 구현예들에서, 이러한 템블릿들 및/또는 제어의 분할은 주어진 게임 전체에 걸쳐 변경될 수 있다. 예를 들어, 게임의 한 부분에서는 제어들을 한 방식으로 분할하는 것이 타당할 수 있는 반면, 게임의 다른 부분에서는 제어들을 다른 방식으로 분할하는 것이 타당할 수 있다. 더구나, 일부 구현예들에서, 제어들의 분할의 시프팅은 게임의 설정 지점에 있을 수 있거나, 일부 조건에 응답하여 동적으로 있을 수도 있다. 이는 게임 플레이에 더 많은 복잡성을 제공할 수 있다는 것을 알 수 있을 것이다.
도 2는 본 개시의 구현예들에 따라, 사용자 그룹 사이에서 비디오 게임 엔티티의 제어의 전달을 개념적으로 예시한다. 예시된 구현예에서, 다수의 사용자들이 참조 번호 200로 개념적으로 표시된, 비디오 게임의 게임플레이에 참여하고 있다. 사용자(206, 208, 210, 및 212)의 그룹은 가상 캐릭터(202)를 제어하도록 할당된다. 일부 구현예들에 따르면, 가상 캐릭터(202)의 제어는 라운드-로빈 방식으로 한 사용자에서 다른 사용자로 전달된다. 예를 들어, 제1 시간 기간 동안, 가상 캐릭터(202)는 사용자(206)에 의해 제어되고; 제2 시간 기간 동안, 가상 캐릭터(202)는 사용자(208)에 의해 제어되며; 연속적인 제3 및 제4 시간 기간 동안, 가상 캐릭터(202)는 사용자(210) 및 사용자(212)에 의해 각각 제어된다. 사이클의 완료 시, 제어는 제1 사용자(208)에게 리턴되고, 라운드 로빈 방식으로 다시 사용자들을 통해 순환된다.
일부 구현예들에서, 각 사용자는 캐릭터를 제어하기 위한 동등한 시간량이 주어진다. 예를 들어, 각각의 사용자들(206, 208, 210, 및 212)은 가상 캐릭터(202)를 제어하기 위해 2분의 시간이 주어질 수 있으며, 만료 시 그 제어가 다음 사용자에게 전달된다.
다른 구현예들에서, 주어진 사용자가 캐릭터를 제어하기 위해 할당되는 시간량은 하나 이상의 요인들에 기초하여 달라질 수 있다. 예를 들어, 일부 구현예들에서, 더 많은 달성 분량 또는 달성률은 증가된 제어 시간으로 보상된다. 예를 들어, 사용자가 미리 정의된 속도로 또는 주어진 시간 내에 점수를 얻거나 아니면 목표를 달성하는 경우, 이들은 추가 시간량 동안 캐릭터를 계속 제어하는 것이 가능할 수 있다. 그렇지 않으면 제어가 다른 사람에게 전달된다. 일부 구현예들에서, 캐릭터를 제어하기 위해 주어진 사용자에게 할당된 시간량은 사용자의 스킬 레벨에 기초하여 결정된다. 예를 들어, 할당된 시간은 사용자의 스킬 레벨과 역으로 상관될 수 있어, 스킬 레벨이 낮은 사용자들에게는 증가된 시간량이 주어지는 반면, 스킬 레벨이 높은 사용자들에게는 캐릭터를 제어하는 데 더 적은 시간량이 주어진다.
일부 구현예들에서, 사용자는 그 또는 그녀가 예를 들어, 버튼을 누르거나 그와 같은 표시를 하는 입력을 제공하여 다음 사용자에게 제어를 포기하기로 결정할 때까지 캐릭터를 제어한다. 다른 구현예에서, 현재 사용자는 다음 사용자가 현재 사용자를 중단시켜 캐릭터의 제어를 넘겨 받을 때까지 캐릭터를 제어한다. 이러한 구현예에서, 현재 사용자는 다음 사용자가 중단하고 제어를 넘겨 받을 수 있기 전에 최소 시간량이 주어질 수 있다. 일부 구현예들에서, 현재 캐릭터를 제어하지 않는 사용자들 중 일부 또는 전부는 제어가 다음 사용자에게 전달되는 시기를 집합적으로 결정할 수 있다. 예를 들어, 비-제어 사용자들의 일부 또는 전부(예를 들어, 임계량/백분율)가 예를 들어, 버튼을 누르거나 다른 입력을 제공함으로써 제어가 전달되어야 한다는 것을 표시할 때 제어가 전달될 수 있다.
멀티플레이어 게임에서, 서로 협력하거나 서로 경쟁하는 다수의 캐릭터들이 있을 수 있음을 알 수 있을 것이다. 예시된 구현예를 참조하면, 비디오 게임(200)은 사용자들(214, 216, 218, 220)의 그룹에 의해 마찬가지로 제어되는 또 다른 가상 캐릭터(204)를 포함할 수 있다. 이러한 사용자들은 가상 캐릭터(202)를 참조하여 상기에 설명된 것과 유사한 방식으로 가상 캐릭터(204)를 제어할 수 있다. 따라서, 이들은 다른 사용자 팀과 협력적으로 또는 경쟁적으로 비디오 게임(200)을 플레이하기 위해 팀을 형성할 수 있다.
일부 구현예들에서 비디오 게임은 클라우드 실행중인 비디오 게임인 반면, 다른 구현예들에서 비디오 게임은 사용자들 중 하나와 연관된 로컬 클라이언트 장치에 의해 실행될 수 있음을 알 수 있을 것입니다.
일부 구현예들에서, 상기 개념들 중 일부가 결합될 수 있다. 예를 들어, 주어진 캐릭터의 제어는 제어의 다른 부분들로 분기될 수 있다. 그러나, 제어의 각 부분에 대해, 주어진 부분의 제어를 수행하기 위해 대기중인 다수의 사용자들이 있을 수 있다. 그런 다음, 대기중인 사용자들은 예를 들어 각 사용자에 대해 제한된 시간량 동안 라운드 로빈 방식으로 차례로 제어를 가정할 수 있다. 예를 들어, 다수의 사용자들이 각각 점프나 슈팅 등과 같은 캐릭터의 주어진 액션을 제어하는 차례를 가질 수 있다.
일부 구현예들에서, 다수의 사용자들은 동시에 주어진 입력을 제어할 수 있다. 예를 들어, 복수의 사용자들로부터의 입력 데이터는 입력의 특정 특성을 결정하기 위해 집계되고 처리될 수 있다. 예를 들어, 단일 버튼의 제어의 경우, 복수의 사용자들로부터의 버튼 누름은 버튼을 눌렀을 때의 타이밍, 버튼을 누르고 있는 시간, 버튼의 누름이 해제될 때 등과 같은 제어의 다양한 측면들을 결정하기 위해 집계될 수 있다. 이러한 방식으로, 주어진 제어 입력은 많은 사용자들 간에 공유될 수 있다. 복수의 사용자들 각각의 개별 입력들에 기초하여 합의 입력을 결정하기 위해 다양한 방법들이 사용될 수 있음을 알 수 있을 것이다. 예를 들어, 일부 구현예들에서, 비디오 게임에서 주어진 시간 단위 동안, 가장 인기 있는 입력이 (예를 들어, 대부분의 사용자들의 선택에 기초하거나 사용자들의 임계 분율을 초과하여) 결정되고 적용된다. 주어진 순간에 가장 인기 있는 입력은 어떠한 액션의 부재로 정의될 수 있다는 것을 알아야 한다. 일부 구현예들에서, 다양한 사용자들로부터 입력들의 평균 또는 중앙값이 결정되고 합의 입력으로 적용될 수 있다.
합의 입력을 결정하기 위한 특정 방법의 적합성은 해당 특정 입력의 특성에 따라 달라질 수 있음을 알 수 있을 것이다. 예를 들어, 온 상태 또는 오프 상태만 있는 버튼과 같은 이진 입력 유형의 경우, 이 결과가 합의 입력으로 직접 적용될 수 있으므로 주어진 시간에 어떤 상태가 가장 인기 있는지를 결정하는 것이 유리할 수 있다. 반면에, 광범위한 방향 및/또는 크기 값들을 포함할 수 있는 조이스틱 입력의 경우, 복수의 사용자들로부터의 조이스틱 입력들의 평균을 결정하는 것이 유용하고 직접 적용 가능할 수 있다.
합의 입력을 결정하기 위한 상기에 설명된 방법들이 특정 입력 장치, 예를 들어 컨트롤러 장치를 참조하여 설명되었지만, 다른 구현예들에서, 사용자 그룹에 의해 협력적으로 제어되는 비디오 게임에서 단일 캐릭터 또는 엔티티에 적용할 입력들을 결정하는 데 유사한 개념이 적용될 수 있다. 즉, 복수의 사용자들에 의해 동시에 제어되는 주어진 캐릭터에 대해, 각각의 개별 사용자는 예를 들어, 각각의 컨트롤러 장치들 및 로컬 컴퓨팅 장치들을 통해 입력 명령들을 제공한다. 복수의 사용자들로부터의 이러한 입력 명령들은 집계되고 처리되어 주어진 캐릭터에 대한 단일 입력 스트림(단일 컨트롤러에서 온 것처럼)을 결정한다. 예를 들어, 각 사용자는 점프 명령을 트리거하는 각각의 컨트롤러의 버튼을 동작시킬 수 있다. 일부 구현예들에서, 특정 시간 기간 내에 점프 버튼을 누르는 사용자들의 수가 미리 정의된 임계값을 초과하는 경우(예를 들어, 총 사용자들 중 일부가 임계량을 초과하거나 다수가 버튼을 누르는 등), 점프 명령이 비디오 게임으로 포워드되고 캐릭터에 의해 실행된다. 다른 예로서, 각 사용자는 캐릭터의 움직임을 제어하는 조이스틱을 동작시킬 수 있으며, 총 조이스틱 입력은 모든 사용자들에 걸쳐 결정되고, 캐릭터의 움직임을 결정하는 데 활용된다. 일부 구현예들에서, 총 조이스틱 입력을 결정하는 것은 방향 및/또는 크기 값들과 같은 조이스틱 입력 값들의 평균 또는 중앙값을 결정하는 것을 포함한다.
다른 구현예에서, 사용자들은 (예를 들어, 각각의 계정들에서) 일정량의 가상 화폐를 각각 가질 수 있으며, 가상 화폐를 사용하여 게임에서 특정 시간에 제어를 넘겨받을 권리에 대한 지불할 수 있다. 일부 구현예들에서, 주어진 시간에 가장 많이 지불하는 사용자에게 캐릭터의 제어가 주어진다. 일부 구현예들에서, 현재 플레이 중인 사용자는 비디오 게임에서의 성능에 기초하여 추가 가상 화폐를 벌 수 있다. 가상 화폐는 다른 비디오 게임들의 게임플레이, 프로모션, 직접 구매 등을 포함하여 비디오 게임과는 별도로 다양한 메커니즘들을 통해 획득되거나 구입될 수 있음을 알 수 있을 것이다.
일부 구현예들에서, 사용자들은 주어진 입력 또는 캐릭터/엔티티를 제어할 수 있는 특정 사용자에 대해 투표할 수 있다. 일부 구현예들에서, 주어진 입력 또는 캐릭터/엔티티를 제어할 수 있는 특정 사용자에 대해 투표할 수 있는 관중들의 온라인 청중이 있을 수 있다.
도 3은 본 개시의 구현예들에 따라, 비디오 게임에서 다양한 가상 캐릭터들을 제어하는 사용자 팀들을 개념적으로 예시한다. 예시된 구현예에서, 멀티플레이어 비디오 게임(300)은 가상 캐릭터 팀들 또는 서로 경쟁하는 다른 가상 엔티티들을 갖도록 구성된다. 예를 들어, 제1 팀은 캐릭터들(302, 304, 306, 및 308)로 구성될 수 있다. 반면에 다른 팀은 캐릭터들(310, 312, 314, 및 316)로 구성될 수 있다. 캐릭터 팀들은 각각의 사용자 팀들에 의해 제어된다. 예시된 구현예에서, 제1 사용자 팀(320)은 제1 캐릭터 팀(캐릭터들(302, 304, 306 및 308))의 다양한 가상 캐릭터들을 제어한다. 그리고 제2 사용자 팀(350)은 제2 캐릭터 팀(캐릭터들(310, 312, 314, 및316))의 다양한 가상 캐릭터들을 제어한다.
본 개시의 구현예들에 따르면, 비디오 게임에서 각각의 가상 캐릭터 팀에서 제어하기 위해 이용 가능한 캐릭터들 존재하는 것보다 더 많은 사용자들이 사용자 팀에 있을 수 있다. 따라서 예를 들어, 예시된 구현예에서, 제1 사용자 팀(320)은 사용자들(322, 324, 326, 328, 330, 332, 334, 336, 338, 및 340)을 포함한다. 임의의 주어진 시간에, 제1 팀(320)의 사용자 서브셋은 제1 캐릭터 팀의 가상 캐릭터들을 제어하도록 할당될 수 있다. 예를 들어, 예시된 구현예를 참조하면, 사용자들(324, 326, 332, 및 340)은 현재 가상 캐릭터들(302, 304, 306, 및 308)을 각각 제어하는 것으로 도시되어 있다.
일부 구현예들에서, 사용자 팀의 사용자들 중 한 명은 특정 가상 캐릭터들을 제어하기 위해 할당되는 특정 사용자들을 선택하거나 결정할 수 있는 기능을 가진 팀장으로 지정될 수 있다. 예를 들어, 사용자(322)가 팀(320)의 팀장일 수 있으며, 따라서 그 또는 그녀의 팀의 사용자들 중에서 선택하여 임의의 주어진 시점에 제1 캐릭터 팀의 다양한 캐릭터들(302, 304, 306 및 308)를 제어할 팀원들을 결정할 수 있다. 이러한 방식으로, 팀장은 팀의 사용자들을 전략적으로 활용하여 비디오 게임에서 효과적으로 경쟁할 수 있다. 이는 비디오 게임의 게임 플레이에 추가적인 참여층을 추가할 수 있다.
일부 구현예들에서, 팀장은 자신의 팀에서 이용 가능한 사용자들에게 팀장의 활용을 알리는데 도움이 될 수 있는 플레이어 정보에 대한 액세스를 갖는다. 예를 들어, 정보는 플레이어 순위, 스킬 등급, 플레이어 게임플레이 통계, 플레이어 경험 등급 또는 비디오 게임에 대한 사용자의 게임플레이 능력에 대한 평가를 반영하는 기타 정보와 같은 정보가 팀장에게 디스플레이될 수 있다. 이러한 정보를 고려하여, 팀장은 그들 팀의 사용자들의 강점과 약점을 이해하고 이러한 이해에 근거하여 어떠한 사용자들을 어떠한 가상 캐릭터들에 배정할지 그리고 이들을 언제 배정할지를 선택할 수 있다. 더욱이, 활성 게임플레이 세션 동안 사용자들의 실시간 통계가 추적되고 팀장에게 디스플레이될 수 있다.
일부 구현예들에서, 소셜 네트워크는 이러한 팀 게임 시나리오에서 활용될 수 있다. 예를 들어, 시스템은 팀장이 예를 들어 특정 스킬이나 경험을 보유한 소셜 그래프의 구성원에게 초대를 보낼 수 있도록 할 수 있다. 예를 들어, 제한 없이, 이러한 초대는 소셜 네트워크를 통해 또는 이메일, 문자 메시지, 인스턴트 메시지, 알림 등과 같은 다른 통신 채널들을 통해 전송될 수 있다.
일구 구현예들에서, 플레이어 스킬 세트에 대한 데이터가 온라인 시스템에 의해 수집되고 분석될 수 있으며, 플레이어 프로파일들이 생성될 수 있다. 예를 들어, 시스템은 더 균일한 경쟁을 촉진하기 위해 팀들의 기술 세트들의 균형을 맞추기 위해 이러한 정보를 사용하여 플레이어들을 자동으로 배정하도록 구성될 수 있다.
마찬가지로 예시된 구현예를 참조하여, 제2 가상 캐릭터 팀의 가상 캐릭터들은 사용자들(352, 354, 356, 358, 360, 362, 364, 366, 368, 및 370)을 포함하는 사용자 팀(350)에 의해 제어된다. 도시된 바와 같이, 가상 캐릭터들(310, 312, 314 및 316)은 현재 사용자들(354, 356, 366 및 364)에 의해 각각 제어되고 있다. 상기에 설명된 개념과 유사하게, 가상 캐릭터들을 제어하기 위한 사용자들의 특정 배정은 팀장에 의해 결정될 수 있으며, 이는 예시된 구현예에서는 사용자(352)일 수 있다.
또한, 팀장들(322 및 352)이 그들 팀들(320 및 350)의 할당을 각각 제어할 수 있지만, 이는 본 개시에서 설명된 다른 개념들과 결합될 수 있다는 것을 알 수 있을 것이다. 예를 들어, 주어진 사용자가 주어진 가상 캐릭터를 제어할 수 있는 시간에 제한이 있을 수 있으며, 이에 따라 팀장은 제한 시간이 만료될 때 다음에 누가 주어진 캐릭터를 제어할 것인지를 계속 결정해야 한다. 일부 구현예들에서, 팀장이 주어진 잠시 동안의 시간 내에 그들 팀의 모든 플레이어들을 사용하거나, 유사한 시간량 동안 플레이어들을 사용하도록 요구하거나 인센티브를 부여하는 등과 같은, 사용 요건 또는 (예를 들어, 보너스 또는 페널티를 통해) 인센티브화가 있을 수 있다. 이러한 구현예는 주어진 팀의 모든 사용자들에게 게임 플레이 동안 가상 캐릭터를 제어하는 데 참여할 수 있는 기회가 주어지도록 하는 데 도움이 될 수 있다.
게다가, 일부 구현예들에서, 스킬 레벨에 기초하여 사용자들의 자동 재조정이 있을 수 있다. 예를 들어, 두 팀들이 플레이하고 있고 한 팀이 다른 팀보다 더 능숙하거나(예를 들어, 플레이어 게임플레이 메트릭로부터 결정됨), 또는 상당한 마진으로 이기는(예를 들어, 여러 라운드들에서 이기거나 및/또는 임계값을 초과하는 금액으로 이기는) 경우, 라운드의 끝에 더 능숙한 사용자들 중 일부는 다른 팀으로 이동/트레이드될 수 있다. 이를 통해 팀들 간에 스킬의 보다 고른 분배를 보장하고 보다 공정한 게임플레이를 제공하여 게임플레이에서 보다 매력적인 도전을 하는데 도움이 될 수 있다.
일부 구현예들에서, 플레이어들 또는 제어들 중 하나 이상은 시스템(예를 들어, 봇(bot))에 의해 컴퓨터-제어될 수 있다. 이는 팀들의 스킬 레벨들의 불균형을 해결하는 또 다른 방식일 수 있다. 예를 들어, 서로 경쟁하는 팀들의 스킬 레벨들에 큰 차이가 있는 경우, 더 낮은 스킬 레벨을 갖는 팀은 더 높은 스킬 레벨을 갖는 다른 팀과 마주할 때 (예를 들어, 가상 캐릭터 또는 명령 서브셋을 제어하기 위해) 컴퓨터 제어 봇을 사용하기 위한 옵션을 가질 수 있다. 또한, 팀들이 발전하고 더 능숙해짐에 따라, 이러한 봇들을 사용하는 능력이 비활성화되거나 턴 오프될 수 있다.
도 4a는 본 개시의 구현예들에 따라, 비디오 게임에 대한 협력적 입력을 관리하기 위한 시스템을 예시한다. 예시된 구현예에서, 클라우드 비디오 게임의 세션(402)은 클라우드 게임 기계(400)에 의해 실행된다. 본 개시의 설명의 편의를 위해, 비디오 게임의 실행중인 세션(402)은 또한 단순히 비디오 게임으로 지칭될 수 있으며, 이는 당업자에게 명백할 것이다. 일구 구현예들에서, 게임기(400)는 블레이드 서버의 유닛과 같은, 게임 콘솔 또는 게임 콘솔과 동등한 하드웨어이다. 게임 콘솔의 한 예로는 Sony PlayStation 4 게임 콘솔이 있다. 일부 구현예들에서, 게임기(400)는 비디오 게임 세션(402)을 위한 적절한 실행 환경을 제공하도록 구성되는 서버 컴퓨터이다. 예를 들어, 일부 구현예들에서, 이러한 서버 컴퓨터는 비디오 게임 세션(402)을 위한 실행 환경을 제공하는 가상 머신을 실행할 수 있다. 게임기(400)는 다른 게임기들과 함께 데이터 센터에 위치될 수 있다.
예시된 구현예에서, 비디오 게임 세션(402)은 1차 사용자(416)에 대해 정의된다. 즉, 비디오 게임 세션(402)은 1차 사용자(416)에 의한 비디오 게임의 게임플레이를 가능하게 하도록 생성된다. 일부 구현예들에서, 비디오 게임은 1차 사용자(416)가 소유하거나, 아니면 예를 들어 1차 사용자의 클라우드 게임 플랫폼 계정을 통해 액세스하는 게임일 수 있다. 광범위하게 말하자면, 비디오 게임 세션 (402)은 비디오 게임의 변수들의 상태를 정의하는 비디오 게임의 게임 상태를 생성, 유지 및 업데이트하도록 구성된다. 비디오 게임 세션(402)은 1차 클라이언트 장치(412)로부터 네트워크(410)를 통해 입력의 데이터 스트림을 수신하고, 입력 데이터를 처리하여 게임 상태를 업데이트한다. 비디오 게임 세션(402)은 네트워크(410)를 통해 1차 클라이언트 장치(412)로 다시 전달되는 이미지 데이터 및 오디오 데이터를 포함하는 비디오 게임의 비디오를 렌더링하기 위해 게임 상태를 이용한다. 일부 구현예들에서, 실행중인 비디오 게임 세션(402)에 의해 생성된 비디오는 압축 또는 다른 비디오 스트리밍 최적화 기술을 적용하는 것과 같이, 비디오 서버(404)에 의해 추가로 처리되며, 그런 다음 비디오 서버는 네트워크(410)를 통해 비디오 데이터를 1차 클라이언트 장치(412)로 전송한다. 1차 클라이언트 장치(412)는 비디오 데이터를 수신하고 이를 디스플레이 장치로 렌더링하며, 이 디스플레이 장치는 1차 클라이언트 장치(412)(예를 들어, 텔레비전, 모니터, 머리 장착 디스플레이 또는 가상 현실 헤드셋 등)로부터 분리되거나 1차 클라이언트 장치(412)(예를 들어, 랩톱, 태블릿, 스마트 폰 등)로 통합될 수 있다.
예시된 구현예에 도시된 바와 같이, 1차 사용자(416)는 비디오 게임에 대한 입력을 제공하기 위해, 1차 클라이언트 장치(412)에 동작 가능하게 연결되는 입력 장치(414)를 동작시킨다. 입력 장치(414)는 컨트롤러 장치, 모션 컨트롤러, 마우스, 키보드, 이미지 캡처 장치 또는 카메라, (2D, 3D, 스테레오, 적외선 등) 마이크 등과 같은, 비디오 게임에 대한 사용자 입력을 제공하기에 적합한 임의 종류의 장치일 수 있다. 1차 사용자(416)로부터의 활동에 응답하여 입력 장치(414)에 의해 생성된 데이터는 1차 클라이언트 장치(412)에 의해 처리되어 실행중인 비디오 게임 세션(402)에 의해 처리될 네트워크(410)를 통해 게임기(400)로 전송되는 입력 스트림을 정의한다.
본 개시의 구현예들에 따르면, 추가 2차 사용자들(422 및 428)로부터의 입력은 사용자들이 입력 스트림을 비디오 게임에 집합적으로 공급할 수 있도록 1차 사용자(416)로부터의 입력과 결합된다. 2차 사용자들(422 및 428)이 이러한 방식으로 1차 사용자(416)에 대해 정의된 세션에 참여할 수 있도록 하기 위해서는, 2차 사용자들이 비디오 게임 세션(402)에 의해 생성된 비디오를 볼 수 있어야 한다. 따라서, 일부 구현예들에서, 비디오 서버(404)에 의해 전송된 비디오 데이터는 또한 네트워크를 통해 2차 사용자들(422 및 428)에 의해 각각 동작되는 2차 클라이언트 장치들(418 및 424)로 전송된다. 2차 사용자들 및 대응되는 2차 클라이언트 장치들 및 입력 장치들이 도시되어 있지만, 임의 개수의 2차 사용자들 및 대응되는 클라이언트 장치들 및 입력 장치들이 있을 수 있음을 알 수 있을 것이다.
일부 구현예들에서, 비디오는 네트워크(410)를 통해 1차 클라이언트 장치(412)로부터 2차 클라이언트 장치들(418 및 424)로 공유된다. 다시 말해, 1차 클라이언트 장치(412)에 의해 수신된 비디오 스트림은 네트워크(410)를 통해 2차 클라이언트 장치들로 재전송될 수 있다. 예를 들어, 비디오는 WebRTC와 같은 실시간 통신 프로토콜을 사용하여 전송될 수 있다. 비디오의 수신 시, 2차 클라이언트 장치들은 2차 사용자들 구매를 보기 위해 각각의 디스클레이들에 비디오를 렌더링한다. 상기에 언급된 바와 같이, 이러한 디스플레이들은 2차 사용자 클라이언트 장치들로부터 분리되거나 이들에 통합될 수 있다.
도시된 바와 같이, 2차 사용자(422)는 2차 클라이언트 장치(418)에 연결되는 입력 장치(420)를 동작시킨다. 입력 장치(420)와의 상호작용 또는 입력 장치(420)에 의에 감지된 상호작용에 응답하여, 입력 장치(420)는 입력 데이터를 2차 클라이언트 장치(418)로 전송한다. 마찬가지로, 2차 사용자(428)는 2차 클라이언트 장치(424)에 연결되고, 입력 데이터를 2차 클라이언트 장치(424)로 전송하는 입력 장치(426)를 동작시킨다. 2차 클라이언트 장치들 각각은 각각의 입력 데이터를 처리하고 입력 스트림을 1차 클라이언트 장치(412)로 전송한다. 일부 구현예들에서, 2차 클라이언트 장치로부터의 입력 스트림은 1차 클라이언트 장치로 직접 전송된다. 즉, 2차 클라이언트 장치(418)는 네트워크(410)를 통해 1차 클라이언트 장치(412)로 입력 스트림을 전송하고; 2차 클라이언트 장치(424)는 네트워크(410)를 통해 다른 입력 스트림을 1차 클라이언트 장치(412)로 전송한다. 2차 클라이언트 장치로부터 1차 클라이언트 장치로 전송되는 각 입력 스트림은 특정 입력 장치 활성화 상태들(예를 들어, 특정 버튼 누름, 조이스틱 움직임 등)을 식별하는 데이터와 같이 2차 사용자들로부터의 특정 대화형 입력을 식별하는 데이터, 또는 비디오 게임에 대해 정의된 이러한 대화형 입력에서 발생되는 명령들(예를 들어, 점프, 발사, 이동, 턴 등의 명령들)로 구성될 수 있음을 알 수 있을 것이다.
1차 클라이언트 장치(412)는 2차 클라이언트 장치들(418 및 424)로부터 입력 스트림들을 수신하고, 이들을 1차 사용자(416)로부터의 대화형 입력과 결합하여, 실행중인 비디오 게임 세션(402)에 의해 처리될, 네트워크(410)를 통해 게임기(400)로 전송되는 단일 입력 스트림을 생성하도록 구성된다. 이러한 방식으로, 비디오 게임 세션(402)은 단일 입력 스트림을 보며, 다수의 사용자들이 이러한 방식으로 협력적으로 입력을 제공하는 것을 용이하게 하기 위한 입력 처리 측면에서 비디오 게임에 대한 변경들이 거의 또는 전혀 필요하지 않다. 비디오 게임 세션(402)의 관점에서, 이들이 수신하는 단일 입력 스트림은 1차 사용자(416)만이 비디오 게임을 하고 있는 것과 같다.
상기 설명된 아키텍처에 따르면, 본원에 설명된 바와 같이 다수의 사용자들이 게임플레이에 참여하는 임의의 방법들이 구현될 수 있다. 예를 들어, 분기된 제어 시나리오에서, 1차 사용자(416), 2차 사용자(422) 및 2차 사용자(428)는 비디오 게임에서 캐릭터의 상이한 측면들을 제어하도록 각각 할당될 수 있다. 예시의 목적으로만, 제어 가능하고 다른 사용자들 간에 분할된 다른 측면들이 무기를 실행, 점프 및 발사하는 시나리오를 고려하기로 한다. 이에 따른 이러한 시나리오에서, 입력 장치(414)로부터의 입력 데이터는 캐릭터의 달리기를 제어하는 반면, 2차 클라이언트 장치들(418 및 424)로부터의 입력 스트림들은 각각 무기의 점프 및 발사를 제어할 것이다. 우리와 함께 1차 클라이언트 장치는 2차 클라이언트 장치로부터의 입력 스트림과 함께 입력 장치(414)로부터의 입력 데이터를 처리하여 비디오 게임에서 캐릭터의 이러한 모든 측면들을 제어하기 위해 비디오 게임(402)에 명령들을 제공하는 단일 입력 스트림을 생성한다.
전술한 시나리오가 분기된 제어 시나리오를 참조하여 설명되었지만, 입력 스트림 및 입력 데이터는 본 개시에 설명된 구현예들에 따라 다양한 방식들로 1차 클라이언트 장치(412)에 의해 결합될 수 있다는 것을 알 수 있을 것이다.
게다가, 비디오 게임이 멀티플레이어 비디오 게임인 경우, 비디오 게임에서 다른 캐릭터들을 집합적으로 제어할 수 있는 추가적인 1차 클라이언트 장치 및 2차 클라이언트 장치들이 있을 수 있음을 알 수 있을 것이다.
상기에 설명된 구현예에서, 2차 클라이언트 장치들로부터의 입력 스트림들은 1차 클라이언트 장치(412)로 직접 전송된다. 그러나, 1차 클라이언트 장치에 연결되는 2차 클라이언트 장치들이 너무 많을 경우, 인터넷 서비스 공급자는 이를 의심스러운 것으로 볼 수 있으며, 연결 수를 제한하거나 트래픽이 1차 클라이언트 장치(412)에 도달하는 것을 차단하는 것과 같은 액션들을 취할 수 있다. 예를 들어, 1차 클라이언트 장치에 연결되는 많은 수의 2차 클라이언트 장치들이 분산 서비스 거부 공격을 구성하는 것으로 의심될 수 있다. 이러한 문제들을 피하기 위해, 일부 구현예들에서, 입력 서버(406)는 2차 클라이언트 장치들로부터의 연결들을 처리하도록 제공된다. 입력 서버(406)는 2차 클라이언트 장치들로부터의 입력 스트림들을 각각 처리하기 위해 다수의 소켓들을 제공할 수 있는 소켓 서버일 수 있다. 서버(406)는 2차 클라이언트 장치의 입력 스트림들을 네트워크(410)를 통해 1차 클라이언트 장치(412)로 전송되는 단일 입력 스트림으로 결합하는 입력 어그리게이터 로직(408)을 포함할 수 있다. 이러한 방식으로, 1차 클라이언트 장치(412)는 다양한 2차 클라이언트 장치들로부터의 다수의 입력 스트림들을 처리하기 위해 요구되는 것이 아니라, 2차 클라이언트 장치로부터의 입력 스트림?堧? 조합 또는 집합인 단일 입력 스트림을 수신한다.
다른 구현예에서, 다양한 1차 및 2차 클라이언트 장치들 각각은 입력 스트림들을 집계하고 비디오 게임에 대한 단일 입력 스트림을 생성하도록 구성되는, 원격 서버(406)에 그 각각의 입력 스트림을 전송하도록 구성된다. 그런 다음, 원격 서버(406)는 실행중인 비디오 게임 세션(402)에 의한 처리를 위해 단일 입력 스트림을 네트워크(410)를 통해 게임기(400)로 전송한다. 이러한 방식으로, 원격 서버(406)는 예를 들어 입력 어그리게이터 로직(408)을 사용하여 모든 클라이언트 장치들에 대한 입력들의 집계를 처리하며, 입력 스트림들은 게임기(400)로 전송되기 전에 1차 클라이언트 장치로 다시 전달될 필요가 없기 때문에 레이턴시가 감소될 수 있다. 이러한 구현예에서, 게임기(400)는 앞서 설명된 바와 같이 비디오를 출력하도록 구성되지만, 1차 클라이언트 장치(412) 대신에 원격 서버(406)로부터 입력 스트림을 수신하도록 구성된다.
또 다른 구현예에서, 1 차 및 2 차 클라이언트 장치들로부터의 입력 스트림 각각은 비디오 게임 세션(402)에 의한 처리를 위해 네트워크(410)를 통해 게임기(400)로 전송된다. 이러한 구현예에서, 비디오 게임 세션(400)은 본원에 설명된 방법들에 따라 다양한 입력 스트림들을 집계하고 이들을 처리하여 협력적 게임플레이를 용이하게 하도록 구성된다.
도 4b는 본 개시의 구현예들에 따라, 비디오 게임에 대한 협력적 입력을 관리하기 위한 시스템을 예시한다. 예시된 구현예에서, 비디오 게임 세션은 1차 클라이언트 장치(412)에 의해 로컬로 실행된다. 일부 구현예들에서, 2차 클라이언트 장치들로부터의 입력 스트림들은 네트워크(410)를 통해 1차 클라이언트 장치(412)로 전송된다. 다른 구현예들에서, 1차 클라이언트 장치들로부터의 입력 스트림들은 네트워크(410)를 통해 입력 서버(406)로 전송되는 반면, 입력 서버(406)는 입력 스트림들을 1차 클라이언트 장치(412)로 전송되는 단일 입력 스트림으로 집계하도록 구성된다.
어느 경우든, 비디오 게임 세션(402)은 입력 장치(414)로부터의 입력 데이터와 조합하여 2차 클라이언트 장치로부터의 입력 스트림들을 처리하여 본 개시에 설명된 구현예들에 따라 다양한 모드의 협력적 게임플레이를 가능하게 하도록 구성된다.
앞서 언급된 바와 같이, 2차 클라이언트 장치들은 2차 사용자들이 1차 사용자(416)와 실질적으로 동일한 비디오 게임의 실시간 뷰를 볼 수 있도록 비디오 게임의 비디오가 제공된다. 일부 구현예들에서, 비디오 게임 세션에 의해 생성된 비디오는 1차 클라이언트 장치(412)에 의해 네트워크(410)를 통해 2차 클라이언트 장치들로 전송/스트리밍된다. 일부 구현예들에서, 비디오는 네트워크를 통해 별도의 비디오 서버(430)로 전송되고, 이는 차례로 다양한 2차 클라이언트 장치들로의 비디오 스트리밍을 처리한다.
도 4a 및 4b의 구현예들을 계속 참조하면, 일부 구현예들에서, 처리의 다양한 부분들의 실행 및 처리는 로컬 리소스들과 클라우드/원격 서버 리소스들 간에 동적으로 할당될 수 있다. 예를 들어, 일부 구현예들에서, 다양한 요인들/조건들에 따라, 실행중인 비디오 게임 세션의 비디오를 2차 클라이언트 장치들로 스트리밍하는 것은 1차 클라이언트 장치에 의해 처리될 수 있거나 원격 비디오 서버로 오프로드될 수 있다. 예를 들어, 이러한 조건들은 비디오가 스트리밍될 2차 클라이언트 장치의 수, 1차 클라이언트 장치의 네트워크 연결의 품질, 1차 클라이언트 장치의 로컬 리소스들(예를 들어, 프로세서 및 메모리 리소스들), 1차 클라이언트 장치의 로드 등을 포함할 수 있다. 예를 들어, 2차 클라이언트 장치 수가 너무 많아지거나(예를 들어, 임계값을 초과), 비디오 스트리밍의 품질이 임계값 레벨 이하로 떨어지거나, 레이턴시가 임계량을 초과하거나, 그렇지 않으면 스트리밍 성능이 허용 레벨 미만으로 떨어지면, 비디오 스트리밍 처리는 1차 클라이언트 장치에서 원격 비디오 스트리밍 서버로 시프트될 수 있다.
또한, 일부 구현예들에서, 입력 집계는 1차 클라이언트 장치에 의해 또는 원격 서버에 의해 처리되고, 기존 조건들에 기초하여 동적으로 전환될 수있다. 이러한 조건들은 비디오 스트리밍 처리와 관련하여 상기에 설명된 위에서 설명된 조건들 중 어느 하나를 포함할 수 있지만, 클라이언트 장치와 원격 서버 간의 입력 집계의 처리를 시프트할지와 시기를 결정하기 위해 적용될 수 있음을 알 수 있을 것이다. 따라서, 비디오 스트리밍의 처리 및 입력 집계의 처리는 로컬 및 클라우드 리소스들 간에 독립적으로 할당될 수 있으며, 이들 중 하나는 호스트 클라이언트와 구별되는 별도의 서버들로 오프로드될 수 있다.
추가로, 시청 또는 관전에만 관심이 있는 사용자들과 참여 및 제어에 관심이 있는 사용자들 사이를 구별하는 것이 유용할 수 있다. 예를 들어, 비디오 스트리밍을 처리할 때, 러한 방식으로 능동적으로 참여하지 않는 관중보다 비디오 게임의 일부 측면을 제어하는 데 능동적으로 참여하는 플레이어들의 우선 순위가 있을 수 있다. 이러한 우선 순위는 본원의 특정 구현예들에서 논의된 바와 같이 주어진 그룹 또는 대기열 또는 플레이어 팀 내에서 적용될 수 있는데, 여기서 게임플레이 제어에 능동적으로 참여하는 사람들은 게임플레이 제어에 능동적으로 참여하지 않는 사람들보다 우선된다는 것을 알 수 있을 것이다.
일부 구현예들에서, 사용자들은 1차 사용자에 대한 소셜 네트워크의 근접성을 기반으로 우선 순위가 지정될 수 있다.
본 개시의 구현예들은 상이한 사용자들이 비디오 게임에서 가상 캐릭터들/엔티티들 및/또는 명령 서브셋들을 제어할 수 있게 한다. 따라서, 주어진 가상 캐릭터/엔티티 및/또는 주어진 명령을 현재 제어하고 있는 사용자를 식별하는 문제가 있다. 따라서, 일부 구현예들에서, 시스템은 어떤 사용자들이 비디오 게임에서 어떤 가상 캐릭터들이나 명령들을 제어하고 있는지를 나타내는 게임플레이 비디오 스트림에 그래픽을 오버레이하도록 구성된다. 일부 구현예들에서, 개별 사용자들은 화면 이름, 사용자 ID, 아바타 등으로 오버레이된 그래픽들에서 식별될 수 있다. 더욱이, 일부 구현예들에서, 애니메이션들(예를 들어, 불꽃에 휩싸이거나 떠다니는 하트들로 둘러싸인 사용자 이름 등), 글꼴, 색상 등과 같은, 이러한 오버레이들에 대해 커스텀화 및 개인화가 가능하다.
다른 구현예에서, 비디오 게임은 어떤 사용자들이 게임플레이 비디오 스트림에서 어떤 캐릭터들 또는 명령들을 제어하고 있는지를 식별하는 정보의 디스플레이를 가능하게 하는 API를 제공할 수 있다. 예를 들어, 시스템은 API에 액세스하여 관련 정보를 제공하여 게임플레이 비디오 스트림에서 렌더링될 수 있도록 한다. 이러한 설명을 사용하여, 비디오 게임은 게임플레이의 맥락에서 식별 정보를 통합하고 렌더링할 수 있다. 예를 들어, 식별 정보는 비디오 게임의 가상 공간에서 3차원 방식으로 가상 캐릭터/엔티티를 따르는 방식으로 렌더링될 수 있다.
다른 구현예에서, 오버레이 또는 그래픽 통합은 특정 사용자들에 의해 공급되는 입력들을 디스플레이하도록 구성될 수 있다. 예를 들어, 본원에 설명된 분기된 제어 시나리오에서, 컨트롤러 장치의 그래픽이 디스플레이될 수 있으며, 또한 사용자들이 컨트롤러 장치의 입력 장치들에 대응하는 다양한 제어 입력들을 개시할 때 그래픽으로 예시하도록 구성될 수 있다.
도 5는 본 개시의 구현예들에 따라, 비디오 게임의 분할 컨트롤러 게임플레이를 수행하기 위한 방법을 예시한다. 방법 동작(500)에서, 1차 사용자(호스트 사용자)와 한 명 이상의 원격 2차 사용자들이 사용자들 간 통신을 가능하게 하는 게임 플랫폼에 로그인한다. 설명의 편의를 위해, 본 방법은 단일 2차 사용자를 참조하여 설명될 것이다; 그러나, 본 방법은 또한 다수의 2차 사용자들에게 적용될 수 있음이 이해될 것이다. 방법 동작(502)에서, 1차 사용자는 공유 게임플레이 세션에 조인하도록 2차 사용자에게 초대를 전송한다. 초대는 2차 사용자에게 알림, 비공개 메시지 등으로 나타날 수 있다. 일부 구현예들에서, 게임 플랫폼은 다른 통신 채널들, 예를 들어, 별도의 소셜 네트워크, 이메일, 문자 메시지 서비스 등에 접속하고 이러한 채널들을 통해 초대를 전송하도록 구성될 수 있다. 이러한 구현예들에서, 2차 사용자는 초대를 수신하기 전에 게임 플랫폼에 로그인하지 않았을 수 있지만, 대신에 초대를 수신한 우에 로그인할 것이라는 것이 이해될 것이다.
방법 동작(504)에서, 2차 사용자가 초래를 수락하는 것에 응답하여, 1차 사용자의 비디오 스트림이 2차 사용자와 공유된다. 1차 사용자의 비디오 스트림이 시스템 설정에 따라 각기 다른 방식들로 공유될 수 있음이 이해될 것이다. 예를 들어, 클라우드 게임 구현예에서 클라우드 게임 시스템은 1차 사용자의 비디오 스트림의 클론을 2차 사용자의 시스템(예를 들어, 게임 콘솔, 컴퓨터 등)에 제공할 수 있다. 로컬 게임 구현예에서, 1차 사용자의 비디오 스트림은, 선택적으로 원격 비디오 서버를 통해, 1차 사용자의 시스템(예를 들어, 게임 콘솔, 컴퓨터 등)에서 네트워크를 통해 2차 사용자의 시스템으로 공유될 수 있다. 1차 사용자의 비디오 스트림을 수신함으로써, 2차 사용자는 1차 사용자가 보고 있는 것과 동일한 콘텐트를 볼 수 있게 될 것이다.
방법 동작(506)에서, 1차 사용자는 비디오 게임의 실행을 개시한다. 다시, 일부 구현예들에서, 비디오 게임은 클라우드 게임 시스템에 의해 실행되거나, 또는 일부 구현예들에서는, 1차 사용자의 시스템에 의해 로컬로 실행되는 클라우드일 수 있다. 1차 사용자 비디오 스트림이 2차 사용자와 공유되면 2차 사용자도 비디오 게임의 실행을 볼 수 있을 것이다.
방법 동작(508)에서, 1차 사용자는 예를 들어, 컨트롤러 공유 인터페이스를 활성화하여 2 차 사용자와 자신의 컨트롤러를 공유하기 위한 요청을 개시한다. 일부 구현예들에서, 컨트롤러 공유 인터페이스는 전체 컨트롤러를 공유(2차 사용자에게 제어를 핸드 오버함)하거나 또는 컨트롤러 일부를 공유하는 것과 같은 컨트롤러를 공유하기 위한 옵션들을 제공한다. 본 예에서, 1차 사용자는 2차 사용자가 1차 사용자의 컨트롤러 장치의 입력 장치들의 일부에 매핑되는 명령들을 제어하도록 컨트롤러의 일부를 2차 사용자와 공유하도록 선택한다. 프로세스의 일부로서, 컨트롤러를 공유하기 위한 요청은 1차 사용자가 자신의 컨트롤러를 공유하기를 원한다는 것을 2차 사용자에게 알리고 2차 사용자가 이를 수락/동의하도록 요청하는 2차 사용자에 대한 알림을 발생시킬 수 있다.
방법 동작(512)에서, 선택적으로 2차 사용자에 의한 이러한 수락 시, 분할 컨트롤러 게임플레이가 시작된다. 즉, 1차 사용자 컨트롤러 장치의 일부는 2차 사용자에 의해 가상으로 제어된다. 일부 구현예들에서, 이러한 분할 컨트롤러 게임플레이 동안, 1차 사용자 컨트롤러 장치의 공유 부분은 2차 사용자에 의해 제어되는 동안 비활성화된다.
방법 동작(514)에서, 선택적으로 분할/분기된 컨트롤러 게임플레이를 용이하게 하는 일환으로, 1차 사용자와 2차 사용자로부터의 입력들은 실행중인 비디오 게임으로 전송되기 전에 집계된다. 즉, 2차 사용자에 의해 제어되는 1차 사용자 컨트롤러 장치의 일부에 해당하는 입력들 중 일부가 1차 사용자로부터의 입력들과 병합되어 실행중인 비디오 게임으로 전송되는 단일 입력 스트림을 형성한다. 이러한 방식으로, 비디오 게임은 마치 단일 컨트롤러 장치로부터 온 것처럼 입력들을 수신한다.
방법 동작(516)에서, 집계된 입력들은 실행중인 비디오 게임에 의해 적용되어 비디오 게임의 게임 상태를 업데이트하고 게임플레이 비디오를 렌더링한다. 렌더링된 게임플레이 비디오는 앞서 설명된 바와 같이 1차 사용자와 2차 사용자에게 계속 스트리밍된다.
도 6은 본 개시의 구현예들에 따라, 팀원들이 비디오 게임에서 주어진 가상 캐릭터/엔티티를 제어하기 위해 서로 대체될 수 있는, 팀 비디오 게임을 위한 방법을 예시한다. 방법 동작(600)에서, 사용자들이 팀 비디오 게임을 지원하는 게임 플랫폼에 로그인한다. 예를 들어, 일부 구현예들에서, 게임 플랫폼은 클라우드 게임 플랫폼으로부터 그리고 서로로부터 둘 다 원격으로 떨어져 위치되는 사용자들이 인터넷과 같은 및/또는 인터넷을 포함하는 네트워크를 통해 클라우드 게임 플랫폼에 액세스할 수 있도록 하는 클라우드 게임 플랫폼이다. 클라우드 게임 플랫폼은 비디오 게임의 실행과 사용자의 클라이언트 장치들에 비디오 스트리밍을 제공할 수 있다. 방법 동작(602)에서, 팀 게임 세션이 제공된다. 일부 구현예들에서, 팀 게임 세션의 가용성은 게임 플랫폼, 예를 들어, "로비" 영역 또는 클라우드 게임 플랫폼의 비디오 게임 옵션들에 대한 액세스를 제공하는 기타 인터페이스를 통해 디스플레이된다.
방법 동작(604)에서, 사용자들은 팀 게임 세션에 조인하도록 요청하고, 팀 게임 세션에 추가된다. 일부 구현예들에서, 사용자들은 팀 게임 세션에 조인하라는 초대들에 응답한다. 방법 동작(606)에서, 사용자들이 팀들에 할당된다. 일부 구현예들에서, 사용자들은 특정 팀을 선택하거나 특정 팀에 대한 선호도를 표시할 수 있다. 일부 구현예들에서, 사용자들은 예를 들어, 균형 잡힌 팀들을 제공하기 위해 스킬 레벨 또는 능력에 기초하여 시스템에 의해 특정 팀들에 할당된다. 방법 동작(608)에서, 팀장들이 각 팀별로 지정된다. 일부 구현예들에서, 주어진 팀의 구성원들은 그들의 팀장을 결정하기 위해 투표한다. 일부 구현예들에서, 시스템은 한 명의 구성원을 팀장으로 배정한다. 일부 구현예들에서, 팀장 배정은 사용자 요청에 따라 또는 자동으로 (예를 들어, 게임 플레이의 라운드 간에) 로테이션될 수 있다.
방법 동작(610)에서, 팀장들은 비디오 게임에서 개별 가상 캐릭터들 또는 인티티들을 제어하기 위해 이용 가능한 제어 슬롯들에 자신의 팀원들의 배정을 제어한다. 즉, 각 팀의 플레이어들에 대해, 제어하기 위해 이용 가능한 가상 캐릭터들의 수가 제한되어 있다. 다시 말해, 각 팀의 사용자들에 대해, 비디오 게임에는 그들이 제어할 수 있는 가상 캐릭터들의 "팀"이 있다. 주어진 팀의 팀장은 자신의 팀에서 어느 특정 사용자가 주어진 가상 캐릭터를 제어할 지를 결정할 수 있다.
가상 캐릭터들에 대한 사용자들의 초기 배정 후에, 방법 동작(612)에서 팀 게임플레이가 시작된다. 방법 동작(614)에서, 주어진 사용자 팀의 팀장은 가상 캐릭터의 제어를 제1 팀원에서 제2 팀원으로 전환하기 위한 요청을 개시할 수 있다. 방법 동작(616)에서, 따라서, 가상 캐릭터의 제어는 제1 팀원에서 제2 팀원으로 전달된다. 이렇게 하면, 제1 팀원으로부터의 입력들은 더 이상 가상 캐릭터를 제어하지 않는 반면, 제2 팀원으로부터의 입력들이 이제 가상 캐릭터를 제어한다.
전술한 구현예는 일반적으로 클라우드 게임을 참조하여 설명되었지만, 다른 구현예들에서, 팀 비디오 게임은 사용자의 로컬 클라이언트 장치 중 적어도 하나에 의해 로컬로 실행될 수 있다.
도 7은 클라이언트 시스템(1306)과 인터페이싱하는 HMD(1302) 사용자(1300) 및 제2 스크린(1307)이라고 하는 제2 스크린 디스플레이에 콘텐트를 제공하는 클라이언트 시스템(1306)의 일례를 예시한다. HMD(1302) 대신, 대화형 콘텐트가 사용자(1300)에게 렌더링될 수 있는 임의의 다른 유형의 디스플레이 장치(예를 들어, 텔레비전, 모니터, 랩톱 디스플레이, 모바일 장치 디스플레이 등)이 대체될 수 있음을 알 수 있을 것이다. 클라이언트 시스템(1306)은 HMD(1302)로부터 제2 스크린(1307)으로의 콘텐트 공유를 처리하기 위한 통합 전자 장치들을 포함할 수 있다. 다른 구현예들은 클라이언트 시스템과 각각의 HMD(1302) 및 제2 스크린(1307) 사이에 인터페이스할 별도의 장치, 모듈, 커넥터를 포함할 수 있다. 이 일반적인 예에서, 사용자(1300)는 HMD(1302)를 착용하고 있으며, 인터페이스 객체(1304)일 수도 있는 컨트롤러를 사용하여 비디오 게임을 플레이하고 있다. 사용자(1300)에 의한 대화형 플레이는 HMD(1302)에 대화식으로 디스플레이되는 비디오 게임 콘텐트(VGC)를 생성할 것이다.
한 구현예에서, HMD(1302)에 디스플레이되고 있는 콘텐트는 제2 스크린(1307)에 공유된다. 일 예에서, 제2 스크린(1307)을 보고 있는 사람은 사용자(1300)에 의해 HMD(1302)에서 대화식으로 플레이되는 콘텐트를 볼 수 있다. 다른 구현예에서, 다른 사용자(예를 들어, 플레이어 2)는 클라이언트 시스템(1306)과 상호 작용하여 제2 스크린 콘텐트(SSC)를 생성할 수 있다. 컨트롤러(1304)(또는 임의의 유형의 사용자 인터페이스, 제스처, 음성 또는 입력)와 상호작용하는 플레이어에 의해 생성된 제2 스크린 콘텐트는 클라이언트 시스템(1306)에 SSC로 생성될 수 있으며, 이는 HMD(1302)로부터 수신된 VGC와 함께 제2 스크린(1307)에 디스플레이될 수 있다.
따라서, HMD 사용자와 같은 장소에 배치되거나 이로부터 멀리 떨어져 있을 수 있는 다른 사용자들에 의한 상호작용은 사용자(1300)와 제2 스크린(1307)에서 사용자(1300)에 의해 재싱된 콘텐트를 볼 수 있는 사용자들 둘 다에게 소셜적이고, 상호작용적이며 보다 몰입적일 수 있다. 예시된 바와 같이, 클라이언트 시스템(1306)은 인터넷(1310)에 연결될 수 있다. 인터넷은 또한 다양한 콘텐튼 소스들(1320)로부터의 콘텐트에 대한 클라이언트 시스템(1306)에 대한 액세스를 제공할 수 있다. 콘텐트 리소스들(1320)은 인터넷을 통해 액세스할 수 있는 임의 유형의 콘텐트를 포함할 수 있다.
이러한 콘텐트는, 제한없이, 비디오 콘텐트, 영화 콘텐트, 스트리밍 콘텐트, 소셜 미디어 콘텐트, 뉴스 콘텐트, 친구 콘텐트, 광고 콘텐트 등을 포함할 수 있다. 한 구현예에서, 클라이언트 시스템(1306)은 HMD 사용자를 위한 콘텐트를 동시에 처리하는 데 사용되어, HMD가 게임플레이 동안 상호작용과 연련된 멀티미디어 콘텐츠를 제공받도록 할 수 있다. 그런 다음, 클라이언트 시스템(1306)은 또한 비디오 게임 콘텐트와 관련이 없을 수 있는 다른 콘텐트를 제2 스크린에 제공할 수 있다. 클라이언트 시스템(1306)은 한 구현예에서 콘텐트 소스들(1320) 중 하나로부터, 또는 로컬 사용자 또는 원격 사용자로부터 제2 스크린 콘텐트를 수신할 수 있다.
도 8은 본 개시의 다양한 구현들에 따른 게임 시스템(1600)의 블록도이다. 게임 시스템(1600)은 네트워크(1615)를 통해 하나 이상의 클라이언트들(1610)에 비디오 스트림을 제공하도록 구성된다. 게임 시스템(1600)은 일반적으로 비디오 서버 시스템(1620) 및 선택적인 게임 서버(1625)를 포함한다. 비디오 서버 시스템(1620)은 최소한의 서비스 품질로 비디오 스트림을 하나 이상의 클라이언트들(1610)에 제공하도록 구성된다. 예를 들어, 비디오 서버 시스템(1620)은 비디오 게임의 상태 또는 비디오 게인 내 관점을 변경하는 게임 명령을 수신할 수 있으며, 최소한의 지연 시간으로 이러한 상태 변화를 반영하는 업데이트된 비디오 스트림을 클라이언트(1610)에게 제공할 수 있다. 비디오 서버 시스템(1620)은 아직 정의되지 않은 포맷들을 포함하는 매우 다양한 대체 비디오 포맷들로 비디오 스트림을 제공하도록 구성될 수 있다. 또한, 비디오 스트림은 매우 다양한 프레임 속도들로 사용자에게 표시하도록 구성된 비디오 프레임들을 포함할 수 있다. 일반적인 프레임 속도들은 초당 30 프레임, 초당 60 프레임 및 초당 120 프레임이다. 더 높거나 낮은 프레임 속도들이 본 개시의 대안 실시예들에 포함된다.
본원에 개별적으로 1610A, 1610B 등으로 지칭된 클라이언트들(1610)은 헤드 장착 디스플레이, 단말, 개인용 컴퓨터, 게임 콘솔, 태블릿 컴퓨터, 전화기, 셋톱박스, 키오스크, 무선 기기, 디지털 패드, 독립형 장치, 핸드헬드 게임 플레잉 장치 등을 포함할 수 있다. 일반적으로, 클라이언트들(1610)은 인코딩된 비디오 스트림들을 수신하고, 비디오 스림들을 디코딩하고, 사용자, 예를 들어, 게임 플레이어에게 결과 비디오를 표시하도록 구성된다. 인코딩된 비디오 스트림들을 수신하고/하거나 비디오 스트림들을 디코딩하는 프로세스들은 일반적으로 클라이언트의 수신 버퍼에 개별 비디오 프레임들을 저장하는 것을 포함한다. 비디오 스트림들은 클라이언트(1610)에 통합된 디스플레이 또는 모니터나 텔레비전과 같은 별도의 장치에서 사용자에게 표시될 수 있다. 클라이언트들(1610)은 선택적으로 하나 이상의 게임 플레이어를 지원하도록 구성된다. 예를 들어, 게임 콘솔은 두 명, 세 명 네 명 또는 그 이상의 플레이어들을 동시에 지원하도록 구성될 수 있다. 이들 플레이어들 각각은 별도의 비디오 스트림을 수신할 수 있거나, 단일 비디오 스트림은 각 플레이어에 대해 특별히 생성된, 예를 들어 각 플레이어의 관점에 기반하여 생성된 프레임의 영역들을 포함할 수 있다. 클라이언트들(1610)은 선택적으로 지리적으로 분산되어 있다. 게임 시스템(1600)에 포함된 클라이언트들의 수는 한 명 또는 두 명에서 수천 명, 수만 명 또는 그 이상으로 매우 다양할 수 있다. 본원에 사용된 "게임 플레이어"라는 용어는 게임을 플레이하는 사람을 지칭하는 데 사용되며,"게임 플레이 장치"라는 용어는 게임을 플레이하는 데 사용되는 장치를 지칭하는 데 사용된다. 일부 구현예들에서, 게임 플레이 장치는 사용자에게 게임 경험을 전달하기 위해 협력하는 복수의 컴퓨팅 장치들을 지칭할 수 있다. 예를 들어, 게임 콘솔 및 HMD는 비디오 서버 시스템(1620)과 협력하여 HMD를 통해 시청한 게임을 전달할 수 있다. 한 구현예에서, 게임 콘솔은 비디오 서버 시스템(1620)으로부터 비디오 스트림을 수신하고, 게임 콘솔은 렌더링을 위해 비디오 스트림 또는 비디오 스트림에 대한 업데이트들을 HMD로 포워딩한다.
클라이언트들(1610)은 네트워크(1615)를 통해 비디오 스트림들을 수신하도록 구성된다. 네트워크(1615)는 전화 네트워크, 인터넷, 무선 네트워크, 전력선 네트워크, 근거리 네트워크, 광역 네트워크, 사설 네트워크 등을 포함하는 임의의 유형의 통신 네트워크일 수 있다. 일반적인 구현들에서, 비디오 스트림들은 TCP/IP 또는 UDP/IP와 같은 표준 프로토콜들을 통해 전달된다. 대안으로, 비디오 스트림들은 특허 표준을 통해 통신된다.
클라이언트들(1610)의 전형적인 예는 프로세서, 비휘발성 메모리, 디스플레이, 디코딩 로직, 네트워크 통신 기능들 및 입력 장치들을 포함하는 개인용 컴퓨터이다. 디코딩 로직은 컴퓨터 판독 가능 매체에 저장된 하드웨어, 펌웨어 및/또는 소프트웨어를 포함할 수 있다. 비디오 스트림들을 디코딩(및 인코딩)하기 위한 시스템들은 당업계에 잘 알려져 있으며 사용되는 특정 인코딩 방식에 따라 달라진다.
클라이언트들(1610)는 필수적인 것은 아니나, 수신된 비디오를 수정하도록 구성된 시스템들을 더 포함할 수 있다. 예를 들어, 클라이언트는 추가 렌더링을 수행하고, 하나의 비디오 이미지를 다른 비디오 이미지에 오버레이하고, 비디오 이미지를 자르는 등을 수행하도록 구성될 수 있다. 예를 들어, 클라이언트들(1610)은 I-프레임, P-프레임 및 B-프레임과 같은 다양한 유형의 비디오 프레임들을 수신하고, 이러한 프레임들을 사용자에게 디스플레이하기 위한 이미지들로 처리하도록 구성될 수 있다. 일부 구현예들에서, 클라이언트들(1610)의 구성원은 비디오 스트림에 대해 추가 렌더링, 쉐이딩, 3-D로의 변환 또는 유사한 동작들 수행하도록 구성된다. 클라이언트(1610)의 구성원은 선택적으로 하나 이상의 오디오 또는 비디오 스트림을 수신하도록 구성된다. 클라이언트들(1610)의 입력 장치들은 예를 들어, 한손 게임 컨트롤러, 양손 게임 컨트롤러, 제스처 인식 시스템, 시선 인식 시스템, 음성 인식 시스템, 키보드, 조이스틱, 포인팅 장치, 힘 피드백 장치, 모션 및/또는 위치 감지 장치, 마우스, 터치 스크린, 신경 인터페이스, 카메라, 아직 개발되지 않은 입력 장치들 등을 포함할 수 있다.
클라이언트들(1610)에 의해 수신된 비디오 스트림(및 선택적으로 오디오 스트림)은 비디오 서버 시스템(1620)에 의해 생성되고 제공된다. 본원의 또 다른 곳에서 더 설명된 바와 같이, 이 비디오 스트림은 비디오 프레임들을 포함한다(그리고 오디오 스트림은 오디오 프레임들을 포함한다). 비디오 프레임들은 사용자에게 디스플레이되는 이미지들에 의미있게 기여하도록 구성(예를 들어, 적절한 데이터 구조의 픽셀 정보를 포함)된다. 본원에 사용된 바와 같이, "비디오 프레임" 이라는 용어는 주로 사용자에게 표시되는 이미지들에 기여하도록, 예를 들어 영향을 미치도록 구성되는 정보를 포함하는 프레임들을 지칭하는 데 사용된다. "비디오 프레임들"에 관한 본원의 대부분의 교시는 "오디오 프레임들"에도 적용될 수 있다.
클라이언트들(1610)은 일반적으로 사용자로부터 입력들을 수신하도록 구성된다. 이러한 입력들은 비디오 게임의 상태를 변경하거나 아니면 게임 플레이에 영향을 미치도록 구성된 게임 명령들을 포함할 수 있다. 게임 명령들은 입력 장치들을 사용하여 수신될 수 있고/있거나 클라이언트들(1610)에서 실행되는 인스트럭션들을 계산함으로써 자동으로 생성될 수 있다. 수신된 게임 명령들은 클라이언트들(1610)로부터 네트워크(1615)를 통해 비디오 서버 시스템(1620) 및/또는 게임 서버(1625)로 전달된다. 예를 들어, 일부 구현예들에서, 게임 명령들은 비디오 서버 시스템(1620)을 통해 게임 서버(1625)로 전달된다. 일부 구현예들에서, 게임 명령들의 별도 사본들은 클라이언트들(1610)로부터 게임 서버(1625) 및 비디오 서버 시스템(1620)으로 전달된다. 게임 명령들의 통신은 선택적으로 명령의 아이덴티티에 따라 달라진다. 게임 명령들은 클라이언트(1610A)에 오디오 또는 비디오 스트림들을 제공하는 데 사용되는 다른 경로 또는 통신 채널을 통해 클라이언트(1610A)로부터 선택적으로 전달된다.
게임 서버(1625)는 선택적으로 비디오 서버 시스템(1620)과 다른 엔티티에 의해 동작된다. 예를 들어, 게임 서버(1625)는 멀티플레이어 게임의 발행자에 의해 동작될 수 있다. 이 예에서, 비디오 서버 시스템(1620)은 선택적으로 게임 서버(1625)에 의해 클라이언트로 보여지고, 선택적으로 게임 서버(1625)의 관점으로부터 종래 기술 게임 엔진을 실행하는 종래 기술 클라이언트로 나타나도록 구성된다. 비디오 서버 시스템(1620)과 게임 서버(1625) 간의 통신은 네트워크(1615)를 통해 선택적으로 발생한다. 이와 같이, 게임 서버(1625)는 게임 상태 정보를 다수의 클라이언트들에 전송하는 종래 기술의 멀티플레이어 게임 서버일 수 있으며, 그 중 하나는 게임 서버 시스템(1620)이다. 비디오 서버 시스템(1620)은 게임 서버(1625)의 다중 인스턴스들과 동시에 통신하도록 구성될 수 있다. 예를 들어, 비디오 서버 시스템(1620)은 복수의 상이한 비디오 게임들을 상이한 사용자들에게 제공하도록 구성될 수 있다. 이들 상이한 비디오 게임들 각각은 상이한 게임 서버(1625)에 의해 지원되고/되거나 상이한 엔티티들에 의해 발행될 수 있다. 일부 구현예들에서, 비디오 서버 시스템(1620)의 여러 지리적으로 분산된 인스턴스들은 게임 비디오를 복수의 다른 사용자들에게 제공하도록 구성된다. 비디오 서버 시스템(1620)의 이러한 인스턴스들 각각은 게임 서버(1625)의 동일한 인스턴스와 통신할 수 있다. 비디오 서버 시스템(1620)과 하나 이상의 게임 서버(1625) 사이의 통신은 선택적으로 전용 통신 채널을 통해 발생한다. 예를 들어, 비디오 서버 시스템(1620)은 이 두 시스템들 사이의 통신 전용인 고 대역폭 채널을 통해 게임 서버(1625)에 연결될 수 있다.
비디오 서버 시스템(1620)은 적어도 비디오 소스(1630), I/O 장치(1645), 프로세서(1650) 및 비일시적 저장 장치(1655)를 포함한다. 비디오 서버 시스템(1620)은 하나의 컴퓨팅 장치를 포함하거나 복수의 컴퓨팅 장치들에 분산될 수 있다. 이러한 컴퓨팅 장치들은 선택적으로 근거리 통신망과 같은 통신 시스템을 통해 연결된다.
비디오 소스(1630)는 비디오 스트림, 예를 들어 스트리밍 비디오 또는 동영상을 형성하는 일련의 비디오 프레임들을 제공하도록 구성된다. 일부 구현예들에서, 비디오 소스(1630)는 비디오 게임 엔진 및 렌더링 로직을 포함한다. 비디오 게임 엔진은 플레이어로부터 게임 명령들을 수신하고 수신된 명령들에 기초하여 비디오 게임 상태의 사본을 유지하도록 구성된다. 이 게임 상태는 일반적으로 관점뿐만 아니라 게임 환경에서 객체의 위치가 포함한다. 게임 상태는 또한 객체들의 속성들, 이미지들, 색상들 및/또는 질감들을 포함할 수 있다. 게임 상태는 일반적으로 게임 규칙뿐만 아니라 이동, 회전, 공격, 포커스 설정, 상호작용, 사용 등과 같은 게임 명령들을 기반으로 유지된다. 게임 엔진의 일부는 게임 서버(1625) 내에 선택적으로 배치된다. 게임 서버(1625)는 지리적으로 분산된 클라이언트들을 사용하여 다수의 플레이어들로부터 수신된 게임 명령들에 기초하여 게임 상태의 사본을 유지할 수 있다. 이런 경우에, 게임 상태는 게임 서버(1625)에 의해 비디오 소스(1630)에 제공되고, 게임 상태의 사본이 저장되고 렌더링이 수행된다. 게임 서버(1625)는 네트워크(1615)를 통해 클라이언트들(1610)로부터 직접 게임 명령들을 수신할 수 있고/있거나 비디오 서버 시스템(1620)을 통해 게임 명령들을 수신할 수 있다.
비디오 소스(1630)는 일반적으로 렌더링 로직, 예를 들어 저장 장치(1655)와 같은 컴퓨터 판독 가능 매체에 저장된 하드웨어, 펌웨어 및/또는 소프트웨어를 포함한다. 이 렌더링 로직은 게임 상태에 기반하여 비디오 스트림의 비디오 프레임들을 생성하도록 구성된다. 렌더링 로직의 전부 또는 일부는 그래픽 처리 장치(GPU) 내에 선택적으로 배치된다. 렌더링 로직은 일반적으로 게임 상태 및 관점에 기초하여, 객체들 간의 3 차원 공간 관계를 결정하고/하거나 적절한 텍스처 등을 적용하도록 구성된 처리 단계들을 포함한다. 그런 다음, 렌더링 로직은 일반적으로 클라이언트들(1610)과 통신하기 전에 인코딩되는 원시 비디오를 생성한다. 예를 들어, 원시 비디오 (이는 오디오를 포함함)는 어도비 플래시® 표준, .wav, H.264, H.263, On2, VP6, VC-1, WMA, 허프만(Huffyuv), 라가리스(Lagarith), MPG-x . Xvid. FFmpeg, x264, VP6-8, 리얼비디오, mp4, mp3 등에 따라 인코딩될 수 있다. 인코딩 프로세스는 원격 장치의 디코더에 전달하기 위해 선택적으로 패키징되는 비디오 스트림을 생성한다. 비디오 스트림은 프레임 크기와 프레임 속도가 특성화된다. 일반적인 프레임 크기들은 800 x 600, 1280 x 720(예를 들어, 720p), 1024 x 768을 포함하지만, 임의의 다른 프레임 크기들도 사용될 수 있다. 프레임 속도는 초당 비디오 프레임들의 수이다. 비디오 스트림은 다른 유형의 비디오 프레임들을 포함할 수 있다. 예를 들어, H.264 표준은 "P" 프레임과 "I" 프레임을 포함한다. I-프레임들은 디스플레이 장치의 모든 매크로 블록들/픽셀들을 리프레시 하기 위한 정보를 포함하는 반면, P-프레임들은 그 서브셋을 리프레시 하기 위한 정보를 포함한다. P-프레임들은 일반적으로 I-프레임들보다 데이터 사이즈가 더 작다. 본원에 사용된 바와 같이, "프레임 크기"라는 용어는 프레임 내 픽셀들의 수를 지칭하는 것을 의미한다. "프레임 데이터 크기"라는 용어는 프레임을 저장하는 데 필요한 바이트 수를 지칭하는 데 사용된다.
대안적인 구현예들에서, 비디오 소스(1630)는 카메라와 같은 비디오 기록 장치를 포함한다. 이 카메라는 컴퓨터 게임의 비디오 스트림에 포함될 수 있는 지연 또는 라이브 비디오를 생성하는 데 사용될 수 있다. 결과 비디오 스트림은 선택적으로 렌더링된 이미지들 및 스틸 또는 비디오 카메라를 사용하여 기록된 이미지들 둘 다를 포함한다. 비디오 소스(1630)는 또한 비디오 스트림에 포함될 이전에 녹화된 비디오를 저장하도록 구성된 저장 장치들을 포함할 수 있다. 비디오 소스(1630)는 또한 객체, 예를 들어, 사람의 모션 또는 위치를 검출하도록 구성된 모션 또는 포지셔닝 감지 장치들, 및 게임 상태를 결정하거나 검출된 모션 및/또는 위치에 기초하여 비디오를 생성하도록 구성된 로직을 포함할 수 있다.
비디오 소스(1630)는 다른 비디오에 배치되도록 구성된 오버레이들을 제공하도록 선택적으로 구성된다. 예를 들어, 이러한 오버레이들은 명령 인터페이스, 로그인 인스트럭션들, 게임 플레이어에 대한 메시지들, 다른 게임 플레이어들의 이미지들, 다른 게임 플레이어들의 비디오 피드들(예를 들어, 웹캠 비디오)를 포함할 수 있다. 터치 스크린 인터페이스 또는 시선 감지 인터페이스를 포함하는 클라이언트(1610A)의 구현예들에서, 오버레이는 가상 키보드, 조이스틱, 터치 패드 등을 포함할 수 있다. 오버레이의 일 예에서, 플레이어의 음성은 오디오 스트림 상에 오버레이된다. 비디오 소스(1630)는 선택적으로 하나 이상의 오디오 소스들을 더 포함한다.
비디오 서버 시스템(1620)이 하나 이상의 플레이트로부터의 입력에 기초하여 게임 상태를 유지하도록 구성되는 구현예들에서, 각 플레이어는 위치 및 뷰 방향을 포함하는 서로 다른 관점을 가질 수 있다. 비디오 소스(1630)는 선택적으로 그들의 관점에 기초하여 각 플레이어에 대해 별도의 비디오 스트림을 제공하도록 구성된다. 또한, 비디오 소스(1630)는 클라이언트(1610) 각각에 상이한 프레임 크기, 프레임 데이터 크기 및/또는 인코딩을 제공하도록 구성될 수 있다. 비디오 소스(1630)는 선택적으로 3-D 비디오를 제공하도록 구성된다.
I/O 장치(1645)는 비디오 서버 시스템(1620)이 비디오, 명령들, 정보에 대한 요청들, 게임 상태, 시선 정보, 장치 모션, 장치 위치, 사용자 모션, 클라이언트 아이덴티티들, 플레이어 아이덴티티들, 게임 명령들, 보안 정보, 오디오 등과 같은 정보를 전송 및/또는 수신하도록 구성된다. I/O 장치(1645)는 일반적으로 네트워크 카드 또는 모뎀과 같은 통신 하드웨어를 포함한다. I/O 장치(1645)는 게임 서버(1625), 네트워크(1615) 및/또는 클라이언트들(1610)과 통신하도록 구성된다.
프로세서(1650)는 로직, 예를 들어, 본원에 논의되는 비디오 서버 시스템(1620)의 다양한 구성요소들 내에 포함된 소프트웨어를 실행하도록 구성된다. 예를 들어, 프로세서(1650)는 비디오 소스(1630), 게임 서버(1625) 및/또는 클라이언트 퀄리파이어(1660)의 기능들을 수행하기 위해 소프트웨어 인스트럭션들로 프로그래밍될 수 있다. 비디오 서버 시스템(1620)은 선택적으로 프로세서(1650)의 하나 이상의 인스턴스들을 포함한다. 프로세서(1650)는 또한 비디오 서버 시스템(1620)에 의해 수신된 명령들을 실행하거나, 본원에 논의된 게임 시스템(1600)의 다양한 요소들의 동작을 조정하기 위해 소프트웨어 인스트럭션들로 프로그래밍될 수 있다. 프로세서(1650)는 하나 이상의 하드웨어 장치를 포함할 수 있다. 프로세서(1650)는 전자 프로세서이다.
저장 장치(1655)는 비일시적 아날로그 및/또는 디지털 저장 장치들을 포함한다. 예를 들어, 저장 장치(1655)는 비디오 프레임들을 저장하도록 구성된 아날로그 저장 장치를 포함할 수 있다. 저장 장치(1655)는 컴퓨터 판독 가능한 디지털 저장 장치, 예를 들어 하드 드라이브, 광학 드라이브 또는 솔리드 스테이트 저장 장치를 포함할 수 있다. 저장 장치(1615)는 비디오 프레임들, 인공 프레임들, 비디오 프레임들과 인공 프레임들 둘 다를 포함하는 비디오 스트림, 오디오 프레임, 오디오 스트림 등을 저장하도록 (예를 들어, 적절한 데이터 구조 또는 파일 시스템에 의해) 구성된다. 저장 장치(1655)는 선택적으로 복수의 장치들 사이에 분산된다. 일부 구현예들에서, 저장 장치(1655)는 본원의 다른 곳에서 논의된 비디오 소스(1630)의 소프트웨어 구성요소들을 저장하도록 구성된다. 이러한 구성요소들은 필요 시 프로비저닝될 준비가 된 포맷으로 저장될 수 있다.
비디오 서버 시스템(1620)은 선택적으로 클라이언트 퀄리파이어(1660)을 더 포함한다. 클라이언트 퀄리파이어(1660)는 클라이언트들(1610A 또는 1610B)과 같은 클라이언트의 기능들을 원격으로 결정하도록 구성된다. 이러한 기능들은 클라이언트(1610A) 자체의 기능들뿐만 아니라 클라이언트(1610A)와 비디오 서버 시스템(1620) 사이의 하나 이상의 통신 채널들의 기능들 둘 다를 포함할 수 있다. 예를 들어, 클라이언트 퀄리파이어(1660)는 네트워크(1615)를 통해 통신 채널을 테스트하도록 구성될 수 있다.
클라이언트 퀄리파이어(1660)는 클라이언트(1610A)의 기능들을 수동으로 또는 자동으로 결정(예를 들어, 디스커버리)할 수 있다. 수동 결정은 클라이언트(1610A)의 사용자와 통신하고, 사용자에게 기능들을 제공하도록 요청하는 것을 포함한다. 예를 들어, 일부 구현예들에서, 클라이언트 퀄리파이어(1660)는 클라이언트(1610A)의 브라우저 내에서 이미지들, 텍스트 등을 디스플레이하도록 구성된다. 한 구현예에서, 클라이언트(1610A)는 브라우저를 포함하는 HMD이다. 다른 구현예에서, 클라이언트(1610A)는 HMD에 디스플레이될 수 있는 브라우저를 갖는 게임 콘솔이다. 디스플레이된 객체들은 사용자가 클라이언트(1610A)의 운영 체제, 프로세서, 비디오 디코더 유형, 네트워크 연결의 유형, 디스플레이 해상도 등과 같은 정보를 입력하도록 요청한다. 사용자에 의해 입력된 정보는 클라이언트 퀄리파이어(1660)으로 다시 전달된다.
예를 들어, 자동 결정은 클라이언트(1610A)에서 에이전트의 실행에 의해 및/또는 클라이언트(1610A)에 테스트 비디오를 전송함으로써 발생할 수 있다. 에이전트는 웹 페이지에 내장되거나 추가 기능으로 설치된 자바 스크립트와 같은 컴퓨팅 인스트럭션들을 포함할 수 있다. 에이전트는 선택적으로 클라이언트 퀄리파이어(1660)에 의해 제공된다. 다양한 구현예들에서, 에이전트는 클라이언트(1610A)의 처리 능력, 클라이언트(1610A)의 디코딩 및 디스플레이 능력, 지연 시간 안정성 및 클라이언트(1610A(와 비디오 서버 시스템(1620) 간의 통신 채널들의 대역폭, 클라이언트(1610A)의 디스플레이 유형, 클라이언트(1610A)에 존재하는 방화벽, 클라이언트(1610A)의 하드웨어, 클라이언트(1610A)에서 실행되는 소프트웨어, 클라이언트(1610A) 내의 레지스트리 엔트리들 등을 찾을 수 있다.
클라이언트 퀄리파이어(1660)는 컴퓨터 판독 가능 매체에 저장된 하드웨어, 펌웨어 및/또는 소프트웨어를 포함한다. 클라이언트 퀄리파이어(1660)는 선택적으로 비디오 서버 시스템(1620)의 하나 이상의 다른 요소들과 분리된 컴퓨팅 장치에 배치된다. 예를 들어, 일부 구현예들에서, 클라이언트 퀄리파이어(1660)는 클라이언트들(1610)과 비디오 서버 시스템(1620)의 하나 이상의 인스턴스들 간의 통신 채널들의 특성들을 결정하도록 구성된다. 이러한 구현예들에서, 클라이언트 퀄리파이어에 의해 디스커버리된 정보는 클라이언트들(1610) 중 하나로 스트리밍 비디오를 전달하는 데 가장 적합한 비디오 서버 시스템(1620)의 인스턴스들을 결정하는 데 사용될 수 있다.
본 개시의 구현예들은 핸드 헬드 장치, 마이크로프로세서 시스템, 마이크로 프로세서 기반 또는 프로그램 가능 소비자 전자 제품, 미니 컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 컴퓨터 시스템 구성들로 실시될 수 있다. 본 개시는 또한 태스크들이 유선 기반 또는 무선 네트워크를 통해 링크된 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경들에서 실시될 수 있다.
상기 구현예들을 염두에 두고, 본 개시는 컴퓨터 시스템들에 저장된 데이터를 포함하는 다양한 컴퓨터 구현 동작들을 사용할 수 있다는 것이 이해되어야 하다. 이러한 동작들은 이러한 물리적 수량의 물리적 조작을 필요로 한다. 본 개시의 일부를 형성하는 본원에 설명된 임의의 동작들은 유용한 기계 동작들이다. 본 개시는 또한 이러한 동작들을 수행하는 기기 또는 장치에 관한 것이다. 장치는 요구된 목적들을 위해 특별히 구성될 수 있거나, 장치는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 구성된 범용 컴퓨터일 수 있다. 특히, 다양한 범용 기계들은 본원의 교시에 따른 작성된 컴퓨터 프로그램들과 함께 사용될 수 있거나, 요구된 동작들을 수행하기 위해 보다 특화된 장치를 구성하는 것이 보다 편리할 수 있다.
본 개시는 또한 컴퓨터 판독 가능 매체 상의 컴퓨터 판독 가능 코드로서 구현될 수 있다. 컴퓨터 판독 가능 매체는 데이터를 저장할 수 있는 임의의 데이터 저장 장치이며, 이는 이후 컴퓨터 시스템에 의해 판독될 수 있다. 컴퓨터 판독 가능 매체의 예들은 하드 드라이브, 네트워크 접속 기반 파일 서버(NAS), 읽기 전용 메모리, 랜덤 액세스 메모리, CD-ROM, CD-R, CD-RW, 자기 테이프 및 기타 광학 및 비광학 데이터 저장 장치들을 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 코드가 분산된 방식으로 저장되고 실행되도록 네트워크 결합 컴퓨터 시스템에 분산된 컴퓨터 판독 가능 유형 매체를 포함할 수 있다.
방법 동작들이 특정 순서로 설명되었지만, 다른 하우스키핑 동작들이 동작들 사이에 수행될 수 있거나, 또는 동작들은 약간 다른 시간들에서 발생하도록 조정될 수 있거나, 오버레이 동작들의 처리가 원하는 방식으로 수행되는 한, 처리와 관련된 다양한 간격들로 처리 동작들의 발생을 허용하는 시스템에 분산될 수 있음이 이해되어야 한다.
전술한 개시는 이해의 명확성을 위해 일부 상세하게 설명되었지만, 특정 변경들 및 수정들이 첨부된 청구항들의 범위 내에서 실시될 수 있음이 명백할 것이다. 따라서, 본 구현예들은 제한적인 것이 아니라 예시적인 것으로 간주되어야 하며, 본 개시는 본원에 제공된 세부 사항들로 제한되지 않아야 하지만, 본 개시의 범위 및 등가물 내에서 수정될 수 있다.

Claims (17)

  1. 방법으로서, 상기 방법은:
    클라우드 게임 컴퓨터에 의해 비디오 게임을 실행하는 단계;
    비디오 서버에 의해, 상기 실행중인 비디오 게임으로부터 생성된 비디오를 네트워크를 통해 1차 클라이언트 장치 및 하나 이상의 2차 클라이언트 장치로 스트리밍하는 단계;
    입력 어그리게이션 서버에 의해, 상기 비디오 게임과 연관된 템플릿-여기서 상기 템플릿은 상기 비디오 게임에 대한 명령의 할당을 정의하며, 상기 명령은 상기 클라우드 게임 컴퓨터에 의해 실행된 상기 비디오 게임 내에서 상기 1차 클라이언트 장치에 동작 가능하게 연결된 제1 컨트롤러 장치로 매핑되고, 상기 템플릿이 상기 제1 컨트롤러를 통한 제어를 위한 상기 명령의 제1 부분을 식별하며 상기 템플릿이 상기 하나 이상의 제2 컨트롤러를 통한 제어를 위한 상기 명령의 제2 부분을 식별하도록, 상기 템플릿에 의해 정의된 상기 할당은 상기 제1 컨트롤러를 통한 그리고 상기 하나 이상의 2차 클라이언트 장치와 연관된 하나 이상의 제2 컨트롤러를 통한 제어를 가능하게 하기 위한 상기 명령의 상이한 부분을 할당하며, 상기 템플릿은 상기 비디오 게임의 동일한 제어 가능한 객체에 적용 가능한 미리 정의된 복수의 템플릿으로부터 선택됨-에 액세스하는 단계;
    상기 입력 어그리게이션 서버-여기서 상기 입력 어그리게이션 서버는 상기 1차 클라이언트 장치로부터의 입력 데이터 및 상기 하나 이상의 2차 클라이언트 장치로부터의 입력 데이터를 사용하여 결합된 입력 데이터를 생성하며, 상기 결합된 입력 데이터는 상기 비디오 게임에 대한 상기 명령을 정의함-에 의해, 상기 1차 클라이언트 장치로부터의 상기 입력 데이터 및 상기 하나 이상의 2차 클라이언트 장치로부터의 상기 입력 데이터를 상기 네트워크를 통해 수신하는 단계;
    상기 입력 어그리게이션 서버에 의해, 상기 결합된 입력 데이터를 상기 클라우드 게임 컴퓨터로 전송하는 단계;
    상기 비디오 게임의 실행을 구동하기 위해, 상기 클라우드 게임 컴퓨터에 의해, 상기 결합된 입력 데이터를 적용하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 제1 컨트롤러와 상기 하나 이상의 제2 컨트롤러 간의 상기 명령의 할당은 상기 비디오 게임의 변경 조건에 응답하여 상기 템플릿에 따라 동적으로 변경되는, 방법.
  3. 제2항에 있어서, 상기 비디오 게임의 상기 변경 조건은 상기 비디오 게임 내의 미리 정의된 지점으로의 진행에 의해 정의되는, 방법.
  4. 제1항에 있어서, 상기 템플릿은 상기 비디오 게임의 조건에 기초하여 선택되며, 상기 복수의 템플릿 각각은 상기 제1 컨트롤러를 통한 그리고 상기 하나 이상의 제2 컨트롤러를 통한 제어에 대한 상기 명령의 상이한 할당을 정의하는, 방법.
  5. 제3항에 있어서, 상기 비디오 게임의 상기 조건은 상기 비디오 게임 내의 미리 정의된 지점으로의 진행에 의해 정의되며, 상기 복수의 템플릿 각각은 상기 비디오 게임 내의 상기 미리 정의된 지점에서의 실행에 대한 상기 명령의 상기 상이한 할당을 정의하는, 방법.
  6. 제1항에 있어서, 상기 결합된 입력 데이터는 상기 비디오 게임 내의 단일 플레이어의 활동의 제어에 대한 단일 입력 스트림을 정의하는, 방법.
  7. 제1항에 있어서,
    상기 결합된 입력 데이터에 의해 정의된 상기 명령은 상기 비디오 게임 내에서 상기 제1 컨트롤러 장치의 제1 입력 장치에 매핑된 제1 명령, 및 상기 비디오 게임 내에서 상기 제1 컨트롤러 장치의 제2 입력 장치에 매핑된 제2 명령을 포함하며,
    상기 결합된 입력 데이터는 상기 제1 컨트롤러 장치에서 상기 제1 입력 장치의 활성화로부터 상기 제1 명령의 개시를 가능하게 하도록 구성되고,
    상기 결합된 입력 데이터는 상기 템플릿에 의해 정의된 상기 할당에 따라 상기 하나 이상의 제2 컨트롤러 중 하나에서 입력 장치의 활성화로부터 상기 제2 명령의 개시를 가능하게 하도록 구성되는, 방법.
  8. 제7항에 있어서, 상기 제2 컨트롤러 중 하나에서 상기 입력 장치의 활성화로부터 개시되는 상기 제2 명령은 상기 입력 어그리게이션 서버를 통한 상기 2차 클라이언트 장치 중 하나에 의한 상기 제1 컨트롤러 장치의 상기 제2 입력 장치의 원격 가상 트리거링을 정의하는, 방법.
  9. 방법에 있어서, 상기 방법은:
    클라우드 게임기에 의해 비디오 게임을 실행하는 단계-여기서 상기 비디오 게임을 실행하는 단계는 복수의 클라이언트 장치에 대한 팀 게임 세션을 인스턴스화함-;
    상기 복수의 클라이언트 장치 각각을 복수의 팀 중 하나에 할당하는 단계;
    비디오 서버에 의해, 상기 실행 중인 비디오 게임으로부터 생성된 비디오를 네트워크를 통해 상기 복수의 클라이언트 장치로 스트리밍하는 단계;
    상기 비디오 게임의 게임 플레이를 가능하게 하는 단계
    를 포함하고,
    주어진 각각의 팀에 의한 게임 플레이가 상기 주어진 팀과 연관된 복수의 가상 객체의 제어를 포함하도록, 상기 게임 플레이는 상기 팀 게임 세션에서의 참가자로서 상기 복수의 팀 간에 정의되며, 상기 주어진 팀의 상기 클라이언트 장치 중 하나가 팀장과 연관되어 있고, 상기 주어진 팀과 연관된 상기 복수의 가상 객체의 각각에 대해, 상기 주어진 팀의 상기 클라이언트 장치 중 적어도 2개에 의한 제어를 가능하게 하도록 제어가 상기 팀장에 의해 개별적으로 할당 및 재할당되는, 방법.
  10. 제9항에 있어서, 상기 팀장에 의한 제어의 재할당에 대한 미리 정의된 조건은 미리 정의된 시간이 경과하였음을 결정하는 단계를 포함하는, 방법.
  11. 제9항에 있어서, 상기 팀장에 의한 제어의 재할당에 대한 미리 정의된 조건은 상기 비디오 게임의 게임 플레이 중에 발생하는 하나 이상의 게임 플레이 이벤트를 감지하는 단계를 포함하는, 방법.
  12. 제9항에 있어서, 상기 팀장에 의한 제어의 재할당에 대한 미리 정의된 조건은 현재 상기 가상 객체를 제어하는 상기 클라이언트 장치 중 주어진 하나로부터의 입력을 감지하는 단계를 포함하는, 방법.
  13. 제9항에 있어서, 상기 팀장에 의한 제어의 재할당에 대한 미리 정의된 조건은 현재 상기 가상 객체를 제어하지 않는 상기 클라이언트 장치 중 주어진 하나로부터의 입력을 감지하는 단계를 포함하는, 방법.
  14. 제9항에 있어서, 상기 클라이언트 장치 중 첫 번째 장치로부터 상기 클라이언트 장치 중 두 번째 장치로 가상 객체의 제어의 재할당은 상기 가상 객체를 제어하기 위해 상기 클라이언트 장치 중 첫 번째 장치에서 수신한 입력의 적용에서 상기 가상 객체를 제어하기 위해 상기 클라이언트 중 장치 두 번째 장치에서 수신한 입력의 적용으로 전환하는 단계를 포함하는, 방법.
  15. 제14항에 있어서, 상기 클라이언트 장치 중 첫 번째 및 두 번째 장치로부터 수신한 입력은 각각 상기 클라이언트 장치의 상기 첫 번째 장치 및 상기 두 번째 장치에 동작 가능하게 연결되는 제1 및 제2 제어 장치로부터 생성되는, 방법.
  16. 제9항에 있어서, 상기 가상 객체 중 적어도 하나는 가상 캐릭터인, 방법.
  17. 삭제
KR1020237010120A 2018-05-31 2019-05-09 비디오 게임에서의 공유 제어와 전달 제어의 분기 KR102669187B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/993,603 US10898802B2 (en) 2018-05-31 2018-05-31 Bifurcation of shared controls and passing controls in a video game
US15/993,603 2018-05-31
PCT/US2019/031398 WO2019231628A1 (en) 2018-05-31 2019-05-09 Bifurcation of shared controls and passing controls in a video game
KR1020207036166A KR102514850B1 (ko) 2018-05-31 2019-05-09 비디오 게임에서의 공유 제어와 전달 제어의 분기

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207036166A Division KR102514850B1 (ko) 2018-05-31 2019-05-09 비디오 게임에서의 공유 제어와 전달 제어의 분기

Publications (2)

Publication Number Publication Date
KR20230044557A KR20230044557A (ko) 2023-04-04
KR102669187B1 true KR102669187B1 (ko) 2024-05-28

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120302352A1 (en) 2011-05-27 2012-11-29 Amer Ajami Collaborative diplomacy mechanics
US20140274359A1 (en) 2013-03-13 2014-09-18 Big Fish Games, Inc. Multi-player collaborative play of a game
US20160287988A1 (en) 2015-04-02 2016-10-06 Nvidia Corporation System and method for multi-client control of a common avatar
US10737180B1 (en) 2017-06-08 2020-08-11 Securus Technologies, Inc. Collaborative gaming

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120302352A1 (en) 2011-05-27 2012-11-29 Amer Ajami Collaborative diplomacy mechanics
US20140274359A1 (en) 2013-03-13 2014-09-18 Big Fish Games, Inc. Multi-player collaborative play of a game
US20160287988A1 (en) 2015-04-02 2016-10-06 Nvidia Corporation System and method for multi-client control of a common avatar
US10737180B1 (en) 2017-06-08 2020-08-11 Securus Technologies, Inc. Collaborative gaming

Similar Documents

Publication Publication Date Title
KR102514850B1 (ko) 비디오 게임에서의 공유 제어와 전달 제어의 분기
JP6945588B2 (ja) クラウド上のアプリケーションのための予測的なインスタントプレイ技術
US11759707B2 (en) Methods and systems for scheduling game play of a video game
CN112788358B (zh) 游戏对局的视频直播方法、视频发送方法、装置及设备
US9818225B2 (en) Synchronizing multiple head-mounted displays to a unified space and correlating movement of objects in the unified space
TWI573619B (zh) 基於所記錄之遊戲玩法自動產生為雲遊戲建議的小遊戲
US11497990B2 (en) Crowd sourced cloud gaming using peer-to-peer streaming
KR20170129297A (ko) 게임 서버
CN113348024A (zh) 建立和管理多玩家会话
KR102669187B1 (ko) 비디오 게임에서의 공유 제어와 전달 제어의 분기
US20160271495A1 (en) Method and system of creating and encoding video game screen images for transmission over a network