KR20230034182A - 온라인 게임들에서의 관전자 시스템 - Google Patents

온라인 게임들에서의 관전자 시스템 Download PDF

Info

Publication number
KR20230034182A
KR20230034182A KR1020220111190A KR20220111190A KR20230034182A KR 20230034182 A KR20230034182 A KR 20230034182A KR 1020220111190 A KR1020220111190 A KR 1020220111190A KR 20220111190 A KR20220111190 A KR 20220111190A KR 20230034182 A KR20230034182 A KR 20230034182A
Authority
KR
South Korea
Prior art keywords
spectator
game
game state
server
state data
Prior art date
Application number
KR1020220111190A
Other languages
English (en)
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
Application filed by 일렉트로닉 아트 아이엔씨. filed Critical 일렉트로닉 아트 아이엔씨.
Publication of KR20230034182A publication Critical patent/KR20230034182A/ko

Links

Images

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/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • 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
    • 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/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/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • 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/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

관전자 시스템은 온라인 게이밍에서 관전을 제공할 수 있다. 관전자 시스템은, 관전자 서버에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 서버로부터 게임 상태 데이터를 수신하고, 하나 이상의 관전자 디바이스에 대응하는 하나 이상의 관전자 게임 상태 데이터를 생성하고, 하나 이상의 관전자 게임 상태 데이터를 관전자 디바이스들에 출력할 수 있다. 관전자 서버는 추가로, 게임 상태 데이터를 다른 관전자 서버에 출력할 수 있다.

Description

