KR20180104684A - 게임 세션에의 참여를 가능하게 하기 위한 방법들 및 시스템들 - Google Patents

게임 세션에의 참여를 가능하게 하기 위한 방법들 및 시스템들 Download PDF

Info

Publication number
KR20180104684A
KR20180104684A KR1020187023961A KR20187023961A KR20180104684A KR 20180104684 A KR20180104684 A KR 20180104684A KR 1020187023961 A KR1020187023961 A KR 1020187023961A KR 20187023961 A KR20187023961 A KR 20187023961A KR 20180104684 A KR20180104684 A KR 20180104684A
Authority
KR
South Korea
Prior art keywords
session
application
electronic devices
output
session identifier
Prior art date
Application number
KR1020187023961A
Other languages
English (en)
Other versions
KR102072233B1 (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
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20180104684A publication Critical patent/KR20180104684A/ko
Application granted granted Critical
Publication of KR102072233B1 publication Critical patent/KR102072233B1/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/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 MPEG-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/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/323Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections between game devices with different hardware characteristics, e.g. hand-held game devices connectable to game consoles or arcade machines
    • 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
    • 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/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • 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/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/533Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu

Abstract

전자 디바이스에서 수행되는 방법은, 애플리케이션을 실행하는 단계; 실행 애플리케이션, 애플리케이션과 연관된 원격 서버, 및 세션으로부터의 출력을 출력 디바이스에 송신하는 미디어 디바이스 사이의 세션을 설정하는 단계 ― 세션으로부터의 출력은 실행 애플리케이션으로부터의 출력을 포함함 ― ; 및 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들에게 세션과 연관된 세션 식별자를 제공하는 단계를 포함하고, 세션 식별자는 제2 전자 디바이스들에 의한 세션의 조인을 가능하게 하며, 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들이 세션과 상호 작용하는 것을 가능하게 하기 위한, 하나 또는 그 초과의 제2 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별한다.

Description

게임 세션에의 참여를 가능하게 하기 위한 방법들 및 시스템들
[0001] 본 출원은 일반적으로, 게임 세션에서 사용자들의 참여를 가능하게 하기 위한 방법들 및 시스템들을 포함하는(그러나 이들로 제한되는 것은 아님) 컴퓨터 기술에 관한 것이다.
[0002] Google Inc.의 CHROMECAST 및 Apple Inc.의 APPLE TV와 같은 미디어 플레이어 디바이스들은 다양한 미디어 및 엔터테인먼트 애플리케이션들을 지원할 수 있다. 다수의 사용자들의 그룹은 미디어 플레이어 디바이스가 장착된 하나의 공간에 모이고, 이러한 애플리케이션들로부터 유추되는 엔터테인먼트를 함께 즐길 수 있다.
[0003] 미디어 플레이어 디바이스들에 의해 지원되는 하나의 타입의 애플리케이션은 게이밍 애플리케이션들이다. 많은 게임들은 다수의 플레이어들에 의해 플레이될 때 가장 즐겁게 되지만, 미디어 플레이어 디바이스들 상에서 실행되거나 또는 이들을 사용하는 게이밍 애플리케이션들에서의 멀티-플레이어 지원은 일부 문제들을 제시한다. 예컨대, 게임 애플리케이션들의 파일 사이즈들은 상당히 클 수 있고, 각각의 잠재적 플레이어가 전체 게임 애플리케이션 파일을 다운로드하게 하는 것은 어려울 수 있는데, 그 이유는 그러한 다운로드들이 많은 시간 및 데이터 허용치(allowance)들을 소비할 수 있기 때문이다. 다른 예로서, 사용자들은, 게임용 메인 게임 애플리케이션 및 게임에 특정된 원격 또는 제어기 애플리케이션의 별개의 다운로드들에 대한 필요성으로 인해 혼란스러울 수 있다. 이러한 비효율성들은 멀티-플레이어 게임을 플레이하는 데 드는 비용들을 증가시키며, 예컨대, 하나의 공간에 모인 다수의 사용자들이 즉흥적(spontaneous) 게임플레이 하기에 터무니없이 비쌀 수 있다.
[0004] 본 명세서에서 설명되는 구현들은, 한 명의 사용자가 자신의 디바이스(예컨대, 스마트폰) 상에 게임 애플리케이션을 가지고 있지만 다른 플레이어들은 가지고 있지 않을 수 있는 멀티플레이어 게임 세션들을 가능하게 하는 것에 관한 것이다.
[0005] 일부 구현들에서, 맞춤화가능한(customizable) 프레임워크를 가지는 표준화된 제어기는 디바이스를 제어할 수 있거나, 또는 웹을 통해 전달되어 가능한 경우 웹 브라우저에 통합될 수 있는 애플리케이션에 제공된다. 게임 경험은 다른 플레이어들에게, 그들이 세션 특정 단축링크로 진행하거나 또는 메시지(예컨대, 쇼트링크를 통해 텍스트 메시지)를 수신함으로써 프롬프트될 수 있다. 제어기는, 게임별 맞춤화(customization)들을 통해 적절히, 다수의 게임들에 걸쳐 작동하는 애플리케이션을 가지는 사용자에게 제공된다. 제어기는, 개발자가 제2 스크린 상호 작용 모델을 사용하는 데 이용가능한 구역에 대한 양손 또는 한 손 또는 비-가시적 제어에 대한, 표준화된 키들의 개념 또는 표준화된 키들의 구역을 포함할 수 있다.
[0006] 설명되는 구현들은, 캐스팅 디바이스 애플리케이션의 사용자들이, 게임 개발자들에 대한 인프라구조를 표준화하면서 자신들의 손들에 고 품질 게임 제어기를 가질 수 있게 허용한다. 설명되는 구현들은, 멀티플레이어 게이밍 세션들을 더 효율적으로 세팅함으로써 멀티플레이어 게이밍을 가능하게 하는 이점을 가진다.
[0007] 일부 구현들에 따라, 하나 또는 그 초과의 프로세서들, 및 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스에서, 방법이 수행된다. 방법은, 애플리케이션을 실행하는 단계; 실행 애플리케이션, 애플리케이션과 연관된 원격 서버, 및 세션으로부터의 출력을 출력 디바이스에 송신하는 미디어 디바이스 사이의 세션을 설정하는 단계 ― 세션으로부터의 출력은 실행 애플리케이션으로부터의 출력을 포함함 ― ; 및 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 제2 사용자들에게 세션과 연관된 세션 식별자를 제공하는 단계를 포함하고, 세션 식별자는 제2 전자 디바이스들에 의한 세션의 조인(join)을 가능하게 하며, 하나 또는 그 초과의 제2 전자 디바이스들의 제2 사용자들이 세션과 상호 작용하는 것을 가능하게 하기 위한, 하나 또는 그 초과의 제2 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별한다.
[0008] 일부 구현들에 따라, 하나 또는 그 초과의 프로세서들, 및 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스에서, 방법이 수행된다. 방법은, 제2 전자 디바이스 상에서 실행되는 애플리케이션 및 애플리케이션과 연관된 원격 서버와의 세션을 설정하기 위한 명령들을 수신하는 단계; 수신된 명령들에 따라 세션을 설정하는 단계; 세션과 연관된 세션 식별자를 수신하는 단계 ― 세션 식별자는 하나 또는 그 초과의 제3 전자 디바이스들에 의한 세션의 조인을 가능하게 하며, 제3 전자 디바이스들의 하나 또는 그 초과의 사용자들이 세션과 상호 작용하는 것을 가능하게 하기 위한, 하나 또는 그 초과의 제3 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별함 ― ; 및 디스플레이를 위해 세션 식별자를 출력 디바이스에 송신하는 단계를 포함한다.
[0009] 일부 구현들에 따라, 전자 디바이스는, 하나 또는 그 초과의 프로세서들, 및 하나 또는 그 초과의 프로세서들에 의해 실행될 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 포함한다. 하나 또는 그 초과의 프로그램들은 위에서 설명된 방법들 중 임의의 방법을 수행하기 위한 명령들을 포함한다. 일부 구현들에 따라, 비-일시적 컴퓨터-판독가능한 저장 매체는 하나 또는 그 초과의 프로그램들을 저장하고, 하나 또는 그 초과의 프로그램들은, 하나 또는 그 초과의 프로세서들과 함께 전자 디바이스에 의해 실행될 때, 전자 디바이스로 하여금, 위에서 설명된 방법들 중 임의의 방법을 수행하게 하는 명령들을 포함한다.
[0010] 도 1a는 일부 구현들에 따른 예시적 게이밍 환경이다.
[0011] 도 1b는 일부 구현들에 따른 다른 예시적 게이밍 환경이다.
[0012] 도 2a 및 도 2b는 일부 구현들에 따른, 예시적 클라이언트 디바이스들을 예시하는 블록 다이어그램들이다.
[0013] 도 3은 일부 구현들에 따른, 예시적 미디어 디바이스를 예시하는 블록 다이어그램이다.
[0014] 도 4는 일부 구현들에 따른, 예시적 서버를 예시하는 블록 다이어그램이다.
[0015] 도 5a-도 5b는 일부 구현들에 따른 예시적 사용자 인터페이스들을 예시한다.
[0016] 도 5c-도 5f는 일부 구현들에 따른 예시적 게임 제어기 인터페이스들을 예시한다.
[0017] 도 6은 일부 구현들에 따른, 애플리케이션 세션을 설정하기 위한 예시적 방법을 예시하는 흐름 다이어그램이다.
[0018] 도 7은 일부 구현들에 따른, 세션 식별자를 제공하기 위한 예시적 방법을 예시하는 흐름 다이어그램이다.
[0019] 유사한 참조 번호들은 도면들 전반에 걸쳐 대응하는 부분들을 지칭한다.
[0020] 본 출원에서 설명되는 다양한 구현들에서, 게이밍 환경은, 출력 디바이스에 커플링된 미디어 디바이스(예컨대, 캐스팅 디바이스) 및 미디어 디바이스에 통신가능하게 커플링된 제1 클라이언트 디바이스를 포함한다. 애플리케이션(예컨대, 게임 애플리케이션)은 제1 클라이언트 디바이스 상에서 실행된다. 실행 애플리케이션과 원격 서버 뿐만 아니라 미디어 디바이스 사이에 세션이 설정된다. 세션(예컨대, 링크)의 식별자는, 하나 또는 그 초과의 제2 클라이언트 디바이스들의 사용자들에게 제공될 수 있으며, 여기서, 사용자들은 세션에 조인하기 위해 세션 식별자를 사용할 수 있다. 세션 및 세션 식별자는 또한, 제2 클라이언트 디바이스들에서 세션과 상호 작용을 가능하게 하는 제어기 구성과 연관된다. 이러한 방식으로, 상호 작용식 애플리케이션과 연관된 세션은, 호스트 클라이언트에서 개시될 수 있고, 애플리케이션을 인스톨하지 않은 클라이언트들을 포함하는 부가적 클라이언트들은 더 효율적 방식으로 세션으로 초대되어 세션 상에 탑재될 수 있다. 부가적으로, 이러한 방식으로, 세션에 대한 공통 입력 인터페이스가 호스트 클라이언트 및 세션 내의 부가적 클라이언트들에 제공될 수 있다.
[0021] 도 1a는 일부 구현들에 따른 예시적 게이밍 환경(100)이다. 게이밍 환경(100)은 로컬 네트워크(110) 상의 클라이언트 디바이스(102) 및 미디어 디바이스(106)를 포함한다. 일부 구현들에서, 로컬 네트워크(110)는 유선(예컨대, Ethernet) 및/또는 무선(예컨대, Wi-Fi) 통신들을 사용하여 하나 또는 그 초과의 디바이스들을 네트워킹한다. 예컨대, 로컬 네트워크(110)는 하나 또는 그 초과의 디바이스들을 로컬 네트워크(110)로 네트워킹하는 라우터 디바이스를 포함한다. 로컬 네트워크(110)는 통신 네트워크들(112)(예컨대, 광역 네트워크들, 인터넷)에 통신가능하게 커플링된다.
[0022] 클라이언트 디바이스(102) 및 미디어 디바이스(106)는 통신가능하게 커플링된다. 클라이언트 디바이스(102) 및 미디어 디바이스(106)는 로컬 네트워크(110)를 통해 그리고/또는 (예컨대, 블루투스 또는 다른 무선 통신들을 통해) 직접 서로 통신할 수 있다. 일부 구현들에서, 클라이언트 디바이스(102) 및 미디어 디바이스(106)는 (예컨대, 동일한 방, 동일한 집 등에서) 서로에 대해 로컬이다. 미디어 디바이스(106)는 시각적 및/또는 오디오 컨텐츠(예컨대, 텔레비전, 디스플레이 모니터, 사운드 시스템, 스피커 등)를 출력할 수 있는 하나 또는 그 초과의 출력 디바이스들(108)에 커플링된다. 미디어 디바이스(106)는 컨텐츠를 출력 디바이스(들)(108)로 출력하도록 구성된다. 일부 구현들에서, 미디어 디바이스(106)는 캐스팅 디바이스(예컨대, Google Inc.의 CHROMECAST)이거나 또는 그렇지 않으면 캐스팅 기능을 포함하는 디바이스이다.
[0023] 클라이언트 디바이스(102)는, 하나 또는 그 초과의 애플리케이션들을 포함하며, 이들을 실행할 수 있는 디바이스이다. 일부 구현들에서, 클라이언트 디바이스(102)는 스마트폰, 태블릿 디바이스, 랩탑 또는 노트북 컴퓨터, 데스크탑 컴퓨터 또는 멀티미디어 디바이스이다.
[0024] 일부 구현들에서, 클라이언트 디바이스(102)는 미디어 디바이스(106)와 함께 동작하도록 구성된 하나 또는 그 초과의 애플리케이션들을 포함한다. 일부 구현들에서, 애플리케이션들은 클라이언트 디바이스(102)를 미디어 디바이스(106)와 페어링하고 미디어 디바이스(106)를 구성하기 위한 미디어 디바이스 애플리케이션을 포함한다. 애플리케이션들은 또한, 연관된 컨텐츠를 미디어 디바이스(106)로 캐스팅할 수 있는 하나 또는 그 초과의 애플리케이션들을 포함한다. 일부 구현들에서, 애플리케이션은, 데이터/컨텐츠를 (예컨대, 로컬 네트워크(110)를 통해) 미디어 디바이스(106)에 직접 전송함으로써 그리고/또는 미디어 디바이스(106)를 원격 위치(예컨대, "URL"(Universal Resource Locator) 또는 서버 시스템에서의 위치에 대한 다른 링크) ― 이로부터 미디어 디바이스(106)가 데이터/컨텐츠를 스트리밍하거나 또는 그렇지 않으면 수신할 수 있음 ― 로 지향함으로써 데이터 및/또는 컨텐츠를 미디어 디바이스(106)로 캐스팅한다. 미디어 디바이스(106)는 애플리케이션 및/또는 원격 위치로부터 데이터/컨텐츠를 수신하며, 수신된 데이터/컨텐츠에 대응하는 시각적 및/또는 오디오 컨텐츠를 출력 디바이스(108)로 출력한다.
[0025] 게이밍 환경(100)에서, 클라이언트 디바이스(102)(이하, "호스트 클라이언트")의 사용자(이하, "호스트 사용자")는, 호스트 클라이언트(102)에서의 실행을 위한 게임 애플리케이션(예컨대, 도 2a의 게임 애플리케이션(228))을 착수(launch)함으로써 게임을 시작할 수 있다. 게임 애플리케이션을 실행하게 되면, 서버(114)에서 게임 세션(116)을 설정하기 위해 서버(114)와 통신한다. 일부 구현들에서, 사용자는 또한, 출력을 위해 게임 세션과 연관된 데이터를 수신하도록 미디어 디바이스(106)에 지시하기 위해 미디어 디바이스(106)와 통신하도록 게임 애플리케이션에 명령할 수 있다. 따라서, 세션(116)은 게임 애플리케이션, 원격 서버(114) 및 미디어 디바이스(106) 사이에 설정된다.
[0026] 호스트 사용자는 게임에 조인하도록 부가적 플레이어들을 초대할 수 있다. 세션(116)의 식별자는, 하나 또는 그 초과의 클라이언트 디바이스들(104)"(이하 "플레이어 클라이언트(들)")의 사용자들(이하 "플레이어 사용자(들)")에게 제공될 수 있다. 일부 구현들에서, 세션 식별자는 인터넷 링크(예컨대, 쇼트 URL)이거나 또는 그렇지 않으면 이를 포함한다. 일부 구현들에서, 세션 식별자는 미디어 디바이스(106)를 통해 출력 디바이스(108) 상에 출력된다. 예컨대, 세션 식별자는 미디어 디바이스(106)에 커플링된 디스플레이 상에 디스플레이되고; 세션 식별자는 호스트 클라이언트(102) 또는 서버(114)로부터 미디어 디바이스(106)에 의해 수신된다. 일부 다른 구현들에서, 세션 식별자는 메시지들로(예컨대, 텍스트 메시지로) 플레이어 클라이언트들(104)에 전송된다. 일부 추가적 구현들에서, 세션 식별자는 통지 메시지(예컨대, 스마트폰 통지)로 플레이어 클라이언트들(104) 상에 제공된다. 예컨대, 하나 또는 그 초과의 플레이어 클라이언트들(104)이 호스트 클라이언트(102)의 로컬 영역에(예컨대, 동일한 방에) 있는 것으로 결정될 때, 세션 식별자는 이러한 플레이어 클라이언트들(104)에 송신될 수 있다. 플레이어 클라이언트들(104)은 세션에 조인하도록 초대를 플레이어 사용자들에게 통보하는 통지를 디스플레이한다. 플레이어 사용자가 통지를 여는 경우, 플레이어 사용자는 통지로부터 세션 식별자에 직접 액세스할 수 있거나 또는 (예컨대, 다른 애플리케이션에서) 세션 식별자를 디스플레이하기 위해 어포던스(affordance)를 활성화할 수 있다.
[0027] 세션 식별자는 세션(116)에 조인하기 위해 플레이어 클라이언트(104)에서 사용될 수 있다. 일부 구현들에서, 세션 식별자는 세션(116)의 링크(예컨대, "URL"(Universal Resource Locator))이다. 링크 또는 링크의 인코딩(예컨대, QR 코드)은, 출력 디바이스(108)에 의해 디스플레이되거나 또는 메시지들로 플레이어 디바이스들(104)에 전송될 수 있다.
[0028] 세션 식별자가 플레이어 클라이언트(104)에서 사용될 때(예컨대, 세션 식별자 링크가 활성화될 때), 플레이어 클라이언트(104)는 세션(116)에 조인하기 위해 서버(114)와 통신한다. 플레이어 클라이언트(104)가 세션(116)에 조인한 이후에, 플레이어 사용자들은 호스트 사용자와 함께 게임을 플레이할 수 있는데, 즉, 세션(116)의 출력에 영향을 미치는 입력들을 수행할 수 있다.
[0029] 일부 구현들에서, 플레이어 클라이언트(104)가 호스트 클라이언트(102)의 로컬 네트워크(110) 상에 이미 있는 경우(예컨대, 연결(120)을 통해 로컬 네트워크에 연결됨), 서버(114)와 플레이어 클라이언트(104) 사이의 통신들은 로컬 네트워크(110)를 통한다. 플레이어 클라이언트(104)가 호스트 클라이언트(102)의 로컬 네트워크(110) 상에 있지 않는 경우, 서버(114)와 플레이어 클라이언트(104) 사이의 통신들은 상이한 연결(예컨대, 셀룰러 데이터 네트워크들을 통한 연결(118))을 통한다.
[0030] 일부 구현들에서, 플레이어 클라이언트(104)가 세션(116)에 조인하는 프로세스의 일부로서, 서버(114)는, 플레이어 클라이언트(104)의 능력들, 및/또는 서버(114)와 플레이어 클라이언트(104) 사이의 통신 연결의 품질에 액세스한다. 일부 구현들에서, 서버(114)는 클라이언트(104)와 서버(114) 사이의 네트워크 레이턴시를 측정한다. 측정된 레이턴시가 임계치를 초과하고, 더 낮은-레이턴시 연결이 이용가능한 경우, 서버(114)는 플레이어 클라이언트(104)가 더 낮은 레이턴시 연결로 변경할 것을 제안하거나, 또는 플레이어 클라이언트(104)를 더 낮은 레이턴시 연결로 변경시키도록 플레이어 클라이언트(104)의 플레이어 사용자를 초대할 수 있다. 예컨대, 플레이어 클라이언트(104)가 셀룰러 무선 연결(118) 상에 있고, 호스트 사용자의 로컬 네트워크(110)가 이용가능한 경우, 서버(114)는 플레이어 클라이언트(104)가 로컬 네트워크(110)를 통해 연결해야 할 것을 제안할 수 있다.
[0031] 일부 구현들에서, 레이턴시 임계치 요건들은 게임들마다 다르다. 예컨대, 일부 게임들(예컨대, 액션 게임들)은 더 낮은 레이턴시 연결들 상에서 최상으로 경험되고, 일부 다른 게임들(예컨대, 온라인 보드 게임들 또는 카드 게임들)은 레이턴시와 관련하여 요구가 많지 않으며, 서버(114)는 이러한 상이한 요건들을 고려하여 연결 권장사항들을 제시할 수 있다.
[0032] 일부 구현들에서, 서버(114)는 더 낮은 레이턴시 연결(예컨대, 로컬 네트워크(110))로 플레이어 클라이언트(104)를 초대하거나 또는 그렇지 않으면, 더 낮은 레이턴시 연결로의 플레이어 클라이언트(104)의 연결을 가능하게 한다. 예컨대, 서버(114)는 액세스 크리덴셜들(access credentials)(예컨대, 로컬 네트워크(110)의 라우터에 대한 Wi-Fi 사용자명 및 패스워드)을 로컬 네트워크(110)에 제공하도록 호스트 클라이언트(102) 또는 미디어 디바이스(106)에 제공하거나 또는 명령할 수 있다. 일부 구현들에서, 액세스 크리덴셜들은 시간-제한적(예컨대, 세션(116)의 듀레이션 동안에만, 현재 날짜 동안에만 등)이고 그리고/또는 세션-제한적이다.
[0033] 세션(116)에 조인하는 플레이어 클라이언트(104)의 일부로서, 서버(114)는 플레이어 클라이언트(104) 상에 제어기를 셋업하기 위해 플레이어 클라이언트(104)와 통신한다. 일부 구현들에서, 이것은, 플레이어 클라이언트(104)가 가상 제어기를 구현하는 데 필요한 애플리케이션을 가지고 있는지 여부 및/또는 플레이어 클라이언트(104)와 서버(114) 사이의 통신 연결이 (예컨대, 위에서 설명된 능력들 및 연결 품질 평가의 일부로서) 게임 세션에 적절한 레이턴시를 가지고 있는지 여부를 포함하여, 플레이어 클라이언트(104)가 제어기에 필요한 자원들을 가지고 있는지 여부를 서버(114)가 평가하는 것을 포함한다. 플레이어 클라이언트(104)에서 이용가능한 자원들, 연결 품질 및 게임에 대한 요건들에 따라, 제어기는 플레이어 클라이언트(104)에서 상이하게 구현될 수 있다.
[0034] 일부 구현들에서, 표준화된 제어기는 게임과 직접 연관되거나 또는 게임에 특정되지 않은 사전 정의된 애플리케이션(예컨대, Google Inc.에 의한 CHROMECAST 또는 GOOGLE CAST와 같은 캐스팅 디바이스 애플리케이션, 또는 다른 미디어 디바이스 애플리케이션)으로 또는 플레이어 클라이언트(104)의 운영 시스템으로 구현된다. 예컨대, 디바이스 운영 시스템 또는 플레이어 클라이언트(104) 상의 사전 정의된 애플리케이션은 제어기 서브-모듈을 가질 수 있다. 제어기 서브-모듈은 하나 또는 그 초과의 표준화된 제어기 구성들, 템플릿들 등을 포함한다. 표준화된 제어기 구성들 각각은, 가상 제어기를 구현하기 위한 일부 방식으로 플레이어 클라이언트(104) 상의 입력 디바이스들 및/또는 센서들을 활용하도록 제어기 서브-모듈을 구성한다. 어떤 표준화된 제어기 구성이 사용되는지는 게임에 따라 그리고/또는 플레이어 클라이언트(104)의 타입에 따라 다를 수 있다. 예컨대, 플레이어 클라이언트(104)가 터치 스크린을 가지는 모바일 디바이스인 경우, 터치 스크린 상에 디스플레이되고 이를 활용하는 가상 제어기 패드를 구현하는 표준화된 제어기 구성이 사용된다. 가상 제어기 패드는 가상 버튼들, 가상 방향 패드 및/또는 가상 조이스틱을 포함할 수 있다. 다른 예로서, 플레이어 클라이언트(104)가 물리적 키보드를 가지는 랩탑 또는 데스크탑 컴퓨터인 경우, 물리적 키보드의 키들을 제어기 기능들에 맵핑하는 표준화된 제어기 구성이 사용될 수 있다. 추가적 예로서, 센서들(예컨대, 가속도계)을 포함하고 입력으로서 플레이어 클라이언트(104)의 모션을 사용하는 게임들을 위한 플레이어 클라이언트(104) 상에서, 플레이어 클라이언트(104)를, 터치 스크린 상에 디스플레이된 하나 또는 그 초과의 가상 버튼들을 선택적으로 가지는 모션 제어기로 전환시키는 표준화된 제어기 구성이 사용된다.
[0035] 표준화된 제어기 구성은, 다수의 게임들에 의해 사용될 수 있으며, 그 표준화된 제어기 구성을 사용하는 상이한 게임들에 걸쳐 동일하다. 플레이어 클라이언트(104)는, 어떤 표준화된 제어기 구성이 세션(116)에 조인하는 프로세스의 일부로서 사용될지에 대해 명령받는다. 추가로, 표준화된 제어기 구성들이 또한, 호스트 클라이언트(102) 상에서 사용될 수 있다.
[0036] 일부 구현들에서, 게임은 제어기 서브-모듈 상에 구현될 수 있는 특정 제어기 구성을 가진다. 그러한 구성은, 각각 호스트 클라이언트(102)가 세션(106)을 시작하고, 플레이어 클라이언트(104)가 세션(116)에 조인하는 프로세스의 일부로서, 각각 서버(114)에 저장되고, 호스트 클라이언트(102) 및 플레이어 클라이언트(104)에 송신될 수 있다. 특정 구성은, 향후 사용을 위해 호스트 클라이언트(102) 및/또는 플레이어 클라이언트(104)에 저장 또는 캐싱될 수 있다. 특정 제어기 구성은 제어기 서브-모듈에 적용될 수 있고; 제어기 서브-모듈은 특정 제어기 구성에 대한 빈 캔버스(blank canvas)로서 작동한다. 일부 구현들에서, 특정 제어기 구성은, 전체 맞춤형(custom) 제어기이거나, 또는 표준형 제어기 및 맞춤형 제어기 또는 구역의 혼합일 수 있다.
[0037] 일부 구현들에서, 게임은 게임과 연관된 특정 애플리케이션을 요구한다. 예컨대, 게임은, 특히 게임과 연관된 제어기 애플리케이션을 요구할 수 있다.
[0038] 일부 구현들에서, 플레이어 클라이언트(104)는 세션(116)에 조인하는 일부로서 사전 정의된 애플리케이션 또는 특정 애플리케이션을 다운로드하도록 지시될 수 있다. 예컨대, 플레이어 클라이언트(104)가 이미 (제어기 서브-모듈을 가지는) 사전 정의된 애플리케이션 또는 게임과 연관된 특정 애플리케이션을 가지고 있지 않고, 그러한 애플리케이션이 플레이를 위해 요구되는 경우, 서버(114)는, 다운로드가 필요하다는 것을 플레이어 사용자에게 프롬프트하도록 그리고 진행할 허가(permission)를 플레이어 사용자에게 요청하도록 플레이어 클라이언트(104)에 명령한다.
[0039] 일부 구현들에서, 게임은 웹페이지-기반 제어기 인터페이스로 플레이될 수 있다. 예컨대, 게임용 제어기 인터페이스는 웹페이지에 임베딩될 수 있고, 웹페이지는 플레이어 클라이언트(104) (및/또는 또한 호스트 클라이언트(102)) 상의 웹 브라우저에 렌더링된다. 그런 다음, 플레이어 사용자는 웹페이지 내의 제어기 인터페이스와 상호 작용할 수 있다. 웹페이지-기반 제어 인터페이스가 세션(116)에 대해 선택된 제어기인 경우, 서버(114)는, 플레이어 클라이언트(104)가 세션에 조인할 때, 제어 인터페이스 웹페이지를 플레이어 클라이언트(104)에 송신한다.
[0040] 일부 구현들에서, 어떤 제어기가 게임 세션(116)을 위해 사용되는지는 게임의 규격들 및/또는 클라이언트(102/104)에서 이용가능한 자원들에 기반한다. 예컨대, 게임이 게임-특정 애플리케이션이 다운로드되도록 요구하는 경우, 플레이어 클라이언트(104)는 애플리케이션의 존재에 대해 체크되고, 애플리케이션이 존재하지 않으면 다운로드하라는 프롬프트가 전송된다. 게임이 게임-특정 애플리케이션을 요구하지 않지만, 대신에, 제어기 서브-모듈에 대해 표준화된 제어기 구성 또는 제어기 템플릿을 활용하는 경우, 플레이어 클라이언트(104)는 제어기 서브-모듈의 존재에 대해 체크되고, (예컨대, 애플리케이션 또는 운영 시스템 업데이트에서) 제어기 서브-모듈이 존재하지 않으면 다운로드하라는 프롬프트가 전송된다. 제어기 서브-모듈이 존재하면, 제어기 구성 또는 템플릿(예컨대, 게임-특정 맞춤형 템플릿, 어떤 표준화된 구성이 사용될지에 대한 표시)가 플레이어 클라이언트(104)에 송신된다. 추가적 예로서, 게임이, 표준화된 제어기 구성 또는 웹페이지-기반 인터페이스를 사용할 수 있고, 게임이 낮은-레이턴시 제어를 요구하지 않는 경우, 제어기 서브-모듈이 존재하지 않으면, 부가적 다운로드를 회피하기 위해 웹페이지-기반 인터페이스가 사용될 수 있다.
[0041] 일부 구현들에서, 플레이어 클라이언트(104)와 서버(114) 사이의 통신 연결의 품질은 위에서 서술된 바와 같이 체크된다. 예컨대, 게임이 레이턴시에 관한 요건들을 가지고, 셀룰러 데이터 네트워크들을 통한 연결이 그 요건을 충족하지 않는 경우, 더 높은-품질 연결(예컨대, 로컬 영역 네트워크 연결)로 스위칭하라는 프롬프트가 송신될 수 있다. 예컨대, 플레이어 클라이언트(104)가 셀룰러 데이터 네트워크들을 통해 연결되고(118), 그 연결(118)이 게임에 대해 매우 높은 레이턴시를 가지는 경우, 플레이어 사용자는 플레이어 클라이언트(104)를 로컬 네트워크를 통한 연결로 스위칭하도록 프롬프트받을 수 있다. 플레이어 클라이언트(104)가 호스트 클라이언트(102)와 동일한 영역에(예컨대, 동일한 방에) 있는 경우, 플레이어 클라이언트(104)는 호스트 클라이언트(102)와 동일한 로컬 네트워크(110)에 연결할 수 있다(120). 일부 구현들에서, 미디어 디바이스(106) 또는 호스트 클라이언트(102), 또는 심지어 로컬 네트워크(110)에 대한 라우터는, 로컬 네트워크(110)에 조인하기 위한 크리덴셜들(예컨대, 로컬 네트워크(110)의 라우터에 대한 Wi-Fi 크리덴셜들)을 플레이어 클라이언트(104)에 제공하도록 서버(114)에 의해 명령받는다. 이러한 크리덴셜들은, 예컨대, 출력 디바이스(108) 상에 디스플레이되거나(그리고 플레이어 사용자가 크리덴셜들을 수동으로 입력하거나 또는 크리덴셜들을 인코딩하는 코드를 스캔함) 또는 플레이어 클라이언트(104)에 전송될 수 있다. 이러한 크리덴셜들은, 예컨대, 세션마다, 당일과 같이 일시적이거나, 또는 그렇지 않으면, 세션-제한적 및/또는 시간-제한적일 수 있다.
[0042] 플레이어 클라이언트(104)가 세션(116)에 조인하고 적절한 제어기 구성을 수신한 이후에, 플레이어 사용자는 플레이어 클라이언트(104) 상에서 게임을 플레이하고, 게임 세션(116)으로부터의 출력에 영향을 미칠 수 있다.
[0043] 도 1b는 일부 구현들에 따른 다른 예시적 게이밍 환경(130)을 예시한다. 많은 점들에서, 게이밍 환경(130)은 게이밍 환경(100)과 유사하다. 클라이언트(132)는 클라이언트(102)와 유사한, 호스트 사용자의 호스트 클라이언트이다. 게이밍 환경(130)에서 선택적인 미디어 디바이스(136)는 미디어 디바이스(106)와 유사하다. 출력 디바이스(138)는 출력 디바이스(108)와 유사하다. 클라이언트(들)(134)는 클라이언트(들)(104)와 유사한, 플레이어 사용자(들)의 플레이어 클라이언트(들)이다. 서버(144)는 서버(114)와 유사하며, 네트워크들(112)과 유사한 하나 또는 그 초과의 통신 네트워크들(148)을 통해 클라이언트 디바이스들 및 다른 디바이스들과 통신한다. 세션(146)은 세션(116)과 유사하고; 호스트 클라이언트(132)는 먼저 서버(144)와의 세션(146)을 설정하고, 플레이어 클라이언트들(134)은 세션(146)에 조인한다.
[0044] 게이밍 환경(130)에서, 호스트 클라이언트(132)(및 미디어 디바이스(136) 및 출력 디바이스(138))는 플레이어 클라이언트들(134)로부터 원격이고; 플레이어 사용자들은 호스트 사용자로부터 원격이다. 다시 말해서, 플레이어 클라이언트들(134)은 호스트 클라이언트(134)와 동일한 영역에(예컨대, 동일한 방 또는 심지어 구조에) 로케이팅되지 않는다. 도 1a에서와 같이, 게임은 호스트 클라이언트(132)에서의 실행을 위해 게임 애플리케이션(예컨대, 도 2a의 게임 애플리케이션(228))을 착수함으로써 시작될 수 있다. 게임 애플리케이션을 실행하게 되면, 서버(144)와의 세션(146)을 설정한다. 플레이어 클라이언트들(134)은 메시지에 의해 세션(146)에 조인하도록 초대되고; 세션에 조인하기 위한 링크를 가지는 메시지들은 플레이어 클라이언트들(134)에 전송된다. 적절한 제어기 구성이 세션(146)에 조인하는 플레이어 클라이언트(134)에 제공된다. 또한, 일부 구현들에서, 서버(144)는, 플레이어 클라이언트(들)(134)가 호스트 클라이언트(132)에 대해 로컬이 아니라고 결정하며, 호스트 클라이언트(132)의 로컬 네트워크에 연결하기 위해 플레이어 클라이언트(들)(134)로의 크리덴셜들의 프로비전을 프롬프트하거나 또는 가능하게 하는 것을 생략하고, 대신에, 이용가능한 로컬 네트워크에 연결하도록 플레이어 클라이언트(들)(134)에 선택적으로 프롬프트한다.
[0045] 도 2a는 일부 구현들에 따른, 게이밍 환경(100)의 예시적 호스트 클라이언트(102)를 예시하는 블록 다이어그램이다. 클라이언트 디바이스(102)의 예들은, 모바일 폰, 태블릿 컴퓨터, 랩탑 컴퓨터, 데스크탑 컴퓨터 및 웨어러블 개인용 디바이스를 포함하지만, 이들로 제한되는 것은 아니다. 클라이언트 디바이스(102)는 통상적으로, 하나 또는 그 초과의 프로세싱 유닛(CPU)들(202), 하나 또는 그 초과의 네트워크 인터페이스들(204), 메모리(206) 및 이러한 컴포넌트들(때때로 칩셋이라 칭함)을 상호 연결하기 위한 하나 또는 그 초과의 통신 버스들(208)을 포함한다. 클라이언트 디바이스(102)는, 키보드, 마우스, 음성-커맨드 입력 유닛 또는 마이크로폰, 터치 스크린 디스플레이, 터치-감지형 입력 패드, 제스처 캡처 카메라 또는 다른 입력 버튼들 또는 제어들과 같은 사용자 입력을 가능하게 하는 하나 또는 그 초과의 입력 디바이스들(210)을 포함한다. 게다가, 일부 클라이언트 디바이스들(102)은 키보드를 보충하거나 또는 대체하기 위해 마이크로폰 및 음성 인식 또는 카메라 및 제스처 인식을 사용한다. 일부 구현들에서, 클라이언트 디바이스(102)는, 예컨대, 전자 디바이스들 상에 인쇄된 그래픽 시리즈 코드들의 이미지들을 캡처하기 위한 하나 또는 그 초과의 카메라들, 스캐너들 또는 포토 센서 유닛들을 포함한다. 클라이언트 디바이스(102)는 또한, 하나 또는 그 초과의 스피커들 및/또는 하나 또는 그 초과의 시각적 디스플레이들을 포함하는, 사용자 인터페이스들 및 디스플레이 컨텐츠의 제공을 가능하게 하는 하나 또는 그 초과의 출력 디바이스들(212)을 포함한다. 선택적으로, 클라이언트 디바이스(102)는 클라이언트 디바이스(102)의 위치를 결정하기 위해, GPS(global positioning satellite) 또는 다른 지리적-위치 수신기와 같은 위치 검출 디바이스(214)를 포함한다. 클라이언트 디바이스(102)는 또한, 미디어 디바이스(106) 및/또는 플레이어 클라이언트들(104)의 근접도를 결정하기 위한 근접도 검출 디바이스(215), 예컨대, IR 센서를 포함할 수 있다. 클라이언트 디바이스(102)는 또한, 입력으로서 사용될 수 있는, 클라이언트 디바이스(102)의 모션, 배향 및 다른 파라미터들을 감지하기 위한 하나 또는 그 초과의 센서들(213)(예컨대, 가속도계, 자이로스코프 등)을 포함할 수 있다.
[0046] 메모리(206)는, DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태(solid state) 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하며; 그리고 선택적으로, 하나 또는 그 초과의 자기 디스크 저장 디바이스들, 하나 또는 그 초과의 광학 디스크 저장 디바이스들, 하나 또는 그 초과의 플래시 메모리 디바이스들, 또는 하나 또는 그 초과의 다른 비-휘발성 고체 상태 저장 디바이스들과 같은 비-휘발성 메모리를 포함한다. 메모리(206)는 선택적으로, 하나 또는 그 초과의 프로세싱 유닛(202)으로부터 원격으로 로케이팅된 하나 또는 그 초과의 저장 디바이스들을 포함한다. 메모리(206) 또는 대안적으로 메모리(206) 내의 비-휘발성 메모리는 비-일시적 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 구현들에서, 메모리(206) 또는 메모리(206)의 비-일시적 컴퓨터 판독가능한 저장 매체는, 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 이들의 서브세트 또는 수퍼세트를 저장한다:
· 다양한 기본 시스템 서비스들을 핸들링하고 하드웨어 의존적 태스크들을 수행하기 위한 프로시저들을 포함하는 운영 시스템(216);
· 하나 또는 그 초과의 네트워크 인터페이스들(204)(유선 또는 무선) 및 로컬 네트워크(110) 및 하나 또는 그 초과의 네트워크들(112), 이를테면, 인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 대도시 네트워크들 등을 통해 클라이언트 디바이스(102)를 다른 디바이스들(예컨대, 서버 시스템(114), 미디어 디바이스(106) 및 플레이어 클라이언트들(104))에 연결하기 위한 네트워크 통신 모듈(218);
· 하나 또는 그 초과의 출력 디바이스들(212)(예컨대, 디스플레이들, 스피커들 등)을 통해 클라이언트 디바이스(102)에서 정보(예컨대, 애플리케이션들, 위젯들, 웹사이트들 및 이들의 웹 페이지들, 및/또는 게임들, 오디오 및/또는 비디오 컨텐츠, 텍스트 등을 제공하기 위한 그래픽 사용자 인터페이스)의 제공을 가능하게 하기 위한 사용자 인터페이스 모듈(220);
· 하나 또는 그 초과의 입력 디바이스들(210) 중 하나로부터 하나 또는 그 초과의 사용자 입력들 또는 상호 작용들을 검출하고 검출된 입력 또는 상호 작용을 인터프리팅하기 위한 입력 프로세싱 모듈(222);
· 세션(116)에 조인하기 위한 웹 인터페이스를 포함하는, 네비게이팅, (예컨대, HTTP를 통해) 요청, 및 웹사이트들 및 이들의 웹 페이지들을 디스플레이하기 위한 웹 브라우저 모듈(224);
· 미디어 디바이스(106)와 연관된 사용자 계정에 로깅하는 것, 사용자 계정과 연관되는 경우 미디어 디바이스(106)를 제어하는 것, 및 미디어 디바이스(106)와 연관된 세팅들 및 데이터를 편집 및 리뷰하는 것을 포함하여, 미디어 디바이스(106)와 상호 작용하기 위한 미디어 디바이스 애플리케이션(226);
· 대응하는 게임플레이를 가능하게 하는 것 및 부가적 플레이어들의 초대를 가능하게 하는 것을 포함하여, 클라이언트 디바이스(102) 상에 게임(들)을 제공하기 위한 게임 애플리케이션(들)(228);
· 게임플레이 입력 인터페이스를 게임 애플리케이션(들)(228)에 제공하기 위한 게임 제어기 모듈(230);
· 서버(114) 및 다른 컨텐츠 호스트들 및 제공자들로부터 데이터(예컨대, 게임 제어기 구성(438)(도 4), 게임 애플리케이션들(228) 및 다른 애플리케이션들, 모듈들 및 애플리케이션들로의 업데이트들, 및 메모리(206) 내의 데이터)를 다운로드하기 위한 데이터 다운로드 모듈(231); 및
· 적어도, 게임 애플리케이션(228) 및 다른 애플리케이션들/모듈들과 연관된 데이터를 저장하는 클라이언트 데이터(232), 이는:
o 공통 디바이스 세팅들(예컨대, 서비스 티어, 디바이스 모델, 저장 용량, 프로세싱 능력들, 통신 능력들 등)을 포함하는, 클라이언트 디바이스(102) 그 자체와 연관된 정보를 저장하기 위한 클라이언트 디바이스 세팅들(234);
o 계정 액세스 정보 및 디바이스 세팅들(예컨대, 서비스 티어, 디바이스 모델, 저장 용량, 프로세싱 능력들, 통신 능력들 등)에 대한 정보 중 하나 또는 그 초과를 포함하는, 미디어 디바이스 애플리케이션(226)의 사용자 계정들과 연관된 정보를 저장하기 위한 미디어 디바이스 세팅들(236);
o 계정 액세스 정보, 게임-내 사용자 선호도들, 게임플레이 히스토리 데이터 및 다른 플레이어들에 대한 정보 중 하나 또는 그 초과를 포함하는, 게임 애플리케이션(들)(228)의 사용자 계정들과 연관된 정보를 저장하기 위한 게임 애플리케이션(들) 세팅들(238);
o 게임 애플리케이션(들)(228)에 대한 게임 제어기 모듈(230)의 구성들(예컨대, 도 4의 게임 제어기 구성들(438)로부터 수신된 구성들)과 연관된 정보를 저장하기 위한 게임 제어기 구성(들)(240); 및
o 클라이언트 디바이스(102), 미디어 디바이스(106), 및 플레이어 클라이언트(들)(104) 중 임의의 것의 존재, 근접도 또는 위치와 연관된 정보를 포함하는 위치/근접도 데이터(242)를 포함한다.
[0047] 일부 구현들에서, 게임 제어기 모듈(230)은, 미디어 디바이스 애플리케이션(226), 또는 메모리(206) 내의 다른 애플리케이션의 일부(예컨대, 서브-모듈)이다. 일부 다른 구현들에서, 게임 제어기 모듈(230)은 운영 시스템(216)의 일부이다. 일부 추가적 구현들에서, 게임 제어기 모듈(230)은 별개의 모듈 또는 애플리케이션이다.
[0048] 위에서 식별된 엘리먼트들 각각은, 앞서 언급된 메모리 디바이스들 중 하나 또는 그 초과에 저장될 수 있으며, 위에서 설명된 기능을 수행하기 위한 명령들의 세트에 대응한다. 위에서 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 별개의 소프트웨어 프로그램들, 프로시저들, 모듈들 또는 데이터 구조들로서 구현될 필요가 없으며, 따라서, 이러한 모듈들의 다양한 서브세트들이 조합되거나 또는 그렇지 않으면, 다양한 구현들에서 재-배열될 수 있다. 일부 구현들에서, 메모리(206)는 선택적으로, 위에서 식별된 모듈들 및 데이터 구조들의 서브세트를 저장한다. 게다가, 메모리(206)는 선택적으로, 위에서 설명되지 않은 부가적 모듈들 및 데이터 구조들을 저장한다.
[0049] 도 2b는 일부 구현들에 따른, 게이밍 환경(100)의 예시적 플레이어 클라이언트(104)를 예시하는 블록 다이어그램이다. 플레이어 클라이언트(104)는 호스트 클라이언트(102)와 유사하고; 플레이어 클라이언트(104)는 호스트 클라이언트(102)와 유사한 컴포넌트들, 모듈들 및 데이터를 가진다. 그러나, 플레이어 클라이언트(104)에서, 미디어 디바이스 애플리케이션(226)(및 이에 대응하여 미디어 디바이스 세팅들(236)) 및 게임 애플리케이션(228)(및 이에 대응하여 게임 애플리케이션 세팅들(238))은 선택적이다. 플레이어 클라이언트(104)가 조인하도록 초대된 특정 게임에 따라, 미디어 디바이스 애플리케이션(226) 및 게임 애플리케이션(228)은 플레이하도록 요구되지 않는다. 이러한 애플리케이션들 중 임의의 것이 게임을 플레이하기 위해 필요하고(예컨대, 게임이 미디어 디바이스 애플리케이션(226) 내의 게임 제어기 모듈(230)을 사용함), 애플리케이션이 메모리(206)에 있지 않은 경우, 플레이어 클라이언트(104)는 애플리케이션을 다운로드하도록 프롬프트받을 수 있다 .
[0050] 도 3은 일부 구현들에 따른, 게이밍 환경(100)의 예시적 미디어 디바이스(106)를 예시하는 블록 다이어그램이다. 미디어 디바이스(106)는 통상적으로, 하나 또는 그 초과의 프로세싱 유닛(CPU)들(302), 하나 또는 그 초과의 네트워크 인터페이스들(304), 메모리(306) 및 이러한 컴포넌트들(때때로 칩셋이라 칭함)을 상호 연결하기 위한 하나 또는 그 초과의 통신 버스들(308)을 포함한다. 선택적으로, 미디어 디바이스(106)는 클라이언트 디바이스(102 또는 104)의 근접도를 결정하기 위한 근접도/위치 검출 유닛(310), 이를테면, IR 센서를 포함한다.
[0051] 메모리(306)는, DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태(solid state) 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하며; 그리고 선택적으로, 하나 또는 그 초과의 자기 디스크 저장 디바이스들, 하나 또는 그 초과의 광학 디스크 저장 디바이스들, 하나 또는 그 초과의 플래시 메모리 디바이스들, 또는 하나 또는 그 초과의 다른 비-휘발성 고체 상태 저장 디바이스들과 같은 비-휘발성 메모리를 포함한다. 메모리(306)는 선택적으로, 하나 또는 그 초과의 프로세싱 유닛(302)으로부터 원격으로 로케이팅된 하나 또는 그 초과의 저장 디바이스들을 포함한다. 메모리(306) 또는 대안적으로 메모리(306) 내의 비-휘발성 메모리는 비-일시적 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 구현들에서, 메모리(306) 또는 메모리(306)의 비-일시적 컴퓨터 판독가능한 저장 매체는, 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 이들의 서브세트 또는 수퍼세트를 저장한다:
· 다양한 기본 시스템 서비스들을 핸들링하고 하드웨어 의존적 태스크들을 수행하기 위한 프로시저들을 포함하는 운영 시스템(316);
· 하나 또는 그 초과의 네트워크 인터페이스들(304)(유선 또는 무선) 및 하나 또는 그 초과의 네트워크들(112), 이를테면, 인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 대도시 네트워크들, 케이블 텔레비전 시스템들, 위성 텔레비전 시스템들, IPTV 시스템들 등을 통해 미디어 디바이스(106)를 다른 컴퓨터들 또는 시스템들(예컨대, 서버 시스템(114) 및 클라이언트 디바이스(102))에 연결하기 위한 네트워크 통신 모듈(318);
· 하나 또는 그 초과의 컨텐츠 소스들(예컨대, 게임 세션(116)으로부터 출력하기 위한 서버(114))로부터 수신된 컨텐츠 신호들을 디코딩하고 디코딩된 신호들에서의 컨텐츠를 미디어 디바이스(106)에 커플링된 출력 디바이스(108)로 출력하기 위한 컨텐츠 디코딩 모듈(320);
· 근접도 검출 유닛(310)에 의해 검출되거나 또는 서버 시스템(114)에 의해 제공되는 근접도 관련 정보에 기반하여 클라이언트 디바이스(102 및/또는 104)의 근접도를 결정하기 위한 근접도/위치 결정 모듈(322);
· 미디어 디스플레이를 제어하기 위한 미디어 디스플레이 모듈(324); 및
· 적어도, 다음을 포함하는 데이터를 저장하는 미디어 디바이스 데이터(326), 이는:
o 계정 액세스 정보 및 디바이스 세팅들(예컨대, 서비스 티어, 디바이스 모델, 저장 용량, 프로세싱 능력들, 통신 능력들 등)에 대한 정보 중 하나 또는 그 초과를 포함하는, 미디어 디바이스 애플리케이션의 사용자 계정들과 연관된 정보를 저장하기 위한 미디어 디바이스 세팅들(328); 및
o 클라이언트 디바이스(102 및/또는 104) 및 미디어 디바이스(106) 중 임의의 것의 존재, 근접도 또는 위치와 연관된 정보를 포함하는 위치/근접도 데이터(330)를 포함한다.
[0052] 위에서 식별된 엘리먼트들 각각은, 앞서 언급된 메모리 디바이스들 중 하나 또는 그 초과에 저장될 수 있으며, 위에서 설명된 기능을 수행하기 위한 명령들의 세트에 대응한다. 위에서 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 별개의 소프트웨어 프로그램들, 프로시저들, 모듈들 또는 데이터 구조들로서 구현될 필요가 없으며, 따라서, 이러한 모듈들의 다양한 서브세트들이 조합되거나 또는 그렇지 않으면, 다양한 구현들에서 재-배열될 수 있다. 일부 구현들에서, 메모리(306)는 선택적으로, 위에서 식별된 모듈들 및 데이터 구조들의 서브세트를 저장한다. 게다가, 메모리(306)는 선택적으로, 위에서 설명되지 않은 부가적 모듈들 및 데이터 구조들을 저장한다.
[0053] 도 4는 일부 구현들에 따른, 게이밍 환경(100)의 서버 시스템(114) 내의 예시적 서버를 예시하는 블록 다이어그램이다. 서버(114)는 통상적으로, 하나 또는 그 초과의 프로세싱 유닛(CPU)들(402), 하나 또는 그 초과의 네트워크 인터페이스들(404), 메모리(406) 및 이러한 컴포넌트들(때때로 칩셋이라 칭함)을 상호 연결하기 위한 하나 또는 그 초과의 통신 버스들(408)을 포함한다. 서버(114)는 선택적으로, 키보드, 마우스, 음성-커맨드 입력 유닛 또는 마이크로폰, 터치 스크린 디스플레이, 터치-감지형 입력 패드, 제스처 캡처 카메라 또는 다른 입력 버튼들 또는 제어들과 같은 사용자 입력을 가능하게 하는 하나 또는 그 초과의 입력 디바이스들(410)을 포함할 수 있다. 게다가, 서버(114)는 키보드를 보충하거나 또는 대체하기 위해 마이크로폰 및 음성 인식 또는 카메라 및 제스처 인식을 사용할 수 있다. 일부 구현들에서, 서버(114)는 선택적으로, 예컨대, 전자 디바이스들 상에 인쇄된 그래픽 시리즈 코드들의 이미지들을 캡처하기 위한 하나 또는 그 초과의 카메라들, 스캐너들 또는 포토 센서 유닛들을 포함한다. 서버(114)는 또한, 하나 또는 그 초과의 스피커들 및/또는 하나 또는 그 초과의 시각적 디스플레이들을 포함하는, 사용자 인터페이스들 및 디스플레이 컨텐츠의 제공을 가능하게 하는 하나 또는 그 초과의 출력 디바이스들(412)을 포함할 수 있다.
[0054] 메모리(406)는, DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 고체 상태(solid state) 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함하며; 그리고 선택적으로, 하나 또는 그 초과의 자기 디스크 저장 디바이스들, 하나 또는 그 초과의 광학 디스크 저장 디바이스들, 하나 또는 그 초과의 플래시 메모리 디바이스들, 또는 하나 또는 그 초과의 다른 비-휘발성 고체 상태 저장 디바이스들과 같은 비-휘발성 메모리를 포함한다. 메모리(406)는 선택적으로, 하나 또는 그 초과의 프로세싱 유닛(402)으로부터 원격으로 로케이팅된 하나 또는 그 초과의 저장 디바이스들을 포함한다. 메모리(406) 또는 대안적으로 메모리(406) 내의 비-휘발성 메모리는 비-일시적 컴퓨터 판독가능한 저장 매체를 포함한다. 일부 구현들에서, 메모리(406) 또는 메모리(406)의 비-일시적 컴퓨터 판독가능한 저장 매체는, 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 이들의 서브세트 또는 수퍼세트를 저장한다:
· 다양한 기본 시스템 서비스들을 핸들링하고 하드웨어 의존적 태스크들을 수행하기 위한 프로시저들을 포함하는 운영 시스템(416);
· 하나 또는 그 초과의 네트워크 인터페이스들(404)(유선 또는 무선) 및 하나 또는 그 초과의 네트워크들(112), 이를테면, 인터넷, 다른 광역 네트워크들, 로컬 영역 네트워크들, 대도시 네트워크들 등을 통해 서버 시스템(114)을 다른 디바이스들(예컨대, 서버 시스템(114), 클라이언트 디바이스(102 및/또는 104) 및 미디어 디바이스(108) 내의 다양한 서버들)에 연결하기 위한 네트워크 통신 모듈(418);
· 클라이언트 디바이스(102 및/또는 104)에서 정보(예컨대, 애플리케이션(들), 위젯들, 웹사이트들 및 이들의 웹 페이지들, 및/또는 게임들, 오디오 및/또는 비디오 컨텐츠, 텍스트 등을 제공하기 위한 그래픽 사용자 인터페이스)의 제공을 가능하게 하기 위한 사용자 인터페이스 모듈(420);
· 미디어 디바이스(들)(106)와 연관된 디바이스 프로비저닝, 디바이스 제어 및 사용자 계정 관리를 위한 서버-측 기능성들을 제공하도록 실행되는 미디어 디바이스 모듈(422)(선택적);
· 클라이언트 디바이스(102 및/또는 104) 및 미디어 디바이스(106) 중 임의의 것의 위치 정보에 기반하여 미디어 디바이스(106)에 대한 클라이언트 디바이스(102 및/또는 104)의 근접도를 결정하기 위한 근접도/위치 결정 모듈(428);
· 게임 세션들(440)을 셋업하는 것, 게임 상태 데이터 및 다른 게임-관련 데이터를 저장하는 것, 클라이언트 디바이스(102 및 104)로부터의 게임플레이 입력들을 프로세싱하는 것, 및 게임플레이 출력들을 렌더링하는 것을 포함하여(그러나, 이들로 제한되는 것은 아님), 게임들(예컨대, 게임 애플리케이션(들)(228))과 연관된 서버-측 기능성들을 제공하기 위한 게임 서버 모듈(426);
· 클라이언트 디바이스(102/104)에 대한 연결의 네트워크 대역폭을 평가하는 것 및 클라이언트 디바이스(102/104)가 게임을 플레이하는 데 필요한 모듈 또는 애플리케이션을 가지고 있는지 여부를 평가하는 것을 포함하여(그러나, 이들로 제한되는 것은 아님), 클라이언트 디바이스(102 및/또는 104)의 디바이스 및 네트워크 능력들을 평가하기 위한 디바이스/네트워크 평가 모듈(428);
· 데이터(예컨대, 게임 제어기 구성들(438), 소프트웨어 업데이트들 등)를 클라이언트 디바이스들(102/104)에 제공하기 위한 데이터 송신 모듈(429); 및
· 서버 시스템 데이터(430), 이는:
o 공통 디바이스 세팅들(예컨대, 서비스 티어, 디바이스 모델, 저장 용량, 프로세싱 능력들, 통신 능력들 등)을 포함하는, 클라이언트 디바이스들(102 및 104)과 연관된 정보를 저장하기 위한 클라이언트 디바이스 세팅들(432);
o 계정 액세스 정보 및 디바이스 세팅들(예컨대, 서비스 티어, 디바이스 모델, 저장 용량, 프로세싱 능력들, 통신 능력들 등)에 대한 정보 중 하나 또는 그 초과를 포함하는, 미디어 디바이스 애플리케이션(422)의 사용자 계정들과 연관된 정보를 저장하기 위한 미디어 디바이스 세팅들(434)(선택적);
o 클라이언트 디바이스(102 및/또는 104) 및 미디어 디바이스(106) 중 임의의 것의 존재, 근접도 또는 위치와 연관된 정보를 포함하는 위치/근접도 데이터(436);
o 다양한 게임들에 대한 제어기 구성들을 저장하기 위한 게임 제어기 구성들(438); 및
o 예컨대, 제1 게임 세션에 대한 데이터(440-1) 및 제2 게임 세션에 대한 데이터(440-2)를 포함하는, 게임 세션들과 연관된 데이터(예컨대, 게임 상태 데이터, 다른 게임-관련 데이터)를 저장하기 위한 게임 세션 데이터(440)를 포함한다.
[0055] 위에서 식별된 엘리먼트들 각각은, 앞서 언급된 메모리 디바이스들 중 하나 또는 그 초과에 저장될 수 있으며, 위에서 설명된 기능을 수행하기 위한 명령들의 세트에 대응한다. 위에서 식별된 모듈들 또는 프로그램들(즉, 명령들의 세트들)은 별개의 소프트웨어 프로그램들, 프로시저들, 모듈들 또는 데이터 구조들로서 구현될 필요가 없으며, 따라서, 이러한 모듈들의 다양한 서브세트들이 조합되거나 또는 그렇지 않으면, 다양한 구현들에서 재-배열될 수 있다. 일부 구현들에서, 메모리(406)는 선택적으로, 위에서 식별된 모듈들 및 데이터 구조들의 서브세트를 저장한다. 게다가, 메모리(406)는 선택적으로, 위에서 설명되지 않은 부가적 모듈들 및 데이터 구조들을 저장한다.
[0056] 도 5a-도 5b는 일부 구현들에 따른, 게임 세션으로 플레이어들을 초대하기 위한 예시적 사용자 인터페이스들을 예시한다. 도 5a는 호스트 클라이언트(예컨대, 클라이언트 디바이스(102)) 상에 디스플레이된 사용자 인터페이스(500)를 예시한다. 일부 구현들에서, 사용자 인터페이스(500)는 게임 애플리케이션(228)의 사용자 인터페이스이다. 사용자 인터페이스(500)는 호스트 사용자에 의한 게임 세션으로의 하나 또는 그 초과의 플레이어 사용자들의 초대를 가능하게 한다. 사용자 인터페이스(500)는, 게임 세션과 연관된 링크(예컨대, 도 5b의 쇼트링크(512); 쇼트링크의 QR 코드 인코딩)가 미디어 디바이스(예컨대, 미디어 디바이스(106))에 전송되게 하기 위한 어포던스(502)를 포함하고, 미디어 디바이스는 그런 다음, 디스플레이를 위해 링크를 출력 디바이스(예컨대, 출력 디바이스(108))로 출력한다. 사용자 인터페이스(500)는 또한, 게임 세션과 연관된 링크를 메시지(예컨대, 텍스트 메시지)로 호스트 사용자가 게임 세션으로 초대하기를 희망하는 플레이어 사용자들의 플레이어 클라이언트들(104)에 전송하기 위한 어포던스(504)를 포함한다. 호스트 사용자는 환경들에 따라, 플레이어 사용자들을 초대하기 위해 어포던스(502 또는 504)를 선택할 수 있다. 예컨대, 플레이어 사용자들이 호스트 사용자와 동일한 방에 있는 경우, 호스트 사용자는, 플레이어 사용자들이 자신들의 플레이어 클라이언트들(104)에 입력(예컨대, 가상 키보드로 타이핑)하도록 게임 세션 링크가 디스플레이되게 하기 위한 어포던스(502)를 선택할 수 있다. 플레이어 사용자들이 호스트 사용자로부터 원격인 경우 또는 링크를 입력하는 것이 불편한 경우, 링크는 메시지로 플레이어 클라이언트(들)(104)에 전송될 수 있다.
[0057] 도 5b는 미디어 디바이스(106)에 커플링된 출력 디바이스(108)(예컨대, 텔레비전, 컴퓨터 모니터) 상에 디스플레이된 사용자 인터페이스(510)를 예시한다. 사용자 인터페이스(510)는 디스플레이된 쇼트링크(512)를 포함한다. 사용자 인터페이스(510)(및 쇼트링크(512))는 어포던스(502)의 활성화에 따라 디스플레이되고; 쇼트링크(512)는 미디어 디바이스(106)에 송신되며, 미디어 디바이스(106)는 사용자 인터페이스(510)를 생성하고, 쇼트링크(512)를 사용자 인터페이스(510)에 삽입하며, 디스플레이를 위해 쇼트링크(512)를 포함하는 사용자 인터페이스(510)를 출력 디바이스(108)로 출력한다. 쇼트링크(512)는, (플레이어 사용자(들)가 플레이어 클라이언트(들)의 웹 브라우저 모듈에 입력할) 텍스처 링크로서, 또는 플레이어 클라이언트(들)가 플레이어 사용자의 방향에서 스캔할 수 있는 바코드로서 디스플레이될 수 있다.
[0058] 도 5c-도 5f는 일부 구현들에 따른 예시적 게임 제어기 구성들을 예시한다. 도 5c는 클라이언트 디바이스(예컨대, 호스트 클라이언트(102), 플레이어 클라이언트(104)) 상에 디스플레이된 제어기 인터페이스(520)를 예시한다. 제어기 인터페이스(520)는 가상 방향 패드(524) 및 가상 버튼(526)을 포함하는 표준화된 제어기 구역(522)을 포함한다. 제어기 인터페이스(520)에 대해, 사용자는, 물리적 게임 제어기를 드는 것처럼 클라이언트 디바이스를 들고, 물리적 게임 제어기 상의 방향 패드 및 버튼들을 동작시키는 것처럼 가상 방향 패드(524) 및 가상 버튼들(526)과 상호 작용한다. 일부 구현들에서, 제어기 인터페이스(520)는 게임 제어기 모듈(230)에 적용가능한 개개의 게임 제어기 구성(438)과 연관되며, 다수의 게임들에 의해 사용가능한 표준화된 제어기 인터페이스이다.
[0059] 도 5d는 클라이언트 디바이스(예컨대, 호스트 클라이언트(102), 플레이어 클라이언트(104)) 상에 디스플레이된 제어기 인터페이스(530)를 예시한다. 제어기 인터페이스(530)는 가상 버튼(532)을 포함한다. 사용자는, 사용자가 한 손에서 엄지로 가상 버튼(532)을 활성화할 수 있고 사용자가 클라이언트 디바이스로 모션 및 선택적으로 배향 변화(예컨대, 테니스 라켓과 같은 스윙 등)를 부여할 수 있도록, 제어기 인터페이스(530)를 디스플레이하는 클라이언트 디바이스를 한 손으로 든다. 센서(들)(213)에 의해 검출되는 모션 및 배향 변화는 게임에서 입력으로서 사용될 수 있다. 일부 구현들에서, 제어기 인터페이스(530)는, 게임 제어기 모듈(230)에 적용가능한 다른 개개의 게임 제어기 구성(438)과 연관되며, 입력으로서 디바이스 모션 및/또는 배향 변화를 활용하는, 다수의 게임들에 의해 사용가능한 표준화된 제어기 인터페이스이다.
[0060] 도 5e는 클라이언트 디바이스(예컨대, 호스트 클라이언트(102), 플레이어 클라이언트(104)) 상에 디스플레이된 제어기 인터페이스(540)를 예시한다. 제어기 인터페이스(540)는 표준화된 및/또는 맞춤화된 엘리먼트들을 포함할 수 있는 제어기 구역(542)을 포함한다. 제어기 구역(542)은 가상 방향 패드(524) 및 가상 버튼(526)과 같은 표준화된 엘리먼트들을 포함할 수 있다. 제어기 인터페이스(540)는 또한, 맞춤화가능하고 개개의 게임에 대해 특정된 엘리먼트들에 대해 예비된 맞춤형 구역(548)을 포함한다. 일부 구현들에서, 구역들(542 및 548)을 포함하는 제어기 인터페이스(540)의 전체는 특정 게임에 맞춤화가능하다. 일부 구현들에서, 제어기 인터페이스(540)는 게임 제어기 모듈(230)에 적용가능한 또 다른 개개의 게임 제어기 구성(438)과 연관되며, 특정 게임에 특정된 맞춤형 제어기 인터페이스이고; 서버(114)는 구성들(438) 내에 다수의 구성들을 저장할 수 있고, 여기서, 다수의 구성들 각각은 개개의 게임에 특정된 맞춤화된 구성에 대응한다.
[0061] 도 5f는 클라이언트 디바이스(예컨대, 호스트 클라이언트(102), 플레이어 클라이언트(104)) 상에서 디스플레이된 제어기 인터페이스(560)를 예시한다. 제어기 인터페이스(560)는 웹 브라우저(예컨대, 웹 브라우저 모듈(224))에 디스플레이된 게임 뷰(562)를 포함한다. 게임 뷰(562)는 게임 제어들(566)(예컨대, 가상 버튼들), 및 선택적으로, 게임으로부터 렌더링된 출력(564) 또는 다른 컨텐츠(예컨대, 2차 정보)를 포함한다. 일부 구현들에서, 제어기 인터페이스(560)는, 레이턴시가 게임플레이에 대한 영향을 덜 미치는 게임들에 사용될 수 있다.
[0062] 도 6은 일부 구현들에 따른, 애플리케이션 세션을 설정하기 위한 방법(600)의 흐름 다이어그램이다. 방법(600)은, 하나 또는 그 초과의 프로세서들, 및 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스(예컨대, 호스트 클라이언트(102/132))에서 수행될 수 있다. 일부 구현들에서, 전자 디바이스는, 하나 또는 그 초과의 프로세서들, 및 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 포함하고, 하나 또는 그 초과의 프로그램들은 방법(600)을 수행하기 위한 명령들을 포함한다. 일부 구현들에서, 비-일시적 컴퓨터 판독가능한 저장 매체는 하나 또는 그 초과의 프로그램들을 저장하고, 하나 또는 그 초과의 프로그램들은, 하나 또는 그 초과의 프로세서들과 함께 전자 디바이스에 의해 실행될 때, 전자 디바이스로 하여금, 방법(600)을 수행하게 하는 명령들을 포함한다.
[0063] 디바이스는 애플리케이션을 실행한다(602). 호스트 클라이언트(102/132)는 애플리케이션(예컨대, 게임 애플리케이션(228))을 실행한다. 호스트 사용자는, 플레이어 클라이언트들이 세션에 조인하도록 초대될 수 있는 애플리케이션에 대한 세션을 개시하기 위해 애플리케이션을 실행하도록 호스트 클라이언트에 지시한다. 애플리케이션은, 별개의 위치들에서의 다수의 클라이언트 디바이스들에서 다수의 사용자들(예컨대, 다수의 플레이어들)에 의해, 상호 작용식 세션(예컨대, 게임 세션) 내에서, 상호 작용(예컨대, 게임플레이)을 가능하게 하는 애플리케이션(예컨대, 온라인 또는 클라우드-기반의 멀티-플레이어 게임용 애플리케이션)일 수 있다. 애플리케이션에(또는 보다 특히, 애플리케이션의 개개의 세션에) 참여하는 디바이스들은 호스트 클라이언트(102/132) 및 하나 또는 그 초과의 플레이어 클라이언트들(104/134)을 포함할 수 있다. 플레이어 클라이언트들(104/134)은 아래에서 설명되는 바와 같은 세션으로 초대될 수 있다.
[0064] 디바이스는, 실행 애플리케이션, 애플리케이션과 연관된 원격 서버, 및 세션으로부터의 출력을 출력 디바이스에 송신하는 미디어 디바이스 사이의 세션을 설정하고(604), 세션으로부터의 출력은 실행 애플리케이션으로부터의 출력을 포함한다. 호스트 클라이언트(102/132)는 실행 애플리케이션(예컨대, 게임 애플리케이션(228), 서버(예컨대, 서버(114/144)) 및 미디어 디바이스(예컨대, 미디어 디바이스(106/136)) 사이의 세션(예컨대, 세션(116/146))을 설정한다. 미디어 디바이스(106/136)는 세션 내의 애플리케이션으로부터의 출력을 출력 디바이스(108/138)에 송신한다. 서버(114/144)는 애플리케이션과 연관된다(예컨대, 서버(114/144)는 게임 애플리케이션(228)과 연관된 게임 서버임). 예컨대, 게임 애플리케이션(228)이 호스트 클라이언트(102/132)에서 실행될 때, 게임 애플리케이션(228)은 게임 세션을 설정하기 위해 서버(114/144)와 통신한다. 게임 애플리케이션(228)은 또한, 미디어 디바이스(106/136)를 세션에 탑재하기 위해 미디어 디바이스(106/136)와 통신하며, 미디어 디바이스(106/136)는, 서버(114/144)가 (예컨대, 출력 디바이스(108/138)에서) 출력을 위해 게이밍 세션으로부터의 출력 및 다른 컨텐츠를 송신하는 디바이스이다.
[0065] 디바이스는, 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들에게 세션과 연관된 세션 식별자를 제공하고(606), 세션 식별자는 제2 전자 디바이스들에 의한 세션의 조인을 가능하게 하며, 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들이 세션과 상호 작용하는 것을 가능하게 하기 위한, 하나 또는 그 초과의 제2 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별한다. 예컨대, 호스트 클라이언트(102/132)는, 애플리케이션이 전혀 인스톨되지 않거나 또는 인스톨되었지만 실행되지 않는 하나 또는 그 초과의 플레이어 클라이언트들(104/134)에 세션의 세션 식별자를 송신하거나 또는 송신되게 한다. 세션 식별자는, 이미 인스톨되지 않은 경우 플레이어 클라이언트 상에 애플리케이션의 인스톨을 가능하게 하는 것을 포함하여, 플레이어 클라이언트들(104/134)에 의한 세션의 조인을 가능하게 한다. 세션 식별자는 또한, 플레이어 사용자들에 의한 세션과의 상호 작용을 가능하게 하기 위한, 플레이어 클라이언트들(104/134)이 구현할 제어기 구성을 포함하거나 또는 참조한다. 예컨대, 호스트 클라이언트(102/132)는, 서버(114/144)로부터 게임 세션의 세션 식별자를 획득하며, 세션 식별자로 하여금, 플레이어 클라이언트들(104/134)에 송신되게 하고, 그리고/또는 미디어 디바이스(106/136)를 통해 (예컨대, 도 5b의 사용자 인터페이스(510) 내의) 출력 디바이스(108/138)에서 출력되게 한다. 호스트 사용자는, 세션 식별자를 송신하거나 또는 송신되게 하도록 호스트 클라이언트(102/132)에 (예컨대, 도 5a의 사용자 인터페이스(500)를 통해) 지시할 수 있다. 세션 식별자는, 플레이어 클라이언트(104/134)의 디바이스-상에서 열리거나, 또는 출력된 세션 식별자에 따라 플레이어 클라이언트(104/134)의 애플리케이션에 입력될 수 있다(예컨대, 사용자는 세션 식별자를 애플리케이션에 타이핑하거나 또는 플레이어 클라이언트(104/134)로 세션 식별자 바코드를 스캔함). 이러한 방식으로, 플레이어 클라이언트(104/134)는 게임 세션에 조인할 수 있다. 게다가, 세션 식별자 및/또는 게임 세션에 의해 특정된 제어기 구성에 따라, 플레이어 클라이언트(들)(104/134)는 게임 세션에 대한 제어기 인터페이스를 구현한다. 플레이어 클라이언트(들)(104/134)가 게임 세션에 조인되고, 제어기 인터페이스가 플레이어 클라이언트들에서 구현되면, 플레이어 클라이언트들의 플레이어 사용자들은 호스트 클라이언트의 호스트 사용자와 함께 게임을 플레이할 수 있다.
[0066] 일부 구현들에서, 애플리케이션은 게임 애플리케이션이다. 호스트 클라이언트(102/132) 상에서 실행되는 애플리케이션은, 예컨대, 게임 애플리케이션(228)일 수 있다. 세션(116/146)은 게이밍 세션이고, 세션으로부터의 출력은 호스트 클라이언트 및 플레이어 클라이언트(들)에서 게임을 플레이하는 것으로부터 발생하는 그래픽 출력을 포함한다. 세션으로부터의 출력은 미디어 디바이스(106/136)를 통해 출력 디바이스(108/138)에서 출력될 수 있다.
[0067] 일부 구현들에서, 세션 식별자는 세션에 대한 URL(Universal Resource Locator)을 포함한다. 세션 식별자는, 플레이어 클라이언트들(104/134)이 세션에 조인하기 위한 프로세스를 개시하기 위해 웹 브라우저 모듈(예컨대, 웹 브라우저(224))에서 활성화할 수 있는 URL일 수 있다.
[0068] 일부 구현들에서, 세션 식별자는 세션과 연관된 URL을 인코딩하는 바코드를 포함한다. 세션에 대한 URL은 바코드(예컨대, 선형 바코드, 행렬 바코드)로 인코딩될 수 있다. 플레이어 클라이언트(104/134)는 세션 식별자 URL을 획득하기 위해 바코드가 디스플레이되는 동안 바코드를 스캔할 수 있다.
[0069] 일부 구현들에서, 세션 식별자는 프롬프트 또는 통지로 제2 전자 디바이스들에 디스플레이된다. 세션 식별자(예컨대, 세션에 대한 URL 또는 URL을 인코딩하는 바코드)는 프롬프트 또는 앱 통지로 디스플레이될 수 있다. 예컨대, 호스트 클라이언트(102/132)는, 세션 식별자를 가지는 프롬프트 또는 통지가 디스플레이되는 플레이어 클라이언트(104/134)에 세션 식별자를 송신하거나 또는 송신되게 한다.
[0070] 일부 구현들에서, 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들에게 세션과 연관된 세션 식별자를 제공하는 단계는, 세션 식별자를 미디어 디바이스에 송신하는 단계를 포함하고, 여기서, 미디어 디바이스는 세션 식별자를 출력 디바이스에 송신하도록 구성된다. 호스트 클라이언트(102/132)는, 또한 세션(116/146)의 일부인 미디어 디바이스(106/136)에 세션 식별자를 송신하거나 또는 송신되게 하며, 미디어 디바이스(106/136)는 출력을 위해 세션 식별자를 출력 디바이스(108/138)에 송신한다. 예컨대, 출력 디바이스(108/138)는, 플레이어 클라이언트(104/134)가 판독할 수 있는 바코드로서, 또는 세션에 조인하기 위해 플레이어 클라이언트(104/134)의 웹 브라우저 모듈(224)에서 열릴 수 있는 URL 링크로서 세션 식별자를 디스플레이한다.
[0071] 일부 구현들에서, 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들에게 세션과 연관된 세션 식별자를 제공하는 단계는, 세션 식별자를 메시지로 제2 전자 디바이스들에 송신하는 단계를 포함한다. 호스트 클라이언트(102/132)는 세션 식별자를 메시지(예컨대, 텍스트 메시지, 인스턴트 메시지, 이메일)로 플레이어 디바이스(104/134)에 송신하거나 또는 송신되게 한다. 예컨대, 플레이어 클라이언트(104/134)는 세션 식별자 URL 링크를 가지는 메시지를 수신하고, 세션 식별자 URL 링크는 세션에 조인하기 위해 플레이어 클라이언트(104/134)의 웹 브라우저(224)에서 열릴 수 있다.
[0072] 도 7은 일부 구현들에 따른, 세션 식별자를 제공하기 위한 방법(700)의 흐름 다이어그램이다. 방법(700)은, 하나 또는 그 초과의 프로세서들, 및 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스(예컨대, 미디어 디바이스(106/136))에서 수행될 수 있다. 일부 구현들에서, 전자 디바이스는, 하나 또는 그 초과의 프로세서들, 및 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 포함하고, 하나 또는 그 초과의 프로그램들은 방법(700)을 수행하기 위한 명령들을 포함한다. 일부 구현들에서, 비-일시적 컴퓨터 판독가능한 저장 매체는 하나 또는 그 초과의 프로그램들을 저장하고, 하나 또는 그 초과의 프로그램들은, 하나 또는 그 초과의 프로세서들과 함께 전자 디바이스에 의해 실행될 때, 전자 디바이스로 하여금, 방법(700)을 수행하게 하는 명령들을 포함한다.
[0073] 디바이스는, 제2 전자 디바이스 상에서 실행되는 애플리케이션 및 애플리케이션과 연관된 원격 서버와의 세션을 설정하기 위한 명령들을 수신한다(702). 미디어 디바이스(106/136)는 호스트 클라이언트(102/132) 상의 애플리케이션(예컨대, 게임 애플리케이션(228)) 및 서버(114/144)와의 세션(116/146)을 설정하기 위한 명령들을 수신한다. 명령들은 호스트 클라이언트(102/132) 또는 서버(114/144)로부터 수신될 수 있다. 일부 구현들에서, 게임 애플리케이션(228)에 대한 게임 세션에서, 게임 세션으로부터의 출력은, (예컨대, 호스트 클라이언트 및 플레이어 클라이언트들에서의 디스플레이들이 호스트 사용자 및 플레이어 사용자들이 게임을 플레이하는 제어기 인터페이스(예컨대, 도 5c-도 5f에 도시된 바와 같은 제어기 인터페이스들)를 디스플레이하는 데 전용될 수 있도록) 호스트 클라이언트들 및 플레이어 클라이언트들이 아니라 하나의 출력 위치(예컨대, 미디어 디바이스(106/136)를 통해 출력 디바이스(108/138))에서 디스플레이된다. 따라서, 미디어 디바이스(106/136)는 게임 세션으로부터의 출력을 위한 출구로서 게임 세션에 조인하도록 초대된다.
[0074] 디바이스는 수신된 명령들에 따라 세션을 설정한다(704). 미디어 디바이스(106/136)는 호스트 클라이언트(102/132) 상의 애플리케이션(예컨대, 게임 애플리케이션(228)) 및 서버(114/144)와의 세션(116/146)을 설정하거나 또는 이에 조인한다.
[0075] 디바이스는, 세션과 연관된 세션 식별자를 수신하고(706), 세션 식별자는 하나 또는 그 초과의 제3 전자 디바이스들에 의한 세션의 조인을 가능하게 하며, 제3 전자 디바이스들의 하나 또는 그 초과의 사용자들이 세션과 상호 작용하는 것을 가능하게 하기 위한, 하나 또는 그 초과의 제3 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별한다. 미디어 디바이스(106/136)는 호스트 클라이언트(102/132) 또는 서버(114/144)로부터 세션에 대한 세션 식별자를 수신한다. 세션 식별자는 하나 또는 그 초과의 플레이어 클라이언트들(104/134)에 의한 세션의 조인을 가능하게 한다. 세션 식별자는 또한, 플레이어 클라이언트들(104/134)의 플레이어 사용자들이 세션과 상호 작용하는 것을 가능하게 하기 위한, 세션 내의 플레이어 클라이언트들(104/134)에서 구현될 제어기 구성을 식별하거나 또는 참조할 수 있다. 예컨대, 호스트 사용자는, 세션 식별자가, 미디어 디바이스(106/136)에 송신(예컨대, 캐스팅)되게 하도록 호스트 클라이언트(102/132)에 (예컨대, 도 5a의 사용자 인터페이스(500)를 통해) 지시할 수 있다. 호스트 사용자의 지시에 따라, 호스트 클라이언트(102/132)는 세션 식별자가 미디어 디바이스(106/136)에 송신되게 한다.
[0076] 디바이스는, 디스플레이를 위해 세션 식별자를 출력 디바이스에 송신한다(708). 미디어 디바이스(106/136)는 세션 식별자를 출력 디바이스(108/138)에 송신하고, 출력 디바이스(108/138)는 플레이어 클라이언트들(104/134)에 입력 또는 이들에 의한 인식(예컨대, 스캐닝)을 위해 세션 식별자를 디스플레이한다. 플레이어 사용자(들)는 세션 식별자를 플레이어 클라이언트(들)(104/134)에 수동으로 입력하거나, 또는 플레이어 클라이언트(들)(104/134)로 세션 식별자를 스캐닝(예컨대, 바코드 스캐닝 또는 텍스트 인식)함으로써 입력할 수 있다.
[0077] 일부 구현들에서, 디바이스는 세션으로부터의 출력에 대응하는 데이터를 수신하고 ― 출력은 제3 전자 디바이스들의 하나 또는 그 초과의 사용자들에 의해 세션과의 상호 작용으로부터 발생하는 출력을 포함함 ―, 그리고 디스플레이를 위해 데이터를 출력 디바이스에 송신한다. 미디어 디바이스(106/136)는 플레이어 클라이언트들(104/134)에 의한 세션과의 상호 작용으로부터 발생하는 세션으로부터 출력을 수신한다. 미디어 디바이스(106/136)는 세션 출력을 출력 디바이스(108/138)에 송신하고, 출력 디바이스(108/138)는 세션 출력을 디스플레이한다.
[0078] 일부 구현들에서, 세션 식별자는 세션과 연관된 URL을 포함한다. 세션 식별자는 세션에 조인하기 위해 플레이어 클라이언트(104/134)의 웹 브라우저 모듈에 입력될 수 있는 URL일 수 있다. 일부 구현들에서, 디스플레이된 세션 식별자 URL은 텍스트 인식에 의해 입력될 수 있다(예컨대, URL 텍스트의 이미지가 플레이어 클라이언트(104/134)에 의해 캡처되고, URL 텍스트가 인식됨).
[0079] 일부 구현들에서, 세션 식별자는 세션과 연관된 URL을 인코딩하는 바코드를 포함한다. 세션 식별자 URL은 바코드(예컨대, 선형 바코드, 행렬 바코드)로 인코딩될 수 있다. 바코드는 출력 디바이스(108/138)에 송신되며, 이에 의해 디스플레이된다. 플레이어 클라이언트(104/134)는 세션 식별자 URL을 획득하기 위해 바코드가 디스플레이되는 동안 바코드를 스캔할 수 있다.
[0080] 일부 구현들에서, 전자 디바이스는 캐스팅 디바이스이다. 미디어 디바이스(106/136)는 캐스팅 디바이스(예컨대, Google Inc.에 의한 CHROMECAST)일 수 있다.
[0081] 일부 구현들에서, 애플리케이션은 게임 애플리케이션이다. 애플리케이션은 게임 애플리케이션(예컨대, 게임 애플리케이션(228))일 수 있다. 세션(116/146)은 게이밍 세션이고, 세션으로부터의 출력은 호스트 클라이언트 및 플레이어 클라이언트(들)에서 게임을 플레이하는 것으로부터 발생하는 그래픽 출력을 포함한다.
[0082] 첨부한 도면들에서 그 예들이 예시되는 다양한 구현들에 대해 참조가 상세하게 이루어질 것이다. 위의 상세한 설명에서는, 본 발명 및 개시되는 구현들의 철저한 이해를 제공하기 위해 다수의 특정 세부사항들이 기재된다. 그러나, 본 발명은 이러한 특정 세부사항들 없이도 실시될 수 있다. 다른 사례들에서는, 잘 알려진 방법들, 프로시저들, 컴포넌트들 및 회로들이 구현들의 양상들을 불필요하게 모호하게 하지 않도록 상세하게 설명되지 않았다.
[0083] "제1", "제2" 등의 용어들이 다양한 엘리먼트들을 설명하기 위해 본원에서 사용될 수 있지만, 이러한 엘리먼트들은 이러한 용어들에 의해 제한되지 않아야 한다는 것이 이해될 것이다. 이 용어들은 하나의 엘리먼트를 다른 엘리먼트와 구별하기 위해서만 사용된다. 예컨대, 제1 디바이스의 모든 발생들이 일관되게 리네임(rename)되고 제2 디바이스의 모든 발생들이 일관되게 리네임되는 한, 설명의 의미를 변경하지 않고도, 제1 디바이스가 제2 디바이스로 지칭될 수 있고, 유사하게, 제2 디바이스가 제1 디바이스로 지칭될 수 있다. 제1 디바이스 및 제2 디바이스 둘 모두는 디바이스이지만, 동일한 디바이스가 아니다.
[0084] 본원에서 사용되는 용어는 특정 구현들만을 설명하기 위한 것이며, 청구항들을 제한하도록 의도되는 것은 아니다. 구현들의 설명 및 첨부된 청구항들에서 사용되는 바와 같이, 단수 형태들은, 문맥상 달리 명백하게 표시되지 않는 한, 복수 형태들 역시 포함하도록 의도된다. 본원에서 사용되는 바와 같은 "및/또는"이라는 용어는 연관된 열거된 항목들 중 하나 또는 그 초과의 항목들 중 임의의 조합 및 이들의 모든 가능한 조합들을 지칭하고 이들을 망라한다는 것이 또한 이해될 것이다. "포함한다(comprise)" 및/또는 "포함하는(comprising)"이라는 용어들은 본 명세서에서 사용될 때, 서술된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 또는 그 초과의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 추가로 이해될 것이다.
[0085] 본원에서 사용되는 바와 같이, "~한다면"이라는 용어는, 맥락에 따라 서술된 선행 조건(condition precedent)이 참인 "~할 때" 또는 "~할 시" 또는 "결정하는 것에 대한 응답으로" 또는 "결정에 따라" 또는 "검출하는 것에 대한 응답으로"를 의미하는 것으로 해석될 수 있다. 유사하게, "[서술된 선행 조건이 참]이라고 결정되면" 또는 "[서술된 선행 조건이 참]이면 또는 "[서술된 선행 조건이 참]일 때라는 문구는, 맥락에 따라 서술된 선행 조건이 참인 "결정할 시" 또는 "결정하는 것에 대한 응답으로" 또는 "결정에 따라" 또는 "검출하는 것에 대한 응답으로"를 의미하는 것으로 해석될 수 있다.
[0086] 위의 설명은, 설명을 목적으로, 특정 구현들을 참조하여 설명되었다. 그러나, 위의 예시적 논의들은 본 발명을 개시되는 바로 그 형태들로 제한하거나 또는 그것들로 총 망라하도록 의도되는 것은 아니다. 위의 교시사항들을 고려하여 많은 수정들 및 변형들이 가능하다. 구현들은 본 발명 및 그 실제적 애플리케이션들의 원리들을 최상으로 설명함으로써, 당업자들이 고려되는 특정 사용에 적합하게 되는 바와 같은 다양한 수정들과 함께 다양한 구현들 및 발명을 최상으로 활용하는 것을 가능하게 하기 위해 선택되고 설명되었다.

Claims (43)

  1. 방법으로서,
    하나 또는 그 초과의 프로세서들, 및 상기 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스에서,
    애플리케이션을 실행하는 단계;
    실행 애플리케이션, 상기 애플리케이션과 연관된 원격 서버, 및 세션으로부터의 출력을 출력 디바이스에 송신하는 미디어 디바이스 사이의 세션을 설정하는 단계 ― 상기 세션으로부터의 출력은 상기 실행 애플리케이션으로부터의 출력을 포함함 ― ; 및
    상기 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들에게 상기 세션과 연관된 세션 식별자를 제공하는 단계를 포함하고,
    상기 세션 식별자는 상기 제2 전자 디바이스들에 의한 상기 세션의 조인(joining)을 가능하게 하며, 상기 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들이 상기 세션과 상호 작용하는 것을 가능하게 하기 위한, 상기 하나 또는 그 초과의 제2 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별하는, 방법.
  2. 제1 항에 있어서,
    상기 애플리케이션은 게임 애플리케이션인, 방법.
  3. 제1 항 또는 제2 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 URL(Universal Resource Locator)을 포함하는, 방법.
  4. 제3 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 상기 URL을 인코딩하는 바코드를 포함하는, 방법.
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 세션 식별자는 프롬프트 또는 통지로 상기 제2 전자 디바이스들에 디스플레이되는, 방법.
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    상기 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들에게 상기 세션과 연관된 세션 식별자를 제공하는 단계는,
    상기 세션 식별자를 상기 미디어 디바이스에 송신하는 단계를 포함하고,
    상기 미디어 디바이스는 상기 세션 식별자를 상기 출력 디바이스에 송신하도록 구성되는, 방법
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들에게 상기 세션과 연관된 세션 식별자를 제공하는 단계는,
    상기 세션 식별자를 메시지로 상기 제2 전자 디바이스들에 송신하는 단계를 포함하는, 방법.
  8. 전자 디바이스로서,
    하나 또는 그 초과의 프로세서들; 및
    상기 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 포함하고,
    상기 하나 또는 그 초과의 프로그램들은,
    애플리케이션을 실행하고;
    실행 애플리케이션, 상기 애플리케이션과 연관된 원격 서버, 및 세션으로부터의 출력을 출력 디바이스에 송신하는 미디어 디바이스 사이의 세션을 설정하고 ― 상기 세션으로부터의 출력은 상기 실행 애플리케이션으로부터의 출력을 포함함 ― ; 그리고
    상기 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들에게 상기 세션과 연관된 세션 식별자를 제공
    하기 위한 명령들을 포함하고,
    상기 세션 식별자는 상기 제2 전자 디바이스들에 의한 상기 세션의 조인을 가능하게 하며, 상기 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들이 상기 세션과 상호 작용하는 것을 가능하게 하기 위한, 상기 하나 또는 그 초과의 제2 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별하는, 전자 디바이스.
  9. 제8 항에 있어서,
    상기 애플리케이션은 게임 애플리케이션인, 전자 디바이스.
  10. 제8 항 또는 제9 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 URL(Universal Resource Locator)을 포함하는, 전자 디바이스.
  11. 제10 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 상기 URL을 인코딩하는 바코드를 포함하는, 전자 디바이스.
  12. 제8 항 내지 제11 항 중 어느 한 항에 있어서,
    상기 세션 식별자는 프롬프트 또는 통지로 상기 제2 전자 디바이스들에 디스플레이되는, 전자 디바이스.
  13. 제8 항 내지 제12 항 중 어느 한 항에 있어서,
    상기 세션 식별자를 상기 미디어 디바이스에 송신하기 위한 명령들을 포함하고,
    상기 미디어 디바이스는 상기 세션 식별자를 상기 출력 디바이스에 송신하도록 구성되는, 전자 디바이스.
  14. 제8 항 내지 제13 항 중 어느 한 항에 있어서,
    상기 세션 식별자를 메시지로 상기 제2 전자 디바이스들에 송신하기 위한 명령들을 포함하는, 전자 디바이스.
  15. 명령들을 포함하는 하나 또는 그 초과의 프로그램들을 저장하는 비-일시적 컴퓨터 판독가능한 저장 매체로서,
    상기 명령들은, 하나 또는 그 초과의 프로세서들과 함께 전자 디바이스에 의해 실행될 때, 상기 전자 디바이스로 하여금,
    애플리케이션을 실행하게 하고;
    실행 애플리케이션, 상기 애플리케이션과 연관된 원격 서버, 및 세션으로부터의 출력을 출력 디바이스에 송신하는 미디어 디바이스 사이의 세션을 설정하게 하고 ― 상기 세션으로부터의 출력은 상기 실행 애플리케이션으로부터의 출력을 포함함 ― ; 그리고
    상기 애플리케이션이 실행되지 않고 그리고/또는 인스톨되지 않은 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들에게 상기 세션과 연관된 세션 식별자를 제공하게 하며,
    상기 세션 식별자는 상기 제2 전자 디바이스들에 의한 상기 세션의 조인을 가능하게 하며, 상기 하나 또는 그 초과의 제2 전자 디바이스들의 사용자들이 상기 세션과 상호 작용하는 것을 가능하게 하기 위한, 상기 하나 또는 그 초과의 제2 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  16. 제15 항에 있어서,
    상기 애플리케이션은 게임 애플리케이션인, 비-일시적 컴퓨터 판독가능한 저장 매체.
  17. 제15 항 또는 제16 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 URL(Universal Resource Locator)을 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  18. 제17 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 상기 URL을 인코딩하는 바코드를 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  19. 제15 항 내지 제18 항 중 어느 한 항에 있어서,
    상기 세션 식별자는 프롬프트 또는 통지로 상기 제2 전자 디바이스들에 디스플레이되는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  20. 제15 항 내지 제19 항 중 어느 한 항에 있어서,
    상기 전자 디바이스에 의해 실행될 때, 상기 전자 디바이스로 하여금,
    상기 세션 식별자를 상기 미디어 디바이스에 송신하게 하는 명령들을 포함하고,
    상기 미디어 디바이스는 상기 세션 식별자를 상기 출력 디바이스에 송신하도록 구성되는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  21. 제15 항 내지 제20 항 중 어느 한 항에 있어서,
    상기 전자 디바이스에 의해 실행될 때, 상기 전자 디바이스로 하여금,
    상기 세션 식별자를 메시지로 상기 제2 전자 디바이스들에 송신하게 하는 명령들을 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  22. 전자 디바이스로서,
    하나 또는 그 초과의 프로세서들; 및
    상기 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 포함하고,
    상기 하나 또는 그 초과의 프로그램들은 제1 항 내지 제7 항 중 어느 한 항의 방법을 수행하기 위한 명령들을 포함하는, 전자 디바이스.
  23. 명령들을 포함하는 하나 또는 그 초과의 프로그램들을 저장하는 비-일시적 컴퓨터 판독가능한 저장 매체로서,
    상기 명령들은, 하나 또는 그 초과의 프로세서들과 함께 전자 디바이스에 의해 실행될 때, 상기 전자 디바이스로 하여금, 제1 항 내지 제7 항 중 어느 한 항의 방법을 수행하게 하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  24. 방법으로서,
    하나 또는 그 초과의 프로세서들, 및 상기 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 가지는 전자 디바이스에서,
    제2 전자 디바이스 상에서 실행되는 애플리케이션 및 상기 애플리케이션과 연관된 원격 서버와의 세션을 설정하기 위한 명령들을 수신하는 단계;
    수신된 명령들에 따라 상기 세션을 설정하는 단계;
    상기 세션과 연관된 세션 식별자를 수신하는 단계 ― 상기 세션 식별자는 하나 또는 그 초과의 제3 전자 디바이스들에 의한 상기 세션의 조인을 가능하게 하며, 상기 제3 전자 디바이스들의 하나 또는 그 초과의 사용자들이 상기 세션과 상호 작용하는 것을 가능하게 하기 위한 상기 하나 또는 그 초과의 제3 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별함 ― ; 및
    디스플레이를 위해 상기 세션 식별자를 출력 디바이스에 송신하는 단계를 포함하는, 방법.
  25. 제24 항에 있어서,
    상기 세션으로부터의 출력에 대응하는 데이터를 수신하는 단계 ― 상기 출력은 상기 제3 전자 디바이스들의 상기 하나 또는 그 초과의 사용자들에 의해 상기 세션과의 상호 작용으로부터 발생하는 출력을 포함함 ―; 및
    디스플레이를 위해 상기 데이터를 상기 출력 디바이스에 송신하는 단계를 더 포함하는, 방법.
  26. 제24 항 또는 제25 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 URL을 포함하는, 방법.
  27. 제26 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 상기 URL을 인코딩하는 바코드를 포함하는, 방법.
  28. 제24 항 내지 제27 항 중 어느 한 항에 있어서,
    상기 전자 디바이스는 캐스팅 디바이스인, 방법.
  29. 제24 항 내지 제28 항 중 어느 한 항에 있어서,
    상기 애플리케이션은 게임 애플리케이션인, 방법.
  30. 전자 디바이스로서,
    하나 또는 그 초과의 프로세서들; 및
    상기 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 포함하고,
    상기 하나 또는 그 초과의 프로그램들은,
    제2 전자 디바이스 상에서 실행되는 애플리케이션 및 상기 애플리케이션과 연관된 원격 서버와의 세션을 설정하기 위한 명령들을 수신하고;
    수신된 명령들에 따라 상기 세션을 설정하고;
    상기 세션과 연관된 세션 식별자를 수신하고 ― 상기 세션 식별자는 하나 또는 그 초과의 제3 전자 디바이스들에 의한 상기 세션의 조인을 가능하게 하며, 상기 제3 전자 디바이스들의 하나 또는 그 초과의 사용자들이 상기 세션과 상호 작용하는 것을 가능하게 하기 위한 상기 하나 또는 그 초과의 제3 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별함 ― ; 그리고
    디스플레이를 위해 상기 세션 식별자를 출력 디바이스에 송신
    하기 위한 명령들을 포함하는, 전자 디바이스.
  31. 제30 항에 있어서,
    상기 세션으로부터의 출력에 대응하는 데이터를 수신하고 ― 상기 출력은 상기 제3 전자 디바이스들의 상기 하나 또는 그 초과의 사용자들에 의해 상기 세션과의 상호 작용으로부터 발생하는 출력을 포함함 ―; 그리고
    디스플레이를 위해 상기 데이터를 상기 출력 디바이스에 송신
    하기 위한 명령들을 포함하는, 전자 디바이스.
  32. 제30 항 또는 제31 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 URL을 포함하는, 전자 디바이스.
  33. 제32 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 상기 URL을 인코딩하는 바코드를 포함하는, 전자 디바이스.
  34. 제30항 내지 제33 항 중 어느 한 항에 있어서,
    상기 전자 디바이스는 캐스팅 디바이스인, 전자 디바이스.
  35. 제30항 내지 제34 항 중 어느 한 항에 있어서,
    상기 애플리케이션은 게임 애플리케이션인, 전자 디바이스.
  36. 명령들을 포함하는 하나 또는 그 초과의 프로그램들을 저장하는 비-일시적 컴퓨터 판독가능한 저장 매체로서,
    상기 명령들은, 하나 또는 그 초과의 프로세서들과 함께 전자 디바이스에 의해 실행될 때, 상기 전자 디바이스로 하여금,
    제2 전자 디바이스 상에서 실행되는 애플리케이션 및 상기 애플리케이션과 연관된 원격 서버와의 세션을 설정하기 위한 명령들을 수신하게 하고;
    수신된 명령들에 따라 상기 세션을 설정하게 하고;
    상기 세션과 연관된 세션 식별자를 수신하게 하고 ― 상기 세션 식별자는 하나 또는 그 초과의 제3 전자 디바이스들에 의한 상기 세션의 조인을 가능하게 하며, 상기 제3 전자 디바이스들의 하나 또는 그 초과의 사용자들이 상기 세션과 상호 작용하는 것을 가능하게 하기 위한 상기 하나 또는 그 초과의 제3 전자 디바이스들 각각 상에서 구현가능한 제어기 구성을 식별함 ― ; 그리고
    디스플레이를 위해 상기 세션 식별자를 출력 디바이스에 송신하게 하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  37. 제36 항에 있어서,
    상기 전자 디바이스에 의해 실행될 때, 상기 전자 디바이스로 하여금,
    상기 세션으로부터의 출력에 대응하는 데이터를 수신하게 하고 ― 상기 출력은 상기 제3 전자 디바이스들의 상기 하나 또는 그 초과의 사용자들에 의해 상기 세션과의 상호 작용으로부터 발생하는 출력을 포함함 ―; 그리고
    디스플레이를 위해 상기 데이터를 상기 출력 디바이스에 송신하게 하는
    명령들을 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  38. 제36 항 또는 제37 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 URL을 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  39. 제38 항에 있어서,
    상기 세션 식별자는 상기 세션과 연관된 상기 URL을 인코딩하는 바코드를 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  40. 제36 항 내지 제39 항 중 어느 한 항에 있어서,
    상기 전자 디바이스는 캐스팅 디바이스인, 비-일시적 컴퓨터 판독가능한 저장 매체.
  41. 제36 항 내지 제40 항 중 어느 한 항에 있어서,
    상기 애플리케이션은 게임 애플리케이션인, 비-일시적 컴퓨터 판독가능한 저장 매체.
  42. 전자 디바이스로서,
    하나 또는 그 초과의 프로세서들; 및
    상기 하나 또는 그 초과의 프로세서들에 의한 실행을 위한 하나 또는 그 초과의 프로그램들을 저장하는 메모리를 포함하고,
    상기 하나 또는 그 초과의 프로그램들은, 제24항 내지 제29 항 중 어느 한 항의 방법을 수행하기 위한 명령들을 포함하는, 전자 디바이스.
  43. 명령들을 포함하는 하나 또는 그 초과의 프로그램들을 저장하는 비-일시적 컴퓨터 판독가능한 저장 매체로서,
    상기 명령들은, 하나 또는 그 초과의 프로세서들과 함께 전자 디바이스에 의해 실행될 때, 상기 전자 디바이스로 하여금, 제24 항 내지 제29 항 중 어느 한 항의 방법을 수행하게 하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
KR1020187023961A 2016-05-19 2017-05-19 게임 세션에의 참여를 가능하게 하기 위한 방법들 및 시스템들 KR102072233B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662339052P 2016-05-19 2016-05-19
US62/339,052 2016-05-19
US15/599,408 US10456672B2 (en) 2016-05-19 2017-05-18 Methods and systems for facilitating participation in a game session
US15/599,408 2017-05-18
PCT/US2017/033642 WO2017201472A1 (en) 2016-05-19 2017-05-19 Methods and systems for facilitating participation in a game session

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207002403A Division KR102238770B1 (ko) 2016-05-19 2017-05-19 게임 세션에의 참여를 가능하게 하기 위한 방법들 및 시스템들

Publications (2)

Publication Number Publication Date
KR20180104684A true KR20180104684A (ko) 2018-09-21
KR102072233B1 KR102072233B1 (ko) 2020-01-31

Family

ID=58995257

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207002403A KR102238770B1 (ko) 2016-05-19 2017-05-19 게임 세션에의 참여를 가능하게 하기 위한 방법들 및 시스템들
KR1020187023961A KR102072233B1 (ko) 2016-05-19 2017-05-19 게임 세션에의 참여를 가능하게 하기 위한 방법들 및 시스템들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207002403A KR102238770B1 (ko) 2016-05-19 2017-05-19 게임 세션에의 참여를 가능하게 하기 위한 방법들 및 시스템들

Country Status (5)

Country Link
US (2) US10456672B2 (ko)
EP (2) EP3610933B1 (ko)
JP (2) JP6629986B2 (ko)
KR (2) KR102238770B1 (ko)
WO (1) WO2017201472A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10456672B2 (en) 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
EP4336800A2 (en) 2017-10-10 2024-03-13 Google LLC Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content
US11140207B2 (en) 2017-12-21 2021-10-05 Google Llc Network impairment simulation framework for verification of real time interactive media streaming systems
US10688399B2 (en) * 2018-02-21 2020-06-23 Roblox Corporation Group gameplay with users in proximity using a gaming platform
EP4276814A3 (en) 2018-03-22 2023-12-20 Google LLC Methods and systems for rendering and encoding content for online interactive gaming sessions
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
US11872476B2 (en) 2018-04-02 2024-01-16 Google Llc Input device for an electronic system
WO2019194953A1 (en) 2018-04-02 2019-10-10 Google Llc Methods, devices, and systems for interactive cloud gaming
CN111417978A (zh) 2018-04-10 2020-07-14 谷歌有限责任公司 游戏渲染中的内存管理
US10698582B2 (en) * 2018-06-28 2020-06-30 International Business Machines Corporation Controlling voice input based on proximity of persons
WO2020012450A2 (en) * 2018-07-13 2020-01-16 Red Oxygen (Pty) Ltd Game platform for mobile devices and a related method of operating a game platform
US10803025B2 (en) * 2018-09-06 2020-10-13 At&T Intellectual Property I, L.P. System and process for scalable and secure content delivery
US10773156B2 (en) 2018-11-05 2020-09-15 Sony Interactive Entertainment LLC Systems and methods for establishing direct communication between a server system and a video game controller
WO2020102493A1 (en) * 2018-11-16 2020-05-22 Google Llc Shadow tracking of real-time interactive simulations for complex system analysis
CN109542328B (zh) * 2018-11-30 2021-04-06 北京小米移动软件有限公司 用户界面显示方法、装置、终端及存储介质
EP3892344A4 (en) * 2018-12-07 2023-01-25 Sony Interactive Entertainment Inc. ENTERTAINMENT DEVICE, EMISSION CONTROL DEVICE, OPERATING DEVICE, EMISSION CONTROL METHOD AND PROGRAM
US11095724B2 (en) * 2019-01-10 2021-08-17 Google Llc Invitation link for launching multi-user applications
US10987578B2 (en) * 2019-09-04 2021-04-27 South Park Digital Studios LLC Live video game intervention
US11389720B2 (en) * 2020-02-26 2022-07-19 Microsoft Technology Licensing, Llc Transferring control elements for a gaming session between devices
GB2600916A (en) * 2020-10-19 2022-05-18 Muzaffar Saj Interactive video streaming apparatus and method
US11824940B1 (en) * 2021-02-04 2023-11-21 Amazon Technologies, Inc. Techniques for providing network applications
CN117222456A (zh) * 2021-05-06 2023-12-12 谷歌有限责任公司 使用第二客户端装置指导第一客户端装置的游戏内模式
JP7454003B2 (ja) * 2022-02-16 2024-03-21 任天堂株式会社 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040198403A1 (en) * 2002-07-25 2004-10-07 Pedersen Claus Aagaard Gaming concept for wireless terminals
KR20070067005A (ko) * 2004-03-08 2007-06-27 매시브 인코포레이티드 다수의 비디오 게임에 광고를 전달하는 방법 및 시스템
US20130198642A1 (en) * 2003-03-14 2013-08-01 Comcast Cable Communications, Llc Providing Supplemental Content
JP2015139565A (ja) * 2014-01-29 2015-08-03 株式会社コロプラ ゲームに関わるサーバコンピュータ及びゲームプログラム

Family Cites Families (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892897A (en) 1997-02-05 1999-04-06 Motorola, Inc. Method and apparatus for microprocessor debugging
US7548238B2 (en) 1997-07-02 2009-06-16 Nvidia Corporation Computer graphics shader systems and methods
US7774440B1 (en) 2001-07-25 2010-08-10 Scalable Network Technologies, Inc. Method and system for enhancing performance of a physical network under real-time control using simulation of a reference model
US7803052B2 (en) 2002-06-28 2010-09-28 Microsoft Corporation Discovery and distribution of game session information
GB2405599A (en) * 2002-07-05 2005-03-09 Dominic Clancy System and method for playing an interactive game using a mobile device
JP3495032B1 (ja) 2002-07-24 2004-02-09 コナミ株式会社 ゲーム進行管理装置、ゲーム用サーバ装置、端末装置、ゲーム進行管理方法及びゲーム進行管理プログラム
US20060154710A1 (en) 2002-12-10 2006-07-13 Nokia Corporation Method and device for continuing an electronic multi-player game, in case of an absence of a player of said game
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US20060178216A1 (en) 2003-07-15 2006-08-10 Shea Mattew T Multi-session user launching and invitation system and method
US7966642B2 (en) 2003-09-15 2011-06-21 Nair Ajith N Resource-adaptive management of video storage
EP1668520A4 (en) * 2003-09-19 2007-01-31 Wildtangent Inc COMPOSITE CONSUMPTION OF CONTENT INVENTING METHOD AND DEVICES
US7261798B2 (en) 2004-01-28 2007-08-28 Hamilton Sundstrand Corporation Assembly for maintaining compression for electrical contact of the active area of an electrochemical cell
JP4327002B2 (ja) * 2004-04-13 2009-09-09 任天堂株式会社 ロビーシステムプログラムおよびゲームシステム
US8241129B2 (en) 2005-06-20 2012-08-14 Microsoft Corporation Setting up on-line game sessions out of a game context
EP1948335A4 (en) 2005-10-11 2011-02-09 Thq Wireless Inc METHOD AND DEVICE FOR DETECTING DESIRED MULTIPLAYER GAMES FOR PLAYERS
KR20070082395A (ko) * 2006-02-16 2007-08-21 엔에이치엔(주) 유알엘을 이용한 플래시 게임 초대 시스템 및 방법
WO2007101198A2 (en) 2006-02-27 2007-09-07 Adra Hosni I System and method for dynamically tracking and state forecasting tagged entities
US20070293319A1 (en) * 2006-06-20 2007-12-20 Microsoft Corporation Transfer of Features Between Gaming Devices
CN101068258B (zh) 2006-12-14 2011-09-21 腾讯科技(深圳)有限公司 一种电子游戏的控制方法及控制系统
US20080220878A1 (en) * 2007-02-23 2008-09-11 Oliver Michaelis Method and Apparatus to Create or Join Gaming Sessions Based on Proximity
WO2008104221A1 (en) 2007-02-27 2008-09-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for use in multiplayer server-based gaming
KR101422005B1 (ko) 2007-07-04 2014-07-23 엘지전자 주식회사 디스펜서 및 이를 구비하는 냉장고
JP5203646B2 (ja) * 2007-07-17 2013-06-05 株式会社ソニー・コンピュータエンタテインメント ゲーム案内システム、ゲーム案内装置、ゲームサーバ、ゲーム案内方法、プログラム、及び情報記憶媒体
US8235817B2 (en) 2009-02-12 2012-08-07 Sony Computer Entertainment America Llc Object based observation
US8613673B2 (en) 2008-12-15 2013-12-24 Sony Computer Entertainment America Llc Intelligent game loading
US9498714B2 (en) * 2007-12-15 2016-11-22 Sony Interactive Entertainment America Llc Program mode switching
JP5075727B2 (ja) 2008-04-25 2012-11-21 株式会社日立製作所 ストリーム配信システム及び障害検知方法
US8200795B2 (en) * 2008-06-05 2012-06-12 Sony Computer Entertainment Inc. Mobile phone game interface
US20100073712A1 (en) 2008-09-19 2010-03-25 Konica Minolta Systems Laboratory, Inc. Print job assignment method allowing user-prioritization
US9498711B2 (en) * 2008-11-04 2016-11-22 Quado Media Inc. Multi-player, multi-screens, electronic gaming platform and system
US20120079080A1 (en) * 2009-02-11 2012-03-29 Shervin Pishevar Apparatuses, Methods and Systems For An Interactive Proximity Display Tether With Remote Co-Play
CN101887485A (zh) 2009-05-14 2010-11-17 灰熊(北京)科技有限公司 一种在棋牌游戏中实现稳妥的掉线重连的方法
US8506402B2 (en) 2009-06-01 2013-08-13 Sony Computer Entertainment America Llc Game execution environments
US8621585B2 (en) * 2009-06-16 2013-12-31 Z2Live, Inc. Invitation service for multi-device application sessions
US9155963B2 (en) 2009-11-25 2015-10-13 Disney Enterprises, Inc. Collaborative online ranking
US8352798B2 (en) 2009-12-10 2013-01-08 International Business Machines Corporation Failure detection and fencing in a computing system
CN102195935B (zh) 2010-03-03 2015-07-29 深圳市腾讯计算机系统有限公司 游戏托管系统及方法
JP5730914B2 (ja) * 2010-03-05 2015-06-10 ブラス・モンキー・インコーポレイテッドBrass Monkey,Inc. Webブラウザにおける双方向通信および内容制御のシステムおよび方法
US8619588B2 (en) 2010-04-07 2013-12-31 Avaya Inc. System and method for predicting video transmission quality through a network
US8591334B2 (en) * 2010-06-03 2013-11-26 Ol2, Inc. Graphical user interface, system and method for implementing a game controller on a touch-screen device
EP2621594B1 (en) * 2010-09-13 2016-08-10 Sony Computer Entertainment America LLC Dual mode program execution and loading
US8788243B2 (en) 2011-02-14 2014-07-22 Disney Enterprises, Inc. Performance metrics gathering from multiple video game platforms
US8814697B2 (en) 2011-04-19 2014-08-26 Sony Computer Entertainment America Llc Method and apparatus for use in preserving a game state
JP5076132B1 (ja) 2011-05-25 2012-11-21 株式会社スクウェア・エニックス・ホールディングス 描画制御装置、その制御方法、プログラム、記録媒体、描画サーバ、及び描画システム
US9412193B2 (en) 2011-06-01 2016-08-09 Apple Inc. Run-time optimized shader program
US20130017884A1 (en) * 2011-07-13 2013-01-17 Igt Methods and apparatus for providing secure logon to a gaming machine using a mobile device
US8814956B2 (en) 2011-07-14 2014-08-26 Semiconductor Energy Laboratory Co., Ltd. Power storage device, electrode, and manufacturing method thereof
US9167260B2 (en) 2011-08-02 2015-10-20 Advanced Micro Devices, Inc. Apparatus and method for video processing
KR101817652B1 (ko) * 2011-09-01 2018-02-22 삼성전자주식회사 게임 스트리밍 데이터 수신 방법 및 그를 위한 장치, 및 게임 스트리밍 데이터 제공 방법 및 그를 위한 서버
US9773344B2 (en) 2012-01-11 2017-09-26 Nvidia Corporation Graphics processor clock scaling based on idle time
EP2808787A4 (en) 2012-01-24 2016-12-14 Sony Interactive Entertainment Inc INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING SYSTEM
US20130221923A1 (en) 2012-02-23 2013-08-29 Whalen Furniture Manufacturing Inc. Universal charging system and battery pack for video game controllers
US9868062B2 (en) * 2012-03-13 2018-01-16 Sony Interactive Entertainment America Llc System, method, and graphical user interface for controlling an application on a tablet
US10535185B2 (en) 2012-04-04 2020-01-14 Qualcomm Incorporated Patched shading in graphics processing
US20130274000A1 (en) 2012-04-11 2013-10-17 Meteor Entertainment, Inc. Modifying use of resources within a cloud-based gaming platform
US9208642B2 (en) 2012-04-23 2015-12-08 Touchspin Gaming Ag Multiplayer slot machine gaming
US20140006517A1 (en) * 2012-07-02 2014-01-02 WUPIMA, Inc. System and method for social invitations to facilitate playing and sharing of mobile application or mobile game on mobile device
KR101923113B1 (ko) * 2012-07-12 2018-11-28 캠프모바일 주식회사 이동통신 단말기의 메시징 서비스를 이용한 초대정보 처리방법, 이를 수행하는 서비스 서버, 이동통신 단말기 및 컴퓨터로 판독 가능한 기록매체
WO2014022311A2 (en) * 2012-07-30 2014-02-06 Google Inc. Access control in communication environments
JP5563633B2 (ja) * 2012-08-31 2014-07-30 株式会社スクウェア・エニックス ビデオゲーム処理装置、およびビデオゲーム処理プログラム
US8663004B1 (en) 2012-09-05 2014-03-04 Kabam, Inc. System and method for determining and acting on a user's value across different platforms
US20150009222A1 (en) 2012-11-28 2015-01-08 Nvidia Corporation Method and system for cloud based virtualized graphics processing for remote displays
US8870661B2 (en) 2012-12-21 2014-10-28 Sony Computer Entertainment America Llc Cloud-based game slice generation and frictionless social sharing with instant play
EP2750032B1 (en) * 2012-12-27 2020-04-29 Sony Computer Entertainment America LLC Methods and systems for generation and execution of miniapp of computer application served by cloud computing system
WO2014120368A1 (en) 2013-01-30 2014-08-07 Intel Corporation Content adaptive entropy coding for next generation video
WO2014160354A1 (en) 2013-03-14 2014-10-02 Georgia State University Research Foundation, Inc. Inhibiting or reducing fungal growth
US11185783B2 (en) * 2013-03-14 2021-11-30 Sony Interactive Entertainment Inc. Controller emulation for cloud gaming
US20140274384A1 (en) * 2013-03-15 2014-09-18 Electronic Arts Inc. Delivering and consuming interactive video gaming content
US9295915B2 (en) 2013-05-20 2016-03-29 Microsoft Technology Licensing, Llc Game availability in a remote gaming environment
US9628332B2 (en) 2013-05-20 2017-04-18 Microsoft Technology Licensing, Llc Resource allocation to game titles in a remote gaming environment
US9339733B2 (en) * 2013-05-22 2016-05-17 Wesley John Boudville Barcode-based methods to enhance mobile multiplayer games
CA2886282C (en) 2013-05-23 2019-07-23 Stephan Georgiev Dynamic allocation of rendering resources in a cloud gaming system
US9675874B1 (en) 2013-07-18 2017-06-13 nWay, Inc. Multi-player gaming system
US9723051B2 (en) * 2013-08-13 2017-08-01 Criteo Sa Setting first-party cookies by redirection
US20150087414A1 (en) * 2013-09-26 2015-03-26 Cellco Partnership D/B/A Verizon Wireless Cloud gaming implemented using a mobile device and a display device
JP6292707B2 (ja) 2013-10-22 2018-03-14 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
US9592446B2 (en) * 2013-12-13 2017-03-14 DeNA Co., Ltd. Electronic game providing device and non-transitory computer-readable storage medium storing electronic game program
US20160293134A1 (en) 2013-12-26 2016-10-06 Square Enix Holdings Co., Ltd. Rendering system, control method and storage medium
JP6528281B2 (ja) 2014-01-29 2019-06-12 国立研究開発法人産業技術総合研究所 シクロデキストリンの利用による抗がん活性が増強されたアシュワガンダ葉の水抽出物の調製方法、及びアシュワガンダ葉を含む医薬組成物
US10067566B2 (en) * 2014-03-19 2018-09-04 Immersion Corporation Systems and methods for a shared haptic experience
US9912562B2 (en) 2014-03-31 2018-03-06 Microsoft Technology Licensing, Llc Measuring latency in an interactive application
US20150297998A1 (en) * 2014-04-16 2015-10-22 Microsoft Corporation Hyperlink initiation of game sessions
US9928565B2 (en) 2014-04-21 2018-03-27 Qualcomm Incorporated Flex rendering based on a render target in graphics processing
GB2525437B (en) 2014-04-25 2016-05-25 Cheng Uei Prec Ind Co Ltd Push-button structure
US9940686B2 (en) 2014-05-14 2018-04-10 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
KR20180102212A (ko) 2014-06-13 2018-09-14 콘비다 와이어리스, 엘엘씨 자동화된 서비스 프로파일링 및 오케스트레이션
US9393486B2 (en) * 2014-06-27 2016-07-19 Amazon Technologies, Inc. Character simulation and playback notification in game session replay
US20160005257A1 (en) * 2014-07-04 2016-01-07 Trendy Entertainment Influence system and methods
US9975044B2 (en) * 2014-07-22 2018-05-22 Ngage SporTek Ltd. System and method for social gaming
US10021214B2 (en) 2014-07-22 2018-07-10 Microsoft Technology Licensing, Llc Synthetic transactions between communication endpoints
US10909809B2 (en) 2014-12-12 2021-02-02 Synergy Blue Llc Graphical user interface and computer processing techniques for facilitating user interaction with electronic gaming devices
US10255765B2 (en) 2015-08-20 2019-04-09 Synergy Blue, Llc Gaming aspects relating to multiplayer/tournament hybrid arcade/wager-based games
US20170124812A1 (en) 2014-12-12 2017-05-04 Synergy Blue, Llc Gaming and wagering techniques relating to skill-based gaming
CN104598292B (zh) 2014-12-15 2017-10-03 中山大学 一种应用于云游戏系统的自适应流适配和资源优化方法
US10007965B2 (en) 2014-12-16 2018-06-26 Intel Corporation Dynamic kernel modification for graphics processing units
US9396702B2 (en) 2014-12-23 2016-07-19 Sony Interactive Entertainment America Llc Latency tester
US20160279523A1 (en) * 2015-03-25 2016-09-29 GAMEin30 Ltd. System and method for interactive gaming
US10130874B2 (en) 2015-05-01 2018-11-20 Microsoft Technology Licensing, Llc Removable controller accessory for a game controller
WO2016183253A1 (en) 2015-05-12 2016-11-17 Equinix, Inc. Programmable network platform for a cloud-based services exchange
US9609275B2 (en) 2015-07-08 2017-03-28 Google Inc. Single-stream transmission method for multi-user video conferencing
US10135892B2 (en) 2015-07-28 2018-11-20 Google Llc Independent control of interactive streaming media
US9946593B2 (en) 2015-09-18 2018-04-17 Salesforce.Com, Inc. Recovery strategy for a stream processing system
JP6646319B2 (ja) 2015-09-30 2020-02-14 ソニー・インタラクティブエンタテインメント エルエルシー クラウドゲームのためのマルチユーザデモストリーミングサービス
US20170097816A1 (en) * 2015-10-01 2017-04-06 Motorola Mobility Llc Context-based applications for mobile devices
US10630773B2 (en) 2015-11-12 2020-04-21 Nvidia Corporation System and method for network coupled cloud gaming
JP2016073663A (ja) * 2015-11-25 2016-05-12 グリー株式会社 プログラム、及び表示システム
US20170185464A1 (en) 2015-12-29 2017-06-29 Ca, Inc. Detecting flapping in resource measurements
US20170246544A1 (en) * 2016-02-26 2017-08-31 Microsoft Technology Licensing, Llc Video game streaming for spectating
CN105749551B (zh) 2016-02-26 2019-04-30 网易(杭州)网络有限公司 一种游戏托管方法、系统及终端
US10456672B2 (en) 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
US10046236B2 (en) 2016-06-13 2018-08-14 Sony Interactive Entertainment America, LLC Browser-based cloud gaming
US11351468B2 (en) * 2016-06-13 2022-06-07 Sony Interactive Entertainment LLC Generating challenges using a location based game play companion application
US10332296B2 (en) 2016-07-05 2019-06-25 Ubitus Inc. Overlaying multi-source media in VRAM
US10521879B2 (en) 2016-07-05 2019-12-31 Ubitus, Inc. Overlaying multi-source media in VRAM
CN106328855B (zh) 2016-11-29 2019-06-04 宁德时代新能源科技股份有限公司 电池组件及电池模组
US10722803B2 (en) * 2017-02-15 2020-07-28 Roblox Corporation Integrated chat and game play platform
US20180250591A1 (en) * 2017-03-02 2018-09-06 The Fast Mind, LLC Methods of circumventing platform restrictions in gaming
US10512846B2 (en) 2017-03-07 2019-12-24 Sony Interactive Entertainment LLC Emulating player behavior after player departure
EP4336800A2 (en) 2017-10-10 2024-03-13 Google LLC Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content
CN107670275B (zh) 2017-10-26 2020-10-13 广州市雷军游乐设备有限公司 游戏进程断线重连的方法和系统
WO2019126350A1 (en) 2017-12-19 2019-06-27 Advanta Computer, LLC Systems and methods for networked computing
US10792576B2 (en) 2018-02-28 2020-10-06 Sony Interactive Entertainment LLC Player to spectator handoff and other spectator controls
EP4276814A3 (en) 2018-03-22 2023-12-20 Google LLC Methods and systems for rendering and encoding content for online interactive gaming sessions
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
WO2019195300A2 (en) 2018-04-02 2019-10-10 Google Llc Input device for an electronic system
US10773168B2 (en) 2018-04-02 2020-09-15 Google Llc Temporary game control by user simulation following loss of active control
WO2019194953A1 (en) 2018-04-02 2019-10-10 Google Llc Methods, devices, and systems for interactive cloud gaming
CN111417978A (zh) 2018-04-10 2020-07-14 谷歌有限责任公司 游戏渲染中的内存管理
US10950092B2 (en) 2018-10-07 2021-03-16 Synergy Blue Llc Skillful multi-level games and gaming machines in which players are granted free play sessions
WO2020102493A1 (en) 2018-11-16 2020-05-22 Google Llc Shadow tracking of real-time interactive simulations for complex system analysis
US11731043B2 (en) 2019-11-19 2023-08-22 Sony Interactive Entertainment Inc. Adaptive graphics for cloud gaming
US11128636B1 (en) 2020-05-13 2021-09-21 Science House LLC Systems, methods, and apparatus for enhanced headsets

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040198403A1 (en) * 2002-07-25 2004-10-07 Pedersen Claus Aagaard Gaming concept for wireless terminals
US20130198642A1 (en) * 2003-03-14 2013-08-01 Comcast Cable Communications, Llc Providing Supplemental Content
KR20070067005A (ko) * 2004-03-08 2007-06-27 매시브 인코포레이티드 다수의 비디오 게임에 광고를 전달하는 방법 및 시스템
JP2015139565A (ja) * 2014-01-29 2015-08-03 株式会社コロプラ ゲームに関わるサーバコンピュータ及びゲームプログラム

Also Published As

Publication number Publication date
JP2019516420A (ja) 2019-06-20
JP7022734B2 (ja) 2022-02-18
EP3402582A1 (en) 2018-11-21
WO2017201472A1 (en) 2017-11-23
JP2020089734A (ja) 2020-06-11
KR102072233B1 (ko) 2020-01-31
JP6629986B2 (ja) 2020-01-15
US20200001177A1 (en) 2020-01-02
EP3610933B1 (en) 2022-05-11
EP3610933A1 (en) 2020-02-19
US11305186B2 (en) 2022-04-19
KR102238770B1 (ko) 2021-04-08
KR20200013075A (ko) 2020-02-05
US10456672B2 (en) 2019-10-29
US20170333790A1 (en) 2017-11-23
EP3402582B1 (en) 2019-10-30

Similar Documents

Publication Publication Date Title
US11305186B2 (en) Methods and systems for facilitating participation in a game session
US11433311B2 (en) Methods, devices, and systems for interactive cloud gaming
US20210346791A1 (en) Mediating multiplayer electronic game sessions
US8910309B2 (en) Controlling public displays with private devices
US20200338456A1 (en) Game mediation infrastructure for establishment of multiplayer gaming sessions
US20140201256A1 (en) Appliance control system and method
KR20140109974A (ko) 2차 터치 컨트롤러를 구비한 컨텐츠 시스템
JP7221638B2 (ja) 生放送中の音声フィードバックのための方法とシステム、および非一時的コンピュータ読取可能な記録媒体
JP6292295B2 (ja) 連携システム、装置、方法、および記録媒体
JP7431497B2 (ja) 映像通話およびオブジェクト認識を基盤としたゲーム提供方法およびシステム
WO2020238840A1 (zh) 单机程序的运行方法、装置、设备及存储介质
KR20150076862A (ko) 게임 초대 서비스 시스템 및 방법
KR20110096188A (ko) 휴대폰의 입력장치를 컴퓨터 입력장치로 사용하는 시스템과 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right