온라인 게임들에서의 관전자 시스템{SPECTATOR SYSTEM IN ONLINE GAMES}
온라인 게이밍은, 플레이어들이 인터넷과 같은 네트워크 연결성을 통해 서로 다양한 전자 및/또는 비디오 게임들을 플레이할 수 있게 한다. e스포츠(eSports) 및 일반적인 게임을 관전하게 됨에 따라, 게임들은 단순한 플레이 경험 초과의 것이 되고 있다. 수용될 수 있는 관전자(spectator)들의 수에 대한 제한들, 및 예컨대, 렌더링을 수행하기에 충분히 강력하지 않을 수 있는 디바이스들 상에서 게임들을 관전하기 위한 옵션들의 부족으로 인해 불만이 발생할 수 있다.
첨부된 도면들을 참조하여 상세한 설명이 설명된다. 도면들에서, 참조 번호의 가장 좌측 숫자(들)는 참조 번호가 처음 나타나는 도면을 식별한다. 상이한 도면들에서의 동일한 참조 번호들은 유사하거나 동일한 항목들을 표시한다.
도 1은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전자들을 수용할 수 있는 게이밍 시스템(들) 및 관전자 시스템(들)을 갖는 예시적인 환경의 개략도를 예시한다.
도 2는 본 개시내용의 예시적인 실시예들에 따른, 중계방송(rebroadcasting) 관전자 서버 아키텍처를 통해 온라인 게임의 관전을 제공할 수 있는 예시적인 온라인 게임 시스템의 예시적인 블록도를 예시한다.
도 3은 본 개시내용의 예시적인 실시예들에 따른, 미디어 스트림으로서 관전자 시스템(들)에서 렌더링된 뷰를 수신하고 관전자에게 제시하는 것이 가능한 스트리밍 미디어 플레이어를 포함하는 관전자 디바이스(들)에 대해 온라인 게임의 관전을 제공할 수 있는 예시적인 온라인 게임 시스템의 예시적인 블록도를 예시한다.
도 4는 본 개시내용의 예시적인 실시예들에 따른, 미디어 스트림으로서 관전자 시스템(들)에서 렌더링된 뷰를 수신하고 관전자에게 제시하는 것이 가능한 스트리밍 미디어 플레이어를 포함하는 관전자 디바이스(들)에 대해 온라인 게임의 관전을 제공할 수 있는 예시적인 온라인 게임 시스템의 예시적인 블록도를 예시한다.
도 5는 본 개시내용의 예시적인 실시예들에 따른, 관전자들에 대해 온라인 게임의 관전을 제공할 수 있는 예시적인 온라인 게임 시스템의 예시적인 블록도를 예시한다.
도 6은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전자들을 수용하는 것을 제공할 수 있는 예시적인 방법의 예시적인 흐름도를 예시한다.
도 7은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전자들을 수용하는 것을 제공할 수 있는 예시적인 방법의 흐름도를 예시한다.
도 8은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전하기 위해 관전자 미디어 플레이어를 사용하여 관전자들을 수용하는 것을 제공할 수 있는 예시적인 방법의 흐름도를 예시한다.
도 9는 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전하기 위해 관전자 클라이언트를 사용하여 관전자들을 수용하는 것을 제공할 수 있는 예시적인 방법의 흐름도를 예시한다.
도 10은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게임들에서 관전을 제공할 수 있는 예시적인 관전자 시스템(들)의 블록도를 예시한다.
본 개시내용의 예시적인 실시예들은, 온라인 게이밍에서 관전자들을 수용하기 위한 방법들, 장치들, 컴퓨터 판독가능 매체들, 및 시스템(들)을 설명한다. 일부 예들에서, 본 개시내용에 따른 방법들, 장치들, 컴퓨터 판독가능 매체, 및 시스템(들)은, 임의적 수의 온라인 게임 관전자들을 수용할 수 있다. 일부 예들은, 부가적인 관전자 노드(들) 또는 서버(들)를 인스턴스화하여 부가적인 관전자들을 수용할 수 있는 중계방송 아키텍처를 포함할 수 있다. 예컨대, 현재의 관전자 노드 또는 서버가 관전자 수용정원(capacity)에 도달했을 때, 부가적인 관전자 노드 또는 서버가 인스턴스화될 수 있고, 이전에 설정된 관전자 노드 또는 서버와 새롭게 인스턴스화된 관전자 노드 또는 서버 사이에 게임 상태의 중계방송이 설정될 수 있다.
부가적으로 또는 대안적으로, 일부 예들은, 관전하기 위해 (예컨대, 관전자 뷰를 렌더링하는) 게임 또는 게임 관전자 특정 클라이언트(이하에서, 관전자 클라이언트)를 사용하는 것에 부가하여 또는 그에 대한 대안으로서 상호작용형 관전 옵션들을 제공할 수 있다. 일부 예들은, 게임 엔진의 렌더링 기능성으로부터 게임 엔진의 게임 시뮬레이션 기능성의 적어도 일부분의 분리를 제공할 수 있는 분할식 게임 엔진 아키텍처를 포함할 수 있다. 예컨대, 하나 이상의 프로세서는 게임 시뮬레이션 기능성을 실행할 수 있고, 하나 이상의 다른 프로세서는 렌더링 기능성을 실행할 수 있다. 특정 예들에서, 제1 컴퓨팅 디바이스의 하나 이상의 프로세서는 게임 시뮬레이션 기능성을 실행할 수 있고, 하나 이상의 제2 컴퓨팅 디바이스의 하나 이상의 프로세서는 렌더링 기능성을 실행할 수 있다. 더 상세하게는, 복수의 관전자들에 대해, 복수의 개개의 렌더링 스레드들이 제2 컴퓨팅 디바이스(들) 상에서 인스턴스화될 수 있다. 복수의 렌더링 스레드들은 시간 슬라이싱을 사용하여 CPU 및/또는 GPU를 공유할 수 있다. 부가적으로 또는 대안적으로, 렌더링 스레드들은 대응하는 CPU들 및/또는 GPU들 상에서 동작할 수 있다. 게임 시뮬레이션 기능성은, 게임 상태(예컨대, 시뮬레이션의 전체 게임 상태일 수 있음)의 상태 스트림과 함께 렌더링 기능성(예컨대, 렌더링 스레드들 및/또는 제2 컴퓨팅 디바이스들)을 제공할 수 있다. 렌더링 스레드는 또한, 렌더링 스레드의 대응하는 관전자로부터 관전자 입력을 수신할 수 있다. 대응하는 관전자의 관전자 입력 및 게임 상태의 상태 스트림을 사용하여, 렌더링 스레드는, 상호작용형 관전자 뷰를 렌더링하여, 렌더링된 미디어 스트림으로서 대응하는 관전자의 관전자 디바이스(예컨대, 관전자의 사용자 디바이스 상에서 동작하고 있는 미디어 플레이어 기능성을 포함하는 웹 브라우저)에 출력할 수 있다.
예들은, 개별 관전자로부터의 관전자 입력에 의해 드라이빙되는 관전자 뷰들로 제한되지 않는다. 예컨대, 관전자는, 게임에서 플레이어의 라이브 스트림을 시청하기를 요망할 수 있다. 스트리밍 플레이어는, 스트리밍 플레이어의 팬들 또는 시청자들에 의한 시청을 위해 온라인 게이밍 시스템에 의해 렌더링될 수 있는, 스트리밍 플레이어에 대한 관전자 스트림을 설정할 것을 온라인 게임 시스템에 요청할 수 있다. 그러한 예에서, 관전자 서버는, 스트리밍 플레이어와 관전자 서버 사이에 상태 스트림을 설정할 수 있다. 스트리밍 플레이어로부터의 상태 스트림은, 스트리밍 플레이어의 팬들 또는 시청자들에게 제공될 수 있는 스트리밍 플레이어에 대응하는 미디어 스트림을 생성하기 위해, 게임 시뮬레이션 기능성으로부터의 게임 상태와 함께 활용될 수 있다. 관전자 서버는 또한, 미디어 스트림의 프리젠테이션의 구성(예컨대, 미디어 스트림에 대한 시각적 또는 오디오 부가들)을 제공할 수 있다. 온라인 게이밍 시스템으로부터의 그러한 미디어 스트림은 스트리밍 플레이어의 컴퓨팅 디바이스에서 생성된 미디어 스트림보다 더 공식적인 것으로서 보일 수 있고, 스트리밍 플레이어가 시청자들을 위한 스트리밍 게임플레이 미디어를 생성하는 것에 대한 감소된 부담을 제공할 수 있다.
일부 예들은, 관전자 클라이언트 관전 및 미디어 플레이어 스트리밍 관전 둘 모두를 포함하는(예컨대, 상호작용형 관전 및/또는 스트리밍 플레이어 기반 관전 중 하나 또는 둘 모두를 포함할 수 있는) 관전 옵션들을 제공하는 중계방송 아키텍처를 포함할 수 있다.
추가로, 온라인 게임들에 대해 수용될 수 있는 관전자들 및/또는 관전자 시점들의 수를 확장함으로써, 본 개시내용에 따른 예들은, 관전자들 간의 음성 통신들과 같은 관전자들에 대한 더 몰입형의 경험들을 또한 제공할 수 있다. 예컨대, 스포츠 게임의 경우, 본 개시내용에 따른 예들은, 스포츠 게임의 시뮬레이팅된 물리적 시청을 용이하게 할 수 있다. 예컨대, 물리적 스포츠(예컨대, 축구)에 기반한 e스포츠 게임의 챔피언십 매치에서, 관전자들은 게임플레이 영역 주위에 설정된 가상 경기장 내의 좌석들을 구매하거나 다른 방식으로 배정받는 것이 가능할 수 있다. 특정 관전자에 대해, 관전자 시스템은, 특정 관전자에 근접한 가상 좌석들에 위치된 다른 관전자들에 대한 마이크로폰 데이터를 사용하여, 주변 음성들을 생성하거나 인근 관전자들 간의 대화들을 허용할 수 있다.
아래에서 더 상세히 설명되는 바와 같이, 본원에 설명된 시스템들 및 방법들은 예시적으로 그리고 예시적인 목적들을 위해 제시되며; 그 시스템들 및 방법들이 출원인의 제품 또는 구현 계획들을 나타내는 것은 아니다. 더욱이, 본원에서 플레이어 또는 사용자 데이터의 사용에 대한 임의의 참조는, 플레이어들의 프라이버시를 침범하지 않는 프라이버시 정책들을 준수하고 플레이어 프라이버시 설정들 또는 선호들에 따를 것임이 이해되어야 한다.
이제, 다양한 양상들이 도시된 첨부된 도면들을 참조하여 본 개시내용의 특정 구현들 및 실시예들이 아래에서 더 완전히 설명될 것이다. 그러나, 다양한 양상들은 많은 상이한 형태들로 구현될 수 있으며, 본원에 기재된 구현들로 제한되는 것으로 해석되어서는 안 된다. 예컨대, 본원에 제공된 일부 예들은 스포츠, 대전격투, 또는 슈팅 게임들에 관한 것이다. 구현들은 예시적인 장르들로 제한되지 않는다. 본 개시내용은 본원에 설명된 바와 같은 실시예들의 변형들을 포함한다는 것이 인식될 것이다. 전반에 걸쳐 동일한 번호들은 동일한 요소들을 지칭한다.
도 1은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전자들을 수용할 수 있는, 게임 시스템(들)(110), 매치메이킹(matchmaking) 시스템(들)(120), 관전자 시스템(들)(130), 게임 클라이언트 디바이스(들)(140), 및 관전자 디바이스(들)(150)가 있는 예시적인 환경(100)의 개략도를 예시한다.
예시적인 환경(100)은, 개개의 입력 디바이스(들)를 통해, 이하에서 개별적으로 또는 총괄적으로 게임 클라이언트 디바이스(들)(140)로 지칭되는 개개의 게임 클라이언트 디바이스(들)(140(1), 140(2), 140(3), ... 140(N))와 상호작용할 수 있는, 이하에서 개별적으로 또는 총괄적으로 플레이어(들)(142)로 지칭되는 하나 이상의 플레이어(들)(142(1), 142(2), 142(3), ... 142(N))를 포함할 수 있다.
게임 클라이언트 디바이스(들)(140)는, 환경(100)의 플레이어(들)(142)에 의해 플레이되는 온라인 게임을 호스팅할 수 있는 하나 이상의 게임 시스템(들)(110)으로부터 게임 상태 정보를 수신할 수 있다. 게임 상태 정보는, 반복적으로 그리고/또는 연속적으로 그리고/또는 온라인 게임의 이벤트들이 발생하는 경우 수신될 수 있다. 게임 상태 정보는, 게임 시스템(들)(110)에 의해 호스팅되는 온라인 게임의 이벤트들에 대한 응답으로 플레이어(들)(142) 각각이 갖는 상호작용들에 적어도 부분적으로 기반할 수 있다.
게임 클라이언트 디바이스(들)(140)는, 적어도 게임 상태 정보에 기반하여 개개의 플레이어(들)(142)에게 온라인 게임과 연관된 콘텐츠를 렌더링하도록 구성될 수 있다. 더 상세하게는, 게임 클라이언트 디바이스(들)(140)는, 가장 최근의 게임 상태 정보를 사용하여 온라인 게임의 현재의 이벤트들을 콘텐츠로서 렌더링할 수 있다. 이러한 콘텐츠는, 비디오, 오디오, 햅틱, 이들의 조합들, 또는 유사한 콘텐츠 구성요소들을 포함할 수 있다.
온라인 게임에서 이벤트들이 발생하는 경우, 게임 시스템(들)(110)은, 게임 상태 정보를 업데이트하고 그 게임 상태 정보를 게임 클라이언트 디바이스(들)(140)에 전송할 수 있다. 예컨대, 플레이어(들)(142)가 온라인 축구 게임을 플레이하고 있고, 골키퍼들 중 하나를 플레이하고 있는 플레이어(142)가 특정 방향으로 이동하는 경우, 그러한 움직임 및/또는 골키퍼 위치는, 골키퍼가 특정 방향으로 이동하는 이벤트를 렌더링하기 위해 게임 클라이언트 디바이스(들)(140) 각각에 전송될 수 있는 게임 상태 정보에서 표현될 수 있다. 이러한 방식으로, 온라인 게임의 콘텐츠는 게임 플레이 전체에 걸쳐 반복적으로 업데이트된다. 추가로, 개별 게임 클라이언트 디바이스(들)(140)에 전송되는 게임 상태 정보는 게임 시스템(들)(110)에서 유지되는 전체 게임 상태의 서브세트 또는 파생물일 수 있다. 예컨대, 팀 데스매치 게임에서, 플레이어의 게임 클라이언트 디바이스(140)에 제공되는 게임 상태 정보는, 게임 시뮬레이션에서 플레이어의 위치에 기반하여 생성되는 전체 게임 상태의 서브세트 또는 파생물일 수 있다.
게임 클라이언트 디바이스(들)(140)가 게임 시스템(들)(110)으로부터 게임 상태 정보를 수신할 때, 게임 클라이언트 디바이스(140)는, 온라인 게임과 연관된 업데이트된 콘텐츠를 그의 개개의 플레이어(142)에게 렌더링할 수 있다. 이러한 업데이트된 콘텐츠는, 게임의 이전 상태(예컨대, 골키퍼의 움직임) 이후에 발생했을 수 있는 이벤트들을 구현할 수 있다.
게임 클라이언트 디바이스(들)(140)는, 개개의 입력 디바이스(들)를 통해 개개의 플레이어(들)(142)로부터 입력을 수용할 수 있다. 플레이어(들)(142)로부터의 입력은 온라인 게임에서의 이벤트들에 응답할 수 있다. 예컨대, 온라인 농구 게임에서, 플레이어(142)가 렌더링된 콘텐츠에서 상대 팀의 가드가 득점을 막고 있는 것과 같은 이벤트를 보는 경우, 플레이어(142)는, 자신의 입력 디바이스를 사용하여 3점슛을 쏘려고 시도할 수 있다. 플레이어(142)에 의한, 그 플레이어의 입력 디바이스를 통해 포착되는 바와 같은 의도된 동작은, 게임 클라이언트 디바이스(140)에 의해 수신되어 게임 시스템(들)(110)에 전송될 수 있다.
게임 클라이언트 디바이스(들)(140)는, 소니 플레이스테이션(Sony Playstation®) 라인의 시스템들, 닌텐도 스위치(Nintendo Switch®) 라인의 시스템들, 마이크로소프트 엑스박스(Microsoft Xbox®) 라인의 시스템들, 소니, 마이크로소프트, 닌텐도, 또는 세가(Sega)에 의해 제조되는 임의의 게이밍 디바이스, 인텔 아키텍처(Intel-Architecture(IA)®) 기반 시스템, 애플 매킨토시(Apple Macintosh®) 시스템, 넷북 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터 시스템, 셋톱 박스 시스템, 핸드헬드 시스템, 스마트폰, 개인 휴대 정보 단말기, 이들의 조합들 등을 포함하지만 이에 제한되지 않는 임의의 적합한 디바이스일 수 있다. 일반적으로, 게임 클라이언트 디바이스(들)(140)는, 자신 상에서 프로그램들을 실행하여, 게임 시스템(들)(110)과 상호작용하고 게임 시스템(들)(110)으로부터 수신되는 게임 상태 정보에 적어도 부분적으로 기반하여 게임 콘텐츠를 렌더링할 수 있다. 부가적으로, 게임 클라이언트 디바이스(들)(140)는 게임 시스템(들)(110)에 플레이어 입력의 표시들을 전송할 수 있다. 게임 상태 정보 및 플레이어 입력 정보는, 애플리케이션 프로그램 인터페이스(API)들과 같은 임의의 적합한 메커니즘을 사용하여 게임 클라이언트 디바이스(들)(140)와 게임 시스템(들)(110) 사이에서 공유될 수 있다.
게임 시스템(들)(110)은, 다양한 플레이어(들)(142)로부터 입력들을 수신하고 그에 기반하여 온라인 게임의 상태를 업데이트할 수 있다. 온라인 게임의 상태가 업데이트됨에 따라, 온라인 게임 콘텐츠를 플레이어(들)(142)에게 렌더링하기 위해 그 상태가 게임 클라이언트 디바이스(들)(140)에 전송될 수 있다. 이러한 방식으로, 게임 시스템(들)(110)은 온라인 게임을 호스팅할 수 있다.
예시적인 환경(100)은, 동일한 게임 및/또는 게임 모드를 서로 플레이하기를 희망하는 플레이어(들)(142)를 매칭하고 온라인 게임들(예컨대, 동일한 게임 및/또는 상이한 게임들)을 플레이하는 플레이어(들)(142) 사이의 통신을 위한 플랫폼을 제공하기 위한 매치메이킹 시스템(들)(120)을 더 포함할 수 있다. 매치메이킹 시스템(들)(120)은, 온라인 게임을 플레이하기를 희망하는 플레이어(들)(142)의 게임 시스템(들)(110)으로부터 표시를 수신할 수 있다.
매치메이킹 시스템(들)(120)은 플레이어(들)(142) 사이의 매치메이킹을 시도할 수 있다. 매치메이킹 시스템(들)(120)은, 이를테면 플레이어 데이터저장소로부터, 특정 온라인 게임을 플레이하기를 희망하는 플레이어(들)(142)에 관한 정보에 액세스할 수 있다. 플레이어(들)(142) 각각에 대한 사용자 계정은 개개의 플레이어(들)(142)에 관한 다양한 정보를 연관시킬 수 있고, 플레이어 데이터저장소에 저장되고 매치메이킹 시스템(들)(120)에 의해 액세스될 수 있다.
플레이어(들)(142)는, 특정 게임에서의 기량(skill)과 같은 플레이어(들)(142)와 연관된 하나 이상의 메트릭에 따라 매칭될 수 있다. 기량 점수들에 부가하여 또는 그에 대안적으로, 플레이어(들)(142)는 다양한 다른 인자들에 대해 매칭될 수 있다. 일부 예시적인 매치메이킹 인자들은 기량에 부가하여 습성(behavior)과 관련될 수 있고, 플레이어의 플레이스타일을 포함할 수 있다. 예컨대, 플레이어(들)(142)를 팀 데스매치를 위한 팀으로서 매칭할 때, 매치메이킹 시스템(들)(120)은, 유사한 공격성 수준들 또는 공격성 수준들의 혼합비(mix)를 나타내는 플레이어(들)(142)를 매칭하는 것을 선호할 수 있다. 이는, 상이한 전술들을 활용하는 상이한 플레이어들로 인해 데스매치 팀들이 분열될 때 플레이어들이 경험하는 불만을 완화할 수 있다. 데스매치 팀을 상이한 전술들을 사용하는 상이한 그룹들로 나누는 것은 종종, 공유된 전술적 접근법으로 단일 유닛으로서 동작하는 상대 팀에게 패배하는 것을 초래할 수 있다. 상이한 장르들 또는 상이한 개별 게임들에 대해 활용되는 플레이어들의 플레이스타일의 양상들은 예마다 다를 수 있다.
일부 다른 예시적인 매치메이킹 인자들은, 이를테면, 캐릭터 클래스, 팀 선택, 포지션 또는 역할 선호 등과 관련된 캐릭터 또는 셋업일 수 있다. 예컨대, 온라인 롤플레잉 게임에 대해 플레이어(들)(142)를 매칭할 때, 매치메이킹 시스템(들)(120)은, 플레이어(들)(142)의 캐릭터 클래스들을 고려할 수 있다. 다른 매치메이킹 인자들은, 플레이어(들)(142)의 팀 동료들 또는 팀들과 관련될 수 있다. 예에서, 매치메이킹은, 플레이어(142)를, 플레이어(142)가 정기적으로 함께 플레이하는 다른 플레이어들과 매칭할 수 있다.
플레이어(들)(142)를 매칭했으면, 매치메이킹 시스템(들)(120)은, 매치(들)에 대한 온라인 게임(들)의 인스턴스(들)의 생성을 지시할 수 있다. 더 상세하게는, 매치메이킹 시스템(들)(120)은, 매칭된 플레이어(들)(142) 사이에 온라인 게임을 인스턴스화할 것을 게임 시스템(들)(110)에 요청할 수 있다. 예컨대, 매치메이킹 시스템(들)(120)은, 매칭된 플레이어(들)(142) 사이의 온라인 게임의 인스턴스의 인스턴스화를 위해 게임 클라이언트 디바이스(들)(140)에 대한 연결 정보를 게임 시스템(들)(110)에 제공할 수 있다. 본원에 논의되는 바와 같이, 온라인 게임의 인스턴스들 및 매치들은 상호교환가능하게 사용될 수 있고, 매칭된 플레이어들이 단일 맵이든, 다수의 연결된 맵들이든, 또는 게임플레이 세계이든 간에 온라인 게임에서 플레이하는 공유된 게임플레이 환경을 지칭할 수 있다. 일부 예들에서, 서버는, 매칭된 플레이어들에 대한 게임의 매치 또는 인스턴스를 호스팅할 수 있다.
플레이어(142)가 부가적인 게임플레이에 관여함에 따라, 게이밍 시스템(들)(110)은 게임 상태 정보 중 일부 또는 전부를 매치메이킹 시스템(들)(120)에 제공할 수 있다. 매치메이킹 시스템(들)(120)은, 게임 상태 정보 또는 게임 상태 정보로부터 도출된 데이터를 저장할 수 있다. 이러한 방식으로, 플레이어의 습성들 및 플레이스타일이 시간 경과에 따라 진화하는 경우에도 또는 진화함에 따라, 플레이어(142)에 대한 습성 데이터 및/또는 게임플레이 이력이 최신으로 유지될 수 있다.
위에 언급된 바와 같이, 매치메이킹 시스템(들)(120)은 추가로, 온라인 게임들(예컨대, 동일한 게임 및/또는 상이한 게임들)을 플레이하는 플레이어(들)(142) 사이의 통신을 위한 플랫폼을 제공할 수 있다. 구현에 따라, 매치메이킹 시스템(들)(120)은, 플레이어(들)(142)가 다른 플레이어(들)(142)와의 관계들을 설정하기 위해 친구 목록, 커뮤니티들 및/또는 그룹들, 및 다른 연결들을 활용할 수 있는 소셜 플랫폼을 제공할 수 있다. 매치메이킹 시스템(들)(120)은 또한, 플레이어(들)(142)가 소셜 플랫폼을 통해 통신할 수 있게 하는 직접 메시징, 그룹 메시징, 공개 메시징, 채팅, 및/또는 다른 통신 기능성을 제공할 수 있다.
게다가, 매치메이킹 시스템(들)(120)(또는 게임 시스템(들)(110))은, 플레이어(들)(142)가 온라인 게임의 매치들 또는 인스턴스들에 있는 동안 다른 플레이어(들)(142)와 통신할 수 있게 할 수 있는 매치-내(in-match) 통신 기능성을 포함할 수 있다.
예시적인 환경(100)은, 개개의 입력 디바이스(들)를 통해, 이하에서 개별적으로 또는 총괄적으로 관전자 디바이스(들)(150)로 지칭되는 개개의 관전자 디바이스(들)(150(1), 150(2), 150(3), ... 150(N))와 상호작용할 수 있는, 이하에서 개별적으로 또는 총괄적으로 관전자(들)(152)로 지칭되는 하나 이상의 관전자(들)(152(1), 152(2), 152(3), ... 152(N))를 포함할 수 있다.
관전자 시스템(들)(130)은, 게임 시스템(들)(110)으로부터 (예컨대, 전체 게임 상태에 대한) 게임 상태 정보를 수신하고 관전자 디바이스들(150)과 함께 동작하여 관전자(들)(152)가 온라인 게임을 관전할 수 있게 할 수 있다. 본원에서의 예들은 전체 게임 상태가 게이밍 시스템(들)(11)으로부터 수신되는 것을 논의하지만, 일부 예들에서, 관전자 시스템(들)(130)은, 전체 게임 상태가 온라인 게임 전체에 걸쳐 관전자 시스템(들)에서 이용가능하도록 전체 게임 상태에 대한 업데이트들을 수신할 수 있다. 일반적으로, 관전자 시스템(들)(130)은, 개별 관전자 디바이스(들)(150)에 의해 제공되는 기능성에 기반할 수 있는 하나 이상의 유형의 관전자 셋업들에 대한 지원을 제공할 수 있다. 일부 관전자 셋업들에서, 관전자 디바이스(들)(150)는, 관전자에 대한 뷰를 렌더링하고 관전자 입력을 관전자 시스템(들)(130)에 제공하는 것이 가능한 관전자 클라이언트를 포함할 수 있다. 그에 부가하여 또는 대안적으로, 일부 관전자 셋업들에서, 관전자 디바이스(들)(150)는, 미디어 스트림으로서 관전자 시스템(들)(130)에서 렌더링된 뷰를 수신하고 관전자에게 제시하는 것 모두가 가능한 스트리밍 미디어 플레이어를 포함할 수 있고, 관전자 입력을 관전자 시스템(들)(130)에 제공할 수 있다. 이러한 예시적인 관전자 셋업들의 부가적인 세부사항들이 아래에서 제공된다.
관전자에 대한 뷰를 렌더링하는 것이 가능한 관전자 클라이언트를 포함하는 관전자 디바이스(들)(150)를 수반하는 관전자 셋업들에서, 관전자 디바이스(들)(150)는, 게임 클라이언트 디바이스(들)(140)가 게임 시스템(들)(110)으로부터 게임 상태 정보를 수신하는 것에 대해 위에 논의된 것과 유사한 방식으로 하나 이상의 관전자 시스템(들)(130)으로부터 게임 상태 정보를 수신할 수 있다. 게임 상태 정보는, 반복적으로 그리고/또는 연속적으로 그리고/또는 온라인 게임의 이벤트들이 발생하는 경우 수신될 수 있다.
관전자 디바이스(들)(150) 상에서 동작하는 관전자 클라이언트는, 적어도 게임 상태 정보에 기반하여 개개의 관전자(들)(152)에게 온라인 게임과 연관된 콘텐츠를 렌더링하도록 구성될 수 있다. 더 상세하게는, 관전자 디바이스(들)(150)는, 가장 최근의 게임 상태 정보를 사용하여 온라인 게임의 현재의 이벤트들을 콘텐츠로서 렌더링할 수 있다. 이러한 콘텐츠는, 비디오, 오디오, 햅틱, 이들의 조합들, 또는 유사한 콘텐츠 구성요소들을 포함할 수 있다.
온라인 게임에서 이벤트들이 발생하는 경우, 관전자 시스템(들)(130)은, 업데이트된 게임 상태 정보를 게임 시스템(들)(110)으로부터 수신하고 그 게임 상태 정보를 관전자 디바이스(들)(150)에 전송할 수 있다. 예컨대, 관전자(들)(152)가 온라인 축구 게임을 관전하고 있고, 골키퍼들 중 하나를 플레이하고 있는 플레이어가 특정 방향으로 이동하는 경우, 그러한 움직임 및/또는 골키퍼 위치는, 골키퍼가 특정 방향으로 이동하는 이벤트를 렌더링하기 위해 관전자 디바이스(들)(150) 각각에 전송될 수 있는 게임 상태 정보에서 표현될 수 있다. 이러한 방식으로, 온라인 게임의 콘텐츠는 게임 플레이 전체에 걸쳐 반복적으로 업데이트된다. 추가로, 개별 관전자 디바이스(들)(150)에 전송되는 게임 상태 정보는 게임 시스템(들)(110)으로부터 관전자 시스템(들)(130)에 의해 수신되는 전체 게임 상태의 서브세트 또는 파생물일 수 있다. 예컨대, 팀 데스매치 게임에서, 관전자의 관전자 디바이스(150)에 제공되는 게임 상태 정보는, 게임 시뮬레이션에서 관전자의 시점의 위치에 기반하여 생성되는 전체 게임 상태의 서브세트 또는 파생물일 수 있다.
관전자 디바이스(들)(150)가 관전자 시스템(들)(130)으로부터 게임 상태 정보를 수신할 때, 관전자 디바이스(150)는, 온라인 게임과 연관된 업데이트된 콘텐츠를 그의 개개의 관전자(152)에게 렌더링할 수 있다. 이러한 업데이트된 콘텐츠는, 게임의 이전 상태(예컨대, 골키퍼의 움직임) 이후에 발생했을 수 있는 이벤트들을 구현할 수 있다.
관전자 디바이스(들)(150)는, 개개의 입력 디바이스(들)를 통해 개개의 관전자(들)(152)로부터 입력을 수용할 수 있다. 관전자(152)로부터의 입력은, 관전자의 시점 또는 렌더링된 뷰와 관련될 수 있고/거나 온라인 게임에서의 이벤트들에 응답할 수 있다. 예컨대, 온라인 농구 게임에서, 관전자(152)가 렌더링된 콘텐츠에서 플레이어가 3점슛을 쏘려고 시도하는 것과 같은 이벤트를 보는 경우, 관전자(152)는, 관전자가 플레이어 및 골을 볼 수 있도록 관전자의 시점을 다시 이동시키기를 요망할 수 있다. 관전자(152)로부터의, 그 관전자의 입력 디바이스를 통해 포착되는 바와 같은 시점에서의 의도된 변경은, 관전자 디바이스(150)에 의해 수신되고 관전자 디바이스에 의해 활용되어, 관전자의 입력에 따라, 렌더링되는 뷰를 변경할 수 있다. 일부 예들에서, 관전자 디바이스(150)는, 관전자의 뷰에서의 변화를 관전자 시스템(들)(130)에 전송하여, 관전자 시스템(들)(130)이 관전자에 대해 적절한 게임 상태 정보를 제공할 수 있게 할 수 있다.
관전자 디바이스(들)(150)는, 소니 플레이스테이션® 라인의 시스템들, 닌텐도 스위치® 라인의 시스템들, 마이크로소프트 엑스박스® 라인의 시스템들, 소니, 마이크로소프트, 닌텐도, 또는 세가에 의해 제조되는 임의의 게이밍 디바이스, 인텔 아키텍처(IA)® 기반 시스템, 애플 매킨토시® 시스템, 넷북 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터 시스템, 셋톱 박스 시스템, 핸드헬드 시스템, 스마트폰, 개인 휴대 정보 단말기, 이들의 조합들 등을 포함하지만 이에 제한되지 않는 임의의 적합한 디바이스일 수 있다. 일반적으로, 관전자 디바이스(들)(150)는, 자신 상에서 프로그램들(예컨대, 관전자 클라이언트들)을 실행하여, 관전자 시스템(들)(130)과 상호작용하고 관전자 시스템(들)(130)으로부터 수신되는 게임 상태 정보에 적어도 부분적으로 기반하여 게임 콘텐츠를 렌더링할 수 있다. 부가적으로, 관전자 디바이스(들)(150)는 관전자 시스템(들)(130)에 관전자 입력의 표시들을 전송할 수 있다. 게임 상태 정보 및 관전자 입력 정보는, 애플리케이션 프로그램 인터페이스(API)들과 같은 임의의 적합한 메커니즘을 사용하여 관전자 디바이스(들)(150)와 관전자 시스템(들)(130) 사이에서 공유될 수 있다.
관전자 시스템(들)(130)은, 관전자 디바이스(들)(150)로부터 입력들 또는 관전자 시점들을 수신하고, 온라인 게임 콘텐츠를 관전자(들)(152)에게 렌더링하기 위해 관전자 디바이스(들)(150)에 전송되는 게임 상태 정보를 업데이트할 수 있다. 이러한 방식으로, 관전자 시스템(들)(130)은, 게임 상태 정보로부터 관전자 뷰를 렌더링하는 것이 가능한 관전자 클라이언트를 포함하는 관전자 디바이스(들)(150)에 대해 온라인 게임의 관전을 제공할 수 있다.
미디어 스트림으로서 관전자 시스템(들)(130)에서 렌더링된 뷰를 수신하고 관전자에게 제시하는 것이 가능한 스트리밍 미디어 플레이어를 포함하고, 관전자 입력을 관전자 시스템(들)(130)에 제공할 수 있는 관전자 디바이스(들)(150)을 수반하는 관전자 셋업들에서, 하나 이상의 관전자 시스템(들)(130)으로부터 게임 상태 정보를 수신하기보다는, 관전자 디바이스(150)는, 개개의 관전자(152)의 뷰 또는 시점에 대응하는 미디어 스트림을 수신할 수 있다. 미디어 스트림은, 반복적으로 그리고/또는 연속적으로 그리고/또는 온라인 게임의 이벤트들이 발생하는 경우 수신될 수 있다.
관전자 시스템(들)(130)은, 적어도 게임 상태 정보 및 개개의 관전자(152)의 관전자 시점 또는 관전자 상태에 기반하여, 개개의 관전자(들)(152)에 대해 온라인 게임과 연관된 콘텐츠를 렌더링하도록 구성될 수 있다. 더 상세하게는, 관전자 시스템(들)(130)은, 가장 최근의 게임 상태 정보를 사용하여 온라인 게임의 현재의 이벤트들을 미디어 스트림 콘텐츠로서 렌더링할 수 있다. 이러한 콘텐츠는, 비디오, 오디오, 햅틱, 이들의 조합들, 또는 유사한 콘텐츠 구성요소들을 포함할 수 있다.
온라인 게임에서 이벤트들이 발생하는 경우, 관전자 시스템(들)(130)은, 업데이트된 게임 상태 정보를 게임 시스템(들)(110)으로부터 수신하고 업데이트된 미디어 스트림 콘텐츠를 관전자 디바이스(들)(150)에게 렌더링하고 전송할 수 있다. 예컨대, 관전자(들)(152)가 온라인 축구 게임을 관전하고 있고, 골키퍼들 중 하나를 플레이하고 있는 플레이어가 특정 방향으로 이동하는 경우, 그러한 움직임 및/또는 골키퍼 위치는, 관전자(152)에 대한 제시를 위해 관전자 디바이스(들)(150) 각각에 전송될 수 있는 미디어 스트림 콘텐츠에서 표현될 수 있다. 이러한 방식으로, 온라인 게임의 콘텐츠는 게임 플레이 전체에 걸쳐 반복적으로 업데이트된다.
관전자 디바이스(들)(150)가 업데이트된 미디어 스트림 콘텐츠를 관전자 시스템(들)(130)으로부터 수신할 때, 관전자 디바이스(150)는, 온라인 게임과 연관된 업데이트된 콘텐츠를 스트리밍 미디어 플레이어를 통해 그의 개개의 관전자(152)에게 제시할 수 있다. 이러한 업데이트된 콘텐츠는, 게임의 이전 상태(예컨대, 골키퍼의 움직임) 이후에 발생했을 수 있는 이벤트들을 구현할 수 있다.
관전자 디바이스(들)(150)는, 개개의 입력 디바이스(들)를 통해 개개의 관전자(들)(152)로부터 입력을 수용할 수 있다. 관전자(152)로부터의 입력은, 관전자의 시점 또는 렌더링된 뷰와 관련될 수 있고/거나 온라인 게임에서의 이벤트들에 응답할 수 있다. 예컨대, 온라인 농구 게임에서, 관전자(152)가 렌더링된 콘텐츠에서 플레이어가 3점슛을 쏘려고 시도하는 것과 같은 이벤트를 보는 경우, 관전자는, 관전자가 플레이어 및 골을 볼 수 있도록 관전자의 시점을 다시 이동시키기를 요망할 수 있다. 관전자(152)로부터의, 그 관전자의 입력 디바이스를 통해 캡처되는 바와 같은 시점에서의 의도된 변경은, 관전자 디바이스(150)에 의해 수신되어 관전자 시스템(들)(130)에 전송될 수 있다. 관전자 시스템(들)(130)은, 관전자의 입력에 따라, 렌더링되는 뷰를 변경할 수 있다.
관전자 디바이스(들)(150)는, 소니 플레이스테이션® 라인의 시스템들, 닌텐도 스위치® 라인의 시스템들, 마이크로소프트 엑스박스® 라인의 시스템들, 소니, 마이크로소프트, 닌텐도, 또는 세가에 의해 제조되는 임의의 게이밍 디바이스, 인텔 아키텍처(IA)® 기반 시스템, 애플 매킨토시® 시스템, 넷북 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터 시스템, 셋톱 박스 시스템, 핸드헬드 시스템, 스마트폰, 개인 휴대 정보 단말기, 이들의 조합들 등을 포함하지만 이에 제한되지 않는 임의의 적합한 디바이스일 수 있다. 일반적으로, 관전자 디바이스(들)(150)는, 자신 상에서 프로그램들을 실행하여, 관전자 시스템(들)(130)과 상호작용하고 관전자 시스템(들)(130)으로부터 수신되는 미디어 스트림에 적어도 부분적으로 기반하여 게임 콘텐츠의 미디어 스트림을 디스플레이할 수 있다. 부가적으로, 관전자 디바이스(들)(150)는 관전자 시스템(들)(130)에 관전자 입력의 표시들을 전송할 수 있다. 미디어 스트림 데이터 및 관전자 입력 정보는, 애플리케이션 프로그램 인터페이스(API)들과 같은 임의의 적합한 메커니즘을 사용하여 관전자 디바이스(들)(150)와 관전자 시스템(들)(130) 사이에서 공유될 수 있다.
관전자 시스템(들)(130)은, 관전자 디바이스(들)(150)로부터 입력들 또는 관전자 시점들을 수신하고, 관전자 디바이스(들)(150)에 전송되는 미디어 스트림 콘텐츠에 대한 관전자의 뷰 또는 시점의 렌더링을 업데이트할 수 있다. 이러한 방식으로, 관전자 시스템(들)(130)은, 미디어 스트림으로서 관전자 시스템(들)(130)에서 렌더링된 뷰를 수신하고 관전자에게 제시하는 것 모두가 가능한 스트리밍 미디어 플레이어를 포함하는 관전자 디바이스(들)(150)에 대해 온라인 게임의 관전을 제공할 수 있고, 관전자 입력을 관전자 시스템(들)(130)에 제공할 수 있다.
위에 설명된 관전자 셋업들은 개개의 관전자(152)로부터의 입력에 의해 드라이빙되는 관전자 상태들 또는 시점들을 가질 수 있는 상호작용형 뷰들을 포함하지만, 예들은 그렇게 제한되지 않는다. 예컨대, 관전자의 시점은 택해진 뷰일 수 있다. 위에 논의된 바와 같이, 택해진 뷰의 일 예는 스트리밍 게임 플레이어의 뷰를 미러링하는 시점이다. 위에 언급된 바와 같이, 그러한 경우에서, 관전자 시스템(들)(130)은, 스트리밍 게임 플레이어에 대한 시점, 설정들, 및/또는 입력을 수신하고, 그 정보를 활용하여, 렌더링된 미디어 스트림을 관전자 디바이스(들)(150)에 제공할 수 있다. 다른 예시적인 선택된 뷰는 관전자 입력에 기반하여 선택되거나 택해지는 미리 정의된 뷰 또는 시점일 수 있다.
게다가, 일부 예들은, 관전자 시점들, 뷰들에 대한 변경들에 대한 제한들, 또는 관전에 대한 다른 제한들(예컨대, 지연된 시청)을 포함할 수 있다. 예컨대, 온라인 게임들에서 관전은 제한되거나 지연될 수 있으며, 여기서, (예컨대, 플레이어가 관전자 디바이스로서 동작하는 다른 디바이스를 갖는 것으로 인해 또는 관전자에 의해 플레이어에게 중계되는 정보에 의해) 플레이어가 관전자 시점으로부터의 정보를 갖는 것에 의해 불공정한 이점이 얻어질 수 있다. 본 개시내용에 기반하여 다른 변형들이 명백할 것이다.
관전자 시스템(들)(130)은, 부가적인 관전자들(152)을 수용하기 위해 부가적인 관전자 노드(들) 또는 서버(들)를 인스턴스화할 수 있는 중계방송 아키텍처를 제공하도록 추가로 동작할 수 있다. 예컨대, 관전자 시스템(들)(130)의 현재의 관전자 노드 또는 서버가 관전자 수용정원에 도달했을 때, 부가적인 관전자 노드 또는 서버가 인스턴스화될 수 있고, 이전에 설정된 관전자 노드 또는 서버와 새롭게 인스턴스화된 관전자 노드 또는 서버 사이에 게임 상태 정보의 중계방송이 설정될 수 있다. 그러한 중계방송 아키텍처는 임의의 관전자 셋업(예컨대, 관전자 디바이스(150)에서 뷰를 렌더링하는 관전자 클라이언트들을 포함하는 관전자 셋업들, 관전자 시스템들(130)로부터 관전자 디바이스(150)로의 미디어 스트리밍을 포함하는 관전자 셋업들 등)에 대해 제공될 수 있다.
매치메이킹 시스템(들)(120)은, 관전자(들)(152)가 관전하기를 요망하는 온라인 게임(들)에 관전자(들)(152)를 연결하기 위해 게임 시스템(들)(110) 및 관전자 시스템(들)(130)과 함께 동작할 수 있다. 매치메이킹 시스템(들)(120)은, 온라인 게임을 관전하기를 희망하는 관전자(들)(152)의 게임 시스템(들)(110)으로부터 표시를 수신할 수 있다.
매치메이킹 시스템(들)(120)은, 관전자가 게임 시스템(들)(110)에서 진행 중인 온라인 게임들 중에서 관전할 온라인 게임을 찾기 위한 인터페이스를 제공할 수 있다. 그에 부가하여 또는 대안적으로, 관전자 디바이스(150)는, 관전자(152)가 관전하기를 희망하는 온라인 게임의 표시(예컨대, 스트리밍 게임 플레이어에 의해 게시된 링크)를 매치메이킹 시스템(들)(120)에 제공할 수 있다.
관전자(152)가 관전하기를 희망하는 온라인 게임을 결정했으면, 매치메이킹 시스템(들)(120)은, 관전이 온라인 게임에 대해 이미 인에이블링되거나 인스턴스화되었는지 여부를 결정할 수 있다. 물론, 다른 예들은 모든 각각의 온라인 게임에 대한 관전을 인스턴스화할 수 있고, 그에 따라, 이러한 동작을 배제할 수 있다. 관전이 온라인 게임에 대해 인에이블되거나 인스턴스화되지 않은 경우, 매치메이킹 시스템은, 온라인 게임에 대해 관전이 인에이블링 및 인스턴스화될 것을 요청할 수 있다. 더 상세하게는, 매치메이킹 시스템(들)(120)은, 게임 시스템(들)(110) 및/또는 관전자 시스템(들)이 온라인 게임에 대한 관전자 노드 또는 서버를 인에이블링 및/또는 인스턴스화할 것을 요청할 수 있다. 관전자가 인에이블링 및 인스턴스화될 때, 매치메이킹 시스템(들)(120)은, 온라인 게임의 관전자(들)에 대한 관전자(152)의 부가를 위해 관전자 디바이스(들)(150)에 대한 연결 정보를 관전자 시스템(들)(130)에 제공할 수 있다. 위에 논의된 바와 같이, 관전자 시스템(들)(130)은, 부가적인 관전자 노드(들) 또는 서버(들)를 인스턴스화하여 부가적인 관전자들(152)을 수용할 수 있다.
매치메이킹 시스템(들)(120) 및 관전자 시스템(들)(130)은 추가로, 온라인 게임들(예컨대, 동일한 게임 및/또는 상이한 게임들)을 관전하고 있는 관전자(들)(152) 사이의 통신을 위한 플랫폼을 제공할 수 있다. 구현에 따라, 매치메이킹 시스템(들)(120)은, 관전자(들)(152)가 다른 관전자(들)(152) 및/또는 플레이어(들)(142)와의 관계들을 설정하기 위해 친구 목록, 커뮤니티들 및/또는 그룹들, 및 다른 연결들을 활용할 수 있는 소셜 플랫폼을 제공할 수 있다. 매치메이킹 시스템(들)(120)은 또한, 관전자(들)(152)가 소셜 플랫폼을 통해 통신할 수 있게 하는 직접 메시징, 그룹 메시징, 공개 메시징, 채팅, 및/또는 다른 통신 기능성을 제공할 수 있다.
게다가, 관전자 시스템(들)(130)은, 관전자(들)(152)가 온라인 게임의 매치들 또는 인스턴스들에 있는 동안 다른 관전자(들)(152)와 통신할 수 있게 할 수 있는 매치-내 통신 기능성을 포함할 수 있다. 위에 언급된 바와 같이, 관전자 시스템(들)(130)은, 관전자에 대해 몰입형 가상 경기장 관전 경험을 제공할 수 있다. 이러한 가상 경기장 관전 경험은, 가상 경기장에서 근접하게 위치된 관전자들 간의 시뮬레이팅된 주변 음성 통신들을 포함할 수 있다. 다른 매치-내 통신 옵션들이 관전자들에게 제공될 수 있으며, 본원에 논의된 예들에 제한되지 않는다. 관전자들 간의 매치-내 통신을 위한 다른 옵션들은, 관전자 그룹 통신들 및 관전자 간 직접 통신들을 포함한다.
구현에 따라, 관전자(들)의 매치-내 통신들은 플레이어(들)(142)가 이용가능하거나 그에게 제시될 수 있거나 또는 그렇지 않을 수 있고, 그 반대도 마찬가지이다. 예컨대, 위에 논의된 가상 경기장 경험에서, 플레이어(들)(142)가 또한 동일한 스포츠 게임의 실세계 플레이어와 유사한 방식으로 경기장 관전자들의 음성 통신들(예컨대, 환호, 야유 등)을 들을 수 있다. 다른 예에서, 온라인 게임과의 간섭을 방지하기 위해, 관전자 통신들은, 게임의 상태에 대한 플레이어 지식이 제한되는 온라인 게임들(예컨대, 1인칭 게임들)에서 플레이어(들)(142)에게 제시되지 않을 수 있다. 그러한 예에서, 플레이어 통신들은, 관전자 시스템의 부당이용을 통해 불공정한 이점이 획득되는 것의 위험에 따라, 관전자들에 대해 차단될 수 있거나 차단되지 않을 수 있다. 본 개시내용에 기반하여 다른 변형들이 명백할 것이다.
관전자 시스템(들)(130)의 아키텍처들에 관한 부가적인 세부사항들이 도 2 내지 도 9에 예시되고 아래에서 논의된다.
도 2는 본 개시내용의 예시적인 실시예들에 따른, 중계방송 관전자 서버 아키텍처를 통해 온라인 게임의 관전을 제공할 수 있는 예시적인 온라인 게임 시스템의 예시적인 블록도(200)를 예시한다. 예시적인 온라인 게임 시스템(들)은, 게임 엔진 서버 또는 프로세서들(202)(이하에서, 게임 엔진 서버(202)), 중계방송 관전자 서버(들)(204(1)-(3)), 플레이어 게임 클라이언트(들)(206(1)-(N)), 및 관전자 클라이언트들(208(1)-(3), 210(1)-(3) 및 212(1)-(3))을 포함할 수 있다. 예시적인 온라인 게임 시스템(들)은, 관전자 클라이언트들(208(1)-(3), 210(1)-(3), 및 212(1)-(3))의 관전자들에 의해 관전될 수 있는, 플레이어 게임 클라이언트(들)(206(1)-(N))의 플레이어(들)에 대한 온라인 게임을 동작시킬 수 있다. 도 2의 예시된 온라인 게임 시스템은 도 1에 도시된 시스템들의 예시적인 구현일 수 있다.
동작 시, 게임 엔진 서버(202)는, 플레이어 게임 클라이언트(들)(206)와 연관된 플레이어들 사이에서 온라인 게임을 호스팅하도록 동작할 수 있다. 더 상세하게는, 게임 엔진 서버(202)는, 온라인 게임의 게임 시뮬레이션 기능성을 수행할 수 있다. 동작 동안, 게임 엔진 서버(202) 및 플레이어 게임 클라이언트(들)(206)는, 플레이어 게임 클라이언트 상태 데이터(214)를 반복적으로 그리고/또는 연속적으로 교환할 수 있다. 플레이어 게임 클라이언트 상태 데이터(214)는, 게임 엔진 서버(202)에 의해 플레이어 게임 클라이언트(들)(206)에 제공되는 게임 상태 정보, 및 플레이어 게임 클라이언트(들)(206)에 의해 게임 엔진 서버(202)에 제공되는 플레이어 입력을 포함할 수 있다. 그러한 교환들은 게임 시스템(들)(110) 및 게임 클라이언트 디바이스(들)(140)에 대해 위에 논의된 바와 같이 수행될 수 있다. 이러한 방식으로, 게임 엔진 서버(202)는, 플레이어 게임 클라이언트(들)(206)와 연관된 플레이어들 사이에서 온라인 게임을 호스팅할 수 있다.
일단 온라인 게임이 인스턴스화되었으면, 관전자들은 온라인 게임을 관전하는 것을 시작할 수 있다. 동작들에서, 게임 엔진 서버(202)는 전체 게임 상태(216)를 중계방송 관전자 서버(204)(예컨대, 204(1))에 전송할 수 있다. 일부 구현들에서, 중계방송 관전자 서버(204(1))는 온라인 게임이 인스턴스화될 때 초기화될 수 있다. 대안적으로 또는 부가적으로, 중계방송 관전자 서버(204)의 초기화 및 게임 엔진 서버(202)로부터 중계방송 관전자 서버(204(1))로의 전체 게임 상태(216)의 전송은, 관전자 또는 관전자(들)가 온라인 게임을 관전하기를 요청하는 것에 대한 응답으로 수행될 수 있다. 다른 변형들이 가능하다. 예컨대, 게임 엔진 서버는, 임계 수의 관전자들에 대해 관전 기능성을 제공할 수 있다. 일단 임계 수를 초과한 관전자들이 온라인 게임을 관전하기를 요청했으면, 중계방송 관전자 서버(204(1))가 인스턴스화될 수 있고, 게임 엔진 서버(202)는 기존 관전자들을 중계방송 관전자 서버(204(1))로 이전하고, 전체 게임 상태(216)의 중계방송 관전자 서버(204(1))로의 전송을 시작할 수 있다. 대안적으로, 일단 임계 수를 초과한 관전자들이 온라인 게임을 관전하기를 요청했으면, 중계방송 관전자 서버(204(1))가 인스턴스화될 수 있고, 게임 엔진 서버(202)는, 전체 게임 상태(216)의 중계방송 관전자 서버(204(1))로의 전송을 시작할 수 있지만, 게임 엔진 서버(202)는, 새로운 관전자들을 중계방송 관전자 서버(204(1))로 이전하면서 기존 관전자들 중 하나 이상을 계속 서비스할 수 있다.
중계방송 관전자 서버들(204)은, 전체 게임 상태(216)에 기반하여 임계 수의 관전자들에 대한 관전을 용이하게 하도록 동작할 수 있다. 더 상세하게는, 중계방송 관전자 서버(들)(204)는, 관전자 클라이언트 게임 상태 데이터(218, 222, 또는 224)를 관전자 클라이언트(들)(208, 210, 또는 212)와 반복적으로 그리고/또는 연속적으로 교환할 수 있다. 관전자 클라이언트 게임 상태 데이터(218, 222, 또는 224)는 중계방송 관전자 서버(204)에 의해 관전자 클라이언트(들)(208, 210, 또는 212)에 제공되는 게임 상태 정보, 및 관전자 클라이언트(들)(208, 210, 또는 212)에 의해 중계방송 관전자 서버(204)에 제공되는 플레이어 입력 또는 관전자 뷰 또는 시점 데이터를 포함할 수 있다. 그러한 교환들은 관전자 시스템(들)(130) 및 관전자 디바이스(들)(150)에 대해 위에 논의된 바와 같이 수행될 수 있다. 이러한 방식으로, 중계방송 관전자 서버(들)(204)는, 게임 상태 정보로부터 관전자 뷰를 렌더링하는 것이 가능한 관전자 클라이언트들을 활용하여 관전자들에 대한 온라인 게임의 관전을 용이하게 할 수 있다.
새로운 관전자가 온라인 게임을 관전하기를 요청할 때, 관전자 시스템은, 기존 중계방송 관전자 서버들(204)이 새로운 관전자에 대한 이용가능한 슬롯 또는 슬롯들을 갖는지 여부를 결정할 수 있다. 새로운 관전자에 대해 슬롯이 이용가능하지 않은 것으로 결정될 때, 다른 중계방송 관전자 서버(204)(예컨대, 중계방송 관전자 서버들(204(2) 또는 204(3))가 인스턴스화될 수 있다. 기존 중계방송 관전자 서버(예컨대, 204(1))는, 후속하여 초기화된 중계방송 관전자 서버(예컨대, 중계방송 관전자 서버들(204(2) 또는 204(3))로의 전체 게임 상태 중계방송(220)을 시작할 수 있다. 이어서, 새로운 관전자는 부가적인 중계방송 관전자 서버(204)로 이전될 수 있다. 부가적인 중계방송 서버(204)는, 위에 논의된 것과 동일하거나 유사한 방식으로 관전을 제공할 수 있다. 도시되진 않지만, 임의의 중계방송 관전자 서버(204)와 부가적인 중계방송 관전자 서버(204) 사이에 전체 게임 상태 중계방송(220)이 설정될 수도 있다. 예컨대, 중계방송 관전자 서버(204(1))가 중계방송 관전자 서버들(204(2) 및 204(3)) 둘 모두와 전체 게임 상태 중계방송(220)을 설정한 후에, 제4 중계방송 관전자 서버(204)에 대한 전체 게임 상태 중계방송(220)이 중계방송 관전자 서버(204(2))로부터 소싱될 수 있다. 전체 게임 상태 중계방송(220)을 소싱할 기존 중계방송 관전자 서버(204)의 결정은, 임계치, 부하-밸런싱(load-balancing) 알고리즘 등에 기반할 수 있다. 다른 구현 세부사항들은 다를 수 있다. 예컨대, 부가적인 중계방송 관전자 서버(204)의 설정은, 이용가능한 슬롯에 대한 새로운 관전자의 배정, 및 (예컨대, 슬롯이 이용가능하지 않다는 결정에 대한 응답이 아니라) 제한된 잔여 슬롯들이 이용가능하다는 결정에 대한 응답으로 이루어질 수 있다. 특히, 부가적인 중계방송 관전자 서버(204)는, 기존 중계방송 관전자 서버들(204)의 마지막 이용가능한 슬롯에 대한 새로운 관전자의 배정에 대한 응답으로 인스턴스화될 수 있다.
구현에 따라, 중계방송 관전자 서버들(204)에 대한 관전자들의 배정 및 전체 게임 상태 중계방송들(220)의 설정의 관리는 다양한 디바이스들에 의해 처리될 수 있다. 예컨대, 1차 중계방송 관전자 서버(204)(예컨대, 204(1))는 후속하여 인스턴스화된 중계방송 관전자 서버(들)(204)에 대한 상태 정보를 수신하고 유지할 수 있다. 1차 중계방송 관전자 서버(204)는, 매치메이킹 시스템(120)으로부터 새로운 관전자와 관련된 정보를 수신하고, 새로운 관전자를 기존 중계방송 관전자 서버(204)에 배정하거나 또는 새로운 중계방송 관전자 서버(204)를 인스턴스화하여 관전자를 새로운 중계방송 관전자 서버(204)에 배정할 수 있다. 위에 언급된 바와 같이, 온라인 게임 시스템의 다른 디바이스들 또는 시스템들이 관전자들의 배정 및 새로운 중계방송 관전자 서버들(204)의 인스턴스화를 관리할 수 있다. 예컨대, 그러한 관리는, 관전자 시스템의 전용 관리 서버, 게임 엔진 서버(202), 매치메이킹 시스템(120) 등에 의해 처리될 수 있다.
도 3은 본 개시내용의 예시적인 실시예들에 따른, 미디어 스트림으로서 관전자 시스템(들)에서 렌더링된 뷰를 수신하고 관전자에게 제시하는 것이 가능한 스트리밍 미디어 플레이어를 포함하는 관전자 디바이스(들)에 대해 온라인 게임의 관전을 제공할 수 있는 예시적인 온라인 게임 시스템의 예시적인 블록도(300)를 예시한다. 더 상세하게는, 도 3의 관전자 디바이스(들)는, 게임 상태 정보에 기반하여 관전자 뷰를 렌더링하는 것이 가능한 클라이언트를 포함하지 않을 수 있다. 추가로, 도 3의 예시적인 온라인 게임 시스템은, 도 1 및 도 2와 관련하여 위에 논의된 중계방송 아키텍처와 함께 또는 그러한 아키텍처 없이 구현될 수 있다. 도 2 및 도 3과 관련하여 논의된 기능성을 조합하거나 조합할 수 있는 예들이 도 4 내지 도 9와 관련하여 아래에서 제공된다. 도 3의 예시적인 온라인 게임 시스템(들)은, 하나 이상의 게임 시뮬레이션 노드(들)(304) 및 하나 이상의 렌더링 노드(들)(306)를을 포함하는 하나 이상의 서버(302), 플레이어 게임 클라이언트(들)(308(1)-(N)), 및 관전자 미디어 플레이어들(310(1)-(3))을 포함할 수 있다. 예시적인 온라인 게임 시스템(들)은, 관전자 미디어 플레이어들(310(1)-(3))의 관전자들에 의해 관전될 수 있는, 플레이어 게임 클라이언트(들)(308(1)-(N))의 플레이어(들)에 대한 온라인 게임을 동작시킬 수 있다. 도 3의 예시된 온라인 게임 시스템은 도 1에 도시된 시스템들의 예시적인 구현일 수 있다.
게임 시뮬레이션 노드(들)(304) 및 렌더링 노드(들)(306)는 하나 이상의 프로세서(예컨대, CPU들 및/또는 GPU들)를 포함할 수 있고, 게임 엔진의 컴퓨터 실행가능 명령어들을 실행할 수 있다. 더 상세하게는, 게임 시뮬레이션 노드(들)(304)는, 플레이어 게임 클라이언트(들)(308(1)-(N))의 플레이어들에 대해 온라인 게임을 호스팅하는 게임 시뮬레이션 기능을 수행할 수 있다. 이는 도 1 내지 도 2와 관련하여 위에 논의된 방식으로 수행될 수 있고, 플레이어 게임 클라이언트 상태 데이터(314(1)-314(N))의 반복된 그리고/또는 연속적 교환을 포함할 수 있다. 추가로, 게임 시뮬레이션 노드(들)(304)는, 온라인 게임의 관전자을 제공하는 데 사용하기 위해 전체 게임 상태(312)를 렌더링 노드(들)(306)에 전송할 수 있다. 일부 예들에서, 게임 시뮬레이션 노드(304)는, 렌더링 노드(들)(306)의 기능성을 수행하는 하나 이상의 서버에 전체 게임 상태를 제공할 수 있는, 온라인 게임에 대한 게임 시뮬레이션 노드(304)의 기능성을 수행하는 특정 서버(302)를 포함할 수 있다. 일부 예들에서, 게임 시뮬레이션 노드(304)는, 렌더링 노드(들)(306)의 기능성을 수행하는 하나 이상의 서버(302)의 복수의 프로세서들(예컨대, CPU들 및/또는 GPU들)에 전체 게임 상태를 제공할 수 있는, 온라인 게임에 대한 게임 시뮬레이션 노드(304)의 기능성을 수행하는 특정 프로세서를 포함할 수 있다. 온라인 게임을 인스턴스화하기 위한 동작들은 위에 논의된 것들과 동일하거나 유사할 수 있고, 장황함을 피하기 위해, 그 논의는 여기서 반복되지 않을 것이다.
렌더링 노드(들)(306)는 게임 엔진의 렌더링 기능을 수행할 수 있다. 일부 예들에서, 관전자의 개별 관전자 뷰는 렌더링 노드(들)(306)에서 동작하는 대응하는 렌더링 스레드(316)에 의해 렌더링될 수 있다. 구현에 따라, 하나 이상의 CPU 및/또는 GPU를 포함하는 대응하는 렌더링 노드(들)(306) 상에서 렌더링 스레드들(316)이 동작할 수 있거나, (예컨대, 하나 이상의 CPU 및/또는 GPU의 시간 기반 공유를 통해) 개별 렌더링 노드(들)(306) 상에서 다수의 렌더링 스레드들(316)이 동작할 수 있거나, 이들의 일부 조합으로 이루어진다. 예컨대, 서버(302) 상에서 동작하는 복수의 렌더링 스레드들(316)은 개개의 GPU들을 갖지만 CPU를 공유할 수 있다.
동작 시, 새로운 관전자가 온라인 게임을 관전하기를 요청할 때, 렌더링 노드(들)는, 렌더링 스레드(316)를 인스턴스화하고, 새로운 관전자의 관전자 디바이스 상에서 동작하는 관전자 미디어 플레이어(310)와 렌더링 스레드(316) 사이의 연결을 설정할 수 있다. 더 상세하게는, 렌더링 스레드들(316(1)-(3))과 관전자 미디어 플레이어들(310(1)-(3)) 사이의 연결은 관전자 제어 및 미디어 스트림 데이터(318(1)-(3))를 교환하는 데 사용될 수 있다. 관전자 제어 및 미디어 스트림 데이터(318)는, 반복적으로 그리고/또는 연속적으로 그리고/또는 온라인 게임의 이벤트들이 발생하는 경웨 교환될 수 있다.
렌더링 스레드(316)는, 관전자(들)에 대한 온라인 게임과 연관된 콘텐츠를 렌더링하도록 구성되는 명령어들을 실행할 수 있다. 더 상세하게는, 렌더링 스레드(316)는, 전체 게임 상태(312) 및 개개의 관전자의 관전자 시점 또는 관전자 상태를 사용하여, 미디어 스트림 콘텐츠로서 온라인 게임의 현재의 이벤트들을 렌더링할 수 있다. 이러한 콘텐츠는, 비디오, 오디오, 햅틱, 이들의 조합들, 또는 유사한 콘텐츠 구성요소들을 포함할 수 있다.
온라인 게임에서 이벤트들이 발생하는 경우, 렌더링 노드(들)(306)는, 게임 시뮬레이션 노드(들)(304)로부터 전체 게임 상태(312)에 대한 업데이트들을 수신하고 업데이트된 미디어 스트림 콘텐츠를 관전자 미디어 플레이어들(310)에게 렌더링하고 전송할 수 있다.
관전자 미디어 플레이어들(310)이 업데이트된 미디어 스트림 콘텐츠를 렌더링 노드(들)(306)로부터 수신할 때, 관전자 미디어 플레이어(310)는, 온라인 게임과 연관된 업데이트된 콘텐츠를 그의 개개의 관전자에게 제시할 수 있다. 이러한 업데이트된 콘텐츠는, 게임의 이전 상태(예컨대, 골키퍼의 움직임) 이후에 발생했을 수 있는 이벤트들을 구현할 수 있다.
관전자 미디어 플레이어들(310)은, 개개의 입력 디바이스(들)를 통해 개개의 관전자(들)로부터 입력을 수용할 수 있다. 관전자로부터의 입력은, 관전자의 시점 또는 렌더링된 뷰와 관련될 수 있고/거나 온라인 게임에서의 이벤트들에 응답할 수 있다. 예컨대, 온라인 농구 게임에서, 관전자가 렌더링된 콘텐츠에서 플레이어가 3점슛을 쏘려고 시도하는 것과 같은 이벤트를 보는 경우, 관전자는, 관전자가 플레이어 및 골을 볼 수 있도록 관전자의 시점을 다시 이동시키기를 요망할 수 있다. 관전자로부터의, 그 관전자의 입력 디바이스를 통해 포착되는 바와 같은 시점에서의 의도된 변경은, 관전자 미디어 플레이어(310)에 의해 수신되어 렌더링 스레드(316)에 전송될 수 있다. 렌더링 스레드(316)는, 관전자의 입력에 따라, 렌더링되는 뷰를 변경할 수 있다.
도 4는 본 개시내용의 예시적인 실시예들에 따른, 미디어 스트림으로서 관전자 시스템(들)에서 렌더링된 뷰를 수신하고 관전자에게 제시하는 것이 가능한 스트리밍 미디어 플레이어를 포함하는 관전자 디바이스(들)에 대해 온라인 게임의 관전을 제공할 수 있는 예시적인 온라인 게임 시스템의 예시적인 블록도(400)를 예시한다. 도 4의 예시적인 온라인 게임 시스템(들)은, 게임 엔진 서버(402), 스트리밍 서버(404), 스트리밍 플레이어 게임 클라이언트(406), 플레이어 게임 클라이언트(들)(408(1)-(N)), 및 관전자 미디어 플레이어(들)(410(1)-(3))를 포함할 수 있다. 예시적인 온라인 게임 시스템(들)은, 관전자 미디어 플레이어들(410(1)-(3))의 관전자들에 의해 관전될 수 있는, 스트리밍 플레이어 게임 클라이언트(406) 및 플레이어 게임 클라이언트(들)(408(1)-(N))의 플레이어(들)에 대한 온라인 게임을 동작시킬 수 있다. 더 상세하게는, 도 4에 예시된 예는, 관전자 미디어 플레이어들(410(1)-(3))의 관전자(들)가 스트리밍 플레이어 게임 클라이언트(406)의 스트리밍 게임 플레이어의 시점으로부터 관전하기를 요망하거나 관전하기로 선택한 구현에 관한 것일 수 있다.
추가로, 도 4의 예시적인 온라인 게임 시스템은, 도 3의 온라인 게임 시스템의 예와 유사한 방식으로 동작할 수 있다. 예컨대, 게임 엔진 서버(402), 스트리밍 서버(404), 및 관전자 미디어 플레이어들(410)은 각각, 게임 시뮬레이션 노드(들)(304), 렌더링 노드(들)(306), 및 관전자 미디어 플레이어들(310)과 유사한 방식으로 동작하거나 유사한 기능을 수행할 수 있다. 유사하게, 스트리밍 플레이어 게임 클라이언트(406) 및 플레이어 게임 클라이언트들(408)은 플레이어 게임 클라이언트들(308)과 유사한 방식으로 동작하거나 유사한 기능을 수행할 수 있다. 장황함을 피하기 위해, 아래의 논의는, 도 4의 예시적인 온라인 게임 시스템과 도 3의 예시적인 온라인 게임 시스템 사이의 동작에서의 차이와 관련된다.
동작 시, 스트리밍 플레이어 게임 클라이언트(406)의 스트리밍 플레이어는, 스트리밍 플레이어의 팬들 또는 시청자들에 의한 시청을 위해 온라인 게이밍 시스템에 의해 렌더링될 수 있는, 스트리밍 플레이어와 연관된 관전자 스트림을 설정할 것을 온라인 게임 시스템에 요청할 수 있다. 온라인 게이밍 시스템으로부터의 그러한 관전자 스트림은 스트리밍 플레이어의 컴퓨팅 디바이스에서 생성된 미디어 스트림보다 더 공식적인 것으로서 보일 수 있고, 스트리밍 플레이어가 시청자들을 위한 스트리밍 게임플레이 미디어를 생성하는 것에 대한 감소된 부담을 제공할 수 있다. 스트리밍 플레이어의 팬들 또는 시청자들은 온라인 게임 시스템에 연결될 수 있고, 온라인 게임에서 스트리밍 플레이어를 관전하기를 요청할 수 있다. 이에 대한 응답으로, 온라인 게이밍 시스템은 팬들 또는 시청자들의 스트리밍 미디어 플레이어들(410)을 스트리밍 서버(404)에 연결할 수 있다.
온라인 게임에서 이벤트들이 발생하는 경우, 스트리밍 서버(404)는, (예컨대, 게임 클라이언트들(406 및 408)과의 플레이어 게임 클라이언트 상태 데이터(414(1)-414(N))의 교환에 기반하여) 게임 엔진 서버(402)로부터 전체 게임 상태(412)에 대한 업데이트들을 수신할 수 있을 뿐만 아니라, 스트리밍 플레이어 게임 클라이언트(406)로부터 스트리머 상호작용 및/또는 뷰 데이터(416)를 수신할 수 있다. 일부 예들에서, 스트리머 상호작용의 뷰 데이터 및/또는 뷰 데이터(416)는 스트리밍 플레이어의 미디어 스트림의 프리젠테이션에 대한 구성 정보(예컨대, 미디어 스트림에 대한 시각적 또는 오디오 부가들)를 포함할 수 있다.
전체 게임 상태(412) 및 스트리머 상호작용 및/또는 뷰 데이터(416)에 기반하여, 스트리밍 서버는, 업데이트된 미디어 스트림(418(1)-418(3)) 콘텐츠를 관전자 미디어 플레이어들(410(1)-410(3))에게 렌더링하고 전송할 수 있다. 이러한 방식으로, 관전자 미디어 플레이어들(410)의 관전자들은, 스트리밍 플레이어 게임 클라이언트(406)의 스트리밍 플레이어에 의해 제공되는 시점으로부터 그리고/또는 그에 의해 제공되는 설정들에 따라 온라인 게임을 관전할 수 있다.
도 5는 본 개시내용의 예시적인 실시예들에 따른, 관전자들에 대해 온라인 게임의 관전을 제공할 수 있는 예시적인 온라인 게임 시스템의 예시적인 블록도(500)를 예시한다. 도 5의 예시적인 온라인 게임 시스템(들)은, 게임 엔진 서버(502), 중계방송 관전자 서버들(504(1) 및 504(2)), 스트리밍 서버(506), 플레이어 게임 클라이언트(들)(508(1)-(N)), 관전자 클라이언트(들)(510(1)-(3) 및 512(1)-(3)), 및 관전자 미디어 플레이어(들)(514(1)-(3))를 포함할 수 있다. 예시적인 온라인 게임 시스템(들)은, 관전자 클라이언트(들)(510(1)-(3) 및 512(1)-(3)) 및 관전자 미디어 플레이어(들)(514(1)-(3))의 관전자들에 의해 관전될 수 있는, 플레이어 게임 클라이언트(들)(508(1)-(N))의 플레이어(들)에 대한 온라인 게임을 동작시킬 수 있다. 더 상세하게는, 도 4에 예시된 예는, 도 1 및 도 2와 관련하여 위에 논의된 중계방송 기능성 및 도 1, 도 3, 및 도 4와 관련하여 위에 논의된 관전자 뷰들의 서버 렌더링을 제공할 수 있는 구현에 관한 것일 수 있다.
더 상세하게는, 도 5의 예시적인 온라인 게임 시스템은, 도 2 내지 도 4의 온라인 게임 시스템들의 예와 유사한 방식으로 동작할 수 있다. 예컨대, (1) 게임 엔진 서버(502), (2) 중계방송 관전자 서버들(504(1) 및 504(2)) 및 스트리밍 서버(506), (3) 플레이어 게임 클라이언트들(508), (4) 관전자 클라이언트(들)(510(1)-(3) 및 512(1)-(3)), 및 (5) 관전자 미디어 플레이어(들)(514(1)-(3))는 각각, (1) 게임 엔진 서버(202) 및 게임 시뮬레이션 노드(들)(304), (2) 중계방송 관전자 서버들(204) 및 렌더링 노드(들)(306), (3) 플레이어 게임 클라이언트들(206) 및 플레이어 게임 클라이언트들(308), (4) 관전자 클라이언트들(208-212), 및 (5) 관전자 미디어 플레이어들(310)과 유사한 방식으로 동작하거나 유사한 기능들을 수행할 수 있다. 장황함을 피하기 위해, 아래의 논의는, 도 5의 예시적인 온라인 게임 시스템과 도 2 및 도 3의 예시적인 온라인 게임 시스템들 사이의 동작에서의 차이와 관련된다.
구체적으로, 위에 논의된 것과 동일하거나 유사한 방식으로, 게임 엔진 서버(502)는, 플레이어 게임 클라이언트들(508)과의 플레이어 게임 클라이언트 상태 데이터(520(1)-520(N))의 교환들에 적어도 부분적으로 기반하여, 게임플레이 동안 반복적으로 그리고/또는 연속적으로 전체 게임 상태(516)를 중계방송 관전자 서버(504(1))에 제공하도록 동작할 수 있다. 중계방송 서버들(504)은, 관전자 클라이언트들(510 및 512)이 연관된 관전자들에게 관전자 뷰들을 렌더링하고 디스플레이할 수 있게 하기 위해, 게임플레이 동안 관전자 클라이언트들(510 및 512)과 관전자 클라이언트 게임 상태 데이터(522(1)-(3) 및 524(1)-(3))를 반복적으로 그리고/또는 연속적으로 교환할 수 있다. 추가로, 스트리밍 서버(506)는, 렌더링 노드(들)가 스트리밍 미디어 플레이어들(514)에 의해 관전자들에게 제시될 수 있는 뷰들을 렌더링하는 것에 대해 위에 논의된 것과 유사한 방식으로 동작할 수 있다.
위에 참조된 이전에 설명된 기능성에 부가하여, 새로운 관전자가 도 5의 온라인 게임 시스템에서 온라인 게임을 관전하기를 요청할 때, 관전자 시스템은, 관전을 위한 뷰들을 렌더링하는 것이 가능한 관전자 클라이언트를 사용하고 있는지 또는 관전자 시스템이 관전을 위한 뷰들을 렌더링할 수 있는 관전자 미디어 플레이어를 사용하고 있는지를 결정할 수 있다. 관전자가 관전자 클라이언트를 사용하고 있는 경우에, 시스템은 도 2에 대해 위에 논의된 바와 같이 동작할 수 있다. 관전자가 미디어 스트림으로서 관전자 시스템(들)에서 렌더링된 뷰를 수신하고 제시하는 것이 가능한 스트리밍 미디어 플레이어를 사용하고 있는 경우에, 관전자 시스템(예컨대, 중계방송 관전자 서버(504(1)))은 스트리밍 서버가 인스턴스화되었는지를 결정하고, 그렇다면, 스트리밍 서버가 새로운 관전자에 대한 이용가능한 슬롯 또는 슬롯들을 갖는지 여부를 결정할 수 있다. 어느 경우에서든 그렇지 않은 경우, 관전자 시스템은 스트리밍 서버(506)를 인스턴스화하고, 새로운 스트리밍 서버(506)에 대한 전체 게임 상태(516)의 전체 게임 상태 중계방송(518)을 설정하고, 새로운 관전자의 스트리밍 미디어 플레이어(514)의 연결 정보를 새로운 스트리밍 서버(506)에 전송할 수 있다. 이어서, 새로운 스트리밍 서버(506)는, 관전자 제어 및 미디어 스트림 데이터(526)를 관전자 미디어 플레이어(514)와 교환함으로써 관전자 미디어 플레이어(514)를 통해 관전을 제공할 수 있다.
위에 설명된 예들은 중계방송 서버(504) 및 스트리밍 서버들(506)의 기능성을 분리하지만, 이는 예시 및 설명의 용이성을 위해 그렇게 나타낸 것이고, 예들은 그렇게 제한되지 않는다. 예컨대, 본 개시내용에 따른 일부 시스템들은, 관전자 클라이언트들을 사용하는 관전자들 및 스트리밍 미디어 플레이어들을 사용하는 관전자들 둘 모두를 처리할 수 있는 중계방송 관전자 서버들을 포함할 수 있다. 그러한 예들에서, (예컨대, 기존 중계방송 관전자 서버들이 충분한 자유로운 리소스들을 갖는지에 기반하여) 기존 중계방송 관전자 서버들이 관전자 수용정원에 도달했는지 및 새로운 관전자들에 대해 부가적인 중계방송 관전자 서버들이 인스턴스화되어야 하는지를 결정하기 위해 부하 밸런서(load balancer) 또는 다른 처리 리소스 관리 알고리즘이 활용될 수 있다.
더욱이, 위에 설명된 예들은 단지 예시적이고, 많은 변형들 및 대안들이 본 개시내용의 관점에서 관련 기술분야의 통상의 기술자에게 명백할 것이다. 예컨대, 도 5의 온라인 게이밍 시스템은, 도 4와 관련하여 위에 논의된 것과 같은 기능성을 더 포함할 수 있어서, 스트리밍 게임 플레이어들이 스트리밍 게임 플레이어의 팬들 또는 시청자들에 의한 관전을 위한 미디어 스트림을 제공할 수 있게 한다.
도 6은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전자들을 수용하는 것을 제공할 수 있는 예시적인 방법(600)의 흐름도를 예시한다. 방법(600)은, 환경(100)의 온라인 게이밍 시스템에 의해 수행될 수 있다. 더 상세하게는, 방법(600)은, 관전자들에 의한 관전을 수용하는 온라인 게임을 초기화하고 호스팅하는 게임 시스템의 동작들에 관한 것일 수 있다.
블록(602)에서, 온라인 게임 시스템은 하나 이상의 플레이어에 대한 게임을 개시할 수 있다. 604에서, 게임 엔진 서버는, 하나 이상의 플레이어에 의해 플레이될 온라인 게임의 게임 엔진을 초기화할 수 있다. 추가로, 606에서, 온라인 게임에 대해 관전자 시스템(예컨대, 중계방송 관전자 서버)이 초기화될 수 있다. 게임을 시작하기 위해, 608에서, 게임 엔진 서버는, 하나 이상의 플레이어와 연관된 게임 클라이언트들과의 연결들을 설정할 수 있다.
610에서, 게임플레이 동안, 게임 엔진 서버는 플레이어 게임 클라이언트들을 통해 하나 이상의 플레이어로부터 플레이어 입력을 수신할 수 있다. 612에서, 게임 엔진 서버는, 온라인 게임의 게임 상태를 업데이트하기 위해 플레이어 입력을 활용할 수 있다. 614에서, 게임 엔진 서버는, 플레이어들에 대한 게임 클라이언트 데이터를 생성할 수 있다. 위에 언급된 바와 같이, 일부 예들에서, 개별 플레이어에 대해 생성되는 게임 클라이언트 데이터는 게임에서의 플레이어의 상태에 기반할 수 있다(예컨대, 플레이어의 위치 또는 다른 인자들에 기반함). 616에서, 플레이어들에 대한 게임 클라이언트 데이터가 플레이어 디바이스들 상에서 동작하는 게임 클라이언트들에 출력될 수 있다. 이어서, 618에서, 전체 게임 상태가 관전자 시스템에 출력될 수 있다.
도 6에 예시된 프로세스는, 도 7 내지 도 9에 도시된 동작들과 함께 온라인 게임 동안 계속될 수 있다.
도 7은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전자들을 수용하는 것을 제공할 수 있는 예시적인 방법(700)의 흐름도를 예시한다. 방법(700)은, 환경(100)의 관전자 시스템(들)(130) 및 도 5의 관전자 시스템에 의해 수행될 수 있다. 더 상세하게는, 방법(700)은, 관전을 위한 뷰들을 렌더링하는 것이 가능한 관전자 클라이언트를 사용하는 관전자들, 및 관전자 시스템이 관전자를 위한 뷰들을 렌더링할 수 있는 관전자 미디어 플레이어를 사용하는 관전자들에 의한 온라인 게임의 관전을 수용하는 관전자 시스템의 동작들에 관한 것이다. 방법(700)은, 관전자 시스템을 초기화하고 게임 엔진 서버가 관전자 시스템에 전체 게임 상태를 제공하는 연결을 설정하기 위해 방법(600) 또는 유사한 동작들이 발생한 후에 발생할 수 있다.
702에서, 관전자 시스템은 부가적인 관전자를 수용할 수 있다. 예컨대, 관전자 시스템은, 온라인 게임을 관전하기 위한 요청을 관전자로부터 수신할 수 있다. 704에서, 관전자 시스템은, 관전자의 유형(예컨대, 관전을 위한 뷰들을 렌더링하는 것이 가능한 관전자 클라이언트를 사용하는 관전자, 또는 관전자 시스템이 관전자를 위한 뷰들을 렌더링할 수 있는 관전자 미디어 플레이어를 사용하는 관전자)을 결정할 수 있다. 관전자가 상호작용형 미디어 플레이어를 사용하고 있는 경우, 프로세스는 706으로 진행된다. 그렇지 않고, 관전자가 관전자 클라이언트를 사용하고 있는 경우, 프로세스는 708로 진행된다.
706에서, 관전자는, 현재의 상호작용형 미디어 플레이어 관전자 서버로(예컨대, 하나의 그러한 서버가 인스턴스화된 경우) 이전되고, 프로세스는 도 8의 802로 계속된다. 도시되진 않지만, 어떠한 상호작용형 미디어 플레이어 관전자 서버도 인스턴스화되지 않은 경우, 프로세스는 대신에, 아래에서 논의되는 바와 같이 부가적인 상호작용형 미디어 플레이어 관전자 서버의 인스턴스화를 위해 바로 806으로 진행될 수 있다.
(예컨대, 704에서, 관전자가 관전자 클라이언트를 사용하고 있다는 결정에 기반하여) 708로 돌아가서, 관전자는, 현재의 게임 클라이언트 관전자 서버로(예컨대, 하나의 그러한 서버가 인스턴스화된 경우) 이전되고, 프로세스는 도 9의 902로 계속된다. 도시되진 않지만, 어떠한 게임 클라이언트 관전자 서버도 인스턴스화되지 않은 경우, 프로세스는 대신에, 아래에서 논의되는 바와 같이 부가적인 게임 클라이언트 관전자 서버의 인스턴스화를 위해 바로 906으로 진행될 수 있다.
도 8은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전하기 위해 관전자 미디어 플레이어를 사용하여 관전자들을 수용하는 것을 제공할 수 있는 예시적인 방법(800)의 흐름도를 예시한다. 방법(800)은, 환경(100)의 관전자 시스템(들)(130) 및 도 5의 관전자 시스템에 의해 수행될 수 있다. 더 상세하게는, 방법(800)은, 관전자 시스템이 관전자를 위한 뷰들을 렌더링할 수 있는 관전자 미디어 플레이어를 사용하는 관전자들에 의한 온라인 게임의 관전을 수용하는 스트리밍 서버의 동작들에 관한 것일 수 있다.
(도 7 또는 블록(822)으로부터 도달될 수 있는) 802에서, 관전자 시스템은, 현재의 상호작용형 미디어 관전자 서버(들)가 부가적인 관전자를 수용하는 데 이용가능한 잔여 슬롯들을 갖는지 여부를 결정할 수 있다. 그렇다면, 프로세스는 804로 계속될 수 있다. 그렇지 않으면, 프로세스는 806으로 계속될 수 있다.
804에서, 현재의 상호작용형 미디어 관전자 서버는, 부가적인 관전자의 미디어 플레이어와의 연결을 설정할 수 있다. 이어서, 808에서, 현재의 상호작용형 미디어 관전자 서버는, 부가적인 관전자에게 디스플레이될 관전자 뷰에 대한 렌더러(renderer) 스레드를 초기화할 수 있다.
810에서, 현재의 상호작용형 미디어 관전자 서버는, (예컨대, 전체 게임 상태의 가장 최근의 버전 및 관전자의 현재의 뷰 또는 시점에 기반하여) 부가적인 관전자의 관전자 뷰를 포함하는 미디어 스트림을 생성할 수 있다. 위에 논의된 바와 같이, 전체 게임 상태는, 상호작용형 미디어 관전자 서버에 의해, 게임 엔진 서버로부터 또는 다른 상호작용형 미디어 관전자 서버 또는 중계방송 관전자 서버로부터 수신될 수 있다. 관전자의 뷰 또는 시점은 디폴트 초기 상태를 가질 수 있고, 관전자 입력에 기반하여 업데이트될 수 있다.
812에서, 현재의 상호작용형 미디어 관전자 서버는, 관전자 뷰의 미디어 스트림을 부가적인 관전자의 관전자 미디어 플레이어에 출력할 수 있다.
814에서, 현재의 상호작용형 미디어 관전자 서버는, 업데이트된 전체 게임 상태를 게임 엔진 서버로부터 수신할 수 있다. 부가적으로, 816에서, 현재의 상호작용형 미디어 관전자 서버는, (예컨대, 부가적인 관전자의 관전자 미디어 플레이어로부터) 부가적인 관전자의 입력을 수신할 수 있다. 818에서, 현재의 상호작용형 미디어 관전자 서버는, 입력에 기반하여 관전자 뷰 또는 시점을 업데이트할 수 있다. 예컨대, 부가적인 관전자는 카메라 포지션을 이동시키기 위한 입력을 제공할 수 있다. 현재의 상호작용형 미디어 관전자 서버는, 입력에 기반하여 카메라 포지션을 업데이트할 수 있다. 이어서, 프로세스는 810으로 돌아갈 수 있다.
(예컨대, 현재의 상호작용형 미디어 관전자 서버(들)가 부가적인 관전자를 수용할 수 없다는 결정에 기반하여) 806으로 돌아가서, 관전자 시스템은, 부가적인 상호작용형 미디어 관전자 서버를 설정할 수 있다. 820에서, 관전자 시스템은, 부가적인 상호작용형 미디어 관전자 서버로의 전체 게임 상태의 중계방송을 설정할 수 있다. 위에 논의된 바와 같이, 전체 게임 상태의 중계방송은, (예컨대, 리소스 이용가능성에 따라) 게임 시스템, 기존 상호작용형 미디어 관전자 서버, 및/또는 기존 중계방송 관전자 서버로부터 설정될 수 있다. 이어서, 822에서, 부가적인 관전자는, 부가적인 상호작용형 미디어 관전자 서버로 재지향(redirect)되거나 이전될 수 있다. 이어서, 프로세스는, 새로운 상호작용형 미디어 관전자 서버 상에서 802로 계속될 수 있다.
도 9는 본 개시내용의 예시적인 실시예들에 따른, 온라인 게이밍에서 관전하기 위해 관전자 클라이언트를 사용하여 관전자들을 수용하는 것을 제공할 수 있는 예시적인 방법(900)의 흐름도를 예시한다. 방법(900)은, 환경(100)의 관전자 시스템(들)(130) 및 도 5의 관전자 시스템에 의해 수행될 수 있다. 더 상세하게는, 방법(900)은, 관전을 위한 뷰들을 렌더링하는 것이 가능한 게임 클라이언트 또는 관전자 클라이언트를 사용하는 관전자들에 의한 온라인 게임의 관전을 수용하는 중계방송 관전자 서버의 동작들에 관한 것일 수 있다.
(도 7 또는 블록(918)으로부터 도달될 수 있는) 902에서, 관전자 시스템은, 현재의 게임 클라이언트 관전자 서버(들)가 부가적인 관전자를 수용하는 데 이용가능한 잔여 슬롯들을 갖는지 여부를 결정할 수 있다. 그렇다면, 프로세스는 904로 계속될 수 있다. 그렇지 않으면, 프로세스는 906으로 계속될 수 있다.
904에서, 현재의 게임 클라이언트 관전자 서버는, 부가적인 관전자의 관전자 클라이언트와의 연결을 설정할 수 있다. 이어서, 908에서, 현재의 게임 클라이언트 관전자 서버는, 부가적인 관전자의 관전자 클라이언트로부터 관전자 상태(예컨대, 온라인 게임에서의 관전자의 뷰 또는 시점)를 수신할 수 있다.
910에서, 현재의 게임 클라이언트 관전자 서버는, (예컨대, 전체 게임 상태의 가장 최근의 버전 및 관전자의 현재의 관전자 상태에 기반하여) 부가적인 관전자에 대한 게임 클라이언트 데이터를 생성할 수 있다. 위에 논의된 바와 같이, 전체 게임 상태는, 게임 클라이언트 관전자 서버에 의해, 게임 엔진 서버로부터 또는 상호작용형 미디어 관전자 서버 또는 다른 게임 클라이언트 관전자 서버로부터 수신될 수 있다. 관전자의 관전자 상태는, 게임 클라이언트에 의해 업데이트되어 현재의 게임 클라이언트 관전자 서버에 제공되기 전에 디폴트 초기 상태를 가질 수 있다.
912에서, 현재의 게임 클라이언트 관전자 서버는, 게임 클라이언트 데이터를 부가적인 관전자의 관전자 클라이언트에 출력할 수 있다. 이어서, 914에서, 현재의 게임 클라이언트 관전자 서버는, 업데이트된 전체 게임 상태를 게임 엔진 서버로부터 수신할 수 있다.
(예컨대, 현재의 게임 클라이언트 관전자 서버(들)가 부가적인 관전자를 수용할 수 없다는 결정에 기반하여) 906으로 돌아가서, 관전자 시스템은, 부가적인 게임 클라이언트 관전자 서버를 설정할 수 있다. 916에서, 관전자 시스템은, 부가적인 게임 클라이언트 관전자 서버로의 전체 게임 상태의 중계방송을 설정할 수 있다. 위에 논의된 바와 같이, 전체 게임 상태의 중계방송은, (예컨대, 리소스 이용가능성에 따라) 게임 시스템, 기존 상호작용형 미디어 관전자 서버, 및/또는 기존 게임 클라이언트 관전자 서버로부터 설정될 수 있다. 이어서, 918에서, 부가적인 관전자는, 부가적인 게임 클라이언트 관전자 서버로 재지향되거나 이전될 수 있다. 이어서, 프로세스는, 새로운 게임 클라이언트 관전자 서버 상에서 902로 계속될 수 있다.
방법들(600-900)의 동작들 중 일부는 제시된 순서를 벗어나, 부가적인 요소들과 함께, 그리고/또는 일부 요소들 없이 수행될 수도 있다는 것이 유의되어야 한다. 방법들(600-900)의 동작들 중 일부는 추가로 실질적으로 동시에 발생할 수 있고, 따라서, 위에 나타낸 동작들의 순서와 상이한 순서로 종결될 수 있다.
본원의 최초 출원인은, 어느 기술들을 사용 및/또는 제품화할지를, 끊임없이 진화하는 분야에서의 그 기술의 유용성 및 관련성, 그리고 그 기술 및 그의 플레이어들 및 사용자들에 대해 무엇이 최상인지에 기반하여 결정한다는 것이 이해되어야 한다. 그에 따라서, 본원에 설명된 시스템들 및 방법들이 최초 출원인에 의해 아직 사용 및/또는 제품화되지 않았고/거나 나중에 사용 및/또는 제품화되지 않았을 경우가 있을 수 있다. 또한, 본원에 설명된 시스템들 및 방법들의 최초 출원인에 의한 구현 및 사용은, 존재하는 경우, 그의 프라이버시 정책들에 따라 수행된다는 것이 이해되어야 한다. 이러한 정책들은 플레이어 프라이버시를 고려하고 우선순위화하도록 의도되고, 개개의 관할권들의 정부 및 법적 요건들을 충족시키거나 초과하는 것으로 여겨진다. 이러한 시스템들 및 방법들의 그러한 구현 또는 사용이 사용자 개인 정보의 처리를 가능하게 하거나 요구하는 정도까지, 그러한 처리는, (i) 프라이버시 정책들에 약술된 바와 같이; (ii) 충분한 통지를 제공하는 것, 또는 요구되는 경우, 개개의 사용자의 동의를 획득하는 것을 포함하지만 이에 제한되지 않는 유효한 법적 메커니즘에 따라; 그리고 (iii) 플레이어 또는 사용자의 프라이버시 설정들 또는 선호들에 따라 수행된다. 또한, 최초 출원인은, 본원에 설명된 시스템들 및 방법들이, 다른 엔티티들에 의해 구현 또는 사용되는 경우, 플레이어들 및 사용자 프라이버시를 고려하기 위한 그의 목적과 일치하는 프라이버시 정책들 및 관행들을 따르도록 의도한다는 것이 이해되어야 한다.
도 10은 본 개시내용의 예시적인 실시예들에 따른, 온라인 게임들에서 관전을 제공할 수 있는 예시적인 관전자 시스템(들)(130)의 블록도를 예시한다. 관전 시스템(들)(130)은, 하나 이상의 프로세서(들)(1000), 하나 이상의 입력/출력(I/O) 인터페이스(들)(1002), 하나 이상의 네트워크 인터페이스(들)(1004), 하나 이상의 저장 인터페이스(들)(1006), 및 컴퓨터 판독가능 매체(1008)를 포함할 수 있다.
일부 구현들에서, 프로세서(들)(1000)는, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), CPU 및 GPU 둘 모두, 마이크로프로세서, 디지털 신호 프로세서, 또는 관련 기술분야에 알려져 있는 다른 처리 유닛들 또는 구성요소들을 포함할 수 있다. 대안적으로 또는 그에 부가하여, 본원에 설명된 기능성은, 하나 이상의 하드웨어 로직 구성요소에 의해 적어도 부분적으로 수행될 수 있다. 예컨대, 제한 없이, 사용될 수 있는 하드웨어 로직 구성요소들의 예시적인 유형들은, 필드 프로그래밍가능 게이트 어레이(FPGA)들, 주문형 집적 회로(ASIC)들, 주문형 표준 제품(ASSP)들, 시스템-온-칩(system-on-a-chip) 시스템(들)(SOC), 복합 프로그래밍가능 로직 디바이스(CPLD)들 등을 포함한다. 부가적으로, 프로세서(들)(1000) 각각은, 프로그램 모듈들, 프로그램 데이터, 및/또는 하나 이상의 운영 체제(들)를 또한 저장할 수 있는, 그 자신의 로컬 메모리를 소유할 수 있다. 하나 이상의 프로세서(들)(1000)는 하나 이상의 코어를 포함할 수 있다.
하나 이상의 입력/출력(I/O) 인터페이스(들)(1002)는, 관전자 시스템(들)(130)이 사용자 및/또는 다른 시스템(들), 이를테면 하나 이상의 게임 시스템(들)(110)과의 상호작용을 검출하는 것을 가능하게 할 수 있다. I/O 인터페이스(들)(1002)는 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합을 포함할 수 있고, 관전자 시스템(들)(130) 상에 통합되거나 관전자 시스템(들)(130)이 상호작용하는 임의의 다양한 I/O 디바이스(들), 이를테면, 디스플레이들, 마이크로폰들, 스피커들, 카메라들, 스위치들, 및 임의의 다른 다양한 센서들 등의 동작을 가능하게 하기 위한 소프트웨어 드라이버들을 포함할 수 있다.
네트워크 인터페이스(들)(1004)는, 관전자 시스템(들)(130)이 하나 이상의 네트워크(들)를 통해 통신하는 것을 가능하게 할 수 있다. 네트워크 인터페이스(들)(1004)는 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합을 포함할 수 있고, 임의의 다양한 프로토콜 기반 통신들, 및 임의의 다양한 유선 및/또는 무선 포트들/안테나들을 가능하게 하기 위한 소프트웨어 드라이버들을 포함할 수 있다. 예컨대, 네트워크 인터페이스(들)(1004)는, 셀룰러 라디오, 무선(예컨대, IEEE 1002.1x 기반) 인터페이스, 블루투스(Bluetooth®) 인터페이스 등 중 하나 이상을 포함할 수 있다. 일부 실시예들에서, 네트워크 인터페이스(들)(1004)는, 관전자 시스템(들)(130)이 다양한 표준들 사이에서 전환할 수 있게 하는 라디오 주파수(RF) 회로를 포함할 수 있다. 네트워크 인터페이스(들)(1004)는 추가로, 관전자 시스템(들)(130)이 회선 교환(circuit-switch) 도메인들 및/또는 패킷 교환(packet-switch) 도메인들을 통해 통신하는 것을 가능하게 할 수 있다.
저장 인터페이스(들)(1006)는, 프로세서(들)(1000)가 컴퓨터 판독가능 매체(1008)뿐만 아니라 관전자 시스템(들)(130) 외부의 임의의 저장 디바이스(들)와 인터페이싱하고 데이터를 교환하는 것을 가능하게 할 수 있다.
컴퓨터 판독가능 매체(1008)는, 정보, 이를테면, 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및/또는 비-휘발성 메모리, 착탈식 및 비-착탈식 매체를 포함할 수 있다. 그러한 메모리는, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD)들 또는 다른 광학 저장소, 자기 카세트들, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, RAID 저장 시스템(들), 또는 요망되는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 디바이스에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 제한되지 않는다. 컴퓨터 판독가능 매체(1008)는, 컴퓨터 판독가능 매체(1008) 상에 저장되는 명령어들을 실행하기 위해 프로세서(들)(1000)에 의해 액세스가능한 임의의 이용가능한 물리적 매체일 수 있는 컴퓨터 판독가능 저장 매체(CRSM)로서 구현될 수 있다. 하나의 기본 구현에서, CRSM은 RAM 및 플래시 메모리를 포함할 수 있다. 다른 구현들에서, CRSM은, ROM, EEPROM, 또는 요망되는 정보를 저장하는 데 사용될 수 있고 프로세서(들)(1000)에 의해 액세스될 수 있는 임의의 다른 유형적(tangible) 매체를 포함할 수 있지만, 이에 제한되지 않는다. 컴퓨터 판독가능 매체(1008) 상에는, 저장되는 운영 체제(OS) 및/또는 다양한 적합한 애플리케이션들이 저장될 수 있다. OS는, 프로세서(들)(1000)에 의해 실행될 때, 관전자 시스템(들)(130)의 하드웨어 및/또는 소프트웨어 리소스들의 관리를 가능하게 할 수 있다.
명령어, 데이터 저장소 등을 갖는 여러 기능 블록이들 컴퓨터 판독가능 매체(1008) 내에 저장되고, 프로세서(들)(1000) 상에서 실행되도록 구성될 수 있다. 컴퓨터 판독가능 매체(1008) 상에는, 전체 게임 상태(1010), 렌더러 모듈(1012), 관전자 클라이언트 생성기 모듈(1014), 미디어 관전자 인터페이스 모듈(1016), 게임 클라이언트 관전자 인터페이스 모듈(1018), 및 중계방송 모듈(1020)이 저장될 수 있다. 기능 블록들(1012-1020) 각각에는, 프로세서(들)(1000)에 의해 실행될 때 관전자 시스템(들)(130)의 동작들과 관련된 다양한 기능들을 가능하게 할 수 있는 명령어들이 저장될 수 있다는 것이 인식될 것이다.
예컨대, 렌더러 모듈(1012)은, 예컨대, 관전자의 뷰의 미디어 스트림의 렌더링에 관하여, 렌더링 노드들 및 렌더링 스레드들과 관련된 다양한 기능들을 가능하게 할 수 있다. 미디어 관전자 인터페이스 모듈(1016)은, 관전자 미디어 플레이어와 인터페이싱하고 데이터를 교환하는 것 및/또는 상호작용형 미디어 관전자 서버들을 설정하는 것에 관하여 다양한 기능들을 가능하게 할 수 있다. 유사하게, 관전자 클라이언트 생성기 모듈(1014)은, 예컨대, 관전자에 대한 게임 클라이언트 데이터를 생성하는 것에 관하여, 중계방송 관전자 서버들과 관련된 다양한 기능들을 가능하게 할 수 있다. 게임 클라이언트 관전자 인터페이스 모듈(1018)은, 관전자 클라이언트와 인터페이싱하고 데이터를 교환하는 것 및/또는 게임 클라이언트 관전자 서버들을 설정하는 것에 관하여 다양한 기능들을 가능하게 할 수 있다. 중계방송 모듈(1020)은, 위에 논의된 바와 같이 관전자 시스템의 서버들 사이에서 전체 게임 상태(1010)를 중계방송하기 위한 중계방송 아키텍처와 관련된 다양한 기능들을 가능하게 할 수 있다.
청구된 주제의 예시된 양상들이 또한, 통신 네트워크를 통해 링크되는 원격 처리 디바이스들에 의해 특정 작업들이 수행되는 분산형 컴퓨팅 환경들에서 실시될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 디바이스들 둘 모두에 위치될 수 있다.
본 주제가 구조적 특징들 및/또는 방법론적 동작들에 특정한 언어로 설명되었지만, 첨부된 청구항들에서 정의되는 본 주제가 반드시 설명된 특정 특징들 또는 동작들로 제한되지는 않는다는 것이 이해되어야 한다. 오히려, 특정 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태들로서 개시된 것이다.
본 개시내용은, 본 개시내용의 예시적인 실시예들에 따른 시스템(들), 방법들, 장치들, 및/또는 컴퓨터 프로그램 제품들의 블록도들 및 흐름도들을 참조하여 위에서 설명되었다. 블록도들 및 흐름도들의 하나 이상의 블록, 및 블록도들 및 흐름도들 내의 블록들의 조합들이 각각 컴퓨터 실행가능 프로그램 명령어들에 의해 구현될 수 있다는 것이 이해될 것이다. 마찬가지로, 본 개시내용의 일부 실시예들에 따르면, 블록도들 및 흐름도들의 일부 블록들은, 반드시 제시된 순서로 수행될 필요는 없을 수 있거나 반드시 수행될 필요가 전혀 없을 수 있다.
컴퓨터 실행가능 프로그램 명령어들은, 범용 컴퓨터, 특수 목적 컴퓨터, 프로세서, 또는 다른 프로그래밍가능 데이터 처리 장치 상으로 로딩되어 특정 기계를 생성할 수 있어서, 컴퓨터, 프로세서, 또는 다른 프로그래밍가능 데이터 처리 장치 상에서 실행되는 명령어들이 흐름도 블록 또는 블록들에서 특정되는 하나 이상의 기능을 구현한다. 이러한 컴퓨터 프로그램 명령어들은 또한, 컴퓨터 또는 다른 프로그래밍가능 데이터 처리 장치가 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독가능 메모리에 저장될 수 있어서, 컴퓨터 판독가능 메모리에 저장된 명령어들은, 흐름도 블록 또는 블록들에서 특정되는 하나 이상의 기능을 구현하는 명령어를 포함하는 제조 물품을 생성한다. 예로서, 본 개시내용의 실시예들은, 컴퓨터 판독가능 프로그램 코드 또는 프로그램 명령어들이 구현되는 컴퓨터 사용가능 매체를 포함하는 컴퓨터 프로그램 제품을 제공할 수 있으며, 상기 컴퓨터 판독가능 프로그램 코드는, 실행되어 흐름도 블록 또는 블록들에서 특정되는 하나 이상의 기능을 구현하도록 적응된다. 컴퓨터 프로그램 명령어들은 또한, 컴퓨터 또는 다른 프로그래밍가능 데이터 처리 장치 상으로 로딩되어, 컴퓨터에 의해 구현되는(computer-implemented) 프로세스를 생성하도록 일련의 동작 요소들 또는 단계들이 컴퓨터 또는 다른 프로그래밍가능 장치 상에서 수행되게 할 수 있어서, 컴퓨터 또는 다른 프로그래밍가능 장치 상에서 실행되는 명령어들은 흐름도 블록 또는 블록들에서 특정되는 기능들을 구현하기 위한 요소들 또는 단계들을 제공한다.
본원에 설명된 메모리들 및 데이터 저장 디바이스들 각각이 후속 검색을 위한 데이터 및 정보를 저장할 수 있다는 것이 인식될 것이다. 메모리들 및 데이터베이스들은 서로 그리고/또는 다른 데이터베이스들, 이를테면 중앙집중식 데이터베이스, 또는 다른 유형들의 데이터 저장 디바이스들과 통신할 수 있다. 필요할 때, 메모리 또는 데이터베이스에 저장된 데이터 또는 정보는, 하나 초과의 데이터베이스 또는 다른 데이터 저장 디바이스들로부터 데이터, 정보, 또는 데이터 기록들을 수신하는 것이 가능한 중앙집중식 데이터베이스로 송신될 수 있다. 다른 실시예들에서, 나타낸 데이터베이스들은 임의의 수의 데이터베이스들 또는 다른 데이터 저장 디바이스들에 통합되거나 분산될 수 있다.
예시적인 항목들
A. 시스템은, 하나 이상의 프로세서; 및 컴퓨터 실행가능 명령어들을 저장하는 하나 이상의 컴퓨터 판독가능 매체를 포함하며, 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 관전자 노드에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 노드로부터 게임 상태 데이터를 수신하게 하고; 관전자 노드에서, 관전자의 관전자 디바이스에 대해 관전자 뷰를 포함하는 미디어 스트림을 렌더링하게 하고; 미디어 스트림을 관전자 디바이스에 출력하게 한다.
B. 항목 A의 시스템에서, 게임 상태 데이터는, 하나 이상의 플레이어에 대한, 게임 시뮬레이션 노드에 의해 호스팅되는 온라인 게임의 전체 게임 상태를 포함한다.
C. 항목 A의 시스템에서, 미디어 스트림은 렌더링 스레드에 의해 렌더링되고, 컴퓨터 실행가능 명령어들은, 하나 이상의 프로세서로 하여금 추가로, 부가적인 관전자 디바이스로부터 온라인 게임을 관전하기 위한 요청을 수신하게 하고; 부가적인 관전자 디바이스와 연관된 부가적인 렌더링 스레드를 인스턴스화하게 하고; 관전자 노드에서, 부가적인 렌더링 스레드에 의해, 부가적인 관전자 뷰를 포함하는 부가적인 미디어 스트림을 렌더링하게 하고; 부가적인 미디어 스트림을 부가적인 관전자 디바이스에 출력하게 한다.
D. 항목 C의 시스템에서, 렌더링 스레드는 적어도 제1 그래픽 처리 유닛(GPU) 상에서 동작하고, 부가적인 렌더링 스레드는 적어도 제2 GPU 상에서 동작한다.
E. 항목 A의 시스템에서, 게임 시뮬레이션 노드는 게임 시뮬레이션 서버를 포함하고, 관전자 노드는 관전자 서버를 포함한다.
F. 항목 A의 시스템에서, 컴퓨터 실행가능 명령어들은, 하나 이상의 프로세서로 하여금 추가로, 관전자 노드에서 그리고 관전자 디바이스로부터, 관전자 디바이스에서 수신된 관전자 입력과 연관된 관전자 데이터를 수신하게 하고; 관전자 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하게 하고; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하게 하고; 업데이트된 미디어 스트림을 관전자 디바이스에 출력하게 한다.
G. 항목 A의 시스템에서, 컴퓨터 실행가능 명령어들은, 하나 이상의 프로세서로 하여금 추가로, 관전자 노드에서, 플레이어 디바이스에서 수신된 플레이어 입력과 연관된 스트리밍 플레이어 데이터를 수신하게 하고; 스트리밍 플레이어 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하게 하고; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하게 하고; 업데이트된 미디어 스트림을 관전자 디바이스에 출력하게 한다.
H. 컴퓨터에 의해 구현되는 방법은, 관전자 노드에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 노드로부터 게임 상태 데이터를 수신하는 단계; 관전자 노드에서, 관전자의 관전자 디바이스에 대해 관전자 뷰를 포함하는 미디어 스트림을 렌더링하는 단계; 및 미디어 스트림을 관전자 디바이스에 출력하는 단계를 포함한다.
I. 항목 H의 컴퓨터에 의해 구현되는 방법에서, 게임 상태 데이터는, 하나 이상의 플레이어에 대한, 게임 시뮬레이션 노드에 의해 호스팅되는 온라인 게임의 전체 게임 상태를 포함한다.
J. 항목 H의 컴퓨터에 의해 구현되는 방법에서, 미디어 스트림은 렌더링 스레드에 의해 렌더링되고, 방법은, 부가적인 관전자 디바이스로부터 온라인 게임을 관전하기 위한 요청을 수신하는 단계; 부가적인 관전자 디바이스와 연관된 부가적인 렌더링 스레드를 인스턴스화하는 단계; 관전자 노드에서, 부가적인 렌더링 스레드에 의해, 부가적인 관전자 뷰를 포함하는 부가적인 미디어 스트림을 렌더링하는 단계; 및 부가적인 미디어 스트림을 부가적인 관전자 디바이스에 출력하는 단계를 더 포함한다.
K. 항목 J의 컴퓨터에 의해 구현되는 방법에서, 렌더링 스레드는 적어도 제1 GPU 상에서 동작하고, 부가적인 렌더링 스레드는 적어도 제2 GPU 상에서 동작한다.
L. 항목 H의 컴퓨터에 의해 구현되는 방법에서, 게임 시뮬레이션 노드는 게임 시뮬레이션 서버를 포함하고, 관전자 노드는 관전자 서버를 포함한다.
M. 항목 H의 컴퓨터에 의해 구현되는 방법은, 관전자 노드에서 그리고 관전자 디바이스로부터, 관전자 디바이스에서 수신된 관전자 입력과 연관된 관전자 데이터를 수신하는 단계; 관전자 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하는 단계; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하는 단계; 및 업데이트된 미디어 스트림을 관전자 디바이스에 출력하는 단계를 더 포함한다.
N. 항목 H의 컴퓨터에 의해 구현되는 방법은, 관전자 노드에서, 플레이어 디바이스에서 수신된 플레이어 입력과 연관된 스트리밍 플레이어 데이터를 수신하는 단계; 스트리밍 플레이어 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하는 단계; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하는 단계; 및 업데이트된 미디어 스트림을 관전자 디바이스에 출력하는 단계를 더 포함한다.
O. 컴퓨터 실행가능 명령어들을 저장하는 하나 이상의 컴퓨터 판독가능 매체로서, 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 관전자 노드에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 노드로부터 게임 상태 데이터를 수신하는 것; 관전자 노드에서, 관전자의 관전자 디바이스에 대해 관전자 뷰를 포함하는 미디어 스트림을 렌더링하는 것; 및 미디어 스트림을 관전자 디바이스에 출력하는 것을 포함하는 동작들을 수행하게 한다.
P. 항목 O의 하나 이상의 컴퓨터 판독가능 매체에서, 게임 상태 데이터는, 하나 이상의 플레이어에 대한, 게임 시뮬레이션 노드에 의해 호스팅되는 온라인 게임의 전체 게임 상태를 포함한다.
Q. 항목 O의 하나 이상의 컴퓨터 판독가능 매체에서, 미디어 스트림은 렌더링 스레드에 의해 렌더링되고, 동작들은, 부가적인 관전자 디바이스로부터 온라인 게임을 관전하기 위한 요청을 수신하는 것; 부가적인 관전자 디바이스와 연관된 부가적인 렌더링 스레드를 인스턴스화하는 것; 관전자 노드에서, 부가적인 렌더링 스레드에 의해, 부가적인 관전자 뷰를 포함하는 부가적인 미디어 스트림을 렌더링하는 것; 및 부가적인 미디어 스트림을 부가적인 관전자 디바이스에 출력하는 것을 더 포함한다.
R. 항목 Q의 하나 이상의 컴퓨터 판독가능 매체에서, 게임 시뮬레이션 노드는 게임 시뮬레이션 서버를 포함하고, 관전자 노드는 관전자 서버를 포함하며, 렌더링 스레드는 적어도, 관전자 서버의 제1 GPU 상에서 동작하고, 부가적인 렌더링 스레드는 적어도, 관전자 서버의 제2 GPU 상에서 동작한다.
S. 항목 O의 하나 이상의 컴퓨터 판독가능 매체에서, 동작들은, 관전자 노드에서 그리고 관전자 디바이스로부터, 관전자 디바이스에서 수신된 관전자 입력과 연관된 관전자 데이터를 수신하는 것; 관전자 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하는 것; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하는 것; 및 업데이트된 미디어 스트림을 관전자 디바이스에 출력하는 것을 더 포함한다.
T. 항목 O의 하나 이상의 컴퓨터 판독가능 매체에서, 동작들은, 관전자 노드에서, 플레이어 디바이스에서 수신된 플레이어 입력과 연관된 스트리밍 플레이어 데이터를 수신하는 것; 스트리밍 플레이어 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하는 것; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하는 것; 및 업데이트된 미디어 스트림을 관전자 디바이스에 출력하는 것을 더 포함한다.
U. 시스템은, 하나 이상의 프로세서; 및 컴퓨터 실행가능 명령어들을 저장하는 하나 이상의 컴퓨터 판독가능 매체를 포함하며, 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 관전자 노드에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 노드로부터 게임 상태 데이터를 수신하게 하고; 관전자 노드에서, 관전자의 관전자 디바이스에 대해 관전자 뷰를 포함하는 미디어 스트림을 렌더링하게 하고; 미디어 스트림을 관전자 디바이스에 출력하게 한다.
V. 항목 U의 시스템에서, 게임 상태 데이터는, 하나 이상의 플레이어에 대한, 게임 시뮬레이션 노드에 의해 호스팅되는 온라인 게임의 전체 게임 상태를 포함한다.
W. 항목 U의 시스템에서, 미디어 스트림은 렌더링 스레드에 의해 렌더링되고, 컴퓨터 실행가능 명령어들은, 하나 이상의 프로세서로 하여금 추가로, 부가적인 관전자 디바이스로부터 온라인 게임을 관전하기 위한 요청을 수신하게 하고; 부가적인 관전자 디바이스와 연관된 부가적인 렌더링 스레드를 인스턴스화하게 하고; 관전자 노드에서, 부가적인 렌더링 스레드에 의해, 부가적인 관전자 뷰를 포함하는 부가적인 미디어 스트림을 렌더링하게 하고; 부가적인 미디어 스트림을 부가적인 관전자 디바이스에 출력하게 한다.
X. 항목 W의 시스템에서, 렌더링 스레드는 적어도 제1 그래픽 처리 유닛(GPU) 상에서 동작하고, 부가적인 렌더링 스레드는 적어도 제2 GPU 상에서 동작한다.
Y. 항목 U의 시스템에서, 게임 시뮬레이션 노드는 게임 시뮬레이션 서버를 포함하고, 관전자 노드는 관전자 서버를 포함한다.
Z. 항목 U의 시스템에서, 컴퓨터 실행가능 명령어들은, 하나 이상의 프로세서로 하여금 추가로, 관전자 노드에서 그리고 관전자 디바이스로부터, 관전자 디바이스에서 수신된 관전자 입력과 연관된 관전자 데이터를 수신하게 하고; 관전자 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하게 하고; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하게 하고; 업데이트된 미디어 스트림을 관전자 디바이스에 출력하게 한다.
AA. 항목 U의 시스템에서, 컴퓨터 실행가능 명령어들은, 하나 이상의 프로세서로 하여금 추가로, 관전자 노드에서, 플레이어 디바이스에서 수신된 플레이어 입력과 연관된 스트리밍 플레이어 데이터를 수신하게 하고; 스트리밍 플레이어 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하게 하고; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하게 하고; 업데이트된 미디어 스트림을 관전자 디바이스에 출력하게 한다.
AB. 컴퓨터에 의해 구현되는 방법은, 관전자 노드에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 노드로부터 게임 상태 데이터를 수신하는 단계; 관전자 노드에서, 관전자의 관전자 디바이스에 대해 관전자 뷰를 포함하는 미디어 스트림을 렌더링하는 단계; 및 미디어 스트림을 관전자 디바이스에 출력하는 단계를 포함한다.
AC. 항목 AB의 컴퓨터에 의해 구현되는 방법에서, 게임 상태 데이터는, 하나 이상의 플레이어에 대한, 게임 시뮬레이션 노드에 의해 호스팅되는 온라인 게임의 전체 게임 상태를 포함한다.
AD. 항목 AB의 컴퓨터에 의해 구현되는 방법에서, 미디어 스트림은 렌더링 스레드에 의해 렌더링되고, 방법은, 부가적인 관전자 디바이스로부터 온라인 게임을 관전하기 위한 요청을 수신하는 단계; 부가적인 관전자 디바이스와 연관된 부가적인 렌더링 스레드를 인스턴스화하는 단계; 관전자 노드에서, 부가적인 렌더링 스레드에 의해, 부가적인 관전자 뷰를 포함하는 부가적인 미디어 스트림을 렌더링하는 단계; 및 부가적인 미디어 스트림을 부가적인 관전자 디바이스에 출력하는 단계를 더 포함한다.
AE. 항목 AD의 컴퓨터에 의해 구현되는 방법에서, 렌더링 스레드는 적어도 제1 GPU 상에서 동작하고, 부가적인 렌더링 스레드는 적어도 제2 GPU 상에서 동작한다.
AF. 항목 AB의 컴퓨터에 의해 구현되는 방법에서, 게임 시뮬레이션 노드는 게임 시뮬레이션 서버를 포함하고, 관전자 노드는 관전자 서버를 포함한다.
AG. 항목 AB의 컴퓨터에 의해 구현되는 방법은, 관전자 노드에서 그리고 관전자 디바이스로부터, 관전자 디바이스에서 수신된 관전자 입력과 연관된 관전자 데이터를 수신하는 단계; 관전자 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하는 단계; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하는 단계; 및 업데이트된 미디어 스트림을 관전자 디바이스에 출력하는 단계를 더 포함한다.
AH. 항목 AB의 컴퓨터에 의해 구현되는 방법은, 관전자 노드에서, 플레이어 디바이스에서 수신된 플레이어 입력과 연관된 스트리밍 플레이어 데이터를 수신하는 단계; 스트리밍 플레이어 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하는 단계; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하는 단계; 및 업데이트된 미디어 스트림을 관전자 디바이스에 출력하는 단계를 더 포함한다.
AI. 컴퓨터 실행가능 명령어들을 저장하는 하나 이상의 컴퓨터 판독가능 매체로서, 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 관전자 노드에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 노드로부터 게임 상태 데이터를 수신하는 것; 관전자 노드에서, 관전자의 관전자 디바이스에 대해 관전자 뷰를 포함하는 미디어 스트림을 렌더링하는 것; 및 미디어 스트림을 관전자 디바이스에 출력하는 것을 포함하는 동작들을 수행하게 한다.
AJ. 항목 AI의 하나 이상의 컴퓨터 판독가능 매체에서, 게임 상태 데이터는, 하나 이상의 플레이어에 대한, 게임 시뮬레이션 노드에 의해 호스팅되는 온라인 게임의 전체 게임 상태를 포함한다.
AK. 항목 AI의 하나 이상의 컴퓨터 판독가능 매체에서, 미디어 스트림은 렌더링 스레드에 의해 렌더링되고, 동작들은, 부가적인 관전자 디바이스로부터 온라인 게임을 관전하기 위한 요청을 수신하는 것; 부가적인 관전자 디바이스와 연관된 부가적인 렌더링 스레드를 인스턴스화하는 것; 관전자 노드에서, 부가적인 렌더링 스레드에 의해, 부가적인 관전자 뷰를 포함하는 부가적인 미디어 스트림을 렌더링하는 것; 및 부가적인 미디어 스트림을 부가적인 관전자 디바이스에 출력하는 것을 더 포함한다.
AL. 항목 AK의 하나 이상의 컴퓨터 판독가능 매체에서, 게임 시뮬레이션 노드는 게임 시뮬레이션 서버를 포함하고, 관전자 노드는 관전자 서버를 포함하며, 렌더링 스레드는 적어도, 관전자 서버의 제1 GPU 상에서 동작하고, 부가적인 렌더링 스레드는 적어도, 관전자 서버의 제2 GPU 상에서 동작한다.
AM. 항목 AI의 하나 이상의 컴퓨터 판독가능 매체에서, 동작들은, 관전자 노드에서 그리고 관전자 디바이스로부터, 관전자 디바이스에서 수신된 관전자 입력과 연관된 관전자 데이터를 수신하는 것; 관전자 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하는 것; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하는 것; 및 업데이트된 미디어 스트림을 관전자 디바이스에 출력하는 것을 더 포함한다.
AN. 항목 AI의 하나 이상의 컴퓨터 판독가능 매체에서, 동작들은, 관전자 노드에서, 플레이어 디바이스에서 수신된 플레이어 입력과 연관된 스트리밍 플레이어 데이터를 수신하는 것; 스트리밍 플레이어 데이터에 적어도 부분적으로 기반하여 관전자 뷰를 수정된 관전자 뷰로 수정하는 것; 관전자 노드에서, 수정된 관전자 뷰에 적어도 부분적으로 기반하여, 업데이트된 미디어 스트림을 렌더링하는 것; 및 업데이트된 미디어 스트림을 관전자 디바이스에 출력하는 것을 더 포함한다.
위에 설명된 예시적인 항목들은 하나의 특정 구현과 관련하여 설명되지만, 본 문서의 맥락에서, 예시적인 항목들의 내용은 또한 방법, 디바이스, 시스템, 컴퓨터 판독가능 매체, 및/또는 다른 구현을 통해 구현될 수 있다는 것이 이해되어야 한다. 부가적으로, 예 A 내지 예 AN 중 임의의 예는 단독으로 또는 예 A 내지 예 AN 중 임의의 다른 하나 이상의 예와 조합되어 구현될 수 있다.
전술한 설명들 및 연관된 도면들에 제시된 교시들의 이익을 갖는 본원에 기재된 본 개시내용의 많은 수정들 및 다른 실시예들이 명백할 것이다. 따라서, 본 개시내용은 개시된 특정 실시예들로 제한되지 않으며, 수정들 및 다른 실시예들은 첨부된 청구항들의 범위 내에 포함되도록 의도된다는 것이 이해되어야 한다. 본원에서 특정 용어들이 이용되지만, 이들은 제한의 목적들로 사용되는 것이 아니라, 단지 포괄적이고 서술적인 의미로만 사용된다.

Claims (20)

  1. 시스템으로서,
    하나 이상의 프로세서; 및
    컴퓨터 실행가능 명령어들을 저장한 하나 이상의 컴퓨터 판독가능 매체
    를 포함하며, 상기 컴퓨터 실행가능 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    관전자 서버에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 서버로부터 게임 상태 데이터를 수신하게 하고,
    하나 이상의 관전자 디바이스에 대응하는 하나 이상의 관전자 게임 상태 데이터를 생성하게 하고,
    상기 하나 이상의 관전자 게임 상태 데이터를 상기 하나 이상의 관전자 디바이스에 출력하게 하고,
    상기 게임 상태 데이터를 다른 관전자 서버에 출력하게 하는, 시스템.
  2. 제1항에 있어서,
    상기 게임 상태 데이터는, 상기 하나 이상의 플레이어에 대한, 상기 게임 시뮬레이션 서버에 의해 호스팅되는 상기 온라인 게임의 전체 게임 상태를 포함하는, 시스템.
  3. 제1항에 있어서,
    상기 컴퓨터 실행가능 명령어들은, 상기 하나 이상의 프로세서로 하여금 추가로,
    부가적인 관전자 디바이스로부터 상기 온라인 게임을 관전하기 위한 요청을 수신하게 하고;
    하나 이상의 기존 관전자 서버가 가득 차 있음을 결정하게 하고;
    새로운 관전자 서버를 인스턴스화하게 하고;
    상기 하나 이상의 기존 관전자 서버의 기존 관전자 서버로부터 상기 새로운 관전자 서버로의 상기 게임 상태 데이터의 중계방송(rebroadcasting)을 설정하게 하고;
    상기 부가적인 관전자 디바이스를 상기 새로운 관전자 서버로 이전하게
    하는, 시스템.
  4. 제1항에 있어서,
    상기 하나 이상의 플레이어는 상기 하나 이상의 관전자 디바이스와 별개로 호스팅되는, 시스템.
  5. 제1항에 있어서,
    상기 하나 이상의 관전자 게임 상태 데이터의 관전자 게임 상태 데이터는, 상기 게임 시뮬레이션 서버로부터 수신된 상기 게임 상태 데이터로부터 도출되거나 서브세트인, 시스템.
  6. 제1항에 있어서,
    상기 하나 이상의 관전자 디바이스 중 특정 관전자 디바이스는 관전자 게임 상태 데이터로부터 관전자 뷰를 렌더링하는 관전자 클라이언트를 포함하는, 시스템.
  7. 제6항에 있어서,
    상기 관전자 뷰는, 개개의 관전자로부터 상기 특정 관전자 디바이스에서 수신된 입력에 추가로 기반하는, 시스템.
  8. 컴퓨터에 의해 구현되는(computer-implemented) 방법으로서,
    관전자 서버에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 서버로부터 게임 상태 데이터를 수신하는 단계;
    하나 이상의 관전자 디바이스에 대응하는 하나 이상의 관전자 게임 상태 데이터를 생성하는 단계;
    상기 하나 이상의 관전자 게임 상태 데이터를 상기 하나 이상의 관전자 디바이스에 출력하는 단계; 및
    상기 게임 상태 데이터를 다른 관전자 서버에 출력하는 단계
    를 포함하는, 컴퓨터에 의해 구현되는 방법.
  9. 제8항에 있어서,
    상기 게임 상태 데이터는, 상기 하나 이상의 플레이어에 대한, 상기 게임 시뮬레이션 서버에 의해 호스팅되는 상기 온라인 게임의 전체 게임 상태를 포함하는, 컴퓨터에 의해 구현되는 방법.
  10. 제8항에 있어서,
    부가적인 관전자 디바이스로부터 상기 온라인 게임을 관전하기 위한 요청을 수신하는 단계;
    하나 이상의 기존 관전자 서버가 가득 차 있음을 결정하는 단계;
    새로운 관전자 서버를 인스턴스화하는 단계;
    상기 하나 이상의 기존 관전자 서버의 기존 관전자 서버로부터 상기 새로운 관전자 서버로의 상기 게임 상태 데이터의 중계방송을 설정하는 단계; 및
    상기 부가적인 관전자 디바이스를 상기 새로운 관전자 서버로 이전하는 단계
    를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
  11. 제8항에 있어서,
    상기 하나 이상의 플레이어는 상기 하나 이상의 관전자 디바이스와 별개로 호스팅되는, 컴퓨터에 의해 구현되는 방법.
  12. 제8항에 있어서,
    상기 하나 이상의 관전자 게임 상태 데이터의 관전자 게임 상태 데이터는, 상기 게임 시뮬레이션 서버로부터 수신된 상기 게임 상태 데이터로부터 도출되거나 서브세트인, 컴퓨터에 의해 구현되는 방법.
  13. 제8항에 있어서,
    상기 하나 이상의 관전자 디바이스 중 특정 관전자 디바이스는 관전자 게임 상태 데이터로부터 관전자 뷰를 렌더링하는 관전자 클라이언트를 포함하는, 컴퓨터에 의해 구현되는 방법.
  14. 제13항에 있어서,
    상기 관전자 뷰는, 개개의 관전자로부터 상기 특정 관전자 디바이스에서 수신된 입력에 추가로 기반하는, 컴퓨터에 의해 구현되는 방법.
  15. 컴퓨터 실행가능 명령어들을 저장한 하나 이상의 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 실행가능 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금,
    관전자 서버에서, 하나 이상의 플레이어에 대한 온라인 게임을 호스팅하는 게임 시뮬레이션 서버로부터 게임 상태 데이터를 수신하는 것;
    하나 이상의 관전자 디바이스에 대응하는 하나 이상의 관전자 게임 상태 데이터를 생성하는 것;
    상기 하나 이상의 관전자 게임 상태 데이터를 상기 하나 이상의 관전자 디바이스에 출력하는 것; 및
    상기 게임 상태 데이터를 다른 관전자 서버에 출력하는 것
    을 포함하는 동작들을 수행하게 하는, 하나 이상의 컴퓨터 판독가능 매체.
  16. 제15항에 있어서,
    상기 게임 상태 데이터는, 상기 하나 이상의 플레이어에 대한, 상기 게임 시뮬레이션 서버에 의해 호스팅되는 상기 온라인 게임의 전체 게임 상태를 포함하는, 하나 이상의 컴퓨터 판독가능 매체.
  17. 제15항에 있어서,
    상기 동작들은,
    부가적인 관전자 디바이스로부터 상기 온라인 게임을 관전하기 위한 요청을 수신하는 것;
    하나 이상의 기존 관전자 서버가 가득 차 있음을 결정하는 것;
    새로운 관전자 서버를 인스턴스화하는 것;
    상기 하나 이상의 기존 관전자 서버의 기존 관전자 서버로부터 상기 새로운 관전자 서버로의 상기 게임 상태 데이터의 중계방송을 설정하는 것; 및
    상기 부가적인 관전자 디바이스를 상기 새로운 관전자 서버로 이전하는 것
    을 더 포함하는, 하나 이상의 컴퓨터 판독가능 매체.
  18. 제15항에 있어서,
    상기 하나 이상의 관전자 게임 상태 데이터의 관전자 게임 상태 데이터는, 상기 게임 시뮬레이션 서버로부터 수신된 상기 게임 상태 데이터로부터 도출되거나 서브세트인, 하나 이상의 컴퓨터 판독가능 매체.
  19. 제15항에 있어서,
    상기 하나 이상의 관전자 디바이스 중 특정 관전자 디바이스는 관전자 게임 상태 데이터로부터 관전자 뷰를 렌더링하는 관전자 클라이언트를 포함하는, 하나 이상의 컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    상기 관전자 뷰는, 개개의 관전자로부터 상기 특정 관전자 디바이스에서 수신된 입력에 추가로 기반하는, 하나 이상의 컴퓨터 판독가능 매체.
KR1020220111190A 2021-09-02 2022-09-02 온라인 게임들에서의 관전자 시스템 KR20230034182A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/446,745 2021-09-02
US17/446,745 US20230065298A1 (en) 2021-09-02 2021-09-02 Spectator system in online games

Publications (1)

Publication Number Publication Date
KR20230034182A true KR20230034182A (ko) 2023-03-09

Family

ID=85286908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220111190A KR20230034182A (ko) 2021-09-02 2022-09-02 온라인 게임들에서의 관전자 시스템

Country Status (3)

Country Link
US (1) US20230065298A1 (ko)
KR (1) KR20230034182A (ko)
CN (1) CN115738295A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11925861B2 (en) 2021-09-02 2024-03-12 Electronic Arts Inc. System for multiview games experience

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6999083B2 (en) * 2001-08-22 2006-02-14 Microsoft Corporation System and method to provide a spectator experience for networked gaming
US7458894B2 (en) * 2004-09-15 2008-12-02 Microsoft Corporation Online gaming spectator system
US10390064B2 (en) * 2015-06-30 2019-08-20 Amazon Technologies, Inc. Participant rewards in a spectating system
US9968856B1 (en) * 2016-11-15 2018-05-15 Genvid Technologies, Inc. Systems and methods of video game streaming with interactive overlay and additional data
US10857457B2 (en) * 2017-10-19 2020-12-08 Daybreak Game Company Llc Management and broadcasting of live multiplayer video game activity

Also Published As

Publication number Publication date
CN115738295A (zh) 2023-03-07
US20230065298A1 (en) 2023-03-02

Similar Documents

Publication Publication Date Title
RU2536354C2 (ru) Социальное изменение виртуального аватара
JP6310073B2 (ja) 描画システム、制御方法、及び記憶媒体
US9457270B2 (en) Level server system for peer-to-peer cooperative games
CN110898428B (zh) 多虚拟对象交互的方法、装置、服务器及存储介质
US9526989B2 (en) Method and apparatus for receiving game streaming data, and method and server for transmitting game streaming data
EP3927442B1 (en) Transactional memory synchronization
JP2023533716A (ja) ゲームインタラクションからの不正なプレイヤの自動的分離
US10449458B2 (en) Skill matching for a multiplayer session
US11260306B2 (en) Matchmaking for online gaming with simulated players
KR20060076783A (ko) 네트워크 기반 게이밍 시스템
CN111672111A (zh) 界面显示方法、装置、设备及存储介质
KR20230034182A (ko) 온라인 게임들에서의 관전자 시스템
US11413547B2 (en) Building a dynamic social community based on real-time in-game context of a player
US11925861B2 (en) System for multiview games experience
US11389733B1 (en) Matchmaking for online gaming with privacy compliant connectivity prediction
US20130095931A1 (en) Data management for computer systems
US20150375122A1 (en) Systems and methods for controlling multiple accounts
EP3962613B1 (en) Improved discoverability in search
US11638872B1 (en) Videographer mode in online games
WO2024055811A1 (zh) 消息显示方法、装置、设备、介质及程序产品
JP2018033706A (ja) プログラム、及びシステム
JP2018047128A (ja) ゲームサーバ、電子機器、及びプログラム
US9692803B2 (en) Computer device, system and methods for controlling an exchange of objects between devices
CN116363286A (zh) 一种游戏处理的方法、设备、存储介质及程序产品
NL2002558C2 (en) METHOD AND SERVER FOR MULTI-PLAYER GAMING.