KR20230017925A - 대화형 클라우드 게임용 방법, 디바이스 및 시스템 - Google Patents

대화형 클라우드 게임용 방법, 디바이스 및 시스템 Download PDF

Info

Publication number
KR20230017925A
KR20230017925A KR1020237002848A KR20237002848A KR20230017925A KR 20230017925 A KR20230017925 A KR 20230017925A KR 1020237002848 A KR1020237002848 A KR 1020237002848A KR 20237002848 A KR20237002848 A KR 20237002848A KR 20230017925 A KR20230017925 A KR 20230017925A
Authority
KR
South Korea
Prior art keywords
game
electronic device
implementations
interface device
game controller
Prior art date
Application number
KR1020237002848A
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 KR20230017925A publication Critical patent/KR20230017925A/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/20Input arrangements for video game devices
    • A63F13/23Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console
    • A63F13/235Input arrangements for video game devices for interfacing with the game device, e.g. specific interfaces between game controller and console using a wireless connection, e.g. infrared or piconet
    • 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
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/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/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
    • 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/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/402Communication between platforms, i.e. physical link to protocol
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via 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
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/538Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

본 명세서에 기술된 다양한 구현은 대화형 클라우드 게임용 방법, 디바이스 및 시스템을 포함한다. 일 양태에서, 프로세서 및 애플리케이션 프로그램을 저장하는 메모리를 갖는 인터페이스 디바이스가 클라우드 게임에 사용된다. 인터페이스 디바이스는 인터페이스 디바이스, 게임 컨트롤러 및 원격 게임 서버 사이에서 메시지 및 미디어 스트림을 수신 및/또는 전송하는 통신 모듈을 포함한다. 인터페이스 디바이스는 애플리케이션의 출력을 인터페이스 디바이스에 결합되거나 통합된 디스플레이 디바이스의 입력에 제공하도록 구성된 출력 모듈을 더 포함한다. 애플리케이션은 인터페이스 디바이스가 게임 컨트롤러에 의해 전송된 실질적으로 모든 메시지와 관련된 출력을 처리 및 디스플레이하는 제1 모드 및 인터페이스 디바이스가 게임 컨트롤러로부터의 기정의된 메시지 서브 세트를 처리 및 디스플레이하고 게임 서버로부터의 게임 미디어 스트림을 디스플레이하는 제2 모드를 구현하도록 구성된다.

Description

대화형 클라우드 게임용 방법, 디바이스 및 시스템{METHODS, DEVICES, AND SYSTEMS FOR INTERACTIVE CLOUD GAMING}
본 발명은 이에 한정되지 않지만 일반적으로 대화형(interactive) 클라우드 게임용 디바이스, 시스템 및 방법을 포함하는 컴퓨터 기술에 관한 것이다.
게임 콘솔은 게임 및 기타 엔터테인먼트에 사용되는 미디어 디스플레이 디바이스의 유형이다. 사용자 그룹은 게임 콘솔이 설치된 하나의 공간에 모여 게임 콘솔을 사용하여 스트리밍되는 영화를 즐길 수 있다. 게임 애플리케이션의 경우, 게임 콘솔은 일반적으로 플레이를 위해 게임 콘솔에 동시에 연결되는 여러 게임 컨트롤러(예를 들어, 최대 5대의 게임 컨트롤러)를 지원한다. 그러나, 이러한 게임 컨트롤러와 게임 콘솔은 개별적으로 전원을 끄고 사용자가 게임 세션을 다른 위치로(예를 들어, 집 안의 다른 방 또는 친구 집으로) 이동하기로 결정할 때 다시 설정해야 한다. 또한, 게임은 플레이되기 전에 콘솔의 하드 드라이브에 설치되어야 하므로 사용자는 주어진 시간에 제한된 수의 게임을 선택할 수 있다. 부가적으로, 오래된 게임 콘솔에는 최신 게임에 필요한 요구 사항을 충족할 수 있는 처리 기능이 없기 때문에 사용자는 게임 콘솔을 지속적으로 업그레이드해야 한다. 따라서, 콘솔 기반 게임은 사용자에게 번거롭고 시간과 비용이 많이 들 수 있다.
따라서, 사용자는 상당한 시간, 비용 및 노력을 들이지 않고 고품질의 게임을 경험할 수 있어야 한다. 사용자는 또한 플레이하고 싶은 임의의 게임 및 플레이하고 싶은 사람의 수를 자유롭게 선택할 수 있어야 한다.
본 명세서에 설명된 다양한 구현은 효율적이고 휴대용 게임 경험을 가능하게 하는 게임 애플리케이션 플랫폼을 제공하는 것에 관한 것이다. 특히, 게임을 가능하게 하는 소프트웨어를 호스팅하는 인터페이스 디바이스(예를 들어, 구글의 크롬캐스트와 같은 하드웨어 동글)가 클라우드 게임에 사용된다. 인터페이스 디바이스는 게임 서버와 상호 작용하여 게임에 액세스하고, (실시간으로) 게임 서버로부터, 인터페이스 디바이스에 결합되거나 통합된 디스플레이 디바이스(예를 들어, TV)에 디스플레이하기 위해 게임 미디어 컨텐츠(예를 들어, 오디오 및/또는 시각 컨텐츠)를 스트리밍한다. 인터페이스 디바이스는 또한 온라인 게임을 가능하게 하는 게임 컨트롤러(들) 및/또는 전자 디바이스(들)와 동시에 통신한다.
이 애플리케이션의 일부 구현에 따르면, 즉각적인 게임 플레이를 제공하는 클라우드 지원(enabled) 게임 컨트롤러가 게임에 사용된다. 게임 컨트롤러는 로컬 네트워크(예를 들어, Wi-Fi)의 인터페이스 디바이스와 통신한다. 게임 컨트롤러는 인터페이스 디바이스로 메시지(예를 들어, 게임 설정 명령)를 전송한다. 게임 플레이 중에, 게임 컨트롤러는 게임 입력을 직접 게임 서버로 전송한다. 따라서, 게임 컨트롤러는 게임 콘솔이 필요없는 휴대용 및 독립형 디바이스로 작동하여, 한 위치에서 다른 위치(예를 들어, 가정 환경, 기숙사, 사무실 또는 주택 간 등)로 쉽고 편리하게 이동할 수 있다.
일부 구현에서, 게임 컨트롤러는 다수의 플레이어 자격 증명 및/또는 다수의 네트워크 자격 증명을 저장한다. 게임 컨트롤러는 많은 상이한 위치 및 멀티 플레이어 게임 설정에서 사용될 수 있다.
추가적으로, 일부 구현에서, 인터페이스 디바이스는 동일한 네트워크상의 다수의 게임 컨트롤러 및/또는 다수의 전자 디바이스와 동시에 연결(예를 들어, 페어링)된다.
일부 구현에서, 게임 컨트롤러는 (예를 들어, 설정 프로세스 동안) 게임 컨트롤러의 사용자와 연관되는 디바이스 ID(예를 들어, 게임 컨트롤러 ID) 및/또는 클라이언트 인증서에 의해 식별된다.
일부 구현에서, 인터페이스 디바이스는 디바이스 ID 및/또는 클라이언트 인증서(예를 들어, 인터페이스 디바이스 ID)에 의해 식별된다. 일부 구현에서, 게임 컨트롤러는 통신적으로 연결(예를 들어, 페어링)된 각 인터페이스 디바이스의 식별자를 저장한다.
일부 구현에서, 게임 컨트롤러는 가구(가정)에서 사용된다. 게임 컨트롤러는 설정(예를 들어, 프로비저닝 프로세스) 중에 가구 및 사용자(예를 들어, 가구 구성원)와 연관된다. 일부 구현에서, 클라우드 게임을 가능하게 하는 애플리케이션(예를 들어, 구글 홈 앱)이 게임 컨트롤러를 구축하는데 사용된다. 일부 구현에서, 가구 및 사용자는 게임 서버를 통해 구매한 게임 및 다른 권한에 액세스할 수 있도록 확인된 자격 증명에 의해 식별된다.
일부 구현에서, 게임 컨트롤러는 플레이어로부터 음성 입력(예를 들어, 커맨드)을 수신하고, 그 음성 입력을 처리 및/또는 전송한다.
일부 구현에서, 게임 컨트롤러는 게임 컨트롤러에 연결되는 헤드셋을 포함한다. 오디오 입력은 (예를 들어, 헤드셋을 통해) 게임 컨트롤러로 전송된다.
따라서, 본 명세서에 개시된 인터페이스 디바이스, 게임 컨트롤러 및 클라우드 게임 서버의 다양한 향상된 기술을 결합함으로써, 게임 경험은 한 공간에 모인 사용자들에 의한 게임 플레이에서 다른 장소에 있는 다수의 플레이어(예를 들어, 수백 또는 수천)에 의한 온라인 대화형 게임 플레이로 확장될 수 있다. 더욱이, 사용자는 컨텐츠, 렌더링, 인코딩 및 스트리밍 리소스의 대규모 클라우드-관리 라이브러리를 포함한 클라우드 게임 서비스 및 리소스에 액세스할 수 있으므로 더 이상 게임 콘솔의 저장 및 처리 능력에 얽매이지 않는다.
일 양태에서, 일부 구현은 하나 이상의 프로세서 및 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 포함하는 인터페이스 디바이스(예를 들어, 게임 인터페이스 디바이스)를 포함하고, 하나 이상의 프로그램은 애플리케이션(예를 들어, 게임 애플리케이션 및 스트리밍 애플리케이션)을 포함한다. 인터페이스 디바이스는 인터페이스 디바이스와 게임 컨트롤러 사이, 그리고 인터페이스 디바이스와 떨어져 있는 게임 서버 사이에서 메시지와 미디어 스트림을 수신 및/또는 전송하는 통신 모듈을 포함한다. 인터페이스 디바이스는 인터페이스 디바이스에 결합되거나 통합된 디스플레이 디바이스의 입력에 애플리케이션의 출력을 제공하도록 구성된 출력 모듈을 더 포함한다. 애플리케이션은 인터페이스 디바이스가 게임 컨트롤러에 의해 전송된 거의(실질적으로) 모든 메시지와 관련된 출력을 처리 및 디스플레이하는 제1 모드(예를 들어, 메뉴 모드)를 구현하도록 구성된다. 애플리케이션(예를 들어, 게임 애플리케이션)은 인터페이스 디바이스가 게임 컨트롤러로부터의 기정의된 메시지의 서브 세트를 처리 및 디스플레이하고 게임 서버에 의해 전송된 게임 미디어 스트림(예를 들어, 스트리밍 애플리케이션)을 디스플레이하는 제2 모드(예를 들어, 게임 플레이 모드)를 구현하도록 추가로 구성된다. 일부 구현에서, 통신 모듈은 무선 전송 모듈, 통신 버스 및 유선 연결 중 하나 이상일 수 있다. 일부 구현에서, 게임 컨트롤러는 인터페이스 디바이스에 근접한다. 일부 구현에서, 출력 모듈은 인터페이스 디바이스에 결합되거나 통합된 디스플레이 디바이스의 입력 포트에 애플리케이션의 출력을 제공(예를 들어, 전송)하도록 구성된 출력 포트를 포함한다. 일부 구현에서, 애플리케이션은 게임 서버에 의해 전송된 게임 미디어 스트림을 디코딩하고 디스플레이 디바이스에 출력하도록 추가로 구성된다. 일부 구현에서, 게임 미디어 스트림은 실시간으로 디스플레이된다. 일부 구현에서, 스트림은 게임 세션의 게임 플레이 상태를 나타내기 위해 게임 서버에 의해 생성된다. 일부 구현에서, 제2 모드에서 인터페이스 디바이스는 게임 컨트롤러로부터의 대부분의 명령을 무시한다(예를 들어, 게임 컨트롤러상의 퀵 메뉴 누름 버튼으로부터의 명령 만이 인터페이스 디바이스로 전송된다).
다른 양태에서, 일부 구현은 하나 이상의 프로세서 및 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 포함하는 게임 컨트롤러를 포함하고, 하나 이상의 프로그램은 애플리케이션을 포함한다. 게임 컨트롤러는 게임 컨트롤러와 인터페이스 디바이스 사이, 그리고 게임 컨트롤러와 그 게임 컨트롤러로부터 멀리 떨어진 게임 서버 사이에서 메시지 및 미디어 스트림을 수신 및/또는 전송하는 통신 모듈을 포함한다. 애플리케이션은 게임 컨트롤러가 게임 설정 명령을 인터페이스 디바이스로 전송하는 제1 모드(예를 들어, 메뉴 모드)를 구현하도록 구성된다. 애플리케이션은 게임 컨트롤러가 게임 플레이 명령을 게임 서버로 전송하고 게임 설정 명령의 기정의된 서브 세트를 인터페이스 디바이스로 전송하는 제2 모드(예를 들어, 게임 플레이 모드)를 구현하도록 추가로 구성된다. 일부 구현에서, 인터페이스 디바이스는 게임 컨트롤러에 근접한다. 일부 구현에서, 게임 컨트롤러와 인터페이스 디바이스는 동일한 로컬 네트워크에 연결되고, 게임 컨트롤러는 게임 설정 명령을 동일한 로컬 네트워크를 통해 인터페이스 디바이스로 전송한다. 일부 구현에서, 게임 컨트롤러는 다수의 사용자 자격 증명 및 다수의 네트워크 자격 증명을 저장한다. 일부 구현에서, 통신 모듈은 무선 전송 모듈, 통신 버스 및 유선 연결 중 하나 이상일 수 있다.
일 양태에서, 일부 구현은 게임 시스템에서 수행되는 클라우드 게임용 방법을 포함한다. 게임 시스템은 인터페이스 디바이스, 게임 컨트롤러 및 인터페이스 디바이스와 게임 컨트롤러로부터 멀리 떨어진 게임 서버를 포함한다. 인터페이스 디바이스, 게임 컨트롤러 및 게임 서버 각각은 하나 이상의 프로세서 및 그 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 포함한다. 방법은, 인터페이스 디바이스에서: (1) 게임 컨트롤러로부터 게임의 선택을 수신하는 단계; (2) 제1 모드(예를 들어, 메뉴 모드)에서, 게임 컨트롤러에 의해 전송된 거의 모든 메시지와 관련된 출력을 사용자 개입 없이 자동으로 처리 및 디스플레이하는 단계; 및 (3) 제2 모드(예를 들어, 게임 플레이 모드)에서, 게임 컨트롤러로부터의 기정의된 메시지의 서브 세트를 사용자 개입 없이 자동으로 처리 및 디스플레이하고 게임 서버에 의해 전송된 게임의 게임 미디어 스트림으로 실시간으로 디스플레이하는 단계를 포함하고, 상기 디스플레이하는 단계는 인터페이스 디바이스에 결합되거나 통합된 디스플레이 디바이스 상에 디스플레이하는 단계를 포함한다. 방법은 또한, 게임 컨트롤러에서: (4) 제1 모드에서, 컨트롤러 명령(예를 들어, 게임 설정 명령)을 인터페이스 디바이스로 전송하는 단계; 및 (5) 제2 모드에서, 게임 플레이 명령을 게임 서버로 전송하고 컨트롤러 명령의 기정의된 서브 세트를 인터페이스 디바이스로 전송하는 단계를 포함한다. 방법은 게임 서버에서, 각각의 게임에 대해: (6) 게임 컨트롤러로부터 게임 플레이 명령을 수신하는 단계; (7) 하나 이상의 수신된 명령의 각각의 서브 세트에 따라 게임의 컨텐츠의 개별 프레임을 렌더링하는 단계; 및 (8) 인터페이스 디바이스에 실시간으로, 개별 렌더링된 프레임을 포함하는 게임의 게임 미디어 스트림을 전송하는 단계를 더 포함한다. 일부 구현에서, 게임 컨트롤러는 인터페이스 디바이스에 근접한다.
일 양태에서, 일부 구현은 디스플레이 디바이스(예를 들어, TV)에 결합되거나 통합되고 하나 이상의 프로세서 및 그 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 갖는 제1 전자 디바이스(예를 들어, 인터페이스 디바이스)에서 수행되는 게임 방법을 포함한다. 하나 이상의 프로세서에 의해 실행될 하나 이상의 프로그램을 저장하는 단계를 포함한다. 이 방법은 (1) 제2 전자 디바이스(예를 들어, 게임 컨트롤러)로부터, 클라우드 게임 세션을 시작하기 위한 제1 사용자 입력(예를 들어, 사용자가 게임 컨트롤러상의 버튼을 선택 함)을 수신하는 단계; 제1 사용자 입력을 수신하는 것에 응답하여: (2A) 게임 서버의 게임 서비스에 연결하는 단계; (2B) 사용자 개입 없이 자동으로, 사용자와 관련된 디폴트 플레이어 식별 정보(예를 들어, 식별 정보는 플레이어 또는 가구 계정과 연관됨)를 식별하는 단계; 및 (2C) 게임 서버와 함께 디폴트 플레이어 식별 정보를 사용하여 클라우드 게임 세션을 시작하는 단계를 포함한다. 일부 구현에서, 제1 전자 디바이스와 제2 전자 디바이스는 서로 근접해 있다. 일부 구현에서, 제1 전자 디바이스와 제2 전자 디바이스는 통신 가능하게 연결된다. 일부 구현에서, 제1 전자 디바이스와 제2 전자 디바이스는 공통 네트워크(예를 들어, 유선 또는 Wifi) 상에 있다. 일부 구현에서, 제2 전자 디바이스는 전원이 켜진 후 자동으로 Wifi 네트워크에 연결되고 제1(예를 들어, 디폴트) 전자 디바이스와 자동으로 페어링된다. 일부 구현에서, 게임 컨트롤러는 디폴트 게이머(예를 들어, 사용자) 식별 정보를 저장한다.
다른 양태에서, 일부 구현은 디스플레이 디바이스(예를 들어, TV)에 결합되거나 통합된 제1 전자 디바이스(예를 들어, 인터페이스 디바이스)에서 수행되는 클라우드 게임용 방법을 포함하며, 제1 전자 디바이스는 하나 이상의 프로세서 및 그 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 갖는다. 이 방법은 (1) 제2 전자 디바이스(예를 들어, 게임 컨트롤러)로부터, 클라우드 게임 세션을 시작하기 위한 제1 사용자 입력(예를 들어, 사용자는 게임 컨트롤러상의 버튼을 선택함)을 수신하는 단계와, 상기 제1 사용자 입력은 게임 선택을 포함하고; 수신된 입력에 응답하여: (2) 게임 서버의 게임 서비스에 연결하는 단계와; (3) 사용자 개입 없이 자동으로 디스플레이 디바이스상에, 복수의 플레이어 식별 정보(예를 들어, 플레이어를 나타내는 사용자/게이머 이름 및/또는 아바타)를 포함하는 로그인 화면을 디스플레이하는 단계와; (4) 제2 전자 디바이스로부터, 복수의 플레이어 식별 정보들로부터 제1 플레이어 식별 정보의 선택을 수신하는 단계와; (5) 선택된 제1 플레이어 식별 정보를 사용하여 게임 서비스에 로그인하는 단계와; 그리고 (6) 게임 서버와 함께 클라우드 게임 세션을 시작하고 게임 플레이를 개시하는 단계로서: (6A) 게임 서버로부터 게임의 게임 미디어 스트림을 획득하는 단계; (6B) 게임 미디어 스트림 디코딩하는 단계; 및 (6C) 디코딩된 게임 미디어 스트림을 디스플레이 디바이스로 출력하는 단계를 포함하며, 게임 미디어 스트림은 제2 전자 디바이스로부터 게임 서버로 직접 전송된 게임 입력에 응답하여 게임 서버에 의해 생성된다. 제1 전자 디바이스와 제2 전자 디바이스는 통신 가능하게 연결된다. 일부 구현에서, 제1 전자 디바이스와 제2 전자 디바이스는 공통 네트워크 상에 있다. 일부 구현에서, 제1 전자 디바이스와 제2 전자 디바이스는 서로 근접해 있다. 일부 구현에서, 방법은 사용자가 선택된 제1 플레이어 식별 정보를 사용하여 게임 서비스에 로그인하기 전에 자신의 식별 정보(예를 들어, 음성 입력을 사용하거나 패스워드를 입력)을 검증(확인)하도록 요구하는 보안 모드를 포함한다. 일부 구현에서, 방법은 각각 적어도 하나의 플레이어 식별 정보를 저장하는 다수의 제 2 전자 디바이스를 포함한다.
또 다른 양태에서, 일부 구현은 하나 이상의 프로세서 및 그 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 갖는 제2 전자 디바이스(예를 들어, 게임 컨트롤러)에서 수행되는 클라우드 게임용 방법을 포함한다. 이 방법은 (1) 복수의 제1 전자 디바이스(예를 들어, 인터페이스 장치)로, 게임 세션을 시작하기 위한 제 1 입력을 전송하는 단계와, 상기 제2 전자 디바이스는 제1 전자 디바이스 각각에 통신 가능하게 연결되고, 제1 전자 디바이스 각각은 개별 디스플레이 디바이스에 결합되거나 통합되고; 제1 입력에 응답하여: (2) 제1 전자 디바이스들 중 첫 번째 전자 디바이스가 사용자 개입 없이 자동으로 제1 디스플레이 디바이스상에, 복수의 플레이어 식별 정보를 포함하는 로그인 화면을 디스플레이하게 하는 단계와; 그리고 (3) 제1 전자 디바이스들 중 두 번째 전자 디바이스가 사용자 개입 없이 자동으로 제2 디스플레이 디바이스상에, 명령을 포함하는 통지를 디스플레이하게 하는 단계와; (4) 제1 전자 디바이스들 중 첫 번째 전자 디바이스로 제2 입력을 전송하는 단계와, 상기 제2 입력은 복수의 플레이어 식별 정보로부터 제1 플레이어 식별 정보의 선택을 포함하고; 제2 입력에 응답하여: (5) 제1 전자 디바이스들 중 첫 번째 전자 디바이스에서 게임 세션을 시작하는 단계를 포함한다. 일부 구현에서, 제1 전자 디바이스들 중 첫 번째 전자 디바이스와 두 번째 전자 디바이스는 동일한 건물(예를 들어, 가정 환경의 거실 및 침실)의 상이한 영역에 위치한다. 일부 구현에서, 제2 전자 디바이스들 중 첫 번째 전자 디바이스는 디폴트 제2 전자 디바이스이다. 일부 구현에서, 제2 전자 디바이스들 중 첫 번째 전자 디바이스는 가장 최근에 사용된 디바이스이다. 일부 구현에서, 제2 전자 디바이스와 제1 전자 디바이스 각각은 공통 네트워크 상에 있다.
또 다른 양태에서, 일부 구현은 하나 이상의 프로세서 및 그 하나 이상의 프로세서에 결합된 메모리를 포함하는 컴퓨팅 시스템을 포함하고, 메모리는 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램은 본 명세서에 기술된 방법들 중 임의의 것을 수행하기 위한 명령들을 포함한다.
또 다른 양태에서, 일부 구현은 컴퓨팅 시스템의 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함하며, 하나 이상의 프로그램은 본 명세서에 기술된 방법들 중 임의의 것을 수행하기 위한 명령들을 포함한다.
다른 실시예 및 이점은 본 명세서의 설명 및 도면에 비추어 당업자에게 명백 할 수 있다.
설명된 다양한 구현에 대한 보다 나은 이해를 위해, 참조는 동일한 참조 번호가 도면 전체에 걸쳐 대응하는 부분을 지칭하는 다음 도면과 관련하여 아래의 구현 설명으로 이루어져야 한다.
도 1a는 일부 구현에 따른 예시적인 게임 환경이다.
도 1b는 일부 구현에 따른 다른 예시적인 게임 환경이다.
도 1c는 일부 구현에 따른 또 다른 예시적인 게임 환경이다.
도 1d는 일부 구현에 따른 또 다른 예시적인 게임 환경이다.
도 2a는 게임 포털 사용자 인터페이스(UI)를 시작하기 위한 예시적인 동작 시퀀스를 도시한다.
도 2b는 게임 세션을 시작하기 위한 예시적인 동작 시퀀스를 도시한다.
도 3은 일부 구현에 따른 대표적인 게임 컨트롤러를 도시하는 블록도이다.
도 4는 일부 구현에 따른 대표적인 인터페이스 디바이스를 도시하는 블록도이다.
도 5는 일부 구현에 따른 대표적인 서버 시스템을 도시하는 블록도이다.
도 6a 내지 6c는 일부 구현에 따른 도 3의 게임 컨트롤러를 설정 및 구축하기 위한 예시적인 프로세스를 도시한다.
도 7a 내지 7c는 일부 구현에 따은 게임 컨트롤러와 인터페이스 디바이스 사이의 예시적인 상호 작용을 도시한다.
도 8a 및 8b는 일부 구현에 따른 게임 컨트롤러와 인터페이스 디바이스 사이의 다른 예시적인 상호 작용을 도시한다.
도 9a 내지 9f는 일부 구현에 따른 2개의 게임 컨트롤러와 인터페이스 디바이스 사이의 예시적인 상호 작용을 도시한다.
도 10a 및 10b는 일부 구현에 따른 게임 컨트롤러(102)와 2개의 인터페이스 디바이스 사이의 예시적인 상호 작용을 도시한다.
도 11a 내지 11d는 일부 구현에 따른 게임 컨트롤러(102)와 2개의 인터페이스 디바이스 사이의 다른 예시적인 상호 작용을 도시한다.
도 12a 내지 12c는 일부 구현에 따른 클라우드 게임을 위한 방법의 흐름도 표현이다.
도 13a 내지 13e는 일부 구현에 따른 클라우드 게임을 위한 방법의 다른 흐름도 표현이다.
도 14a 및 14b는 일부 구현에 따른 클라우드 게임을 위한 방법의 또 다른 흐름도 표현이다.
유사한 참조 번호는 도면의 여러 도면에 걸쳐 대응하는 부분을 지칭한다.
이제 구현에 대한 참조가 상세하게 이루어질 것이며, 그 예는 첨부 도면에 예시되어 있다. 다음의 상세한 설명에서, 설명된 다양한 구현에 대한 철저한 이해를 제공하기 위해 수많은 특정 세부 사항이 설명된다. 그러나, 설명된 다양한 구현이 이러한 특정 세부 사항없이 실행될 수 있음은 당업자에게 명백할 것이다. 다른 경우, 잘 알려진 방법, 절차, 구성 요소 및 네트워크는 구현의 양태를 불필요하게 모호하게 하지 않도록 자세히 설명되지 않았다.
구글(Google)의 크롬캐스트 디바이스와 같은 디스플레이 인터페이스 디바이스(본 명세서에서 "인터페이스 디바이스", "스트리밍 디바이스" 또는 "캐스팅 디바이스"로 지칭됨)는 (예를 들어, 인터넷-연결 미디어 서비스 또는 로컬 디지털 비디오 레코더(DVR)와 같은) 로컬 또는 원격 미디어 소스에서 결합된 디스플레이로 미디어 컨텐츠를 스트리밍하는데 사용할 수 있다. 인터페이스 디바이스는 인터페이스 디바이스에 통신적으로 연결된 사용자 디바이스에서 실행되는 애플리케이션으로부터 캐스팅된 결합된 디스플레이 사용자 인터페이스에 디스플레이할 수 있다(예를 들어, 모바일 디바이스 사용자는 결합된 크롬캐스트 디바이스를 통해 모바일 디바이스에서 재생되는 유투브 비디오를 대형 디스플레이로 캐스팅하거나 노트북 사용자는 크롬캐스트 디바이스를 통해 크롬 브라우저 창을 대형 디스플레이로 캐스팅 할 수 있다. 이러한 인터페이스 디바이스의 기능은 더욱 확장되어 게임 서버로부터 클라우드 게임 컨텐츠를 스트리밍할 수 있다. 인터페이스 디바이스는 사용자 및 네트워크 자격 증명을 저장하는 클라우드 지원 게임 컨트롤러와 추가로 결합되어 효율적이고 휴대 가능한 게임 환경을 만들 수 있다.
예를 들어, 줄리아의 집에는 거실 TV와 침실 TV에 각각 결합된 2개의 인터페이스 디바이스가 있다. 줄리아는 클라우드 지원 게임 컨트롤러를 사용하여 거실 TV로 좋아하는 온라인 게임을 한다. 게임 세션 중에, 어머니의 친구들이 방문하여 거실 TV로 축구 경기를 보고 싶어한다. 줄리아는 그녀의 게임 세션을 일시 중지하고 게임 컨트롤러를 침실로 가져간다. 침실의 인터페이스 디바이스는 (예를 들어, 오디오 및/또는 다른 신호를 사용하여) 줄리아와 침실에 있는 게임 컨트롤러의 존재를 검출하고 침실 TV를 켜서 줄리아가 나갔던 게임의 일시 중지 상태를 보여주는 화면을 디스플레이한다. 줄리아는 화면 일시 중지를 해제하고 게임 세션을 재개한다. 줄리아는 게임 컨트롤러를 가지고 친구 브랜든을 방문한다. 브랜든의 집에서, 브랜든은 줄리아에게 그의 집 Wi-Fi에 대한 자격 증명(credentials)을 제공한다. 줄리아는 게임 컨트롤러를 브랜든의 네트워크에 연결하고 게임 컨트롤러를 브랜든의 인터페이스 디바이스와 페어링한다. 브랜든은 줄리아의 게임 세션에 참여하고 그들은 모두 각자의 게임 컨트롤러를 사용하여 게임을 한다. 다음에 줄리아가 브랜든을 방문하면 그녀의 게임 컨트롤러는 브랜든의 네트워크에 자동으로 연결된다.
도 1a는 일부 구현에 따른 예시적인 게임 환경(100)이다. 게임 환경(100)은 게임 컨트롤러(102), 하나 이상의 전자 디바이스(104), 및 로컬 네트워크(110)상의 디스플레이 디바이스(108)에 결합된 인터페이스 디바이스(106)를 포함한다. 일부 구현에서, 로컬 네트워크(110)는 유선(예를 들어, 이더넷) 및/또는 무선(예를 들어, Wi-Fi) 통신을 사용하여 하나 이상의 디바이스를 네트워킹한다. 예를 들어, 로컬 네트워크(110)는 하나 이상의 디바이스를 로컬 네트워크(110)로 네트워킹하는 라우터 디바이스를 포함한다. 로컬 네트워크(110)는 통신 네트워크(112)(예를 들어, 광역 네트워크, 인터넷)에 통신 가능하게 결합된다.
게임 컨트롤러(102)와 인터페이스 디바이스(106)는 통신 가능하게 결합된다. 게임 컨트롤러(102)와 인터페이스 디바이스(106)는 로컬 네트워크(110)를 통해 및/또는 직접(예를 들어, 블루투스 또는 다른 무선 통신을 통해) 서로 통신할 수 있다. 일부 구현에서, 게임 컨트롤러(102)와 인터페이스 디바이스(106)는 서로 로컬(예를 들어, 동일한 방, 동일한 집 등)에 있다. 인터페이스 디바이스(106)는 시각 및/또는 오디오 컨텐츠를 출력할 수 있는 하나 이상의 디스플레이 디바이스(108)에 결합된다(예를 들어, 디스플레이 디바이스(108)는 텔레비전, 디스플레이 모니터, 태블릿, 디스플레이 스크린이 있는 컴퓨터/랩탑, 사운드 시스템, 스피커 등을 포함한다). 인터페이스 디바이스(106)는 디스플레이 디바이스(들)(108)로 컨텐츠를 출력하도록 구성된다.
게임 컨트롤러(102)는 하나 이상의 애플리케이션을 포함하고 실행할 수 있다. 일부 구현에서, 게임 컨트롤러(102)는 인터페이스 디바이스(106)와 함께 동작하도록 구성된 하나 이상의 애플리케이션을 포함한다. 일부 구현에서, 애플리케이션은 인터페이스 디바이스 애플리케이션 및 게임 애플리케이션을 포함한다. 인터페이스 디바이스 애플리케이션은 게임 컨트롤러(102)를 인터페이스 디바이스(106)와 페어링하고 인터페이스 디바이스(106)를 구성하기 위해 사용된다.
일부 구현에서, 애플리케이션은 클라우드 게임에 사용되는 게임 애플리케이션을 포함한다. 게임 애플리케이션은 게임 컨트롤러(102)로부터 인터페이스 디바이스(106)로 메시지(예를 들어, 게임 설정 커맨드)를 전송하고 게임 세션 동안 게임 컨트롤러(102)로부터 게임 서버(예를 들어, 서버 시스템(114))로 게임 입력(예를 들어, 게임 플레이 명령)을 전송하기 위해 사용된다. 일부 구현에서, 설정 및 게임 플레이 명령은 게임 컨트롤러(102)의 버튼, 방향 패드(들) 및/또는 조이스틱(들)의 조합을 사용하여 인터페이스 디바이스(106)의 게임 애플리케이션 및/또는 서버 시스템(114)으로 전송된다. 일부 구현에서, 설정 및 게임 플레이 명령은 게임 컨트롤러(102)의 사용자( "게이머"라고도 함)에 의해 발행되고 인터페이스 디바이스(106) 및/또는 서버 시스템(114)으로 전송되는 음성 명령이다.
일부 구현에서, 사용자는 게임 컨트롤러(102)의 버튼(예를 들어, "시작" 또는 "홈" 버튼)을 눌러 게임을 시작할 수 있으며, 이는 인터페이스 디바이스(106)에 신호를 전송하여 디스플레이 디바이스(108)에 디스플레이되는 게임 포털 사용자 인터페이스(UI)를 시작한다. 그런 다음 사용자는 게임 포털 UI에서 게임을 선택하여(예를 들어, 다른 버튼을 누름으로써) 게임 시작(launch)을 개시할 수 있다. 게임 포털 UI를 시작하고 게임 세션을 개시하는 프로세스는 도 2에 자세히 설명되어 있다.
게임 환경(100)은 하나 이상의 전자 디바이스(104)(예를 들어, 104-1 및/또는 104-2)를 포함한다. 전자 디바이스(104)와 인터페이스 디바이스(106)는 통신 가능하게 결합된다. 전자 디바이스(104)와 인터페이스 디바이스(106)는 로컬 네트워크(110)를 통해 및/또는 직접(예를 들어, 블루투스 또는 다른 무선 통신을 통해) 서로 통신할 수 있다. 일부 구현에서, 전자 디바이스(104)와 인터페이스 디바이스(106)는 서로 로컬(예를 들어, 동일한 방, 동일한 집 등)에 있다.
전자 디바이스(104)는 하나 이상의 애플리케이션을 포함하고 실행할 수 있는 디바이스이다. 일부 구현에서, 전자 디바이스(104)는 스마트 폰, 태블릿 디바이스, 랩탑 또는 노트북 컴퓨터, 데스크톱 컴퓨터 또는 멀티미디어 디바이스이다.
일부 구현에서, 전자 디바이스(104)는 인터페이스 디바이스(106)와 함께 동작하도록 구성된 하나 이상의 애플리케이션을 포함한다. 일부 구현에서, 애플리케이션은 전자 디바이스(104)를 인터페이스 디바이스(106)와 페어링하고 인터페이스 디바이스(106)를 구성하기 위한 인터페이스 디바이스 애플리케이션(예를 들어, 인터페이스 디바이스 애플리케이션(344, 도 3))을 포함한다. 애플리케이션은 또한 연관된 컨텐츠를 인터페이스 디바이스(106)로 캐스팅할 수 있는 하나 이상의 애플리케이션을 포함한다. 일부 구현에서, 애플리케이션은 데이터/컨텐츠를 (예를 들어, 로컬 네트워크(110)을 통해) 인터페이스 디바이스(106)로 직접 전송함으로써 및/또는 인터페이스 디바이스(106)가 데이터/컨텐츠를 스트리밍하거나 수신할 수 있는 원격 위치(예를 들어, URL 또는 서버 시스템의 위치에 대한 다른 링크)로 인터페이스 디바이스(106)를 지시함으로써 데이터 및/또는 컨텐츠를 인터페이스 디바이스(106)로 캐스팅한다. 인터페이스 디바이스(106)는 애플리케이션 및/또는 원격 위치로부터 데이터/컨텐츠를 수신하여 수신된 데이터/컨텐츠에 대응하는 시각 및/또는 오디오 컨텐츠를 디스플레이 디바이스(108)로 출력한다.
일부 구현에서, 애플리케이션은 게임 세션 동안 메시지(예를 들어, 게임 설정 명령)를 인터페이스 디바이스(106)로 전송하고 전자 디바이스(104)로부터 게임 서버(예를 들어, 서버 시스템(114))로 게임 입력(예를 들어, 게임 플레이 명령)을 전송하기 위한 게임 애플리케이션(예를 들어, 게임 애플리케이션(346), 도 3)을 포함한다. 일부 구현에서, 설정 및 게임 플레이 명령은 전자 디바이스(104)와 통합된 입력 디바이스(예를 들어, 랩탑 컴퓨터(104-2)의 키보드 및/또는 마우스)를 사용하여 인터페이스 디바이스(106) 및/또는 서버 시스템(114)으로 전송된다.
일부 구현에서, 애플리케이션은 전자 디바이스(104)에서 하나 이상의 표준화된 게임 컨트롤러 구성, 템플릿 등을 구현하기 위한 컨트롤러 애플리케이션을 더 포함한다. 표준화된 컨트롤러 구성 각각은 가상 컨트롤러를 구현하기 위해 어떤 방식으로든 전자 디바이스(104)상의 입력 디바이스들 및/또는 센서들을 구성한다. 어떤 표준화된 컨트롤러 구성이 사용되는지는 게임 및/또는 전자 디바이스(104)의 유형에 따라 달라질 수 있다. 예를 들어, 만약 전자 디바이스(104)가 터치 스크린을 갖는 모바일 디바이스(예를 들어, 104-1)인 경우, 디스플레이되는 가상 컨트롤러 패드를 구현하고 터치 스크린을 활용하는 표준화된 컨트롤러 구성이 사용된다. 가상 컨트롤러 패드는 가상 버튼, 가상 방향 패드 및/또는 가상 조이스틱을 포함할 수 있다. 다른 예로서, 만약 전자 디바이스(104)가 물리적 키보드를 갖는 랩탑 또는 데스크탑 컴퓨터(예를 들어, 104-2)인 경우, 물리적 키보드의 키를 컨트롤러 기능에 매핑하는 표준화된 컨트롤러 구성이 사용될 수 있다. 추가 예로서, 센서(예를 들어, 가속도계)를 포함하는 전자 디바이스(104)상에서 전자 디바이스(104)의 모션을 입력으로 사용하는 게임에 대해, 전자 디바이스(104)를 선택적으로 터치 스크린에 디스플레이되는 하나 이상의 가상 버튼을 갖는 모션 컨트롤러로 바꾸는 표준화된 컨트롤러 구성이 사용된다.
인터페이스 디바이스(106)는 게임 컨트롤러(102) 및/또는 전자 디바이스 (104) 및 디스플레이 디바이스(108)에 통신 가능하게 연결된다. 인터페이스 디바이스(106)는 하나 이상의 애플리케이션을 포함하고 실행할 수 있다. 일부 구현에서, 인터페이스 디바이스(106)는 게임 컨트롤러(102) 및/또는 전자 디바이스(104)와 함께 동작하도록 구성된 하나 이상의 애플리케이션을 포함한다.
일부 구현에서, 하나 이상의 애플리케이션은 게임 컨트롤러(102) 및/또는 전자 디바이스(104)로부터 메시지(예를 들어, 설정 명령)를 수신 및 처리하고, 그 명령과 관련된 출력을 디스플레이 디바이스(108)에 디스플레이하기 위한 게임 애플리케이션을 포함한다. 일부 구현에서, 게임 애플리케이션은 게임 서버(예를 들어, 서버 시스템(114))에 의해 전송된 게임 미디어 스트림을 실시간으로 더 수신하고 디코딩하여 디스플레이 디바이스(108)로 출력한다. 일부 구현에서, 인터페이스 디바이스(106)는 도 4에서 설명되는 바와 같이, 설정 명령 및 게임 미디어 스트림을 처리하기 위한 하나 이상의 모듈을 포함한다.
일부 구현에서, 인터페이스 디바이스(106)는 캐스팅 디바이스(예를 들어, 구글사의 크롬캐스트), 하드웨어 동글, 스트리밍 디바이스, 또는 스트리밍 및/또는 캐스팅 기능을 포함하는 디바이스이다.
일부 구현에서, 인터페이스 디바이스(106)의 출력은 디스플레이 디바이스 (108)의 입력(예를 들어, HDMI 포트, USB 포트 등)에 연결된다.
게임 환경(100)에서, 게임 컨트롤러(102), 인터페이스 디바이스(106) 및 전자 디바이스(104)는 통신 네트워크(들)(112)를 통해 서버 시스템(114) 및 인증 시스템(125)에 통신 가능하게 결합된다. 일부 구현에서, 디바이스(예를 들어, 게임 컨트롤러(102), 전자 디바이스(104), 인터페이스 디바이스(106) 및 디스플레이 디바이스(108)) 중 적어도 일부는 통신 네트워크(112)에 통신 가능하게 결합되는 로컬 네트워크(110)에 통신 가능하게 결합된다. 일부 구현에서, 디바이스(예를 들어, 게임 컨트롤러(102), 전자 디바이스(104), 인터페이스 디바이스(106) 및 디스플레이 디바이스(108))는 (예를 들어, 로컬 네트워크(110) 또는 통신 네트워크(들)(112)를 통하지 않고) 서로 통신 가능하게 결합된다. 일부 구현에서, 인증 시스템(125)은 서버 시스템(114)의 일부이다.
일부 구현에서, 인터페이스 디바이스(106)의 기능은 디스플레이 디바이스(108)와 결합(즉, 포함되거나 포함됨)된다(도 1d 참조). 예를 들어, 일부 구현에 따르면, 디스플레이 디바이스(108)는 게임 애플리케이션을 포함하는 하나 이상의 애플리케이션을 호스팅하는 프로세싱 모듈을 갖는 텔레비전 디스플레이 또는 컴퓨터 모니터이다. 다른 예에서, 디스플레이(108)는 프로세서가 게임 애플리케이션을 포함하는 하나 이상의 애플리케이션을 호스팅하는 랩탑 또는 태블릿과 같은 통합 디스플레이를 갖는 컴퓨팅 디바이스와 관련된다. 일부 구현에서, 디스플레이 디바이스(108)는 온라인 게임을 가능하게 하는 기능을 포함하는 하나 이상의 기능을 호스팅한다. 일부 구현에서, 인터페이스 디바이스(106)의 기능은 게임 컨트롤러(102)와 디스플레이 디바이스(108) 사이에서 분할(예를 들어, 스플릿)된다.
일부 구현에서, 서버 시스템(114)은 대화형 클라우드 게임 플랫폼이며 게임 컨텐츠 및 처리 능력을 제공한다. 일부 구현에서, 서버 시스템(114)은 임의의 주어진 시점에서 수십만 명의 사용자("게이머")에게 서비스를 제공한다.
서버 시스템(114)은 하나 이상의 게임 애플리케이션을 재생하는 클라이언트 디바이스를 지원하기 위해 온라인 대화형 게임 플랫폼을 호스팅한다(본 명세서에서 게임 컨트롤러(102), 전자 디바이스(104) 및 인터페이스 디바이스(106)는 통칭하여 서버 시스템의 "클라이언트 디바이스"로 지칭함)). 구체적으로, 서버 시스템(114)은 클라이언트 디바이스와 관련된 복수의 사용자 계정을 포함하고, 하나 이상의 게임 애플리케이션 각각과 관련하여 클라이언트 디바이스의 사용자를 인증한다. 서버 시스템(114)은 장면과 관련된 대응하는 게임 세션에 참여하는 클라이언트 디바이스들(102)에서 온라인 대화형 게임의 장면을 렌더링하고 새로 고침(refresh)한다. 일부 구현에서, 서버 시스템(114)은 클라이언트 디바이스들의 성능 및/또는 서버 시스템(114)과 각 클라이언트 디바이스 사이의 통신 연결의 품질을 평가할 수 있고, 클라이언트 디바이스와 관련된 게임 세션에 대한 동기식 데이터 스트림을 적응적으로 생성할 수 있다. 이러한 수단에 의해, 서버 시스템(114)은 둘 이상의 클라이언트 디바이스에서 동시에 그리고 실질적으로 낮은 레이턴시로 온라인 대화형 게임의 동기식 게임 세션을 용이하게 하도록 구성된다.
일부 구현에서, 서버 시스템(114)은 통신 네트워크(들)(112)를 통해 게임 컨트롤러(102), 인터페이스 디바이스(106) 및 전자 디바이스(104)와 직접 인터페이싱하는 프런트 엔드(116)를 포함한다. 프런트 엔드(116)는 요청(예를 들어, 게임 세션을 시작하라는 요청)을 수신하고 요청에 응답하여 정보를 전송한다(예를 들어, 게임 컨텐츠를 전송함). 일부 구현에서, 프런트 엔드(116)는 데이터(예를 들어, 데이터베이스 업데이트)를 클라이언트 디바이스들로 전송하도록 구성된다.
일부 구현에서, 프런트 엔드(116)는 요청된 데이터를 획득하고 및/또는 요청된 서비스를 수행하는 백엔드 리소스(124)로 상기 수신된 요청의 서브 세트를 포워딩한다. 일부 구현에서, 백엔드 리소스(124)는 요청에 따라 데이터(예를 들어, 게임 상태 데이터)를 저장 및/또는 액세스할 수 있다.
서버 시스템(114)은 미디어 스트리밍 서버(120)와 직접 통신하는 게임 서버(118)를 포함한다. 게임 서버(118)는 원활한 게임 플레이를 허용하는 게임 컨텐츠 및 다른 기능(예를 들어, 처리 능력)을 제공한다.
일부 구현에서, 게임 서버(118)는 클라우드 게임 하드웨어 리소스(예를 들어, GPU 및 인코더 리소스)를 동적으로 할당하고, 최적의 클라우드 게임 경험을 제공하기 위해 개별 최종 사용자에게 이용 가능한 네트워크 대역폭을 모니터링하고 활용한다. 일부 구현에서, 게임 서버(118)는 고화질 비디오/미디어 스트림을 통한고성능 실시간 게임 세션을 지원하는 계층(tier)을 포함하여 다수의 성능 계층을 제공한다.
일부 구현에서, 게임 서버(118)는 온라인 게임 세션을 플레이하는 사용자로부터의 사용자 명령에 응답하여 다수의 프레임을 동적으로 생성한다. 사용자 명령의 유형(예를 들어, 점프, 총 쏘기)에 따라, 게임 서버(118)는 예상 응답 레이턴시, 실제 통신 및 처리 레이턴시 그리고 실제 전송 레이턴시를 결정한다. 프레임 수는 실제 전송 지연 시간과 기정의된 프레임 속도에 기초하여 계산된다. 결과적으로, 명령은 그 명령의 효과를 반영하는 프레임 세트를 생성함으로써 온라인 게임 세션에서 실행된다. 기정의된 프레임 속도로 전송될 때 프레임 세트는 실제 전송 레이턴시에 해당하는 전송 시간을 차지하고, 예상 응답 레이턴시에 해당하는 시간 내에 클라이언트 디바이스(예를 들어, 인터페이스 디바이스(106))에서 수신될 수 있다.
일부 구현에 따르면, 게임 서버(118)는 게임 플레이 입력에 응답하여 게임 플레이 출력을 렌더링한다. 일부 구현에서, 게임 플레이 중에 사용자에 의해 인지되는 레이턴시를 최소화하기 위해, 게임 컨트롤러(102)와 전자 디바이스(104)는 각각 게임 서버(118)와 직접 통신한다. 예를 들어, 게임 서버(118)는 게임 컨트롤러(102)로부터 직접 게임 플레이 명령을 수신하고 수신된 명령에 따라 게임의 컨텐츠의 각각의 프레임을 렌더링한다. 게임 서버(118)는 렌더링된 프레임에 관한 정보를 미디어 스트리밍 서버(120)로 전송하고, 그런 다음 디스플레이 디바이스 상에 디스플레이하기 위해, 각각의 렌더링된 프레임을 포함하는 게임 미디어 스트림을 실시간으로 인터페이스 디바이스(106)로 전송한다.
일부 구현에서, 게임 서버(118)는 다른 가입 모델을 지원하고 및/또는 하나 이상의 실제 게임 스트림(예를 들어, 모바일 앱 또는 브라우저 기반 프로그램을 통해 온라인/클라우드 게임 세션에 참여하는 사용자의 클라이언트 디바이스로 출력되는 비디오 스트림)에 대한 레이턴시가 거의 또는 전혀 없는 하나 이상의 동시 실시간 게임 플레이 및/또는 리뷰 미디어 스트림을 제공하도록 구성된다. 일부 구현에 따르면, 게임 서버(118)는 게임 플레이 및 리뷰 비디오를 위한 동시 미디어 스트림을 생성하도록 구성되고, 미디어 스트리밍 서버(120)에는 동시 게임 플레이를 위한 리뷰 비디오가 제공된다. 이러한 리뷰 비디오는 유투브와 같은 미디어 스트리밍 사이트를 통해 한 명 이상의 사용자에게 지연 시간이 거의 또는 전혀 없이 제공된다. 일부 구현에서, 미디어 스트리밍 서버(120)는 하나 이상의 미디어 스트리밍 사이트를 추가로 관리한다.
일부 구현에서, 서버 시스템(114)은 인터페이스 디바이스(106)와 정기적으로 통신하여 플레이어가 여전히 온라인 상태인지 체크한다. 일부 구현에서, 게임 서버가 (예를 들어, 인터페이스 디바이스(106) 및/또는 게임 컨트롤러(102)로부터) 응답을 수신하지 않을 때, 서버 시스템(114)은 플레이어와 관련된 게임 캐릭터를 대기 모드로 설정하거나 게임에서 캐릭터를 "킥(kicks)"시키라는 명령을 발행한다.
일부 구현에서, 서버 시스템(114)은 사용자 및 세션 데이터를 저장하기 위한 데이터베이스(122)를 포함한다. 데이터베이스(122)는 서버 시스템(114)에서 호스팅되는 하나 이상의 게임 애플리케이션(예를 들어, 게임 애플리케이션(348, 도 3)) 각각의 사용자 계정과 관련된 적어도 사용자 정보를 저장한다. 사용자 정보(126)의 예는 사용자 계정 정보(예를 들어, 식별 정보(identification) 및 패스워드), 멤버십 유형, 선호도 및 활동 이력을 포함하지만 이에 한정되지 않는다. 일부 구현에서, 서버 시스템(114)은 게임 컨트롤러(102)를 사용하여 플레이되는 온라인 게임 세션과 관련된 세션 데이터를 저장한다. 각 온라인 게임 세션에 대한 세션 데이터의 예로는 프레임 속도, 렌더링 사양, 일반 레이턴시 요구 사항, GPU 할당 정보, 인코더 할당 정보, 관련 세션의 식별 정보, 최신 상태 정보 등이 있다. 세션 데이터는 사용자 정보보다 더 자주 액세스된다. 일부 구현에서, 사용자 정보 및 세션 데이터를 저장하는 메모리는 각각 플래시 메모리 및 랜덤 액세스 메모리(RAM)로 구성된다.
일부 구현에서, 서버 시스템(114)은 게임 애플리케이션과 관련된 라이브 온라인 커뮤니티를 지원한다. 사용자들(예를 들어, 서비스 가입자)은 해당 게임 API 플랫폼에서 하루 종일 라이브 이벤트, 토너먼트 또는 활동에 참여한다. 라이브 이벤트, 토너먼트 또는 활동의 예로는 다른 사용자들이 플레이하는 라이브 게임 세션 관전, 성과를 공개 도메인(예를 들어, 유투브)에 게시, 라이브 팁 및 코칭 비디오 받기 등이 있다. 예를 들어, 사용자 액션에 응답하여, 게임 서버(118)는 둘 이상의 라이브 스트림을 제공한다. 게임 플레이어를 위한 제1 클라이언트 디바이스의 제1 게임 세션에서 제1 게임 스트림을 유지하면서, 서버 시스템(114)은 또한 제2 라이브 리뷰 스트림(예를 들어, 유투브 스트림)을 하나 이상의 다른 클라이언트 디바이스(예를 들어, 가입자)로 브로드캐스트한다. 제2 라이브 리뷰 스트림을 통해 사용자는 게임 경험을 청중과 공유할 수 있다. 선택적으로, 제2 라이브 스트림은 플레이어의 제1 클라이언트 디바이스(예를 들어, 디스플레이 디바이스(108))의 스크린을 재생(reproduction)한 것이다. 서버 시스템(114)은 플레이어가 제1 게임 세션을 설명하는 오디오 스트림 또는 제1 게임 세션을 플레이(재생)하고 설명하는 플레이어의 비디오 스트림을 획득할 수 있다. 오디오 스트림은 청중을 위해 선택적으로 플레이되는 반면 제2 라이브 리뷰 스트림은 청중을 위해 플레이된다. 비디오 스트림은 제2 라이브 리뷰 스트림의 임베디드 윈도우에서 선택적으로 플레이된다.
게임 환경(100)은 인증 서비스(126) 및 인증 저장소(128)를 포함하는 인증 시스템(125)을 더 포함한다. 인증 서비스(126)는 프록시 역할을 하고 제1 및 제3 자 인증 관련 동작을 처리하는 독립형 서비스이다. 인증 저장소(128)는 각각 및 모든 게임 컨트롤러(102)의 디바이스 식별 정보 및 각각 및 모든 게임 컨트롤러(102)와 연관된 링크된 사용자들에 관한 정보를 저장한다.
일부 구현에 따르면, 게임 컨트롤러(102)는 원격 서버(예를 들어, 서버 시스템(114) 및/또는 인증 시스템(125))로 인증된 요청을 하기 위해 게임 컨트롤러에 의해 사용되는 (예를 들어, 고유한) 디바이스 식별 정보 및 클라이언트 인증서에 의해 식별된다. 또한, 일부 구현에서, 게임 컨트롤러(102)는 게임 컨트롤러(102)의 모든 사용자에 대한 자격 증명을 저장한다. 예를 들어, 게임 컨트롤러(102)는 게임을 위해 가구의 다양한 구성원에 의해 사용될 수 있다. 따라서, 게임 컨트롤러(102)는 그것을 사용하는 각 가구 구성원에 대한 자격 증명(예를 들어, 사용자 이름, 로그인 자격 증명, 패스워드, 인증 챌린지 및 응답)을 저장한다. 따라서, 게임 컨트롤러(102)는 그의 디바이스 식별 정보, 클라이언트 인증서, 사용자들 및 그들의 자격 증명에 링크(연관)될 수 있다. 일부 구현에서, 게임 세션을 시작하라는 요청에 응답하여, 게임 컨트롤러는 인증 저장소(128)에 저장된 정보에 대한 인증 서비스(126)에 의한 검증을 위해 디바이스 식별 정보, 클라이언트 인증서 및/또는 사용자 자격 증명에 관한 정보를 전송한다.
일부 구현에서, 게임 세션을 링크하는 프로세스의 일부로서, 서버 시스템 (114)은 서버(114) 시스템과 각각의 클라이언트 디바이스 사이의 통신 연결의 품질에 액세스한다.
*일부 구현에서, 서버 시스템(114)은 클라이언트 디바이스와 서버 시스템 (114) 사이의 네트워크 레이턴시를 측정한다. 측정된 레이턴시가 임계값 이상이고 낮은 레이턴시 연결이 이용 가능한 경우, 서버(114)는 플레이어 클라이언트(104)가 낮은 레이턴시 연결로 변경하도록 제안하거나, 플레이어 클라이언트(104)의 플레이어 사용자를 초대하여 플레이어 클라이언트(104)를 낮은 레이턴시 연결로 변경할 수 있다. 예를 들어, 클라이언트 디바이스가 셀룰러 무선 연결(미도시)상의 전자 디바이스(104)(예를 들어, 이동 전화)인 경우, 로컬 네트워크(110)가 이용 가능하며, 서버 시스템(114)은 전자 디바이스(104)가 로컬 네트워크(110)를 통해 연결되어야 한다고 제안할 수 있다. 일부 구현에서 레이턴시 임계값 요구 사항은 게임마다 다르다. 예를 들어, 일부 게임(예를 들어, 액션 게임)은 낮은 레이턴시 연결에서 가장 잘 경험되고, 일부 다른 게임(예를 들어, 온라인 보드 게임 또는 카드 게임)은 레이턴시에 대해 요구하지 않으며, 서버 시스템(114)은 이러한 상이한 요구 사항을 고려하여 연결 추천을 할 수 있다.
일부 구현에서, 게임 세션을 시작하는 전자 디바이스(104)의 일부로서, 서버 시스템(114)은 전자 디바이스(104)와 통신하여 (예를 들어, 컨트롤러 애플리케이션을 사용하여) 전자 디바이스(104)상에 가상 컨트롤러를 설정한다. 일부 구현에서, 여기에는 전자 디바이스(104)가 가상 컨트롤러를 구현하는데 필요한 애플리케이션이 있는지 여부 및/또는 전자 디바이스(104)와 서버 사이의 통신 연결 여부를 포함하여 전자 디바이스(104)가 컨트롤러에 대해 필요한 리소스를 가지고 있는지 여부를 평가하는 서버 시스템(114)이 포함되고, 서버 시스템(114)은 (예를 들어, 위에서 설명 된 기능 및 연결 품질 평가의 일부로서) 게임 세션을 위한 적절한 레이턴시를 갖는다. 전자 디바이스(104)에서 사용 가능한 리소스, 연결 품질 및 게임에 대한 요구 사항에 따라, 컨트롤러는 전자 디바이스(104)에서 다르게 구현될 수 있다.
도 1b는 일부 구현에 따른 다른 예시적인 게임 환경(130)을 도시한다. 많은 양태에서, 게임 환경(130)은 게임 환경(100)과 유사하다. 게임 환경(130)과 게임 환경(100)간의 주요 차이점은 게임 환경(130)이 게임 컨트롤러(102) 및 디스플레이 디바이스(108-1 및 108)에 각각 결합된 2개의 인터페이스 디바이스(106-1 및 106-2)를 포함한다는 것이다. 게임 컨트롤러(102)는 각각의 인터페이스 디바이스(106-1 및 106-2)에 통신 가능하게 결합(예를 들어, 페어링)된다.
일부 구현에서, 게임 컨트롤러(102), 인터페이스 디바이스(106-1 및 106-2) 및 디스플레이 디바이스(108-1 및 108-2)는 로컬 네트워크(110)를 포함하는 로컬 환경(예를 들어, 가정 환경, 기숙사, 사무실 환경 등)에 상주한다. 일부 구현에서, 인터페이스 디바이스(106-1)와 인터페이스 디바이스(106-2)는 로컬 환경의 다른 영역(예를 들어, 다른 방)에 위치한다.
본 출원의 일부 구현에 따르면, 서버 시스템(114)은 예를 들어, 제1 인터페이스 디바이스(106-1)상에서 실행되는 제1 게임 세션의 제1 게임 스트림을 일시 중지/중단하고, 제2 인터페이스 디바이스(106-2)에서 제1 게임 스트림을 재시작하여 제1 게임 세션을 계속하는 것과 같이 게임 컨트롤러(102)의 사용자가 주위로 이동할 수 있도록 하는 클라우드 기능을 가능하게 한다. 서버 시스템(114)은 또한 대규모로 다수의 플레이어를 지원하고 더욱 풍부하고 지속적인 클라우드 기반 세계를 제공한다. 서버 시스템(114)은 클라우드 기반 시스템을 사용하여, 동일한 사용자의 다른 게임 세션 또는 다른 사용자의 다른 게임 세션과 관련된 세션 데이터를 데이터베이스(122)에 저장한다. 따라서, 이 예를 가정 환경의 맥락에서 적용함으로써 게임 컨트롤러(102)의 사용자는 (예를 들어, 침실에 있는) 제1 인터페이스 디바이스(106-1)를 사용하여 게임 플레이를 시작하고, 그 게임 세션을 일시 중지하고, 게임 컨트롤러(102)를 제2 인터페이스 디바이스(106-2)를 포함하는 위치(예를 들어, 거실)로 가져가서, 거실에서 게임 플레이를 재개할 수 있다.
일부 구현에서, 게임 컨트롤러(102)는 페어링되었던 인터페이스 디바이스 (106-1 및 106-2) 각각의 식별자를 저장한다. 일부 구현에서, 게임 컨트롤러(102)는 인터페이스 디바이스들(106) 중 하나를 디폴트 페어링 디바이스로서 설정한다.
일부 구현에서, 게임 환경(130)은 3개 이상의 인터페이스 디바이스(106)를 포함하도록 확장될 수 있으며, 이들 각각은 게임 컨트롤러(102)와 통신 가능하게 결합된다.
일부 구현에서, 게임 환경(130)은 2개 이상의 게임 컨트롤러(102)(예를 들어, 102-1 및 102-2)를 포함하고, 이들 각각은 각각의 인터페이스 디바이스(106)와 통신 가능하게 결합된다.
도 1c는 일부 구현에 따른 또 다른 예시적인 게임 환경(160)을 도시한다. 많은 양태에서, 게임 환경(160)은 게임 환경(100 및 130)과 유사하다. 게임 환경(160)과 게임 환경(100 및 130) 간의 주요 차이점은 게임 환경(160)이 2개의 게임 컨트롤러와 2개의 인터페이스 디바이스를 포함한다는 것이며, 여기에는 제1 로컬상의 제1 게임 컨트롤러(102-1)와 제1 인터페이스 디바이스(106-3) 및 제2 로컬 네트워크(140)상의 제2 게임 컨트롤러(102-2) 및 제2 인터페이스 디바이스(106-4)가 포함된다. 각각의 인터페이스 디바이스(106-3 및 106-4)는 시각 및/또는 오디오 컨텐츠를 출력하는 각각의 디스플레이 디바이스(108-3 및 108-4)에 결합된다. 게임 환경(160)은 게임 컨트롤러(102)와 인터페이스 디바이스(106)의 3개 이상의 세트를 포함하도록 확장될 수 있으며, 각각의 세트는 각각의 로컬 네트워크 상에 있다는 것이 당업자에게 명백할 것이다.
게임 환경(160)에서, 게임 컨트롤러(102-1)(및 인터페이스 디바이스(106-3))는 게임 컨트롤러(102-2)로부터 멀리 떨어져 있다. 즉, 게임 컨트롤러(102-1)의 사용자는 게임 컨트롤러(102-1)의 사용자와 동일한 영역(예를 들어, 동일한 방 또는 심지어 구조)에 위치하지 않는다.
일부 구현에서, 게임 컨트롤러(102)의 게임 세션은 선택적으로 각각의 사용자에 대응하는 별개의 관점으로 동일한 게임 장면을 플레이하도록 동기화된다.
일부 구현에 따르면, 게임 컨트롤러(102-1)(인터페이스 디바이스(106-1))와 게임 컨트롤러(102-2 1)(인터페이스 디바이스(106-2))가 서로 떨어져 있더라도, 게임은 각 게임 컨트롤러(102)(인터페이스 디바이스(106))에서 실행하기 위한 게임 애플리케이션을 시작(launching)함으로써 시작된다. 일부 구현에서, 각각의 게임 컨트롤러(102)(인터페이스 디바이스(106))에 대해, 게임 애플리케이션은 독립적으로 서버 시스템(114)과 온라인 게임 세션을 설정한다. 둘 이상의 게임 컨트롤러 (102)(인터페이스 디바이스(106))의 온라인 게임 세션은 (예를 들어, 게임 애플리케이션의 동일한 게임 도메인에서 재생되기 때문에) 서로 관련되어 있으므로 게임 애플리케이션에서 게임 장면을 공유한다. 관련된 온라인 게임 세션들은 서로 동기화되고, 각각의 온라인 게임 세션은 개별 게임 컨트롤러(102)(인터페이스 디바이스(106))에 대응하는 고유한 플레이어 관점으로 동일한 게임 장면을 선택적으로 보여준다. 따라서 각 게임 컨트롤러(102)(인터페이스 디바이스(106))의 사용자는 개별 게임 컨트롤러(102)(인터페이스 디바이스(106))에서 게임을 할 수 있고 다른 게임 컨트롤러(들)(102)(인터페이스 디바이스(들)(106))의 온라인 게임 세션으로부터의 출력에 영향을 미칠 수 있다.
대안적으로, 일부 다른 구현에서, 제1 게임 컨트롤러(102-1)의 게임 애플리케이션이 온라인 게임 세션을 설정한 후, 하나 이상의 제2 게임 컨트롤러(102-2)는 초대 메시지에 의해 온라인 게임 세션에 참가하도록 초대되고, 예를 들어, 온라인 게임 세션에 참가하기 위한 링크(예를 들어, URL 주소)를 갖는 메시지가 제2 인터페이스 디바이스들(106-2) 각각으로 전송된다. 일부 구현에 따르면, 제2 게임 컨트롤러(102-2)가 게임 세션에 참가할 때, 서버 시스템(114)은 각각의 개별 제2 게임 컨트롤러(102-2)에 대해 별도의 게임 세션을 생성한다. 개별 제2 클라이언트 제2 게임 컨트롤러(102-2)의 각각의 별도의 게임 세션은 제1 클라이언트 제2 게임 컨트롤러(102-1)의 게임 세션과 동기화되고 동일한 장면을 공유하지만, 개별 제2 클라이언트 제2 게임 컨트롤러(102-2)에 대응하는 고유한 플레이어 관점을 가질 수 있다. 각각의 제2 게임 컨트롤러(102-2)가 게임 세션에 참여한 후(더 정확하게는 관련 게임 세션을 시작함), 사용자는 개별 제2 게임 컨트롤러(102-2)에서 게임을 할 수 있고 다른 게임 컨트롤러(102)에서 실행되는 게임 세션의 출력에 영향을 미칠 수 있다.
도 1d는 일부 구현에 따른 또 다른 예시적인 게임 환경(180)을 도시하는데, 여기서 하나 이상의 게임 컨트롤러(102-1)는 인터페이스 디바이스(106-3)를 통해 디스플레이 디바이스(108-3)에 결합되고, 하나 이상의 게임 컨트롤러(102-3)는 인터페이스 디바이스(106) 없이 직접 또는 근거리 통신망(170)을 통해 디스플레이 디바이스(108-5)에 결합된다. 일부 구현에서, 인터페이스 디바이스의 기능의 적어도 서브 세트는 디스플레이 디바이스(108-5)내에 포함(즉, 디스플레이 디바이스(108-5)에 포함)된다. 예를 들어, 도 1d에 도시된 바와 같이, 디스플레이 디바이스(108-5)는 게임 컨트롤러(102-3)와 직접 상호 작용하고 통신 네트워크(들)(112)를 통해 서버 시스템(114) 및 인증 시스템(125)과 직접 상호 작용하도록 구성된다. 일부 구현에서, 디스플레이 디바이스(108)는 하나 이상의 컨트롤러(102-3)의 사용자가 온라인 게임 세션에 참여할 수 있도록 하는 인터페이스 디바이스(106)의 기능의 적어도 서브 세트 또는 수퍼 세트를 제공하는 게임 애플리케이션 및 하나 이상의 애플리케이션을 포함하여, 하나 이상의 애플리케이션을 호스팅하는 프로세싱 모듈을 갖는 TV 디스플레이 또는 컴퓨터 모니터이다. 다른 예에서, 디스플레이(108-5)는 랩탑 또는 태블릿과 같은 통합 디스플레이를 갖는 컴퓨팅 디바이스와 연관되며, 그의 프로세서는 인터페이스 디바이스(106)의 기능의 적어도 서브 세트 또는 수퍼 세트를 제공하는 게임 애플리케이션 및 하나 이상의 애플리케이션을 포함하여, 하나 이상의 애플리케이션을 호스팅한다.
일부 구현에서, 디스플레이 디바이스(108-5)와 게임 컨트롤러(102-3) 사이의 통신은 로컬 네트워크(170)를 통해 이루어진다. 일부 구현에서, 디스플레이 디바이스(108-5) 및 게임 컨트롤러(102-3)는 (예를 들어, 로컬 네트워크 또는 통신 네트워크(들)(112)를 통하지 않고) 서로 직접 통신 가능하게 결합된다. 예를 들어, 게임 컨트롤러(102-3)는 유선 연결 또는 무선 연결(예를 들어, 블루투스, 셀룰러, 다이렉트 WiFi 또는 IEEE 802.15.4 연결)을 통해 디스플레이 디바이스(108-5)와 직접 통신할 수 있다. 일부 구현에서, 로컬 네트워크(140)와 로컬 네트워크(170)는 동일한 로컬 네트워크이다. 이것은 둘 이상의 플레이어가 동일한 위치(예를 들어, 집 또는 공공 장소)에서 게임 서버(114)에 연결하여, 인터페이스 디바이스(106-3)의 유무에 관계없이 개별 디스플레이 디바이스(108-3, 108-5)에 개별 출력이 디스플레이되는 동일하거나 다른 게임 타이틀을 플레이할 수 있게 한다.
프로세스 흐름
다양한 게임 환경이 설명되었으므로 이제 다양한 프로세스 흐름에 대해 논의한다.
본 출원의 일부 구현에 따르면, 게임 컨트롤러는 인터페이스 디바이스(106)에 통신 가능하게 연결(예를 들어, 페어링)되고 전원이 켜진다. 사용자는 게임 컨트롤러(102)상의 버튼(예를 들어, "시작" 또는 "홈" 버튼)을 눌러 게임을 개시할 수 있으며, 이는 디스플레이 디바이스 (108)상에 디스플레이되는 게임 포털 사용자 인터페이스(UI)를 시작(launch)하도록 인터페이스 디바이스(106)로 신호를 전송한다. 그런 다음 사용자는 게임 포털 UI에서 게임을 선택하고 (예를 들어, 다른 버튼을 누름으로써) 게임 시작을 개시할 수 있다.
도 2a는 게임 포털 사용자 인터페이스(UI)를 시작하기 위한 예시적인 동작 시퀀스(200)를 도시한다. 일부 구현에서, 동작(200)에서 설명된 엘리먼트 및 단계는 도 1에 도시된 엘리먼트 및 흐름과 관련될 수 있다. 다른 구현도 가능하다.
일부 구현에서, 게임 포털 UI는 인터페이스 디바이스(106)(예를 들어, 게임 포털 UI 모듈(437), 도 4))에서 호스팅되고 인터페이스 디바이스(106)에서 게임 애플리케이션을 시작할 때 시작된다. 게임 포털 UI는 사용자 프로필, 구매한 게임 및 기타 권한, 게임 카탈로그, 친구, 메시징 등에 액세스할 수 있게 한다.
도 2a에 도시된 바와 같이, 게임 사용자 인터페이스(UI) 포털의 시작은 게임 컨트롤러(102), 인터페이스 디바이스(106), 서버 시스템(114) 및 인증 시스템(125) 사이의 통신을 포함한다. 시퀀스(200)(또는 메시지 흐름)는 게임 환경(예를 들어, 게임 환경(들) 100, 130 및/또는 160)에서 실행될 수 있는데, 여기서 환경은 비동기적이고 비-차단적이다.
사용자는 게임 컨트롤러(102)상의 버튼(예를 들어, "시작" 버튼 또는 "홈" 버튼)을 눌러 인터페이스 디바이스(106)(미도시)에서 게임 애플리케이션을 시작한다. 게임 컨트롤러(102)는 그의 내부 저장소로부터 검색하는 디폴트 인터페이스 디바이스 식별자를 사용하여 인터페이스 디바이스(106)상의 게임 애플리케이션으로 "캐스트 세션 시작" 요청을 전송한다(202). 성공하는 경우, 캐스트(게임 페어링) 세션이 게임 컨트롤러(102)와 인터페이스 디바이스(106) 사이에 수립되어, 게임 애플리케이션이 인터페이스 디바이스(106)상에서 시작된다.
일부 구현에서, 인터페이스 디바이스(106)는 연결된 디스플레이 디바이스(108)의 상태(예를 들어, 온 또는 오프)를 결정하고, 오프인 경우 디스플레이 디바이스(108)상의 스위치 온을 시도한다. 일부 구현에서, 인터페이스 디바이스(106)가 디스플레이 디바이스(108)상의 스위치 온을 시도하는 것은 CEC(Consumer Electronics Control)가 디스플레이 디바이스(108)에서 인에이블된다는 결정에 따른 것이다.
게임 컨트롤러(102)는 인증 토큰을 인터페이스 디바이스(106)로 전송한다(204). 일부 구현에서, 인증 토큰은 자체 포함되어 있으며 안전한 방식으로 당사자들간에 정보를 전송한다. 일부 구현에서, 인터페이스 디바이스(106)와 페어링될 때, 게임 컨트롤러(102)는 토큰(예를 들어, JSON 웹 토큰(JWT))을 검색한다. 게임 컨트롤러(102)는 그것을 파싱하여 서명된 JWT, 클라이언트 인증서 및 중간 인증서 체인을 추출하고, 서명된 JWT, 그것의 만료 기간, 클라이언트 인증서 및 중간 인증서 체인을 인터페이스 디바이스(106)상의 게임 애플리케이션으로 전송한다.
사용자는 게임 컨트롤러(102)상의 제2 버튼(동일한 버튼 또는 다른 버튼 일 수 있음)을 눌러 게임 포털 UI를 시작하고(206), 이것은 시작 명령을 인터페이스 디바이스(106)로 전송한다.
인터페이스 디바이스(106)는 시작 명령을 수신하고 인증 시스템(125)으로부터 사용자 검증을 요청한다(208).
일부 구현에 따르면, 시작 명령은 인터페이스 디바이스(106)의 게임 애플리케이션(예를 들어, 게임 애플리케이션(436), 도 4))에 의해 수신되고, 인터페이스 제어 모듈(예를 들어, 인터페이스 제어 모듈(438), 도 4))으로 중계된다. 인터페이스 제어 모듈은 게임(즉, 서버) 리소스에 대한 액세스를 요청하기 위해, 수신된 인증 토큰과 함께 인증 서비스(126)로 요청을 전송한다(단계 204). 인증 시스템(125)은 (예를 들어, 식별 정보를 인증 저장소(128)에 저장된 정보와 매칭시킴으로써) 게임 컨트롤러(102) 및 그 링크된 사용자의 식별 정보를 검증한다.
검증이 성공하면, 인증 시스템(125)은 링크된 사용자에 대한 액세스 토큰(예를 들어, OAUTH 토큰)을 검색한다(210). 인터페이스 디바이스(106)는 액세스 토큰 및 그의 만료를 제공하는 게임 포털 UI를 시작한다(212).
인터페이스 디바이스(106)는 서버 시스템(114)의 프런트 엔드(116)로부터, 포털 랜딩 페이지에 대한 사용자 특정 컨텐츠(예를 들어, 사용자의 아바타, 구매한 게임, 친구, 메시징 등)를 요청하고(214), 백엔드 리소스(124)로부터, 디스플레이 디바이스(108)에 디스플레이하기 위한 최적화된 이미지를 요청한다(214). 일부 구현에서, 요청 단계(단계 216)는 게임 포털 모듈(예를 들어, 게임 포털 모듈(437), 도 4)에 의해 수행된다.
인터페이스 디바이스(106)는 요청된 컨텐츠를 수신하고(216) 요청된 컨텐츠를 디스플레이한다(218).
일부 구현에서, 게임 포털 UI가 처음으로 시작되거나 재시작될 때, 인터페이스 디바이스(106)는 게임 컨트롤러(102)로부터의 모든 입력이 게임 컨트롤러(102) 와 인터페이스 디바이스(106)가 연결된 로컬 유선 또는 와이파이 네트워크를 통하여 인터페이스 디바이스(106)의 게임 애플리케이션을 통해 게임 포털 UI로 전송되는 디폴트 제1 모드(예를 들어, "메뉴" 모드)에서 작동한다.
일부 구현에서, 헤드셋이 게임 컨트롤러(102)에 연결(예를 들어, 플러그인)되면, 게임 컨트롤러는 "헤드셋 연결됨" 메시지를 인터페이스 디바이스(106)로 전송한다. 인터페이스 디바이스(106)는 게임 컨트롤러(102) 디바이스 식별 정보를 헤드셋 연결에 추적한다. 게임 포털 UI는 게임 컨트롤러(102)에서 디코딩되고 플레이되는 임의의 다른 사용자 이벤트(또는 다른 피드백)에 대해 게임 컨트롤러(102)로 오디오 메시지를 다시 전송한다.
도 2b는 일부 구현에 따른 게임 세션을 시작하기 위한 예시적인 동작 시퀀스(220)를 도시한다. 일부 구현에서, 동작(220)에서 설명된 엘리먼트 및 단계는 도 1 및 도 2a에 도시된 엘리먼트 및 흐름과 관련될 수 있다. 다른 구현도 가능하다.
도 2b에 도시된 바와 같이, 게임 세션을 시작하는 것은 게임 컨트롤러(102), 인터페이스 디바이스(106) 및 서버 시스템(114) 사이의 통신을 포함한다. 시퀀스 (220)(또는 메시지 흐름)는 환경이 비동기적이고 비-차단적인 게임 환경(예를 들어, 게임 환경(들) 100, 130 및/또는 160)에서 실행될 수 있다. 시퀀스(220)는 게임 포털 UI가 (예를 들어, 도 2a의 프로세스 사용하여) 시작되었다고 가정한다.
사용자는 게임 컨트롤러(102)를 사용하여 게임 포털 UI에서 게임을 선택하고(222) 게임 시작 요청을 개시한다.
인터페이스 디바이스(106)는 게임 시작 요청에 응답하여, 선택된 게임의 컨텐츠 식별 정보를 찾고(224) 게임 세션을 시작하라는 요청을 발행한다(226).
일부 구현에서, 게임 시작 요청(예를 들어, 명령)은 인터페이스 디바이스(106)의 게임 애플리케이션(예를 들어, 게임 애플리케이션(436), 도 4))에 의해 수신되어, 인터페이스 제어 모듈(예를 들어, 인터페이스 제어 모듈(438), 도 4)로 중계되고, 인터페이스 제어 모듈은 이를 게임 포털 UI 모듈(예를 들어, 게임 UI 모듈(437), 도 4)로 포워딩한다. 게임 UI 모듈은 명령을 처리하여 선택된 게임의 "컨텐츠 식별 정보"를 찾고, 선택된 게임의 컨텐츠 식별 정보를 게임 포털 UI로 다시 전송한다. 게임 포털 UI 모듈은 인터페이스 제어 모듈에서 콜백을 호출하는데 이는 게임 세션을 시작하라는 요청을 발행한다. 일부 구현에서, 인터페이스 디바이스 (106) 내의 통신은 표준화된 통신 프로토콜(예를 들어, WebSocket)을 사용하여 수행된다.
인터페이스 디바이스(106)는 선택된 게임의 컨텐츠 식별 정보를 사용하여(예를 들어, 인터페이스 제어 모듈(438)을 사용하여, 도 4) 서버 시스템(114)으로부터 게임 컨텐츠를 요청한다(228).
서버 시스템(114)은 적절한 권한을 체크하고(230A), 게임 세션을 할당하고 (230B), 게임을 로드한다(230C).
일부 구현에서, 인터페이스 디바이스(106)는 서버 인터페이스 모듈(예를 들어, 서버 인터페이스 모듈(440), 도 4))을 사용하여 게임 서버(114)에 요청을 전달한다. 서버 인터페이스 모듈은 서버 시스템(114)의 프런트 엔드(116)로부터 게임 컨텐츠를 요청한다. 프런트 엔드(116)는 적절한 인증을 체크하고 게임 서버(118)와 통신하는 백엔드 리소스(124)와 조정된다. 게임 서버(118)는 게임 세션을 할당하고 게임 시작을 개시한다.
서버 시스템(114)은 게임 세션 정보(예를 들어, 세션 id, 게임 서버 프로비저닝 IP 주소, 포트 등)를 인터페이스 디바이스(106)로 전송한다(232). 일부 구현에서, 서버 시스템(114)은 이 정보를 제공하는 인터페이스 제어 모듈(438)에 대한 콜백을 호출하는 인터페이스 디바이스(106)의 서버 인터페이스 모듈(예를 들어, 서버 인터페이스 모듈(440), 도 4))로 게임 세션 정보를 전송한다.
게임 세션 정보에 응답하여, 인터페이스 디바이스(106)는 서버 시스템(114)과의 세션 페어링 요청을 개시한다(234). 서버 시스템(114)은 (예를 들어, 게임 서버(118) 및 스트리밍 서버(120)에서) 게임 스트리밍 및 게임 프로세스를 시작하고(236), 세션 페어링 응답으로 즉시 응답(238)한다.
게임 로딩이 완료되면, 서버 시스템(114)은 "게임 준비" 메시지를 인터페이스 디바이스(106)로 발행하고(240a), 인터페이스 디바이스(106)는 게임 준비 메시지를 게임 컨트롤러(102)로 중계한다(240b).
일부 구현에서, 게임 로딩은 게임 서버(118)에 의해 수행된다. 게임 로딩이 완료되면, 게임 서버(118)는 클라이언트 연결을 수락할 준비를 하도록 스트리밍 서버(120)에게 알리고 게임 준비 메시지를 발행한다(이 경우 "클라이언트"는 게임 컨트롤러(102) 및 인터페이스 디바이스(106) 모두를 지칭한다).
본 출원의 일부 구현에 따르면, 단계(240a 및 240b)에서 서버 시스템(114)에 의해 발행된 게임 준비 메시지는 스트리밍 서버(120)와 클라이언트 사이(즉, 스트리밍 서버(120)와 인터페이스 디바이스(106) 사이 및 스트리밍 서버(120)와 게임 컨트롤러(102)사이)의 직접 통신을 위한 "핸드 셰이크" 제안을 포함한다. 일부 구현에서, 핸드 셰이크 제안은 데이터 그램 전송 계층 보안(DTLS) 프로토콜 메시지 포멧이다. 일부 구현에서, 핸드 셰이크 제안은 스트리밍 서버(120)와 클라이언트 간의 핸드 셰이크에 필요한 값(예를 들어, 인증 인증서의 해시값)을 포함한다.
핸드 셰이크 제안을 사용하여, 인터페이스 디바이스(106)는 서버 시스템 (114)(예를 들어, 게임 서버(118) 및 스트리밍 서버(120))과의 다이렉트(직접) 링크를 수립한다(242A). 유사하게, 게임 컨트롤러(102)는 서버 시스템(114)(즉, 게임 서버(118) 및 스트리밍 서버(120))과의 직접 링크를 수립한다(242B).
서버 시스템(114)의 스트리밍 서버(120)는 디스플레이 디바이스(108)에 디스플레이하기 위해 게임 오디오/비디오 스트림을 인터페이스 디바이스(106)로 전송한다(244).
게임 컨트롤러(102)는 게임 입력을 게임 서버(118)에 전송하고(246), 게임 서버(118)는 게임 입력에 기초하여 프레임을 렌더링하고 이를 스트리밍 서버(118)로 전송하고, 스트리밍 서버(118)는 게임 미디어 스트림을 디스플레이 디바이스(108)상에 디스플레이하기 위해 인터페이스 디바이스(106)로 전송한다. 부가적으로, 게임 컨트롤러(102)는 다른 메시지를 인터페이스 디바이스(106)로 전송하고 (248A), 인터페이스 디바이스(106)는 메시지를 처리하고 메시지의 서브 세트를 게임 서버(114)로 전송(248B)한다.
일부 구현에서, 스트리밍 서버(120)는 2개의 스트림을 포함하는데, 하나는 오디오/비디오를 전송하기 위한 것이고 다른 하나는 입력을 수신하고 럼블(rumble) 및 기타 정보를 다시 전송하기 위한 것이다. 일부 구현에서, 스트리밍 서버(120)는 오디오가 특정 연결 채널을 통해 전송되어야 하는지 여부를 나타내는 새로운 초기화 메시지를 스트리밍 클라이언트(예를 들어, 인터페이스 디바이스(106))로부터 수신하며, 현재 오디오/비디오 연결의 디폴트는 참(true)으로 설정된다.
일부 구현에서, 게임 컨트롤러(102)가 스트리밍 서버(102)에 연결하기 전에 헤드셋을 검출하면(단계(242b)에서), 게임 컨트롤러(102)는 스트리밍 서버(120)에 대한 그의 연결이 수립된 직후에 이 메시지를 전달할 것이다. 그렇지 않으면, 게임 컨트롤러(102)는 플러그인된 헤드셋을 검출하자마자 이 메시지를 전송할 것이다.
일부 구현에서, 특정 연결 채널을 통해 헤드셋 연결 메시지를 수신함에 따라, 스트리밍 서버(120)는 특정 연결 채널에서 오디오 전송을 시작하고 다른 연결에서 오디오를 중지한다.
일부 구현에서, 헤드셋이 게임 컨트롤러(102)로부터 분리되면, 게임 컨트롤러(102)는 스트리밍 서버(120)로 "오디오 중지" 메시지를 전송하여 스트리밍 서버(120)가 오디오/비디오 연결을 통해 오디오를 전송하도록 다시 전환하게 한다.
일부 구현에서, 게임 컨트롤러(102)는 사용자가 게임 포털 UI에 있는지 또는 게임을 하고 있는지에 관계없이 사용자가 키 기능에 액세스할 수 있도록 하는 "퀵 액세스" 버튼을 포함한다.
일부 구현에서, 인터페이스 디바이스(106)(및 이에 대응하는 게임 컨트롤러(102))는 2가지 모드, 즉 (1) 모든 게임 컨트롤러 입력이 로컬 네트워크를 통해 인터페이스 디바이스(106)로 전송되는 제1 모드(예를 들어, "메뉴" 모드) 및 (2) 컨트롤러 명령의 서브 세트가 게임 컨트롤러(102)에 의해 인터페이스 디바이스(106)로 전송되고 그 밖의 모든 것이 원격 게임(예를 들어, 서버 시스템(114)으로 전송되는 제2 모드(예를 들어, "게임" 모드)로 동작한다. 일부 구현에서, 컨트롤러 명령의 서브 세트는 "퀵 액세스" 버튼에 의해 액세스되는 명령(또는 기능)을 포함한다.
일부 구현에서, 인터페이스 디바이스(106)는 게임 포털 UI가 처음으로 시작될 때 항상 제1 모드에 있다.
아키텍처
이제 우리는 게임 컨트롤러(102), 인터페이스 디바이스(106) 및 서버 시스템(114)의 예시적인 아키텍처를 논의한다. 일부 구현에서, 아키텍처에 기술된 엘리먼트 도 1 및 2의 엘리먼트 및 흐름과 관련이 있다.
도 3은 일부 구현에 따른 게임 환경(100, 130, 160) 및 동작 시퀀스(200 및 220)의 게임 컨트롤러(102)를 도시하는 블록도이다. 게임 컨트롤러(102)는 일반적으로 하나 이상의 프로세서(들)(CPU)(302), 하나 이상의 통신 인터페이스(들)(304), 메모리(306) 및 이들 컴포넌트(종종 칩셋이라고 함)를 상호 연결하기 위한 하나 이상의 통신 버스(308)를 포함한다. 게임 컨트롤러(102)는 마이크로폰(312)(또는 음성 명령 입력 유닛), 버튼들(314), 방향 패드(들)(315) 및 조이스틱(들)(316)과 같이 사용자 입력을 용이하게 하는 하나 이상의 입력 디바이스(들)(310)를 포함한다. 일부 구현에서 게임 컨트롤러(102)는 제스처 인식 피처들을 더 포함한다. 일부 구현에서, 게임 컨트롤러(102)의 처리 능력은 입력 디바이스(들)(310)와 인터페이스될 수 있는 독립형 하드웨어 컴포넌트에 통합된다.
게임 컨트롤러(102)는 또한 스피커(들)(320), LED(들)(322) 및/또는 선택적으로 디스플레이(324)를 포함하여 오디오 출력 및/또는 시각적 출력을 용이하게 하는 하나 이상의 출력 디바이스(들)(318)를 포함한다. 게임 컨트롤러(102)는 게임 컨트롤러(102)의 위치를 결정하기 위한 GPS 또는 다른 지리적 위치 수신기와 같은 위치 검출 유닛(334)을 포함한다. 게임 컨트롤러(102)는 인터페이스 디바이스(106) 및/또는 다른 게임 컨트롤러(102) 및/또는 전자 디바이스(104)의 근접을 결정하기 위한 근접 검출 유닛(332), 예를 들어 IR 센서를 더 포함한다. 게임 컨트롤러(102)는 또한 입력으로서 사용될 수 있는 게임 컨트롤러(102)의 모션, 방향 및 다른 파라미터를 감지하기 위한 하나 이상의 센서(들)(328)(예를 들어, 가속도계, 자이로 스코프 등)를 포함할 수 있다. 일부 구현에서, 게임 컨트롤러(102)의 처리 능력은 출력 디바이스(들)(318)와 인터페이스될 수 있는 독립형 하드웨어 컴포넌트에 통합된다.
일부 구현에서, 게임 컨트롤러는 오디오 메시지 및/또는 게임 오디오 스트림을 재생하는 선택적인 헤드셋(326)을 포함한다.
일부 구현에서, 게임 컨트롤러(102)는 하나 이상의 통신 네트워크를 가능하게 하고 게임 컨트롤러(102)가 다른 디바이스(예를 들어, 인터페이스 디바이스(106)와)와 통신할 수 있도록 하는 라디오(330)를 포함한다. 일부 구현에서, 라디오(330)는 다양한 맞춤형 또는 표준 무선 프로토콜(예를 들어, IEEE 802.15.4, 와이파이, 지그비, 6LoWPAN, 스레드, Z-Wave, 블루투스 스마트, ISA100.5a, WirelessHART, MiWi Whispernet, bluetooth 저 에너지 등), 맞춤형 또는 표준 유선 프로토콜(예를 들어, 이더넷, HomePlug 등), 및/또는 본 문서의 출원일 현재 아직 개발되지 않은 통신 프로토콜을 포함하는 다른 적절한 통신 프로토콜 중 임의의 것을 사용하여 데이터 통신이 가능하다.
메모리(306)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스와 같은 고속 랜덤 액세스 메모리를 포함하고, 선택적으로 하나 이상의 자기 디스크 저장 디바이스, 하나 이상의 광 디스크 저장 디바이스, 하나 이상의 플래시 메모리 디바이스, 또는 하나 이상의 다른 비-휘발성 솔리드 스테이트 저장 디바이스와 같은 비-휘발성 메모리를 포함한다. 메모리(306)는 선택적으로 하나 이상의 처리 유닛(202)으로부터 원격으로 위치된 하나 이상의 저장 디바이스를 포함한다. 메모리(306) 또는 대안적으로 메모리(306) 내의 비-휘발성 메모리는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 일부 구현에서, 메모리(306) 또는 메모리(306)의 비-일시적 컴퓨터 판독 가능 저장 매체는 다음과 같은 프로그램, 모듈 및 데이터 구조, 또는 그의 서브 세트 또는 수퍼 세트를 저장한다.
● 다양한 기본 시스템 서비스를 처리하고 하드웨어 의존 작업을 수행하기 위한 절차를 포함하는 운영 체제(336);
● 게임 컨트롤러(102)를 하나 이상의 통신 인터페이스(유선 또는 무선) (304) 및 로컬 네트워크(110, 140 및/또는 150), 그리고 인터넷, 기타 광역 네트워크, 근거리 통신망, 대도시 통신망 등과 같은 하나 이상의 네트워크(112)를 통해 다른 디바이스(예를 들어, 서버 시스템(114)에 연결하기 위한 네트워크 통신 모듈(338);
● 하나 이상의 출력 디바이스(318)(예를 들어, 스피커, LED(들) 등)를 통해 게임 컨트롤러(102)에서 정보(예를 들어, 오디오 및/또는 비디오 컨텐츠, 그리고 선택적으로 애플리케이션, 위젯, 텍스트 등을 제시하기 위한 그래픽 사용자 인터페이스)의 프레젠테이션을 가능하게 하는 사용자 인터페이스 모듈(340);
● 하나 이상의 입력 디바이스(들)(310) 중 하나로부터 하나 이상의 사용자 입력 또는 상호 작용을 검출하고 그 검출된 입력 또는 상호 작용을 해석하는 입력 처리 모듈(342);
● 인터페이스 디바이스(106)와 연관된 사용자 계정에 로그인하고, 사용자 계정과 연관된 경우 인터페이스 디바이스(106)를 제어하고, 인터페이스 디바이스(106)와 연관된 설정 및 데이터를 편집 및 리뷰하는 것을 포함하며, 인터페이스 디바이스(106)와 상호 작용하는 인터페이스 디바이스 애플리케이션(344);
● 다양한 모드에 대한 모듈을 구현하도록 구성된 클라우드 게임 기능을 위한 게임 애플리케이션(346);
● 메뉴 모드에서 게임 컨트롤러(102)와 인터페이스 디바이스(106) 사이에 메시지(예를 들어, 설정 명령)를 전송하는 명령 모듈(348); 및
● 게임 플레이 모드에서 게임 컨트롤러(102)와 서버 시스템(114)사이에서 (예를 들어, 스트리밍 서버(120)로) 게임 플레이 명령을 전송하는 스트리밍 모듈(349);
● 게임 애플리케이션(346)으로 게임 플레이 입력 인터페이스를 제공하는 컨트롤러 모듈(350);
● 게임 컨트롤러(102)와 인터페이스 디바이스(예를 들어, 인터페이스 디바이스(108)) 사이 및 게임 컨트롤러(102)와 게임 서버(예를 들어, 서버 시스템 (114)) 사이에서 메시지와 미디어 스트림을 수신 및/또는 전송하는 통신 모듈(351);
● 서버 시스템(114)으로부터의 및/또는 인터페이스 디바이스(106) 및 기타 컨텐츠 호스트 및 제공자로부터 중계되는 데이터(예를 들어, 사용자 계정, 사용자 자격 증명, 모듈 및 애플리케이션에 대한 업데이트 및 메모리(306)의 데이터)를 다운로드하는 데이터 다운로드 모듈(352); 및
● 게임 애플리케이션(346) 및 기타 애플리케이션/모듈과 관련된 적어도 데이터를 저장하는 디바이스 데이터(354)로서:
o 공통 디바이스 설정(예를 들어, 서비스 계층(tier), 디바이스 모델, 저장 용량, 처리 능력, 통신 능력 등)을 포함하여 게임 컨트롤러(102) 자체와 관련된 정보를 저장하는 클라이언트 디바이스 설정(356);
o 계정 액세스 정보 중 하나 이상을 포함하는 인터페이스 디바이스 애플리케이션(344)의 사용자 계정과 관련된 정보 및 인터페이스 디바이스 설정에 대한 정보(예를 들어, 서비스 계층, 디바이스 모델, 저장 용량, 처리 능력, 통신 능력 등) 를 저장하는 인터페이스 디바이스 설정(358),
o 사용자가 도 4의 게임 포털 UI 모듈(437)과 상호 작용할 수 있도록 구성된 메뉴 및/또는 숏컷(바로 가기)을 저장하는 게임 애플리케이션 설정(360);
o 게임 애플리케이션(346)을 위한 컨트롤러 모듈(350)의 구성과 관련된 정보를 저장하는 게임 컨트롤러 구성(들)(362); 및
o 게임 컨트롤러(102), 인터페이스 디바이스(106), 기타 게임 컨트롤러 (102) 및/또는 전자 디바이스(104) 중 어느 하나의 존재, 근접 또는 위치와 관련된 정보를 포함하는 위치/근접 데이터(164); 및
o 게임 컨트롤러 식별 정보 및 클라이언트 인증서, 각각의 페어링된 인터페이스 디바이스의 식별 정보 및 클라이언트 인증서, 하나 이상의 로컬 네트워크 자격 증명(예를 들어, Wi-Fi 자격 증명), 및 로그인 정보, 사용자 자격 증명, 인증 정보를 포함하여 게임 컨트롤러(102)에 링크된 하나 이상의 사용자와 관련된 정보를 저장하고, 선택적으로 사용자 선호도, 게임 플레이 히스토리 데이터 및 다른 플레이어에 대한 정보를 저장하는 디바이스/사용자 데이터(366)를 포함하고;
● 활성화될 때 하나 이상의 인증 옵션을 제시하고 그 인증 옵션에 대한 입력을 수신하는 보안 모듈(368); 및
● 마이크로폰(312)에 의해 수신된 오디오 입력/명령을 처리하는 음성 지원 모듈(370).
일부 구현에서, 통신 모듈(351)은 무선 전송 모듈, 하나 이상의 통신 버스(308)와 같은 통신 버스 및 유선 연결 중 하나 이상일 수 있다.
일부 구현에서, 컨트롤러 모듈(350)은 인터페이스 디바이스 애플리케이션 (334) 또는 메모리(306)내의 다른 애플리케이션의 일부(예를 들어, 서브 모듈)이다. 일부 다른 구현에서, 컨트롤러 모듈(350)은 운영 체제(336)의 일부이다. 일부 추가 구현에서, 컨트롤러 모듈(350)은 별개의 모듈 또는 애플리케이션이다.
위의 식별된 요소 각각은 앞서 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있고, 전술한 기능을 수행하기 위한 명령 세트에 대응한다. 위에서 식별된 모듈 또는 프로그램(즉, 명령 세트)은 별도의 소프트웨어 프로그램, 절차, 모듈 또는 데이터 구조로 구현될 필요가 없으므로 이들 모듈의 다양한 서브 세트는 다양한 구현에서 결합되거나 재배열될 수 있다. 일부 구현에서, 메모리(306)는 위에서 식별된 모듈 및 데이터 구조의 서브 세트를 선택적으로 저장한다. 더욱이, 메모리(306)는 선택적으로 위에서 설명되지 않은 추가 모듈 및 데이터 구조를 선택적으로 저장한다.
도 4는 일부 구현들에 따른 게임 환경(100, 130, 160) 및 동작 시퀀스(200 및 220)의 예시적인 인터페이스 디바이스(106)를 나타내는 블록도이다. 인터페이스 디바이스(106)는 일반적으로 하나 이상의 프로세서(들)(CPU)(402), 하나 이상의 통신 인터페이스(들)(404), 메모리(406) 및 이들 컴포넌트(종종 칩셋이라고 함)를 상호 연결하기 위한 하나 이상의 통신 버스(408)를 포함한다. 또한, 인터페이스 디바이스(106)는 게임 컨트롤러(102) 및/또는 전자 디바이스(104) 및/또는 다른 인터페이스 디바이스의 근접(성)을 결정하기 위한 IR 센서와 같은 근접/위치 검출 유닛(410)을 포함한다.
또한, 일부 구현에서, 인터페이스 디바이스(106)는 하나 이상의 통신 네트워크를 가능하게 하고 인터페이스 디바이스(106)가 다른 디바이스(예를 들어, 게임 컨트롤러(102)와)와 통신할 수 있게 하는 라디오(radio)(411)를 포함한다. 일부 구현에서, 라디오(411)는 본 명세서의 출원일을 기준으로 아직 개발되지 않은 통신 프로토콜을 포함하여, 다양한 맞춤형 또는 표준 무선 프로토콜(예를 들어, IEEE 802.15.4, 와이파이, 지그비, 6LoWPaN, Thread, Z-Wave, 블루투스 스마트, ISa100.5a, WirelessHaRT, MiWi, Whispernet, 블루투스 저에너지 등), 맞춤형 또는 표준 유선 프로토콜(예를 들어, 이더넷, HomePlug 등) 및/또는 다른 적절한 통신 프로토콜을 사용하여 데이터 통신을 수행할 수 있다.
추가적으로, 인터페이스 디바이스(106)는 또한 사용자의 근접을 검출하기 위한 마이크로폰(414)을 포함하는 하나 이상의 입력 디바이스(들)(412) 및 인터페이스 디바이스(106)에 결합되거나 통합되는 하나 이상의 출력 디바이스(들)(416)(예를 들어, 디스플레이 디바이스(들)(108))를 포함한다.
메모리(406)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스와 같은 고속 랜덤 액세스 메모리를 포함하고, 선택적으로 하나 이상의 자기 디스크 저장 디바이스, 하나 이상의 광 디스크 저장 디바이스, 하나 이상의 플래시 메모리 디바이스, 또는 하나 이상의 다른 비-휘발성 솔리드 스테이트 저장 디바이스와 같은 비-휘발성 메모리를 포함한다. 메모리(406)는 선택적으로 하나 이상의 프로세서(들)(402)로부터 원격으로 위치된 하나 이상의 저장 디바이스를 포함한다. 메모리(406) 또는 대안적으로 메모리(406)내의 비 휘발성 메모리는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 일부 구현에서, 메모리(406), 또는 메모리(406)의 비-일시적 컴퓨터 판독 가능 저장 매체는 다음과 같은 프로그램, 모듈 및 데이터 구조, 또는 그의 서브 세트 또는 수퍼 세트를 저장한다:
● 다양한 기본 시스템 서비스를 처리하고 하드웨어 의존 작업을 수행하기 위한 절차를 포함하는 운영 체제(418);
● 인터페이스 디바이스(106)를 하나 이상의 통신 인터페이스(404)(유선 또는 무선) 및 인터넷, 기타 광역 통신망, 근거리 통신망, 대도시 통신망, 케이블 텔레비전 시스템, 위성 텔레비전 시스템, IPTV 시스템 등과 같은 하나 이상의 네트워크(112)를 통해 다른 컴퓨터 또는 시스템에 연결하는 네트워크 통신 모듈 (420);
● 인터페이스 디바이스(106)와 게임 컨트롤러(예를 들어, 게임 컨트롤러 (102)) 사이 및 인터페이스 디바이스(106)와 게임 서버(예를 들어, 서버 시스템 (114)) 사이에서 메시지와 미디어 스트림을 수신 및/또는 전송하는 통신 모듈(421);
● 하나 이상의 컨텐츠 소스(예를 들어, 게임 서버(118) 및 스트리밍 서버(120))로부터 수신된 컨텐츠 신호를 디코딩하고, 디코딩된 신호의 컨텐츠를 인터페이스 디바이스(106)에결합되거나 통합된 출력 디바이스(들)(416)(예를 들어, 디스플레이들(108))에 출력하는 컨텐츠 디코딩 모듈(422);
● 근접/위치 검출 유닛(410)에 의해 검출되거나 서버 시스템(114)에 의해 제공되는 근접 관련 정보에 기초하여 게임 컨트롤러(102) 및/또는 전자 디바이스(104) 및/또는 다른 인터페이스 디바이스(106)의 근접을 결정하는 근접/위치 결정 모듈(424);
● 미디어 디스플레이를 제어하는 디스플레이 모듈(426);
● 인터페이스 디바이스 식별 정보 및 클라이언트 인증서를 저장하고 적어도데이터를 저장하기 위한 인터페이스 디바이스 데이터(428)로서:
o 계정 액세스 정보 및 디바이스 설정 정보(예를 들어, 서비스 계층, 디바이스 모델, 저장 용량, 처리 능력, 통신 능력 등) 중 하나 이상을 포함하여, 인터페이스 디바이스 애플리케이션의 사용자 계정과 관련된 정보를 저장하는 인터페이스 디바이스 설정(430);
o 게임 컨트롤러(102) 및/또는 전자 디바이스(104) 및 인터페이스 디바이스(106) 중 임의의 하나의 존재, 근접 또는 위치와 관련된 정보를 포함하는 위치/근접 데이터(432); 및
o 인터페이스 디바이스가 연결되는 하나 이상의 로컬 네트워크와 관련된 정보를 포함하는 네트워크 데이터(434)를 포함하고;
● 인터페이스 디바이스(106)상의 모든 게임 컴포넌트의 라이프 사이클을 제어하고, 게임 컨트롤러(102)로부터 메시지(예를 들어, 명령)를 수신하고, 게임 컨트롤러 입력을 서버 시스템(114)으로 릴레이하는 게임 애플리케이션(436);
● 디스플레이를 위한 사용자 컨텐츠(예를 들어, 프로필, 아바타, 구매한 게임, 게임 카탈로그, 친구, 메시징) 및 최적화된 이미지에 액세스하고 게임 플레이 동안 게임 컨트롤러(102)의 입력을 수신하는 게임 UI 모듈(437);
● 게임 애플리케이션(436)과 게임 포털 UI 모듈(437) 사이의 통신을 인터페이싱하고, 게임 시작 동안 서버 시스템(114)과의 세션 페어링 요청을 개시하는 인터페이스 제어 모듈(438);
● 서버 시스템(114) 및 인증 시스템(125)과 통신하기 위한 서버 인터페이스 모듈(440)로서:
o 인증 시스템(125)과 통신하여 게임 포털 UI 시작 동안 게임 컨트롤러(102)의 링크된 사용자를 인증하는 인증 서브 모듈(442);
o 서버 시스템(114)으로부터 게임 세션 정보(예를 들어, 세션 id, 게임 서버 프로비저닝 IP 주소, 포트 등)를 수신하고 이 정보를 제공하는 인터페이스 제어 모듈(438)에서 콜백을 호출하는 세션 서브 모듈(444); 및
o 게임 플레이 동안 실시간으로, 서버 시스템(114)의 스트리밍 서버(120)로부터 전송된 게임 스트림을 수신하고 디스플레이하는 스트리밍 서브 모듈(446)을 포함한다.
*일부 구현에서, 통신 모듈(421)은 무선 전송 모듈, 하나 이상의 통신 버스 (408)와 같은 통신 버스(예를 들어, 인터페이스 기능이 게임 컨트롤러에 있을 때) 및 유선 연결 중 하나 이상일 수 있다.
일부 구현에서, 게임 UI 모듈(437), 인터페이스 제어 모듈(438) 및 서버 인터페이스 모듈(440)은 인터페이스 디바이스(106)에서 공유 라이브러리로 패키징되고 애플리케이션이 시작될 때 게임 애플리케이션(436)에 의해 동적으로 개방된다.
위에서 식별된 요소 각각은 앞서 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있고, 전술한 기능을 수행하기 위한 명령 세트에 대응한다. 위에서 식별된 모듈 또는 프로그램(즉, 명령 세트)은 별도의 소프트웨어 프로그램, 절차, 모듈 또는 데이터 구조로 구현될 필요가 없으므로 이들 모듈의 다양한 서브 세트는 다양한 구현에서 결합되거나 재배열될 수 있다. 일부 구현에서, 메모리(406)는 식별된 모듈 및 데이터 구조의 서브 세트를 선택적으로 저장한다. 또한, 메모리(406)는 위에서 설명되지 않은 추가 모듈 및 데이터 구조를 선택적으로 저장한다.
도 5는 일부 구현에 따른 게임 환경(100, 130, 160)의 서버 시스템(114) 및 동작 시퀀스(200 및 220)의 예시적인 서버를 나타내는 블록도이다. 서버 시스템 (114)은 일반적으로 하나 이상의 처리 유닛(예를 들어, 프로세서(들) 502, GPU(들) 510 및 인코더들(512)), 하나 이상의 네트워크 인터페이스(504), 메모리(506), 및 이를 컴포넌트(종종 칩셋이라고도 함)를 상호 연결하기 위한 하나 이상의 통신 버스(508)를 포함한다. 서버 시스템(114)은 키보드, 마우스, 음성 명령 입력 유닛 또는 마이크로폰, 터치 스크린 디스플레이, 터치 감지 입력 패드, 제스처 캡처 카메라 또는 다른 입력 버튼 또는 컨트롤과 같은 사용자 입력을 용이하게 하는 하나 이상의 입력 디바이스(514)를 선택적으로 포함할 수 있다. 또한, 서버 시스템(114)은 키보드를 보완하거나 대체하기 위해 마이크로폰 및 음성 인식 또는 카메라 및 제스처 인식을 사용할 수 있다. 일부 구현에서, 서버 시스템(114)은 예를 들어 전자 디바이스 상에 인쇄된 그래픽 시리즈 코드의 이미지를 캡처하기 위한 하나 이상의 카메라, 스캐너 또는 광센서 유닛을 선택적으로 포함한다. 서버 시스템(114)은 또한 하나 이상의 스피커 및/또는 하나 이상의 시각적 디스플레이를 포함하여 사용자 인터페이스 및 디스플레이 컨텐츠의 프리젠 테이션을 가능하게 하는 하나 이상의 출력 디바이스(516)를 포함할 수 있다.
메모리(506)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스와 같은 고속 랜덤 액세스 메모리를 포함하고, 선택적으로 하나 이상의 자기 디스크 저장 디바이스, 하나 이상의 광 디스크 저장 디바이스, 하나 이상의 플래시 메모리 디바이스, 또는 하나 이상의 다른 비-휘발성 솔리드 스테이트 저장 디바이스와 같은 비-휘발성 메모리를 포함한다. 메모리(506)는 하나 이상의 처리 유닛으로부터 원격으로 위치된 하나 이상의 저장 디바이스를 선택적으로 포함한다. 메모리(506) 또는 대안적으로 메모리(506)내의 비-휘발성 메모리는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 일부 구현에서, 메모리(506) 또는 메모리(506)의 비-일시적 컴퓨터 판독 가능 저장 매체는 다음과 같은 프로그램, 모듈 및 데이터 구조, 또는 그의 서브 세트 또는 수퍼 세트를 저장한다.
● 다양한 기본 시스템 서비스를 처리하고 하드웨어 의존 작업을 수행하기 위한 절차를 포함하는 운영 체제(526);
● 서버 시스템(114)을 하나 이상의 네트워크 인터페이스(504)(유선 또는 무선)를 통해 서버 시스템(114)을 다른 디바이스(예를 들어, 서버 시스템(114)내의 다양한 서버, 게임 컨트롤러(102) 및/또는 전자 디바이스(104) 및 인터페이스 디바이스(106)) 및 인터넷, 다른 광역 네트워크, 근거리 통신망, 대도시 통신망 등과 같은 하나 이상의 네트워크(112)에 연결하는 네트워크 통신 모듈(528);
● 정보(예를 들어, 애플리케이션(들), 위젯, 웹 사이트 및 그의 웹 페이지, 및/또는 게임, 오디오 및/또는 비디오 컨텐츠, 텍스트 등)의 프리젠테이션을 인터페이스 디바이스(106), 게임 컨트롤러(102) 및/또는 전자 디바이스(104)의 디스플레이 디바이스(108)에서 가능하게 하는 사용자 인터페이스 모듈(530);
● 인터페이스 디바이스(들)(106)와 관련된 디바이스 프로비저닝, 디바이스 제어 및 사용자 계정 관리를 위한 서버측 기능을 제공하도록 실행되는 미디어 디바이스 모듈(532)(선택적);
● 게임 컨트롤러(102) 및/또는 전자 디바이스(104) 및 미디어 디바이스 (106) 중 임의의 하나의 위치 정보에 기초하여 인터페이스 디바이스(106)에 대한 게임 컨트롤러(102) 및/또는 전자 디바이스(104)의 근접을 결정하는 근접/위치 결정 모듈 (534);
● 이에 한정되지 않지만 게임 컨트롤러(102) 및/또는 전자 디바이스(104)에 대한 연결의 네트워크 대역폭을 평가하고 게임 컨트롤러(102) 및/또는 전자 디바이스(104)가 게임을 플레이하는데 필요한 모듈 또는 애플리케이션을 가지고 있는지 여부를 평가하는 것을 포함하여, 게임 컨트롤러(102) 및/또는 전자 디바이스(104)의 디바이스 및 네트워크 성능을 평가하는 디바이스/네트워크 평가 모듈(536);
● 게임 컨트롤러(102), 전자 디바이스(104) 및/또는 인터페이스 디바이스 (106)에 데이터(예를 들어, 게임 컨트롤러 구성(456)), 소프트웨어 업데이트 등)을 제공하는 데이터 전송 모듈(538);
● 게임 컨트롤러(102) 및 전자 디바이스(104)와 관련된 사용자 계정, 예를 들어, 사용자 계정에 의한 하나 이상의 온라인 대화형 게임의 멤버십 가입을 관리하고, 가입자 요청을 백엔드 리소스(124), 게임 서버(118)로 포워딩하고, 게임 플레이 활동 및 가입자의 관련 요청을 모니터링하기 위해 가입자들에게 서비스를 가능하게 하는 프런트 엔드 모듈(540);
● 게임 플레이 동안 실시간으로, 게임 오디오 및/또는 비디오 스트림을 인터페이스 디바이스(106)로 전송하고, (예를 들어, 헤드셋으로부터의) 스트림을 관리하고, 하나 이상의 스트리밍 사이트를 관리하는 미디어 스트리밍 서버 모듈(542);
● 이에 한정되지 않지만 게임 세션을 설정하고, 세션 상태 데이터 및 다른 게임 관련 데이터를 저장하고, 클라이언트 디바이스(102 및 104)로부터의 게임 플레이 입력을 처리하고, 게임 플레이 입력에 응답하여 게임 플레이 출력을 렌더링하고, 게임 플레이 및 리뷰 비디오에 대한 동시 미디어 스트림을 생성하는 것을 포함하여, 게임(예를 들어, 게임 애플리케이션(346 및 436))과 관련된 서버 측 기능을 제공하는 게임 서버 모듈(544);
● 프런트 엔드(116)에 의해 요청된 서비스를 수행하고, (예를 들어, 게임 서버(120) 및 스트리밍 서버(120)로부터의) 데이터에 액세스하는 백엔드 리소스 모듈(542); 및
● 데이터베이스(들)(122)로서:
o 공통 디바이스 설정(예를 들어, 서비스 계층, 디바이스 모델, 저장 용량, 처리 능력, 통신 능력 등)을 포함하여, 게임 컨트롤러(102) 및 전자 디바이스 (104)와 관련된 정보를 저장하는 클라이언트 디바이스 설정(550);
o 계정 액세스 정보 및 디바이스 설정 정보(예를 들어, 서비스 계층, 디바이스 모델, 저장 용량, 처리 능력, 통신 능력 등) 중 하나 이상을 포함하여, 미디어 디바이스 애플리케이션(532)의 사용자 계정과 관련된 정보를 저장하는 미디어 디바이스 설정(552)(선택 사항);
o 게임 컨트롤러(102) 및/또는 전자 디바이스(104) 및 인터페이스 디바이스(106) 중 어느 하나의 존재, 근접 또는 위치와 관련된 정보를 포함하는 위치/근접 데이터(554);
o 다양한 게임에 대한 컨트롤러 구성을 저장하는 게임 컨트롤러 구성 (556); 및
o 예를 들어 사용자 계정 정보(예를 들어, 식별 정보 및 패스워드), 사용자 프로필, 구매한 게임, 멤버십 유형, 선호도, 게임 카탈로그, 활동 히스토리 및 다른 자격)를 포함하여, 서버 시스템(114)에서 호스팅되는 하나 이상의 게임 애플리케이션(예를 들어, 게임 애플리케이션(228),도 2)) 각각의 사용자 계정과 관련된 정보를 저장하는 사용자 정보(558); 및
o 예를 들어, 제1 게임 세션에 대한 게임 세션 데이터(560-1) 및 제2 게임 세션에 대한 게임 세션 데이터(560-2)를 포함하여, 게임 세션과 관련된 데이터(예를 들어, 게임 상태 데이터, 다른 게임 관련 데이터)를 저장하는 게임 세션 데이터 (560)를 포함하고, 각 게임 세션에 대한 세션 데이터(560)는 프레임 속도, 렌더링 사양, 일반 레이턴시 요구 사항, GPU 할당 정보, 인코더 할당 정보, 관련 세션 식별 정보 및 개별 게임 세션과 관련된 최신 상태 정보를 포함하지만 이에 한정되지 않는다.
위에서 식별된 요소 각각은 하나 이상의 이전에 언급된 메모리 디바이스에 저장될 수 있고, 전술한 기능을 수행하기 위한 명령 세트에 대응한다. 위에서 식별된 모듈 또는 프로그램(즉, 명령 세트)은 별도의 소프트웨어 프로그램, 절차, 모듈 또는 데이터 구조로 구현될 필요가 없으므로 이러한 모듈의 다양한 서브 세트가 다양한 구현에서 결합되거나 재배열될 수 있다. 일부 구현에서, 메모리(506)는 식별된 모듈 및 데이터 구조의 서브 세트를 선택적으로 저장한다. 더욱이, 메모리(506)는 위에서 설명되지 않은 추가 모듈 및 데이터 구조를 선택적으로 저장한다.
일부 구현에서, 서버 시스템(114)은 플레이어가 그들의 게임 친구와 메시지를 교환할 수 있도록 하는 게임 포털 UI에서 메시징 애플리케이션을 관리하는 메시징 모듈(미도시)을 더 포함한다.
이러한 원리에 비추어, 이제 특정 구현으로 넘어간다.
구현들
도 6a 내지 6c는 클라우드 게임을 위한 새로운 게임 컨트롤러(102)를 프로비저닝(구축)하기 위한 예시적인 프로세스를 도시한다. 일부 구현에서, 새로운 게임 컨트롤러(102)는 게임에 사용되려면 먼저 설정되어야 한다. 일부 구현에서, 설정은 클라우드 게임을 지원하는 부속 애플리케이션(예를 들어, 구글 홈 애플리케이션 612)을 실행하는 모바일 폰(610)을 사용하여 환경(600)(예를 들어, 집, 기숙사 및/또는 사무실)에서 수행된다. 일부 구현에서, 설정 프로세스는 하나 이상의 사용자를 게임 컨트롤러(102)에 추가하고 게임 컨트롤러(102)를 환경(600) 내의 하나 이상의 인터페이스 디바이스에 페어링하는 것을 포함한다.
도 6a에 도시된 바와 같이, 게임 컨트롤러(102)는 "어시스턴트" 버튼(606), "홈" 버튼(608) 및 게임 제어 버튼(604-1, 604-2, 604-3 및 604-4)(즉, 버튼 (312))을 포함하여, 방향 패드(602)(즉, 방향 패드(315)) 및 복수의 버튼과 같은 입력 컴포넌트를 포함하도록 도시된다. 일부 구현에서, 게임 컨트롤러(102)는 조이스틱(즉, 조이스틱(316), 미도시) 및 LED(예를 들어, LED(들)(322) 및/또는 스피커(예를 들어, 스피커(들)(320))(미도시)와 같은 출력 디바이스(출력 디바이스(들)(318)를 더 포함한다. 일부 구현에서, 입력의 수와 유형, 출력 컴포넌트 및 그 배열은 다양할 수 있다. 일부 구현에서, 게임 컨트롤러는 도면에 도시된 게임 컨트롤러(102)와 다른 형상 및/또는 사이즈 및/또는 기하학적 구조를 갖는다.
일부 구현에서, 하나 이상의 버튼은 오디오 입력(예를 들어, 음성 명령)이 수신될 수 있게 하는 게임 컨트롤러(102)상의 하나 이상의 마이크로폰(예를 들어, 마이크로폰(312))을 활성화한다. 예를 들어, 게이머는 어시스턴트 버튼(606)을 누르고 "침실 TV에서 디비전(Division) 재생해"라고 말할 수 있다. 일부 구현에서, 게임 컨트롤러(102)는 (예를 들어, 음성 지원 모듈(370)을 사용하여) 그 명령을 파싱하고 침실 TV에 연결되어 있는 인터페이스 디바이스와 페어링한다. 일부 구현에서, 인터페이스 디바이스는 또한 침실 TV를 켠다. TV는 게이머가 가장 최근 게임 세션에서 떠났던 게임 "디비전"의 일시 중지된 장면을 디스플레이한다. 게이머는 버튼을 눌러 그 장면의 일시 중지를 해제하고 게임 컨트롤러(102)와 침실 TV를 사용하여 게임 플레이를 재개한다.
일부 구현에서, 사용자는 먼저 (예를 들어, 홈 버튼(608) 및/또는 전원 버튼(미도시)을 눌러) 전원을 켜서 새로운 게임 컨트롤러(102)의 설정을 개시한다. 게임 컨트롤러(102)는 애플리케이션에 의해 감지된 블루투스/와이파이 비콘을 전송한다. 일부 구현에서, 전원이 켜짐에 따라, 애플리케이션(612)은 사용자 인터페이스(660)상에 새로운 디바이스("게임 컨트롤러")가 발견되었음을 나타내는 메시지 (614)와 새로운 디바이스를 설정하기 위한 어포던스(affordances)(615)를 자동으로 디스플레이한다. 이 예에서 사용자는 설정 프로세스를 계속하기 위해 어포던스 (615-1)(예")를 선택한다.
도 6b는 설정 프로세스를 계속함에 따라 디스플레이되는 예시적인 사용자 인터페이스(670)를 도시한다. 일부 구현에서, 사용자는 이름(616)(예를 들어, 사용자 이름), 사진(618), 패스워드(미도시) 및/또는 인증 챌린지(들)(미도시)를 포함하는 필드를 입력하도록 프롬프트된다. 일부 구현에서, 사용자는 키보드 디스플레이 (620)를 사용하고 및/또는 아이콘(621)(예를 들어, 사진을 찍기 위한 아이콘(621-1) 및/또는 사진을 업로드하기 위한 아이콘(621-2))을 탭함으로써 자신의 이름을 입력한다.
일부 구현에 따르면, 도 6c에 도시된 바와 같이, 애플리케이션(612)은 사용자 인터페이스(680) 상에 디폴트 페어링 디바이스를 설정하기 위한 옵션(622)을 더 디스플레이한다. 옵션(622)은 게임 컨트롤러(102)와 페어링할 수 있는 디바이스들(예를 들어, 인터페이스 디바이스(106))를 나타내는 어포던스(623)를 포함한다. 옵션(622)은 게임 컨텐츠를 디스플레이하기 위한 디폴트 디바이스로서 인터페이스 디바이스들(106) 중 하나를 선택하도록 사용자에게 요청하는 프롬프트를 더 포함한다. 일부 구현에서, 설정 프로세스는 디폴트 페어링 디바이스가 선택되고(예를 들어, "거실" 디바이스(623-2)), 게임 컨트롤러(102)가 디폴트적으로 "거실" 인터페이스 디바이스와 페어링된 후에 종료된다.
일부 구현에서, 새로운 게임 컨트롤러(102)의 설정은 모바일 폰(예를 들어, 모바일 폰(610)) 또는 모바일 폰에서 실행되는 동반 애플리케이션(예를 들어, 애플리케이션(612))의 사용을 필요로 하지 않는다. 오히려, 출력 디바이스의 설정 및 선택은 게임 컨트롤러(102)와 인터페이스 디바이스(106) 사이에서 직접 또는 게임 컨트롤러(102)와 디스플레이 디바이스(108) 사이에서 직접 작동할 것이다. 예를 들어, 일부 구현에서, 인터페이스 디바이스(106) 또는 디스플레이 디바이스(108)는 새로운 게임 컨트롤러(102)를 설정하고 출력 디바이스의 선택을 야기하도록 실행될 수 있는 동반 애플리케이션을 포함한다. 일부 구현에서, 게임 컨트롤러(102)는 게임 컨트롤러(102)를 설정하고(예를 들어, 게임 컨트롤러(102)는 설정 명령을 디스플레이하는 선택적 디스플레이(324)를 포함함) 출력 디바이스를 선택하기 위해 실행될 수 있는 동반 애플리케이션을 포함한다.
일부 구현에서, 게임 컨트롤러(102)의 전원을 켠 후, 사용자는 제2 버튼을 누르고 및/또는 게임 컨트롤러(102)의 전원을 켜는데 사용되는 동일한 버튼을 다시 눌러 설정 프로세스를 시작한다.
일부 구현에서, 게임 컨트롤러(102)는 (예를 들어, 디바이스/사용자 데이터(366)에) 이름/사용자 이름, 사진, 패스워드, 인증 챌린지를 포함하는 사용자 정보 및 디폴트 인터페이스 디바이스(106)를 포함하는 다른 디폴트값을 저장한다.
일부 구현에서, 게임 컨트롤러는 (예를 들어, 디바이스/사용자 데이터(366)에) 네트워크 자격 증명(예를 들어, Wifi 네트워크 이름 및/또는 패스워드)을 저장한다.
일부 구현에서, 게임 컨트롤러(102)는 다수의 사용자(예를 들어, 가정의 다양한 구성원)에 의해 사용된다. 따라서, 제1 사용자가 설정을 완료한 후, 애플리케이션(612)은 다른 사용자를 추가하기 위한 옵션을 더 디스플레이한다. 게임 컨트롤러(102)는 각 사용자에 대한 자격 증명을 저장한다.
일부 구현에서, 게임 컨트롤러(102)는 게임 컨트롤러(102)(예를 들어, 디바이스/사용자 데이터(366))에 저장된 디바이스 식별자 및/또는 클라이언트 인증서를 포함한다. 따라서, 게임 컨트롤러(102)는 각 사용자의 자격 증명을 디바이스 식별자 및/또는 클라이언트 인증서와 링크한다. 일부 구현에서, 게임 포털 UI를 시작하라는 요청에 따라(예를 들어, 도 2a에 설명된 바와 같이), 게임 컨트롤러는 인증 시스템(125)에 의한 검증을 위해 사용자의 식별 정보와 함께 디바이스 식별자 및/또는 클라이언트 인증서의 정보를 인증 시스템(125)에 전송한다.
일부 구현에서, 애플리케이션(612)은 게임 컨트롤러(102)의 기존 사용자의 프로파일을 편집 및/또는 삭제하기 위한 옵션을 더 포함한다.
일부 구현에서, 게임 컨트롤러(102)와 연관된 게임 컨트롤러인 환경(600)(예를 들어, 가정, 기숙사 등)에 관한 정보는 클라우드(예를 들어, 서버 시스템(114) 및/또는 인증 저장소(128))에 저장된다. 추가로, 일부 구현에서, 클라우드는 각 사용자에 대해 사용자 정보 설정, 디스플레이 설정 및 사용자와 관련된 게임 컨트롤러(들)를 저장한다.
도 7 내지 도 11은 일부 구현에 따른 게임 컨트롤러(102) 및 인터페이스 디바이스(106)의 대표적인 동작을 도시한다. 이러한 예들에서, 게임 컨트롤러(102)가 프로비저닝되고 인터페이스 디바이스(106)에 통신 가능하게 연결(예를 들어, 페어링)된다고 가정한다. 도 7 내지 도 11은 디스플레이 디바이스(108)에 결합된 인터페이스면(106)을 도시한다. 일부 구현에서, 인터페이스 디바이스(106)의 기능은 디스플레이 디바이스(108) 내에 포함(즉, 통합 및/또는 포함)되고, 따라서 디스플레이 디바이스(108)는 게임 컨트롤러(102) 및 게임 서버(예를 들어, 서버 시스템 (114))와 직접 상호 작용하도록 구성된다.
도 7a 내지 7c는 일부 구현에 따라 1인 환경(700)에서 도 3의 게임 컨트롤러(102)와 도 4의 인터페이스 디바이스(106) 사이의 대표적인 상호 작용을 도시한다. 이 예에서, 환경(700)은 가정 환경("줄리아의 집")이고 게임 컨트롤러(102)는 디폴트 사용자("줄리아(Julia)")에 링크된다.
줄리아는 게임 UI 포털을 시작하고 게임을 선택함으로써 게임을 시작한다(UI 시작 및 게임 개시를 위한 프로세스 흐름은 도 2 참조). 일부 구현에서, 게임 컨트롤러는 초기 오프/대기 모드에 있고 줄리아는 게임 컨트롤러(102)의 전원을 켠다. 게임 컨트롤러(102)의 전원이 켜진 후, 줄리아 집의 Wifi 네트워크에 자동으로 연결되어 (예를 들어, 캐시로부터) 가정 메타 데이터 가져온다. 게임 컨트롤러(102)는 인터페이스 디바이스(106)(예를 들어, "거실")와 자동으로 페어링되는데, 이는 디스플레이 디바이스(108)를 활성화하고 (예를 들어, CEC를 사용하여) 정확한 입력으로 전환된다.
도 7a는 사용자 프로필(712)("줄리아")(예를 들어, 아바타, 사진 및/또는 이름), 온라인 친구, 게임(714 및 716)(예를 들어, 구매한 게임, 새 게임, 최근에 플레이한 게임) 및 메뉴(715)와 같은 피처를 포함하는 예시적인 게임 포털 UI를 도시하는 디스플레이 화면(710)을 나타낸다. 이 예에서, 줄리아는 게임 컨트롤러(102)의 유일한 사용자이기 때문에 디폴트 플레이어로서 자동 로그인된다.
줄리아는 게임 시작을 개시하기 위해 게임 포털 UI에서 게임을 선택한다. (게임 시작시 발생하는 동작 순서에 대한 세부 사항은 도 2b에 설명되어 있다.) 디스플레이 디바이스(108) 상에 게임 스트림이 디스플레이된다. 줄리아는 게임을 한다.
일부 구현에서, 인터페이스 디바이스(106)는 디스플레이 디바이스(108)가 파워 오프/대기 모드에 있다는 결정에 따라 디스플레이 디바이스(108)를 자동으로 파워온한다.
일부 구현에서, 단일 입력의 활성화(예를 들어, 단일 버튼 누르기)는 게임 컨트롤러(102)를 파워온하고 인터페이스 디바이스(106)에서 게임 애플리케이션을 시작하는 작업을 수행한다. 일부 구현에서, 게임 컨트롤러(102)가 파워온된 후, 사용자는 게임 포털 UI를 시작하기 위해 제2 입력(예를 들어, 버튼을 다시 누르거나 제2 버튼 누르기)을 활성화한다.
일부 구현에서, 게임 포털 UI는 도 7a에 도시되지 않은 피처 및/또는 추가 피처의 서브 세트를 포함한다. 일부 구현에서, 게임 포털 UI 피처의 서브 세트는 모든 사용자에 대해 맞춤화된다. 일부 구현에서, 게임 포털 UI는 사용자가 게임 서버에 의해 호스팅되는 모든 게임 컨텐츠의 리스트를 브라우징하고 액세스할 수 있도록 한다.
일부 구현에서, 사용자는 마이크로폰(312)에 의해 수신되고 음성 어시스턴트 모듈(370)에 의해 처리되는 음성 입력/명령(예를 들어, 사용자가 "거실 TV에 자동차 경주 재생해"라고 말한다)을 사용하여 게임 시작을 개시한다.
도 7b는 게임 세션을 위한 셧다운 프로세스를 도시한다. 일부 구현에서, 셧다운을 개시하기 위해, 사용자는 게임 컨트롤러(102)상의 버튼(예를 들어, 홈 버튼(608))을 눌러 종료 명령(exit command)을 인터페이스 디바이스(106)로 전송한다. 스크린(720)은 게임 세션의 종료를 확인하는 메시지 창(718)을 디스플레이한다. 사용자가 "YES"(721)를 선택하면, 게임 컨트롤러(102)는 전원을 끈다(또는 슬립 모드로 이동한다). 사용자가 "NO/BACK"(722)를 선택하면, 게임 세션이 재개되고 메시지 창(718)이 화면(720)에서 사라진다((미도시).
일부 구현에서, 사용자가 게임 세션의 종료를 확인하는 것에 응답하여, 인터페이스 디바이스(106)는 종료 명령을 서버 시스템(114)으로 전송한다. 서버 시스템(114)은 필요에 따라 게임/상태를 저장한다. 게임 세션이 종료되고 게임 애플리케이션이 종료되며 디스플레이 디바이스는 도 7c에 도시된 바와 같이 배경(730)을 표시한다.
일부 구현에서, 다른 메뉴 및 기능이 버튼을 다르게 누름으로써 동일한 버튼(예를 들어, 홈 버튼(608))을 사용하여 액세스될 수 있다. 예를 들어, 홈 버튼(608)의 "shot/normal" 누름은 게임 컨트롤러(102)의 전원을 켜고 게임 포털 UI의 시작을 개작하는데 사용되고, 홈 버튼(608)의 "롱(long)" 누름은 메뉴 버튼(예를 들어, 빠른 액세스 메뉴) 및/또는 게임 세션의 셧다운을 개시한다.
일부 구현에서, 인터페이스 디바이스(106)는 또한 게임에 사용되지 않을 때 다른(게임이 아닌) 미디어 컨텐츠를 스트리밍하는 미디어 스트리밍 디바이스로 사용된다.
도 8a 내지 8b는 일부 구현에 따른 다인 환경(800)에서 도 3의 게임 컨트롤러(102)와 도 4의 인터페이스 디바이스(106) 사이의 대표적인 상호 작용을 나타낸다. 이 예에서, 다인 환경(800)은 2인 가정이고 게임 컨트롤러(102)는 가정 구성원인 "줄리아" 및 "잭"에 의해 사용된다. 게임 컨트롤러(102)는 줄리아 및 잭에 대한 사용자 자격 증명을 저장한다. 일부 구현에서, 다인 환경은 각각 온라인 게임을 위해 게임 컨트롤러(102)를 사용하는 3 명 이상의 사람을 포함한다.
도 8의 예에서 잭은 도 2 및 도 7에 설명된 단계를 사용하여 게임 포털 UI를 시작한다. 도 8a는 플레이어 계정(812)("Julia") 및 플레이어 계정(814)("Jackio")에 대한 옵션을 디스플레이하는 화면(810)을 도시한다. 일부 구현에서, 스크린 (810)은 "게스트" 플레이어 계정(816)에 대한 옵션을 더 포함한다. 이 예에서, 잭은 플레이어 계정(814)("Jackio")을 선택한다.
일부 구현에서, 게임 애플리케이션은 (예를 들어, 보안 모듈(368)을 사용하여) 인증을 위한 피처를 더 포함한다. 도 8b에 도시된 바와 같이, 잭이 플레이어 계정(814)("Jackio")을 선택한 후, 화면(830)은 전화기(820-1), 음성(820-2) 및 PIN (820-3)을 포함하여 복수의 인증 옵션(820)을 포함하는 메시지(818)를 디스플레이한다. 만약 전화기 옵션(820-1)이 선택되면, 인터페이스 디바이스(106) 및/또는 게임 컨트롤러(102)는 게임 컨트롤러(102)에 근접한 전화기의 신원을 감지하고 전화기로부터 획득된 신원을 사용하여 사용자를 인증한다. 만약 음성 옵션(820-2)이 선택되면, 화면은 사용자에게 다(예를 들어, 마이크(312)를 사용하여) 음성 입력을 요청하는 프롬프트를 디스플레이할 것이다(예를 들어, 잭은 어시스턴트 버튼(606)을 누르고 "나는 잭이야"라고 말한다. 그 음성 입력은 게임 컨트롤러(102)(디바이스 데이터(354))에 저장된 로그인 자격 증명과 비교된다. 만약 PIN 옵션(820-3)이 선택되면, 잭은 게임 컨트롤러(102)상의 방향 패드 및/또는 버튼 중 하나 이상을 사용하여 자신의 PIN을 입력하고, 이것은 게임 컨트롤러(102)에 저장된 로그인 자격 증명과 비교된다. 일부 구현에서, 사용자 잭이 인증된 후, 게임 컨트롤러(102)는 사용자 잭에 대응하는 인증 토큰을 인터페이스 디바이스(102)로 전송하고(도 2a의 단계(204) 참조), 게임 포털 UI는 사용자 잭에 대한 액세스 토큰을 사용하여 시작된다.
일부 구현에서, 게임 포털 UI는 시작될 때 게스트 계정 옵션(예를 들어, "게스트" 플레이어 계정(816))을 포함한다. 일부 구현에서, 게스트 계정은 자격 증명이 게임 컨트롤러(102)에 저장되지 않은 게스트 사용자가 게스트 사용자와 관련된 정보를 입력하도록 허용한다. 일부 구현에서 게스트 계정은 게스트 사용자에게 제한된 계정 권한 및/또는 제한된 옵션(예를 들어, 게스트 사용자는 제한된 수의 게임에 액세스하고, 게스트 사용자는 게임을 소유하지 않으며, 게스트 사용자는 게임을 구매할 수 없음 등)을 제공한다.
도 9a 내지 9f는 일부 구현에 따라 환경(900)에서 2개의 게임 컨트롤러(102-1 및 102-2)와 인터페이스 디바이스(106) 사이의 예시적인 상호 작용을 도시한다. 각각의 게임 컨트롤러(102-1 및 102-2)는 인터페이스 디바이스(106)와 통신 가능하게 연결(예를 들어, 페어링)된다.
일부 구현에서, 게임 세션은 2개의 게임 컨트롤러를 사용하여 하나의 로컬 환경(900)에서 2명의 플레이어에 의해 동시에 수행된다. 이 예에서, 환경(900)은 각각 자신의 게임 컨트롤러를 가진 2 명의 구성원인 줄리아와 잭이 있는 가정 환경이라고 가정한다. 제1 컨트롤러(102-1)는 사용자 "줄리아"에 링크되고 제2 컨트롤러(102-2)는 사용자 "잭"에 링크된다. 줄리아는 도 2와 도 7에서 설명된 단계들을 사용하여 게임 포털 UI를 시작한다.
일부 구현에서, 게임 컨트롤러(102) 및 인터페이스 디바이스 각각은 개별 디바이스 식별 정보 및 클라이언트 인증서에 의해 식별된다. 게임 컨트롤러 식별 정보는 궁극적으로 게임 계정을 사용하여 링크된 사용자를 식별하고 인터페이스 디바이스(106)상의 모든 사용자 특정 컨텐츠를 구동한다.
일부 구현에서, 인터페이스 디바이스(106)는 연결된(예를 들어, 페어링된) 모든 게임 컨트롤러(102)에 대한 게임 애플리케이션(게임 애플리케이션(436))의 인스턴스를 시작하고 그의 디바이스 식별 정보 및 클라이언트 인증서에 의해 개별 게임 컨트롤러를 식별한다.
도 9a는 플레이어 계정(912)("줄리아"), 플레이어 계정(914)("Jackio") 및 플레이어 계정(816)("게스트")을 선택하는 옵션을 갖는 화면(910)을 도시한다. 줄리아는 게임 컨트롤러(102-1)상의 방향 패드(902) 및/또는 버튼(904, 906 및/또는 908)을 사용하여 플레이어 계정(912)("줄리아")을 선택한다. 일부 구현에서, 줄리아는 도 8b에 설명된 단계를 사용하여 그녀의 식별 정보를 인증하도록 프롬프트된다. 일부 구현에서, 줄리아가 자신의 계정을 선택하고 인증 프로세스를 거친 후, 게임 컨트롤러(102-1)는 줄리아에 대응하는 인증 토큰을 인터페이스 디바이스(106)로 전송하고 게임 포털 UI는 줄리아에 대한 액세스 토큰을 사용하여 시작된다.
도 9b는 줄리아의 게임 포털 UI가 시작된 후 디스플레이하는 화면(950)을 도시한다. 게임 포털 UI의 피처들은 도 7a에 설명되어 있다.
도 9c에서, 잭은 자신의 게임 컨트롤러(102-2)상의 버튼을 눌러 줄리아의 세션에 링크한다. 일부 구현에서, 잭은 플레이어 계정(914)("Jackio")을 선택하고 인증 프로세스를 진행한다. 인터페이스 디바이스(106)는 게임 컨트롤러(102-2)도 인터페이스 디바이스(106)와 페어링되었음을 인식하기 때문에, 줄리아의 게임 포털 UI(960)에, 줄리아의 컨트롤러(즉, 게임 컨트롤러(102-1))와 옵션(930 및 932)에 링크하도록 요청하는 경보 창(928)을 표시한다. 만약 잭이 옵션 930("YES")을 선택하면 잭은 줄리아의 게임 세션에 참여한다. 만약 잭이 옵션 932("NO")를 선택하면 잭은 페어링할 다른 인터페이스 디바이스(미도시)를 선택할 수 있다.
일부 구현에서, 제2 플레이어가 제1 플레이어의 게임 세션에 참여할 때, 제1 플레이어는 "호스트"(또는 주 사용자)가 되고 제2 플레이어는 게임 세션의 "게스트"(또는 보조 사용자)가 된다. 서버(예를 들어, 스트리밍 서버(102))는 게임 미디어 컨텐츠를 디스플레이 디바이스(108)로 스트리밍하고, 게임 컨트롤러(102-1) 및 게임 컨트롤러(102-2)로부터 게임 입력을 동시에 수신한다.
일부 구현에서, 다수의 게임 컨트롤러(102)가 인터페이스 디바이스(106)에 연결될 때, 주 사용자의 게임 컨트롤러(즉, 이 인스턴스에서 102-1)만이 게임 포털 UI를 구동하는데 사용된다. 주 사용자는 게임 애플리케이션을 시작하고 그의 컨텐츠가 게임 포털 UI에 의해 표시되는 사용자이다.
일부 구현에서, 게임 세션이 시작될 때까지 호스트 만이 게임 포털 UI를 제어할 수 있다. 일부 구현에서, 게임 세션 동안, 각각의 컨트롤러(102-1 및 102-2)는 독립적으로 입력을 서버 시스템(114)에 전송하고, 각각의 게임 컨트롤러(102-1 및 102-2)는 독립적으로 인터페이스 디바이스(106)와 통신한다.
도 9d 및 9e는 일부 구현에 따라 멀티 플레이어 게임 세션을 종료하는 것을 도시한다. 이 예에서, 게스트 플레이어(즉, 잭)는 게임 컨트롤러(102-2)의 버튼을 눌러(예를 들어, 홈 버튼(608)을 길게 누름) 게임 세션을 종료한다. 게스트 플레이어 입력에 응답하여, 화면(970)은 게스트 플레이어의 종료를 확인하는 메시지(932)를 디스플레이한다. 만약 잭이 (예를 들어, 옵션(934)("YES")를 선택하여) 종료를 확인하면, 잭의 게임 컨트롤러(102-2)의 전원이 꺼진다. 일부 구현에서, 핫 플레이어와 다른 보조 사용자들은 게스트 플레이어가 종료되는 동안 게임 세션을 계속한다. 일부 구현에서, 게임 세션은 호스트(예를 들어, 줄리아)가 여전히 연결되어 있는 한 계속된다.
잭이 게임 세션을 종료한 후, 종종 호스트 플레이어 줄리아는 게임 세션을 종료하기로 결정한다. 그녀는 게임 컨트롤러의 버튼을 눌러 게임 종료를 개시한다. 호스트 플레이어 입력에 응답하여, 호스트 플레이어의 종료를 확인하기 위한 메시지가 화면에 디스플레이된다(미도시). 일부 구현에서, 게임 세션을 종료하기 위한 호스트 플레이어의 확인에 따라, 게임 서버(예를 들어, 서버 시스템(114))는 게임/상태를 저장하고, (예를 들어, 도 7b에서 설명된 단계들에 따라) 게임 서비스를 종료한다. 일부 구현에 따르면, 도 9e에 도시된 바와 같이, 인터페이스 디바이스 (106)는 게임 서비스가 종료된 후 디스플레이 디바이스(108) 상에 배경 디스플레이(980)를 디스플레이한다.
일부 구현에서, 게임 세션은 호스트 플레이어/계정이 게임 세션을 종료하고 및/또는 호스트 게임 컨트롤러의 전원이 꺼진 경우에만 종료된다.
도 9f는 일부 구현에 따라 환경(900)에서 게스트("브랜든(Brandon)") 게임 컨트롤러(102-3)에 대한 설정 프로세스를 나타낸다. 이 예에서, 브랜든은 줄리아와 잭의 집을 방문하고 게임 컨트롤러(102-3)을 가져온다. 그 집에서, 브랜든은 자신의 게임 컨트롤러 "브랜든 1"이 연결이 끊어졌다는 메시지(952)를 그의 모바일 폰(938)상의 동반 애플리케이션(955)(예를 들어, 홈 애플리케이션(612))에서 수신한다. 메시지(952)에는 옵션(953 및 954)도 포함된다. 일부 구현에서, 브랜든은 애플리케이션(955)을 사용하여 게임 컨트롤러(102-3)를 그 집의 로컬 네트워크(예를 들어, 줄리아와 잭의 집의 Wifi 연결)에 연결한다. 일부 구현에서, 브랜든은 애플리케이션(955)을 추가로 사용하여 디폴트 페어링 디바이스(예를 들어, 줄리아와 잭의 집에 있는 인터페이스 디바이스(106))를 선택한다. 일부 구현에서, 디폴트 페어링 디바이스를 선택한 후, 브랜든은 게임 컨트롤러(102-3)의 버튼을 눌러 인터페이스 디바이스(106)와 페어링하고 게임 포털 UI를 시작한다.
도 9f는 계정(940)("벨르(Belle)") 및 계정(942)("브랜든")을 포함하여 브랜든의 게임 컨트롤러(102-3)에 링크된 계정들을 디스플레이하는 화면(990)을 도시한다. 브랜든은 자신의 신원에 해당하는 계정(942)("브랜든")를 선택한다. 이 예에서, 게임 컨트롤러(102-3)가 다른 Wifi 네트워크에 연결되어 있기 때문에, 브랜든은 자신의 신별 정보를 확인하기 위해 계정(942)("브랜든")에 해당하는 PIN(944)을 입력해야 한다. PIN(944)이 브랜든의 저장된 자격 증명과 매칭한다는 게임 컨트롤러(102-3)의 결정에 따라, 게임 컨트롤러는 브랜든에 대한 게임 포털 UI를 시작한다. 일부 구현에서, 줄리아는 도 9b 및 9c에 설명된 단계들을 사용하여 그녀의 컨트롤러(102-1)를 게스트로서 브랜든의 세션에 링크할 수 있다.
도 10a 내지 10b는 일부 구현에 따라, 환경(1000)에서 게임 컨트롤러(102)와 2개의 인터페이스 디바이스(106-1 및 106-2) 사이의 예시적인 상호 작용을 도시한다. 인터페이스 디바이스(106-1 및 106-2)는 각각 디스플레이 디바이스(108-1 및 108-2)에 연결된다. 게임 컨트롤러(102)는 각각의 인터페이스 디바이스(106-1 및 106-2)에 통신 가능하게 연결(예를 들어, 페어링)된다.
일부 구현에서, 인터페이스 디바이스(106-1 및 106-2)는 환경(1000)의 상이한 위치에 위치한다. 이 예에서, 환경(1000)은 가정 환경이고, 인터페이스 디바이스(106-1 및 106-2)는 각각 거실과 침실에 위치한다. 인터페이스 디바이스(106-1)(거실 TV)가 게임 컨트롤러(102)에 대한 디폴트 페어링 디바이스라고 가정한다. 따라서, 게임 애플리케이션이 시작될 때, 디폴트 디스플레이 디바이스(108-1)는 게임 컨트롤러(102)와 연관된 계정(1002)("Julia") 및 계정(1004)("Jackio")를 포함하는 화면(1010)을 디스플레이한다. 비-디폴트 인터페이스 디바이스(즉, 침실 TV (108-2)에 결합된 인터페이스 디바이스(106-2))는 게임 컨트롤러(102)를 인터페이스 디바이스(106-2)에 링크하는 명령을 포함하는 메시지(1006)와 함께 화면(1002)을 표시한다.
도 10b는 게임 컨트롤러(102)가 디폴트 설정에 관계없이 인터페이스 디바이스로의 근접에 기초하여 인터페이스 디바이스와 자동으로 페어링하는 다른 구현을 도시한다. 여기서, 인터페이스 디바이스(106-1)가 게임 컨트롤러(102)의 디폴트 페어링 디바이스임에도 불구하고, 게임 컨트롤러(102)는 근접한 하나 이상의 인터페이스 디바이스(들)(예를 들어, 106-1 및 106-2)를 검출하고 가장 근접한 인터페이스 디바이스(즉, 106-2)와 페어링한다.
일부 구현에서, 게임 컨트롤러(102)는 라디오(330)를 사용하여 활성화된 하나 이상의 통신 네트워크(예를 들어, Whispernet, BLE 및/또는 Wifi)를 사용하여, 인터페이스 디바이스(106-1 및 106-2)에 대한 근접을 감지하고 게임 컨트롤러 (102)에 더 근접한 인터페이스 디바이스와 페어링한다. 예를 들어, 게임 컨트롤러 (102)는 게임 컨트롤러(102)로부터 전송되는 신호들(1012 및 1014)(예를 들어, Whispernet, BLE 및/또는 Wifi)를 사용하여 인터페이스 디바이스(106-2)보다 인터페이스 디바이스(106-1)에 더 근접하다고 결정한다. 게임 컨트롤러(102)는 이 결정에 따라 가장 근접한 디바이스(106-2)와 페어링한다.
대안적으로, 일부 구현에서, 게임 컨트롤러(102)와 개별 인터페이스 디바이스(106) 사이의 근접은 각각의 인터페이스 디바이스상의 하나 이상의 마이크로폰(예를 들어, 마이크로폰(414))을 사용하여 각각의 인터페이스 디바이스에 의해 결정된다. 예를 들어, 도 10b를 참조하면, 인터페이스 디바이스(106-2)의 마이크로폰(414)은 사용자가 방에 들어갔음을 나타내는 오디오 입력을 수신하고, 이에 따라 인터페이스 디바이스(106-2)는 게임 컨트롤러(102)에 페어링에 대한 존재 및 가용성을 노출시킨다.
일부 구현에서, 도 10b에 도시된 바와 같이, 게임 컨트롤러(102)와의 페어링에 응답하여, 인터페이스 디바이스(106-2)는 디스플레이 디바이스(108-2)를 활성화하고 (예를 들어, CEC를 사용하여) 정확한 입력으로 전환한다. 또한, 인터페이스 디바이스(106-2)는 게임 컨트롤러(102)에 링크된 계정(1016)("Julia") 및 계정 (1016)("Jackio")을 포함하는 화면(1040)을 디스플레이한다. 디폴트 인터페이스 디바이스(106-1)는 게임 컨트롤러(102)와 페어링되지 않으므로 디스플레이 디바이스(108-1)는 빈(블랭크) 화면(1030)을 표시한다.
도 11a 내지 11d는 일부 구현에 따라 게임 플레이 동안 디스플레이를 전환하기 위해 게임 컨트롤러(102)와 2개의 인터페이스 디바이스(106-1 및 106-2) 사이의 또 다른 예시적인 상호 작용을 도시한다.
이 예에서, 잭은 게임 컨트롤러(102)를 사용하여 거실에서 "자동차 경주" 게임을 하고 있다. 도 11a에 도시된 바와 같이, 거실 TV(108-1)는 게임의 장면(1110)을 디스플레이하고 침실 TV(108-2)는 빈 화면(1120)을 표시한다.
잭은 침실로 게임을 이동하기로 결정한다. 도 11b에 도시된 바와 같이, 잭은 (예를 들어, 게임 컨트롤러(102)의 버튼들(314) 중 하나를 누름으로써) 거실 TV(108-1)상의 게임을 일시 중지한다. 화면(1110)은 게임이 일시 중지되었음을 나타내는 창(1106)을 표시한다. 일부 구현에서, 잭은 제2 버튼을 누눌러 다른 디스플레이 옵션을 포함하는 메뉴(1104)에 액세스한다. 이 예에서, 잭은 옵션(1104-1)("침실 TV")을 선택한다. 일부 구현에서, 다른(즉, 침실) 디스플레이에 대한 잭의 선택에 응답하여, 거실 TV(108-1)에 연결된 인터페이스 디바이스(106-1)는 게임 서비스를 종료하고 각각의 디스플레이 디바이스(108-1)는 배경(1130)을 디스플레이한다(도 11c 참조).
도 11c는 잭이 게임 컨트롤러(102)를 가지고 침실로 이동한 것을 보여준다. 일부 구현에서, 게임 컨트롤러(102)는 (예를 들어, 도 10b의 구현에 따라) 가장 근접한 인터페이스 디바이스(106-2)와 자동으로 페어링된다. 그 페어링에 응답하여, 인터페이스 디바이스(106-2)는 디스플레이 디바이스(108-2)를 활성화하고 (예를 들어, CEC를 사용하여) 정확한 입력으로 전환한다. 게임 서비스는 화면(1140)에 표시된 바와 같이, 일시 중지된 상태에서 게임을 시작하고 재개한다. 잭은 게임의 일시 중지를 해제하고 게임 플레이를 재개한다. 이러한 모든 동작은 사용자의 방해를 최소화하면서 쉽고 원활하게 수행된다.
대안적으로, 도 11d에 도시된 바와 같이, 사용자는 음성 활성화를 사용하여 환경(1100) 내의 다른 위치로 게임 플레이를 이동할 수 있다. 이 인스턴스에서 잭이 게임 컨트롤러(102)를 가지고 침실로 들어간 후, 잭은 게임 컨트롤러(102)의 버튼(예를 들어, 어시스턴트 버튼(606))을 눌러 게임 컨트롤러(102)상의 하나 이상의 마이크로폰(예를 들어, 마이크로폰(312))을 활성화할 수 있다. 잭은 음성 명령(1118)("침실 TV에 자동차 경주 재생")을 발화한다. 일부 구현에서, 음성 명령에 응답하여, 게임 컨트롤러(102)는 (예를 들어, 음성 어시스턴트 모듈(370)을 사용하여) 명령을 파싱하고, "침실 TV"를 디스플레이 옵션 중 하나로서 식별하고, "침실 TV"(108-2)와 결합된 인터페이스 디바이스(106-2)와 페어링한다. 일부 구현에서, 음성 명령은 서버 시스템(114)에서의 처리를 위해 (인터페이스 디바이스(106-2)를 통해) 서버 시스템(114)으로 전송된다.
부가적으로, 다양한 도면 및 구현으로 설명된 바와 같이, 게임 컨트롤러(102), 전자 디바이스(104), 및/또는 인터페이스 디바이스(106)에 통신 가능하게 연결될 수 있는 다른 전자 디바이스를 사용하여, 사용자, 네트워크 및 디바이스에 대해 알고 있는 "환경 그래프"(예를 들어, 가정 환경의 경우 홈 그래프)를 만들 수 있다. 일부 구현에서, 게임 컨트롤러(102)는 그래프를 사용하여 사용자, 디바이스 및 연결할 수 있는 디스플레이를 식별할 수 있다.
도 12a 내지 12c는 일부 구현에 따른 클라우드 게임을 위한 방법(1200)의 흐름도 표현이다. 방법(1200)은 하나 이상의 프로세서 및 그 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 제1 전자 디바이스(예를 들어, 도 4의 인터페이스 디바이스(106))에서 구현된다. 일부 구현에서, 방법(1200)은 (1) 하나 이상의 인터페이스 디바이스(106); (2) 하나 이상의 게임 컨트롤러(102); (3) 하나 이상의 전자 디바이스(104); (4) 서버 시스템(114)과 같은 하나 이상의 서버 시스템; 또는 (5) 이들의 조합에 의해 수행된다. 일부 구현에서, 방법(1200)은 비-일시적 컴퓨터 판독 가능 저장 매체에 저장되고, 게임 컨트롤러(102)의 하나 이상의 프로세서(302), 및/또는 인터페이스 디바이스(106)의 하나 이상의 프로세서(402) 및/또는 서버 시스템(114)의 하나 이상의 프로세서(502)와 같은 디바이스/컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행되는 명령들에 의해 관리된다. 편의를 위해, 아래에 설명된 특정 동작들은 디스플레이 디바이스(108)(예를 들어, TV, 컴퓨터 모니터)에 결합된 인터페이스 디바이스(106)에 의해 수행되는 것으로 설명된다.
인터페이스 디바이스(106)는 제1 전자 디바이스에 근접한 제2 전자 디바이스로부터 클라우드 게임 세션을 시작하기 위한 제1 사용자 입력을 수신한다(1202). 인터페이스 디바이스(106)와 제2 전자 디바이스는 공통 네트워크(예를 들어, 로컬 네트워크(110, 140 및/또는 150))에서 통신 가능하게 연결된다.
일부 구현에서, 제2 전자 디바이스는(1204) 게임 컨트롤러(예를 들어, 게임 컨트롤러(102))이다. 일부 구현에서, 제1 사용자 입력은 게임 컨트롤러(102)상의 버튼(예를 들어, 버튼들(314) 중 하나)의 선택을 포함한다.
일부 구현에서, 게임 컨트롤러(102)는 초기 파워 오프/대기 모드에 있고, 제1 사용자 입력은 게임 컨트롤러(102)에 대한 전원을 켠다. 일부 구현에서, 게임 컨트롤러(102)는 전원이 켜진 후 자동으로 로컬 네트워크(예를 들어, Wifi 네트워크)에 연결된다. 일부 구현에서, 게임 컨트롤러는 로컬 네트워크에 연결한 후 (디폴트) 인터페이스 디바이스(106)와 자동으로 페어링한다.
일부 구현에서, 인터페이스 디바이스(106)는 캐스팅 디바이스 및/또는 미디어 스트리밍 디바이스이다. 일부 구현에서, 인터페이스 디바이스(106)는 하드웨어 동글이다.
일부 구현에서, 제2 전자 디바이스는 스마트 폰, 태블릿 디바이스, 랩탑 및 컴퓨터(예를 들어, 도 1의 전자 디바이스등(104)) 중 하나이다. 일부 구현에서, 제2 전자 디바이스는 하나 이상의 표준화된 게임 컨트롤러 구성을 구현하기 위한 가상 컨트롤러 애플리케이션을 포함한다.
일부 구현에서, 디스플레이 디바이스(108)는 파워 오프 상태에 있다(1228). 이 인스턴스에서, 제1 사용자 입력을 수신하는 것에 응답하여, 인터페이스 디바이스(106)는 디스플레이 디바이스를 파워 온하고(1230), 사용자 개입 없이 자동으로 제1 전자 디바이스에 결합된 디스플레이 디바이스의 입력 포트(예를 들어, HDMI 포트)를 자동으로 선택하고(1232), 이에 의해 인터페이스 디바이스(106)의 출력이 (예를 들어, CEC를 사용하여) 디스플레이 디바이스(108) 상에 디스플레이되게 한다.
제1 사용자 입력의 수신하는 것에 응답하여, 인터페이스 디바이스(106)는 게임 서버의 게임 서비스에 연결한다(1208). 일부 구현에서, 게임 서비스에 연결하는 것은 게임 포털 사용자 인터페이스를 시작하는 것을 포함한다. 일부 구현에서, 게임 포털 사용자 인터페이스를 실행하는 것은 도 2a에 설명된 프로세스에 따른다.
인터페이스 디바이스(106)는 사용자 개입 없이 사용자와 관련된 디폴트 플레이어 식별 정보를 자동으로 식별한다(1210). 일부 구현에서, 디폴트 플레이어 식별 정보는 제2 전자 디바이스의 디폴트 사용자이다. 일부 구현에서, 제2 전자 디바이스는 단일 사용자(예를 들어, 도 7의 1인 사용자 가정에 있는)와 연관되고 디폴트 플레이어 식별 정보는 단일 사용자이다. 일부 구현에서, 제2 전자 디바이스는 둘 이상의 사용자와 연관되고, 디폴트 플레이어 식별 정보는 설정 동안(예를 들어, 도 6에 도시된 프로비저닝 프로세스 동안) 확립된다. 일부 구현에서, 디폴트 플레이어 식별 정보는 제2 전자 디바이스에 저장된다(예를 들어, 게임 컨트롤러(102)에 저장됨).
인터페이스 디바이스(106)는 게임 서버와 함께, 디폴트 플레이어 식별 정보를 사용하여 클라우드 게임 세션을 시작한다(1212). 일부 구현에서, 인터페이스 디바이스(106)는 제2 사용자 입력(예를 들어, 사용자가 게임 컨트롤러(102)상의 제2 버튼을 누름)에 응답하여 클라우드 게임 세션을 시작한다.
일부 구현에서, 사용자 입력은 게임 선택을 포함한다(1204). 일부 구현에서, 게임 선택은 게임 컨트롤러(102)상의 하나 이상의 버튼(예를 들어, 버튼(314)) 및/또는 방향 패드(예를 들어, 방향 패드(들)(315)) 및/또는 조이스틱(예를 들어, 조이스틱(316))을 사용하여 이루어진다. 일부 구현에서, 게임 선택은 제2 전자 디바이스상의 키보드, 마우스, 가상 버튼, 가상 방향 패드, 및/또는 가상 조이스틱 중 하나 이상을 사용하여 이루어진다.
일부 구현에서, 게임 선택에 따라, 인터페이스 디바이스(106)는 게임 서버(예를 들어, 게임 서버 시스템(114))로부터 게임의 게임 미디어 스트림을 획득하고(1214), 게임 미디어 스트림을 디코딩하고(1216), 디코딩된 게임 미디어 스트림을 디스플레이 디바이스(108)로 출력하는데(1218), 여기서 게임 미디어 스트림은 게임 세션을 시작할 때(1212) 제2 전자 디바이스로부터 게임 서버로 직접 전송된 게임 입력에 응답하여 게임 서버에 의해 생성된다. 일부 구현에서, 인터페이스 디바이스(106)는 서버 인터페이스 모듈(440)을 통해 및/또는 도 2b에 설명된 프로세스를 사용하여 게임의 게임 미디어 스트림을 획득한다.
일부 구현에서, 게임 세션 동안, 인터페이스 디바이스(106)는 제2 전자 디바이스로부터, 세션을 종료하라는 사용자의 요청을 수신한다(1220).
일부 구현에서, 이 요청에 응답하여, 인터페이스 디바이스(106)는 디스플레이 화면에, 종료 요청을 확인하는 메시지를 디스플레이한다. 일부 구현에서, 인터페이스 디바이스(106)는 종료 요청을 확인하는 제2 입력을 수신한다. 그 확인에 따라, 인터페이스 디바이스(106)는 종료 요청을 서버 시스템(114)으로 전송하여, 서버 시스템(114)이 게임 상태를 (예를 들어, 데이터베이스(들)(122)에) 저장하게 한다.
일부 구현에서, 인터페이스 디바이스(106)는 (예를 들어 게임 서버(114)로부터) 클라우드 게임 세션이 저장되었다는 표시를 수신한다(1222). 이 표시에 따라, 인터페이스 디바이스(106)는 게임 서비스를 종료(1224)하고, 디스플레이 디바이스(108)에 디폴트 화면 디스플레이(예를 들어, 도 7c의 배경 화면(730))를 디스플레이한다(1226). 일부 구현에 따라, 인터페이스 디바이스(106)는 종료 요청을 거부하는 제2 사용자 입력(예를 들어, 사용자는 도 8b의 옵션(722)("NO/BACK")을 선택함)을 수신한다. 종료 요청을 거부하는 제2 사용자 입력에 따라, 게임 세션이 재개/계속된다.
일부 구현에서, 인터페이스 디바이스(106)는 제3 전자 디바이스로부터 페어링 통지를 수신한다(1234). 일부 구현에서, 제3 전자 디바이스는 게임 컨트롤러(102)와 구별되는 제2 게임 컨트롤러(예를 들어, 도 9f의 게임 컨트롤러(102-3))이다.
일부 구현에서, 페어링 통지에 따라, 인터페이스 디바이스(106)는 디스플레이 디바이스(108) 상에, 각각의 플레이어 식별 정보가 제3 전자 디바이스와 연관된(예를 들어, 그에 링크된) 복수의 플레이어 식별 정보를 포함하는 로그인 화면을 디스플레이한다(1236).
일부 구현에서, 인터페이스 디바이스(106)는 제3 전자 디바이스로부터, 플레이어 식별 정보들 중 제1 플레이어 식별 정보에 대한 선택을 수신한다(1238).
일부 구현에서, 인터페이스 디바이스(106)는 디스플레이 디바이스(108) 상에, 제1 플레이어 식별 정보와 연관된 화면을 디스플레이한다(1240). 일부 구현에서, 제3 전자 디바이스는 로컬 네트워크와 구별되는 제2 로컬 네트워크와 연관된다. 이 경우, 제1 플레이어 식별 정보의 선택은 (예를 들어, 도 9f에 예시된 바와 같이) 제1 플레이어 식별 정보와 연관된 패스워드를 입력하라는 요청을 포함하고, 제1 플레이어 식별 정보와 연관된 화면의 디스플레이는 그 패스워드가 제3 전자 디바이스(102-3)에 저장된 패스워드와 매칭된다는 결정에 따른 것이다.
일부 구현에서, 인터페이스 디바이스(106)는 제2 전자 디바이스를 제3 전자 디바이스와 링크함으로써(1242), 제2 전자 디바이스 및 제3 전자 디바이스가 선택된 게임을 함께 플레이하게 한다. 도 9의 예에 예시된 바와 같이, 브랜든과 줄리아는 둘 다 제1 전자 디바이스(즉, 인터페이스 디바이스(106))를 사용하여 게임 세션에서 함께 플레이하고 그들 각각의 컨트롤러를 통해 별도의 개별 게임 명령을 전송한다.
일부 구현에서, 제2 전자 디바이스는 게스트 디바이스이고(1244), 제3 전자 디바이스는 게임 세션의 호스트 디바이스이다. 일부 구현에서, 다수의 게임 컨트롤러(102)가 인터페이스 디바이스(106)에 연결될 때, 주 사용자(즉, 호스트 디바이스의 사용자)의 게임 컨트롤러 만이 게임 포털 UI를 구동하는데 사용된다. 일부 구현에서, 주 사용자(즉, 호스트 디바이스의 사용자)는 게임 애플리케이션을 시작하고 그 컨텐츠가 게임 포털 UI에 표시되는 사용자이다.
일부 구현에 따르면, 컴퓨팅 시스템(예를 들어, 인터페이스 디바이스(106))은 하나 이상의 프로세서; 및 하나 이상의 프로세서에 결합된 메모리를 포함하고, 메모리는 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램은 위의 방법들 및/또는 동작들 중 임의의 것을 수행하기 위한 명령들을 포함한다.
일부 구현에 따르면, (예를 들어, 메모리(406) 내의) 비-일시적 컴퓨터 판독 가능 저장 매체는 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램은 컴퓨팅 시스템에 의해 실행될 때 시스템으로 하여금 위의 방법들 및/또는 동작들 중 임의의 것을 수행하게 하는 명령들을 포함한다.
도 13a 내지 13e는 일부 구현에 따른 클라우드 게임을 위한 방법(1300)의 흐름도 표현이다. 방법(1300)은 하나 이상의 프로세서 및 그 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 갖는 제1 전자 디바이스(예를 들어, 도 4의 인터페이스 디바이스(106))에서 구현된다. 일부 구현에서, 방법(1200)은 (1) 하나 이상의 인터페이스 디바이스(106); (2) 하나 이상의 게임 컨트롤러(102); (3) 하나 이상의 전자 디바이스(104); (4) 서버 시스템(114)과 같은 하나 이상의 서버 시스템; 또는 (5) 이들의 조합에 의해 수행된다. 일부 구현에서, 방법(1300)은 비-일시적 컴퓨터 판독 가능 저장 매체에 저장되고, 게임 컨트롤러(102)의 하나 이상의 프로세서(302), 및/또는 인터페이스 디바이스(106)의 하나 이상의 프로세서(402) 및/또는 서버 시스템(114)의 하나 이상의 프로세서(502)와 같은 디바이스/컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행되는 명령들에 의해 관리된다. 편의상, 아래에 설명된 특정 동작들은 디스플레이 디바이스(108)(예를 들어, TV, 컴퓨터 모니터)에 결합된 인터페이스 디바이스(106)에 의해 수행되는 것으로 설명된다.
인터페이스 디바이스(106)는 제1 전자 디바이스에 근접한 제2 전자 디바이스로부터 클라우드 게임 세션을 시작하기 위한 제1 사용자 입력을 수신하고(1302), 여기서 제1 사용자 입력은 게임 선택을 포함한다. 인터페이스 디바이스(106)와 제2 전자 디바이스는 공통 네트워크에서 통신 가능하게 연결된다. 일부 구현에서, 제2 전자 디바이스는(1204) 게임 컨트롤러(예를 들어, 게임 컨트롤러(102))이다. 일부 구현에서, 제1 사용자 입력은 게임 컨트롤러(102)상의 버튼(예를 들어, 버튼들(314) 중 하나)의 선택을 포함한다.
인터페이스 디바이스(106)는 제1 사용자 입력을 수신하는 것에 응답하여 게임 서버의 게임 서비스에 연결한다(1306). 일부 구현에서, 게임 서비스에 연결하는 것은 게임 포털 사용자 인터페이스를 시작하는 것을 포함한다. 일부 구현에서, 게임 포털 사용자 인터페이스를 시작하는 것은 도 2a에 설명된 프로세스에 따른다.
인터페이스 디바이스(106)는 사용자 개입 없이 자동으로 디스플레이 디바이스에 복수의 플레이어 식별 정보를 포함하는 로그인 화면을 표시한다(1308). 일부 구현에서, 복수의 플레이어 식별 정보 각각은 제2 전자 디바이스의 개별 사용자에 대응한다(1312). 일부 구현에서, 제2 전자 디바이스는 다수의 플레이어(사용자)에 의해 사용되며, 복수의 플레이어 식별 정보는 제2 전자 디바이스가 연관된(즉, 링크된) 복수의 플레이어에 대응한다. 일부 구현에서, 복수의 플레이어 식별 정보는 개별 플레이어 이름(또는 사용자 이름) 및/또는 개별 플레이어의 시각적 표현(예를 들어, 플레이어의 사진, 이미지 및/또는 아바타)을 포함한다.
일부 구현에서, 제2 전자 디바이스는 디바이스 식별 정보 및/또는 클라이언트 인증서에 의해 식별된다. 일부 구현에서, 제2 전자 디바이스는 제2 전자 디바이스의 사용자에 각각 대응하는 복수의 플레이어 식별 정보에 링크된다. 일부 구현에서, 각 플레이어 식별 정보는 디바이스 식별 정보 및/또는 클라이언트 인증서와 연관(예를 들어, 링크 됨)된다.
인터페이스 디바이스(106)는 제2 전자 디바이스로부터, 복수의 플레이어 식별 정보로부터 제1 플레이어 식별 정보에 대한 선택을 수신한다(1314).
일부 구현에서, 제2 전자 디바이스는 복수의 사용자 로그인 자격 증명을 저장하고(1304), 각 사용자 로그인 자격 증명은 개별 플레이어 식별 정보에 대응한다. 일부 구현에서 사용자 로그인은 자격 증명은 게임 서버(예를 들어, 서비스 시스템(114)의 데이터베이스(들)(122))에 동시에 저장된다. 일부 구현에서, 제2 전자 디바이스는 또한 복수의 네트워크 로그인 자격 증명을 저장한다. 일부 구현에서, 저장된 네트워크 자격 증명 각각은 제2 전자 디바이스가 통신 가능하게 연결되었던 개별 로컬 네트워크에 대응한다.
일부 구현에서, 제1 플레이어 식별 정보의 선택을 수신한 후(단계(1310) 참조), 인터페이스 디바이스(106)는 사용자와 관련된 (인터페이스 디바이스(106)에 근접하는) 모바일 폰; 사용자의 음성 입력 및 패스워드 입력 중 하나 이상을 이용하여 사용자의 식별 정보를 획득한다(1314). 일부 구현에서, 사용자의 식별 정보를 획득하는 것은 제2 전자 디바이스상의 보안 피처(예를 들어, 게임 컨트롤러(102)의 보안 모듈(368))의 활성화에 응답하여 이루어진다. 일부 구현에서, 인터페이스 (106)는 모바일 폰을 사용하여 사용자의 식별 정보를 획득하기 위해 근접/검출 유닛(410)을 사용한다.
일부 구현에서, 인터페이스 디바이스(106)는 획득된 사용자 식별 정보와 (예를 들어,도 8b에 대해 설명된 바와 같이) 복수의 저장된 사용자 로그인 자격 증명사이의 매칭을 식별한다(1316).
일부 구현에서, 인터페이스 디바이스(106)는 매칭에 기초하여 제1 플레이어 식별 정보를 선택한다(1318).
인터페이스 디바이스(106)는 선택된 제1 플레이어 식별 정보를 사용하여 게임 서비스에 로그인한다(1320).
인터페이스 디바이스(106)는 게임 서버와 함께 클라우드 게임 세션을 시작하고(1322) 게임 플레이를 개시한다.
인터페이스 디바이스(106)는 게임 서버로부터(예를 들어, 서버 시스템(114)으로부터) 게임의 게임 미디어 스트림을 획득한다(1324).
인터페이스 디바이스(106)는 게임 미디어 스트림을 디코딩한다(1326).
인터페이스 디바이스(106)는 디코딩된 게임 미디어 스트림을 디스플레이 디바이스(108)로 출력하고(1328), 여기서 게임 미디어 스트림은 제2 전자 디바이스로부터 게임 서버로 직접 전송된 게임 입력에 응답하여 게임 서버에 의해 생성된다.
일부 구현에서, 게임 세션 동안, 인터페이스 디바이스(106)는 제3 전자 디바이스가 공통 네트워크를 통해 인터페이스 디바이스(106)에 통신 가능하게 결합된다는 표시를 수신한다(1330).
일부 구현에서, 인터페이스 디바이스(106)는 제3 전자 디바이스를 제2 전자 디바이스와 링크하라는 요청을 포함하는 제2 로그인 화면을 디스플레이 디바이스(108)에 디스플레이한다(1332). 도 9의 예를 참조하면, 줄리아는 게임 컨트롤러(102-1)를 사용하여 게임 포털 UI를 시작하고, 잭은 그의 컨트롤러(102-2)를 줄리아의 게임 세션에 링크하라는 요청을 전송한다. 줄리아는 자신의 로그인 화면(960)에서, 자신의 게임 컨트롤러(102-1) 및 게임 세션에 링크하도록 요청하는 메시지(928)를 수신한다.
일부 구현에서, 인터페이스 디바이스(106)는 캐스팅 디바이스(또는 미디어 스트리밍 디바이스)이고, 제2 전자 디바이스는 제1 게임 컨트롤러(예를 들어, 도 9의 게임 컨트롤러(102-1))이고, 제3 전자 디바이스는 제2 게임 컨트롤러(예를 들어, 도 9의 게임 컨트롤러(102-2))이다(1334).
일부 구현에서, 제2 전자 디바이스는 게임 세션의 호스트이고, 제3 전자 디바이스는 게임 세션의 게스트이다(1336).
일부 구현에서, 인터페이스 디바이스(106)는 요청에 대한 응답을 제3 전자 디바이스로부터 수신한다(1337). 다시 도 9의 예로 돌아가면, 인터페이스 디바이스는 제3 전자 디바이스를 제2 전자 디바이스와 링크하라는 요청에 응답하여 제3 컨트롤러(즉, 잭의 게임 컨트롤러(102-2))로부터 응답을 수신한다. 일부 구현에서, 응답이 승인을 나타낸다는 결정(즉, 잭이 옵션(935)("YES")을 선택함)에 따라, 인터페이스 디바이스(106)는 제3 전자 디바이스를 제2 전자 디바이스와 링크하여(1338), 제2 전자 디바이스 및 제3 전자 디바이스가 선택된 게임을 함께 플레이하도록 한다. 일부 구현에서, 링크하는 것(링킹)에 따라, 제2 전자 디바이스와 제3 전자 디바이스는 각각의 게임 입력을 게임 서버(즉, 서버 시스템(114))로 직접 그리고 독립적으로 전송한다. 일부 구현에서, 링크하는 것에 따라, 제2 전자 디바이스와 제3 전자 디바이스는 명령의 개별 서브 세트를 인터페이스 디바이스(106)로 직접 그리고 독립적으로 송신한다. 일부 구현에서, 제2 전자 디바이스는 링킹 프로세스 동안 게임 플레이를 계속한다.
일부 구현에서, 인터페이스 디바이스(106)는 복수의 인터페이스 디바이스(즉, 환경이 하나 이상의 인터페이스 디바이스를 포함함) 중 제1 인터페이스 디바이스이고, 제1 전자 디바이스 각각은 공통 네트워크를 통해 서로 통신 가능하게 결합되고, 인터페이스 디바이스 각각은 개별 디스플레이 디바이스에 결합된다(1339).
일부 구현에서, 응답이 거부(즉, 잭이 도 9c에서 옵션(930)("NO")을 선택 함)를 나타낸다는 결정(1340)에 따라, 인터페이스 디바이스(106)는 디스플레이 디바이스에, 공통 네트워크의 복수의 인터페이스 디바이스를 디스플레이한다(1342).
일부 구현에서, 인터페이스 디바이스(106)는 제3 전자 디바이스로부터, 복수의 제1 전자 디바이스 중 제2 전자 디바이스의 선택을 수신한다(1344). 도 9c의 예를 다시 돌아가서, 잭이 옵션(930)("NO")을 선택하면 그는 디스플레이에서 페어링할 다른 인터페이스 디바이스를 선택할 수 있다. 그 선택에 따라, 잭은 자신의 게임 컨트롤러를 인터페이스 디바이스들 중 제2 인터페이스 디바이스(예를 들어, 인터페이스 디바이스(106-2))와 페어링하여, 선택된 게임을 인터페이스 디바이스 (106-2)와 결합된 디스플레이 디바이스상에 스트리밍한다. 잭의 게임 입력은 인터페이스 디바이스(106-2)를 사용하여 서버 시스템(114)으로 직접 전송된다.
일부 구현에서, 게임 플레이 동안, 인터페이스 디바이스(106)는 제3 전자 디바이스로부터 게임 세션을 종료하라는 요청을 수신한다(1346).
일부 구현에서, 요청 수신하는 것에 따라, 인터페이스 디바이스(106)는 제3 전자 디바이스가 게임 세션을 종료하도록 하고(1348), 여기서 종료하는 동안 게임 미디어 스트림은 제2 전자 디바이스로부터 게임 서버로 직접 전송된 게임 입력에 응답하여 게임 서버에 의해 계속 생성된다. 일부 구현에서, 제2 전자 디바이스는 종료 동안 게임 플레이를 계속한다. 일부 구현에서, 종료 요청에 응답하여, 디스플레이 디바이스(108)는 (예를 들어, 도 9d에 도시된 바와 같이) 종료 요청의 확인을 요청하는 메시지를 표시하고, 요청의 확인시 제3 전자 디바이스가 종료되도록 한다.
일부 구현에서, 인터페이스 디바이스(106)는 제2 전자 디바이스로부터 세션을 종료하라는 제2 요청을 수신한다(1350).
일부 구현에서, 수신된 제2 요청에 따라, 인터페이스 디바이스(106)는 게임 서버로부터 세션이 저장되었다는 표시를 수신한다(1352).
일부 구현에서, 인터페이스 디바이스(106)는 게임 서비스를 종료한다(1354).
일부 구현에서, 제2 전자 디바이스는 호스트 디바이스이다. 따라서, 제2 요청에 응답하여 서버 시스템(114)은 게임 상태를 저장하고 게임 서비스를 종료한다.
일부 구현에서, 인터페이스 디바이스(106)는 호스트 디바이스와 연관된 제1 플레이어 계정이 게임 세션을 종료하고 및/또는 호스트 디바이스의 전원이 꺼졌음을 결정하고(1356), 인터페이스 디바이스(106)는 그 결정에 따라 게임 서비스를 종료한다.
일부 구현에서, 인터페이스 디바이스(106)는 디스플레이 디바이스 상에 디폴트 화면 디스플레이를 디스플레이한다(1358). 일부 구현에서, 서버 시스템(114)이 게임 서비스를 종료한 후, 디스플레이 디바이스(108)는 디폴트 배경 화면(예를 들어, 도 9e의 화면(980))을 디스플레이한다.
일부 구현에 따르면, 컴퓨팅 시스템(예를 들어, 인터페이스 디바이스(106))은 하나 이상의 프로세서(예를 들어, 프로세서(들)(402)); 및 하나 이상의 프로세서에 결합된 메모리(예를 들어, 메모리(406))를 포함하고, 메모리는 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램은 위의 방법 및/또는 동작들 중 임의의 것을 수행하기 위한 명령들을 포함한다.
일부 구현에 따르면, (예를 들어, 메모리(406) 내의 )비-일시적 컴퓨터 판독 가능 저장 매체는 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램은 컴퓨팅 시스템에 의해 실행될 때 그 시스템으로 하여금 위의 방법들 및/또는 동작들 중 임의의 것을 수행하게 하는 명령들을 포함한다.
도 14a 및 14b는 일부 구현에 따른 클라우드 게임을 위한 방법(1400)의 흐름도 표현이다. 방법(1400)은 하나 이상의 프로세서 및 그 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 갖는 제2 전자 디바이스(예를 들어, 도 3의 게임 컨트롤러(102))에서 구현된다. 일부 구현에서, 방법(1200)은 (1) 하나 이상의 게임 컨트롤러(102); (2) 하나 이상의 인터페이스 디바이스(106); (3) 하나 이상의 전자 디바이스(104);(4) 서버 시스템(114)과 같은 하나 이상의 서버 시스템; 또는(5) 이들의 조합에 의해 수행된다. 일부 구현에서, 방법(1400)은 비-일시적 컴퓨터 판독 가능 저장 매체에 저장되고 게임 컨트롤러(102)의 하나 이상의 프로세서(302), 및/또는 인터페이스 디바이스(106)의 하나 이상의 프로세서(402), 및/또는 서버 시스템(114)의 하나 이상의 프로세서(502)와 같은 디바이스/컴퓨팅 시스템의 하나 이상의 프로세서에 의해 실행되는 명령들에 의해 관리된다. 편의상, 아래에 설명된 특정 동작들은 게임 컨트롤러(102)에 의해 수행되는 것으로 설명된다.
게임 컨트롤러(102)는 게임 세션을 시작하기 위한 제1 입력을 복수의 제1 전자 디바이스(예를 들어, 인터페이스 디바이스(106))로 전송(1402)하는데, 제2 전자 디바이스는 공통 네트워크상의 제1 전자 디바이스 각각에 통신 가능하게 연결되고, 제1 전자 디바이스 각각은 개별 디스플레이 디바이스에 결합된다.
게임 컨트롤러(102)는 제1 전자 디바이스들 중 첫 번째 전자 디바이스(예를 들어, 도 10의 인터페이스 디바이스(106-1))가 사용자 개입 없이 자동으로 제1 디스플레이 디바이스에, 제1 입력에 응답하여 복수의 플레이어 식별 정보를 포함하는 로그인 화면을 디스플레이하도록 한다(1406).
게임 컨트롤러(102)는 제1 전자 디바이스들 중 두 번째 전자 디바이스가 사용자 개입 없이 자동으로 제2 디스플레이 디바이스에 명령들을 포함하는 통지를 디스플레이하도록 한다(1414).
게임 컨트롤러(102)는 제1 전자 디바이스들 중 첫 번째 전자 디바이스로 제2 입력을 전송하는데(1416), 제2 입력은 복수의 플레이어 식별 정보로부터 제1 플레이어 식별 정보의 선택을 포함한다.
게임 컨트롤러(102)는 제2 입력에 응답하여 제1 전자 디바이스들 중 첫 번째 전자 디바이스에서 게임 세션을 시작한다(1418).
도 10a의 예와 같은 일부 구현에서, 제1 전자 디바이스들 중 첫 번째 전자 디바이스(예를 들어, 인터페이스 디바이스(106-1))는 게임 컨트롤러(102)의 디폴트 페어링 디바이스이다. 이 예에 따르면, 디폴트 거실 디스플레이(108-1)는 게임 포털 UI를 표시하고, 비-디폴트 디스플레이(즉, 침실 TV(108-2))는 디스플레이 디바이스(108)에 링크하는 방법에 대한 지침과 함께 메시지(예를 들어, 메시지 1006)를 디스플레이한다.
일부 구현에서, 제1 전자 디바이스의 첫 번째 전자 디바이스는 가장 최근의 게임 세션에서 사용된 디바이스이다.
일부 구현에서, 제1 전자 디바이스 각각은 오디오 인터페이스(예를 들어, 인터페이스 디바이스(106)의 마이크로폰(414))를 포함한다(1404). 게임 컨트롤러 (102)는 각각의 제1 전자 디바이스가 개별 오디오 인터페이스를 통해 제2 전자 디바이스의 사용자로부터 오디오 입력을 수신하게 한다(1408). 게임 컨트롤러(102)는 수신된 오디오 입력에 따라 게임 컨트롤러(102)에 가장 근접한 제1 전자 디바이스들 중 첫 번째 전자 디바이스를 결정한다(1410). 그 결정에 따라, 게임 컨트롤러(102)는 제1 전자 디바이스들 중 첫 번째 전자 디바이스가 제2 전자 디바이스와 페어링되도록 한다(1412).
일부 구현에서, 게임 컨트롤러(102)는 통신 인터페이스(들)(304) 및/또는 근접 검출 유닛(334)을 사용하여 게임 컨트롤러(102)에 가장 근접한 제1 전자 디바이스들 중 첫 번째 전자 디바이스를 결정한다. 일부 구현에서, 게임 컨트롤러(102)는 Whispernet, 블루투스 저 에너지(BLE) 또는 Wifi를 사용하여 가장 근접한 인터페이스 디바이스를 찾고 가장 근접한 인터페이스 디바이스와 페어링한다.
일부 구현에서, 게임 컨트롤러(102)는 디폴트 페어링 인터페이스 디바이스를 저장하고, 디폴트 페어링 디바이스를 재정의(override)하여 가장 근접한 인터페이스 디바이스와 페어링한다. 일부 구현에서, 페어링에 따라, 가장 근접한 인터페이스 디바이스는 결합된 디스플레이 디바이스에서 전환된다.
일부 구현에서, 게임 컨트롤러(102)는 제1 전자 디바이스들 중 첫 번째 전자 디바이스로 제3 입력을 전송한다(1420). 일부 구현에서, 제3 입력은 게임을 일시 중지하기 위한 명령(예를 들어, 요청)이다. 일부 구현에서, 제3 입력은 게임 포털 UI상의 메뉴에 액세스하기 위한 명령(command)이다.
일부 구현에서, 게임 컨트롤러(102)는 제1 전자 디바이스들 중 첫 번째 전자 디바이스가 제3 입력에 응답하여 복수의 제1 전자 디바이스에 연결된 복수의 디스플레이 디바이스를 디스플레이하도록 한다(1422). 일부 구현에서, 제3 입력은 게임을 일시 중지하기 위한 요청을 포함한다.
일부 구현에서, 게임 컨트롤러(102)는 제1 전자 디바이스들 중 첫 번째 전자 디바이스로 제4 입력을 전송한다(1424). 일부 구현에서, 제4 입력은 제1 전자 디바이스의 두 번째 전자 디바이스를 선택하는 명령이다.
일부 구현에서, 게임 컨트롤러(102)는 제1 전자 디바이스의 첫 번째 전자 디바이스가 제4 입력에 응답하여 게임 세션을 일시 중지하도록 한다(1426).
일부 구현에서, 게임 컨트롤러(102)는 제1 전자 디바이스들 중 두 번째 전자 디바이스가 게임 세션을 일시 중지 해제하도록 하고(1428), 이에 의해 일시 중지된 상태에서 게임 세션을 재개하며, 여기서 일시 중지 및 일시 중지 해제는 제4 입력에 응답하여 사용자 개입 없이 동시에 수행된다. 일부 구현에서, 제1 전자 디바이스들 중 첫 번째 전자 디바이스와 두 번째 디바이스는 로컬 환경의 다른 영역(예를 들어, 가정 환경의 다른 방)에 위치하며 일시 중지 해제는 게임 컨트롤러(102) 및/또는 사용자의 근접 검출에 대한 응답이다.
일부 구현에 따르면, 컴퓨팅 시스템(예를 들어, 게임 컨트롤러(102))은 하나 이상의 프로세서; 및 하나 이상의 프로세서에 결합된 메모리를 포함하고, 메모리는 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램은 위의 방법 및/또는 동작들 중 임의의 것을 수행하기 위한 명령들을 포함한다.
일부 구현에 따르면, (예를 들어, 메모리(306) 내) 비-일시적 컴퓨터 판독 가능 저장 매체는 하나 이상의 프로그램을 저장하고, 하나 이상의 프로그램은 컴퓨팅 시스템에 의해 실행될 때 시스템으로 하여금 위의 방법 및/또는 동작들 중 임의의 것을 수행하게 하는 명령들을 포함한다.
일부 구현에서, 서버 시스템(206)은 전자 디바이스(들)의 사용자에 대한 경보 및/또는 통지를 생성하기 위한 통지 모듈(미도시)을 포함한다. 예를 들어, 일부 구현에서, 정정 데이터베이스는 사용자의 전자 디바이스에 국부적으로 저장되고, 서버 시스템(206)은 사용자에게 최신 버전(들) 또는 업데이트(들)를 정정 데이터베이스에 다운로드하도록 경보하는 통지를 생성할 수 있다.
다양한 도면 중 일부는 특정 순서로 다수의 논리 단계를 도시하지만, 순서에 의존하지 않는 단계들은 재정렬될 수 있으며 다른 단계는 결합되거나 분리될 수 있다. 일부 재정렬 또는 다른 그룹화가 구체적으로 언급되지만, 다른 것들은 당업자에게 자명할 것이므로, 여기에 제시된 순서 및 그룹화는 전체 대안 목록이 아니다. 게다가, 단계들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있음을 인식해야 한다.
또한, 제1, 제2 등의 용어가 본 명세서에서 다양한 요소를 설명하기 위해 일부 경우에 사용되지만, 이들 요소는 이들 용어에 의해 제한되어서는 안된다는 것도 이해될 것이다. 이들 용어는 한 요소를 다른 요소와 구별하는데만 사용된다. 예를 들어, 제1 인터페이스 디바이스는 제2 인터페이스 디바이스로 명명될 수 있고, 유사하게, 제2 인터페이스 디바이스는 다양한 설명된 구현의 범위를 벗어나지 않고 제1 인터페이스 디바이스로 명명될 수 있다. 제1 인터페이스 디바이스와 제2 인터페이스 디바이스는 모두 인터페이스 디바이스이지만 동일한 유형의 인터페이스 디바이스는 아니다.
본 명세서에서 설명된 다양한 구현의 설명에 사용된 용어는 특정 구현을 설명하기 위한 목적이며 제한하려는 의도가 아니다. 다양한 설명된 구현 및 첨부된 청구 범위의 설명에서 사용된 바와 같이, 단수형 "a", "an" 및 "the"는 문맥이 달리 명시하지 않는 한 복수 형태도 포함하도록 의도된다. 본 명세서에서 사용된 용어 "및/또는"은 하나 이상의 연관된 열거 항목의 임의의 및 모든 가능한 조합을 지칭하고 포함하는 것으로 또한 이해될 것이다. 본 명세서에서 사용될 때 "포함하다(uncludes)", "포함하는(including)", "포함하다comprises)" 및/또는 "포함하는(comprising)"이라는 용어는 언급된 특징, 정수, 단계, 연산, 요소 및/또는 구성 요소의 존재를 지정하지만, 하나 이상의 다른 특징, 정수, 단계, 연산, 요소, 구성 요소 및/또는 그 그룹의 존재 또는 추가를 배제하지 않는다.
본 명에서에 사용된 용어 "만약"은 선택적으로 문맥에 따라 "언제" 또는 "후(upon)" 또는 "결정에 응답하여" 또는 "검출에 응답하여" 또는 "결정에 따라"를 의미하는 것으로 해석된다. 유사하게, "결정된 경우" 또는 "[명시된 조건 또는 이벤트]가 검출된 경우"라는 문구는 선택적으로 문맥에 따라 "결정시" 또는 "결정에 응답하여 "또는 "[명시된 조건 또는 이벤트] 검출시" 또는 "[명시된 조건 또는 이벤트] 감출에 응답하여" 또는 "[명시된 조건 또는 이벤트]가 검출되었다는 결정에 따라 "를 의미하는 것으로 해석된다.
설명을 위해 전술한 설명은 특정 구현을 참조하여 설명되었다. 그러나, 위의 예시적인 논의는 완전한 것이 아니거나 청구 범위의 범위를 개시된 정확한 형태로 제한하려는 것이 아니다. 위의 교시를 고려하여 많은 수정 및 변경이 가능하다. 구현들은 청구 범위 및 그 실제 적용의 기본 원리를 가장 잘 설명하기 위해 선택되었으며, 이에 의해 당업자가 고려되는 특정 용도에 적합한 다양한 수정을 갖는 구현을 최상으로 사용할 수 있도록 한다.

Claims (20)

  1. 제1 전자 디바이스에 의한 게임 방법으로서, 상기 게임 방법은,
    제2 전자 디바이스에 의해 제공되는 게임 세션과 상호 작용하는 단계와, 상기 제2 전자 디바이스는 제1 디스플레이 디바이스에 연결되거나 통합되고; 그리고
    게임 세션을 제2 디스플레이 디바이스에 연결되거나 통합된 제3 전자 디바이스로 전달(transfer)하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  2. 제1항에 있어서,
    게임 세션을 일시 중지하기 위해 제2 전자 디바이스에 제1 입력을 전송하는 단계를 더 포함하는 것을 특징으로 하는 게임 방법.
  3. 제2항에 있어서,
    상기 게임 세션을 전달하는 단계는,
    게임 세션의 일시 중지를 해제하기 위해 제3 전자 디바이스로 제2 입력을 전송하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  4. 제1항에 있어서,
    제2 전자 디바이스에서 게임 세션을 시작(launch)하는 단계를 더 포함하는 것을 특징으로 하는 게임 방법.
  5. 제4항에 있어서,
    상기 게임 세션을 시작하는 단계는,
    제2 전자 디바이스가 제3 전자 디바이스보다 제1 전자 디바이스에 더 근접한 것으로 결정하는 단계와; 그리고
    제2 전자 디바이스가 제3 전자 디바이스보다 제1 전자 디바이스에 더 근접한 것에 응답하여, 제2 전자 디바이스에서 게임 세션을 시작하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  6. 제4항에 있어서,
    상기 게임 세션을 시작하는 단계는,
    오디오 인터페이스를 통해 제1 전자 디바이스의 사용자로부터 오디오 입력을 수신하는 단계와; 그리고
    오디오 입력을 수신하는 것에 반응하여, 게임 세션을 시작하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  7. 제1항에 있어서,
    상기 게임 세션을 전달하는 단계는,
    제3 전자 디바이스가 제2 전자 디바이스보다 제1 전자 디바이스에 더 근접한 것으로 결정하는 단계와; 그리고
    제3 전자 디바이스가 제2 전자 디바이스보다 제1 전자 디바이스에 더 근접한 것에 응답하여, 게임 세션을 제3 전자 디바이스로 전달하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  8. 제1항에 있어서,
    상기 게임 세션을 전달하는 단계는,
    오디오 인터페이스를 통해 제1 전자 디바이스의 사용자로부터 오디오 입력을 수신하는 단계와; 그리고
    오디오 입력을 수신하는 것에 응답하여, 게임 세션을 제3 전자 디바이스로 전달하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  9. 제1항에 있어서,
    상기 제1 전자 디바이스는 게임 컨트롤러이고, 제2 전자 디바이스는 게임 인터페이스 디바이스이고, 그리고 제3 전자 디바이스는 게임 인터페이스 디바이스인 것을 특징으로 하는 게임 방법.
  10. 제1 전자 디바이스에 의한 게임 방법으로서, 상기 게임 방법은,
    제1 디스플레이 디바이스에 연결되거나 통합된 제2 전자 디바이스에서 게임 세션을 시작하는 단계와;
    제3 전자 디바이스가 제2 전자 디바이스보다 제1 전자 디바이스에 더 근접한 것으로 결정하는 단계와, 상기 제3 전자 디바이스는 제2 디스플레이 디바이스에 연결되거나 통합되고; 그리고
    제3 전자 디바이스가 제2 전자 디바이스보다 제1 전자 디바이스에 더 근접하다는 결정에 응답하여, 게임 세션을 제2 전자 디바이스로부터 제3 전자 디바이스로 전달하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  11. 제10항에 있어서,
    상기 게임 세션을 시작하는 단계는,
    제2 전자 디바이스가 제3 전자 디바이스보다 제1 전자 디바이스에 더 근접한 것으로 결정하는 단계; 그리고
    제2 전자 디바이스가 제3 전자 디바이스보다 제1 전자 디바이스에 더 근접하다는 결정에 응답하여, 제2 전자 디바이스에서 게임 세션을 시작하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  12. 제10항에 있어서,
    상기 게임 세션을 전달하는 단계는,
    게임 세션을 일시 중지하기 위해 제2 전자 디바이스로 제1 입력을 전송하는 단계와; 그리고
    게임 세션의 일시 중지를 해제하기 위해 제3 전자 디바이스로 제2 입력을 전송하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  13. 제10항에 있어서,
    상기 게임 세션을 시작하는 단계는,
    오디오 인터페이스를 통해 제1 전자 디바이스의 사용자로부터 오디오 입력을 수신하는 단계와; 그리고
    오디오 입력을 수신하는 것에 반응하여, 게임 세션을 시작하는 단계를 포함하는 것을 특징으로 하는 게임 방법.
  14. 제10항에 있어서,
    상기 제1 전자 디바이스는 게임 컨트롤러이고, 제2 전자 디바이스는 게임 인터페이스 디바이스이고, 그리고 제3 전자 디바이스는 게임 인터페이스 디바이스인 포함하는 것을 특징으로 하는 게임 방법.
  15. 게임용 전자 디바이스로서,
    하나 이상의 프로세서;
    하나 이상의 프로세서에 의한 실행을 위한 적어도 하나 이상의 프로그램을 저장하는 메모리;
    복수의 전자 디바이스와 통신하는 통신 디바이스; 및
    하나 이상의 프로그램 중 적어도 하나의 프로그램를 포함하고,
    상기 적어도 하나의 프로그램은,
    복수의 전자 디바이스 중 제1 전자 디바이스에 의해 제공되는 게임 세션과 상호 작용하고, 상기 제1 전자 디바이스는 제1 디스플레이 디바이스에 연결되거나 통합되고; 그리고
    복수의 전자 디바이스 중 제2 전자 디바이스로 상기 게임 세션을 전달하도록 구성되고, 상기 제2 전자 디바이스는 제2 디스플레이 디바이스에 연결되거나 통합되는 것을 특징으로 하는 게임용 전자 디바이스.
  16. 제15항에 있어서,
    상기 적어도 하나의 프로그램은,
    게임 세션을 일시 중지하기 위해 제1 전자 디바이스로 제1 입력을 전송하도록 더 구성되고, 그리고
    상기 적어도 하나의 프로그램은 게임 세션의 일시중지를 해제하기 위해 제2 전자 디바이스로 제2 입력을 전송함으로써 게임 세션을 전달하도록 구성되는 것을 특징으로 하는 게임용 전자 디바이스.
  17. 제15항에 있어서,
    상기 적어도 하나의 프로그램은,
    제1 전자 디바이스가 제2 전자 디바이스보다 전자 디바이스에 더 근접한 것으로 결정하고; 그리고
    제1 전자 디바이스가 제2 전자 디바이스보다 전자 디바이스에 더 근접한 것에 응답하여, 제1 전자 디바이스에서 게임 세션을 시작함으로써,
    제1 전자 디바이스에서 게임 세션을 시작하도록 더 구성되는 것을 특징으로 하는 게임용 전자 디바이스.
  18. 제17항에 있어서,
    상기 적어도 하나의 프로그램은,
    전자 디바이스의 오디오 인터페이스를 통해 전자 디바이스의 사용자로부터 오디오 입력을 수신하고; 그리고
    오디오 입력을 수신하는 것에 반응하여, 게임 세션을 시작함으로써,
    게임 세션을 시작하도록 구성되는 것을 특징으로 하는 게임용 전자 디바이스.
  19. 제15항에 있어서,
    상기 적어도 하나의 프로그램은,
    제2 전자 디바이스가 제1 전자 디바이스보다 전자 디바이스에 더 근접한 것으로 결정하고; 그리고
    제2 전자 디바이스가 제1 전자 디바이스보다 전자 디바이스에 더 근접한 것에 응답하여, 게임 세션을 제2 전자 디바이스로 전달함으로써,
    게임 세션을 전달하도록 구성되는 것을 특징으로 하는 게임용 전자 디바이스.
  20. 제15항에 있어서,
    상기 전자 디바이스는 게임 컨트롤러이고, 제1 전자 디바이스는 게임 인터페이스 디바이스이고, 그리고 제2 전자 디바이스는 게임 인터페이스 디바이스인 것을 특징으로 하는 게임용 전자 디바이스.
KR1020237002848A 2018-04-02 2019-03-15 대화형 클라우드 게임용 방법, 디바이스 및 시스템 KR20230017925A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862651542P 2018-04-02 2018-04-02
US62/651,542 2018-04-02
KR1020207030955A KR102493861B1 (ko) 2018-04-02 2019-03-15 대화형 클라우드 게임용 방법, 디바이스 및 시스템
PCT/US2019/022472 WO2019194953A1 (en) 2018-04-02 2019-03-15 Methods, devices, and systems for interactive cloud gaming

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207030955A Division KR102493861B1 (ko) 2018-04-02 2019-03-15 대화형 클라우드 게임용 방법, 디바이스 및 시스템

Publications (1)

Publication Number Publication Date
KR20230017925A true KR20230017925A (ko) 2023-02-06

Family

ID=65952193

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237002848A KR20230017925A (ko) 2018-04-02 2019-03-15 대화형 클라우드 게임용 방법, 디바이스 및 시스템
KR1020207030955A KR102493861B1 (ko) 2018-04-02 2019-03-15 대화형 클라우드 게임용 방법, 디바이스 및 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207030955A KR102493861B1 (ko) 2018-04-02 2019-03-15 대화형 클라우드 게임용 방법, 디바이스 및 시스템

Country Status (6)

Country Link
US (3) US10898812B2 (ko)
EP (1) EP3773953A1 (ko)
JP (3) JP7073526B2 (ko)
KR (2) KR20230017925A (ko)
CN (2) CN112074330B (ko)
WO (1) WO2019194953A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9795879B2 (en) * 2014-12-31 2017-10-24 Sony Interactive Entertainment America Llc Game state save, transfer and resume for cloud gaming
US10238965B2 (en) * 2016-04-28 2019-03-26 Sony Interactive Entertainment America Llc Cloud gaming device handover
US10456672B2 (en) 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
US11310294B2 (en) 2016-10-31 2022-04-19 Microsoft Technology Licensing, Llc Companion devices for real-time collaboration in communication sessions
WO2019056132A1 (en) * 2017-09-25 2019-03-28 Atelier Go-Élan Inc. INTERACTIVE GAME FIELD SYSTEM WITH ENHANCED USER INTERACTION AND COMPUTERIZED METHOD FOR IMPLEMENTING ENHANCED USER INTERACTION IN A GAME FIELD SYSTEM
WO2019074952A2 (en) 2017-10-10 2019-04-18 Google Llc GAMING PROFILING BASED ON DISTRIBUTED SAMPLE WITH GAME AND MEASUREMENT METADATA, AND GAME API PLATFORM SUPPORTING THIRD CONTENT
US11140207B2 (en) 2017-12-21 2021-10-05 Google Llc Network impairment simulation framework for verification of real time interactive media streaming systems
CN111417441A (zh) 2018-03-22 2020-07-14 谷歌有限责任公司 用于渲染和编码在线交互式游戏会话的内容的方法和系统
KR20230017925A (ko) * 2018-04-02 2023-02-06 구글 엘엘씨 대화형 클라우드 게임용 방법, 디바이스 및 시스템
EP3740292A2 (en) 2018-04-02 2020-11-25 Google LLC Input device for an electronic system
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
EP4345731A1 (en) 2018-04-10 2024-04-03 Google LLC Memory management in gaming rendering
SE1850664A1 (en) * 2018-06-01 2019-12-02 Telia Co Ab Methods and apparatuses for providing a service having a service profile
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
CN112204529A (zh) 2018-11-16 2021-01-08 谷歌有限责任公司 用于复杂系统分析的实时交互式仿真的影子追踪
US11032340B2 (en) * 2019-04-04 2021-06-08 Sony Interactive Entertainment LLC Using camera on computer simulation controller
CN112383663B (zh) * 2019-05-08 2022-03-04 华为技术有限公司 一种显示的方法及设备
US10773157B1 (en) 2019-07-26 2020-09-15 Arkade, Inc. Interactive computing devices and accessories
US10946272B2 (en) * 2019-07-26 2021-03-16 Arkade, Inc. PC blaster game console
US10893127B1 (en) 2019-07-26 2021-01-12 Arkade, Inc. System and method for communicating interactive data between heterogeneous devices
US11304246B2 (en) 2019-11-01 2022-04-12 Microsoft Technology Licensing, Llc Proximity-based pairing and operation of user-specific companion devices
US11256392B2 (en) 2019-11-01 2022-02-22 Microsoft Technology Licensing, Llc Unified interfaces for paired user computing devices
US11546391B2 (en) * 2019-11-01 2023-01-03 Microsoft Technology Licensing, Llc Teleconferencing interfaces and controls for paired user computing devices
CN110798477B (zh) * 2019-11-06 2022-03-18 江苏视博云信息技术有限公司 数据传输方法、设备、管理平台及云游戏系统架构
US11097185B2 (en) 2019-12-31 2021-08-24 Dell Products L.P. Detachable information handling system game controller management
US11260288B2 (en) 2019-12-31 2022-03-01 Dell Products L.P. Disassemblable information handling system game controller
US11331567B2 (en) 2019-12-31 2022-05-17 Dell Products L.P. Information handling system and game controller trigger
US11260291B2 (en) * 2019-12-31 2022-03-01 Dell Products L.P. Information handling system and detachable game controller
US11013987B1 (en) 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller scalable interface
US11013991B1 (en) 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller adaptive haptic feedback
US11338197B2 (en) 2019-12-31 2022-05-24 Dell Products L.P. Information handling system controller distributable hardware and logic management
US11450147B2 (en) 2020-01-06 2022-09-20 Kaia Health Software GmbH Evaluation data structure for evaluating a specific motion pattern and dashboard for setting up the evaluation data structure
CN111437610B (zh) * 2020-04-21 2023-11-17 西安万像电子科技有限公司 云游戏系统的处理方法、装置以及云端服务器
CN111510736A (zh) * 2020-04-24 2020-08-07 深圳云鹭科技有限公司 一种云游戏互动直播系统及互动直播方法
CN111782299A (zh) * 2020-07-03 2020-10-16 珠海金山网络游戏科技有限公司 一种游戏接入方法及装置
CN112245903B (zh) * 2020-10-26 2022-05-03 腾讯科技(深圳)有限公司 云应用中网络状态指示方法、操作系统、装置及存储介质
US11902339B1 (en) * 2020-12-10 2024-02-13 Amazon Technologies, Inc. Systems for transferring network application sessions
US11729479B2 (en) * 2020-12-31 2023-08-15 Sony Interactive Entertainment Inc. Methods and systems for dynamic summary queue generation and provision
KR20220101485A (ko) * 2021-01-11 2022-07-19 삼성전자주식회사 디스플레이 장치 및 그 동작방법
US11824940B1 (en) * 2021-02-04 2023-11-21 Amazon Technologies, Inc. Techniques for providing network applications
US11547932B2 (en) * 2021-05-25 2023-01-10 Microsoft Technology Licensing, Llc Companion device aided game controller pairing
US11641422B2 (en) * 2021-06-14 2023-05-02 Capital One Services, Llc Systems and methods for integrated third-party callbacks
US20220401834A1 (en) * 2021-06-22 2022-12-22 Sony Interactive Entertainment Inc. Pass-through device for cloud gaming and methods for processing
CN117580623A (zh) * 2021-09-21 2024-02-20 谷歌有限责任公司 游戏控制器移动桥接器
JP7454003B2 (ja) * 2022-02-16 2024-03-21 任天堂株式会社 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法
US20230293986A1 (en) * 2022-03-17 2023-09-21 Bidstack Group PLC Server-side gaming method and system for the delivery of remotely-rendered content comprising impression content
WO2024005518A1 (ko) * 2022-06-28 2024-01-04 삼성전자 주식회사 디스플레이 장치 및 그 동작 방법
WO2024039053A1 (ko) * 2022-08-18 2024-02-22 삼성전자주식회사 복수의 기기로 프레임을 전송하는 전자 장치 및 이의 제어 방법
US11991242B1 (en) * 2022-12-14 2024-05-21 Dell Products L.P. Efficient distributed computing using edge computing devices

Family Cites Families (135)

* 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
JP2003236251A (ja) * 2002-02-15 2003-08-26 Aruze Corp キャラクタ管理システム
US7803052B2 (en) 2002-06-28 2010-09-28 Microsoft Corporation Discovery and distribution of game session information
WO2004004857A1 (en) 2002-07-05 2004-01-15 Dominic Clancy System and method for playing an interactive game using a mobile device
JP3495032B1 (ja) 2002-07-24 2004-02-09 コナミ株式会社 ゲーム進行管理装置、ゲーム用サーバ装置、端末装置、ゲーム進行管理方法及びゲーム進行管理プログラム
US20040198403A1 (en) 2002-07-25 2004-10-07 Pedersen Claus Aagaard Gaming concept for wireless terminals
EP1569731A1 (en) 2002-12-10 2005-09-07 Nokia Corporation Method and device for continuing an electronic multi-player game, in case of an absence of a player of said game
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US10664138B2 (en) 2003-03-14 2020-05-26 Comcast Cable Communications, Llc Providing supplemental content for a second screen experience
WO2005010680A2 (en) 2003-07-15 2005-02-03 Wildtangent, Inc. 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
WO2005029270A2 (en) 2003-09-19 2005-03-31 Wildtangent, Inc. Joint consumption of content invitation methods and apparatus
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
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 엔에이치엔(주) 유알엘을 이용한 플래시 게임 초대 시스템 및 방법
EP1997085A4 (en) 2006-02-27 2011-04-27 Inc Createasoft SYSTEM AND METHOD FOR DYNAMICALLY CONTINUING MARKED ENTITIES AND PRESCRIBING THEIR STATE
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 엘지전자 주식회사 디스펜서 및 이를 구비하는 냉장고
JP5468193B2 (ja) 2007-08-06 2014-04-09 任天堂株式会社 コントローラカバー
US8235817B2 (en) 2009-02-12 2012-08-07 Sony Computer Entertainment America Llc Object based observation
US8979647B2 (en) * 2007-10-26 2015-03-17 Microsoft Technology Licensing, Llc Method of providing player status and ability to join games
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
WO2010093831A1 (en) 2009-02-11 2010-08-19 Social Gaming Network Apparatuses, methods and systems for an interactive proximity display tether with remote co-play
CN101887485A (zh) 2009-05-14 2010-11-17 灰熊(北京)科技有限公司 一种在棋牌游戏中实现稳妥的掉线重连的方法
US9723319B1 (en) 2009-06-01 2017-08-01 Sony Interactive Entertainment America Llc Differentiation for achieving buffered decoding and bufferless decoding
US20100317443A1 (en) * 2009-06-11 2010-12-16 Comcast Cable Communications, Llc Distributed Network Game System
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 深圳市腾讯计算机系统有限公司 游戏托管系统及方法
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
WO2013111248A1 (ja) 2012-01-24 2013-08-01 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理システム
US20130221923A1 (en) 2012-02-23 2013-08-29 Whalen Furniture Manufacturing Inc. Universal charging system and battery pack for video game controllers
US9412197B2 (en) 2012-04-04 2016-08-09 Qualcomm Incorporated Patched shading in graphics processing
US20130274021A1 (en) 2012-04-11 2013-10-17 Meteor Entertainment, Inc. Computing platform for supporting massively multi-player online games
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
CN104822429A (zh) 2012-11-28 2015-08-05 辉达公司 掌上游戏机
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
CN104885467B (zh) 2013-01-30 2018-08-17 英特尔公司 用于下一代视频编码的内容自适应参数变换
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
US9628332B2 (en) 2013-05-20 2017-04-18 Microsoft Technology Licensing, Llc Resource allocation to game titles in a remote gaming environment
US9295915B2 (en) * 2013-05-20 2016-03-29 Microsoft Technology Licensing, Llc Game availability 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
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
TWI649656B (zh) 2013-12-26 2019-02-01 日商史克威爾 艾尼克斯控股公司 顯像系統、控制方法及儲存媒體
JP6376638B2 (ja) 2014-01-29 2018-08-22 株式会社コロプラ ゲームに関わるサーバコンピュータ及びゲームプログラム
WO2015115512A1 (ja) 2014-01-29 2015-08-06 独立行政法人産業技術総合研究所 シクロデキストリンの利用による抗がん活性が増強されたアシュワガンダ葉の水抽出物の調製方法、及びアシュワガンダ葉を含む医薬組成物
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
US10374910B2 (en) 2014-06-13 2019-08-06 Convida Wireless, Llc Automated service profiling and orchestration
US9393486B2 (en) 2014-06-27 2016-07-19 Amazon Technologies, Inc. Character simulation and playback notification in game session replay
US20160005256A1 (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
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
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
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
WO2017058951A1 (en) * 2015-09-30 2017-04-06 Sony Interactive Entertainment America Llc Systems and methods for providing time-shifted intelligently synchronized game video
US11040281B2 (en) * 2015-09-30 2021-06-22 Sony Interactive Entertainment LLC Multi-user demo streaming service for cloud gaming
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
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
US11351468B2 (en) 2016-06-13 2022-06-07 Sony Interactive Entertainment LLC Generating challenges using a location based game play companion application
US10046236B2 (en) 2016-06-13 2018-08-14 Sony Interactive Entertainment America, LLC Browser-based cloud gaming
US10716994B2 (en) * 2016-06-28 2020-07-21 Sony Interactive Entertainment Inc. Usage state determination apparatus, usage state determination method, and program
US10521879B2 (en) * 2016-07-05 2019-12-31 Ubitus, Inc. Overlaying multi-source media in VRAM
US10332296B2 (en) * 2016-07-05 2019-06-25 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
WO2019074952A2 (en) 2017-10-10 2019-04-18 Google Llc GAMING PROFILING BASED ON DISTRIBUTED SAMPLE WITH GAME AND MEASUREMENT METADATA, AND GAME API PLATFORM SUPPORTING THIRD CONTENT
CN107670275B (zh) 2017-10-26 2020-10-13 广州市雷军游乐设备有限公司 游戏进程断线重连的方法和系统
US20190199722A1 (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
CN111417441A (zh) 2018-03-22 2020-07-14 谷歌有限责任公司 用于渲染和编码在线交互式游戏会话的内容的方法和系统
KR20230017925A (ko) * 2018-04-02 2023-02-06 구글 엘엘씨 대화형 클라우드 게임용 방법, 디바이스 및 시스템
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
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
EP4345731A1 (en) 2018-04-10 2024-04-03 Google LLC Memory management in gaming rendering
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
CN112204529A (zh) 2018-11-16 2021-01-08 谷歌有限责任公司 用于复杂系统分析的实时交互式仿真的影子追踪
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

Also Published As

Publication number Publication date
US20220347584A1 (en) 2022-11-03
KR102493861B1 (ko) 2023-01-31
US10898812B2 (en) 2021-01-26
EP3773953A1 (en) 2021-02-17
JP2022091745A (ja) 2022-06-21
CN112074330B (zh) 2022-07-08
JP7073526B2 (ja) 2022-05-23
WO2019194953A1 (en) 2019-10-10
JP2024016099A (ja) 2024-02-06
JP2021511919A (ja) 2021-05-13
US11433311B2 (en) 2022-09-06
CN112074330A (zh) 2020-12-11
KR20200135866A (ko) 2020-12-03
US20190321732A1 (en) 2019-10-24
US20210113927A1 (en) 2021-04-22
CN115253276A (zh) 2022-11-01
JP7377296B2 (ja) 2023-11-09

Similar Documents

Publication Publication Date Title
KR102493861B1 (ko) 대화형 클라우드 게임용 방법, 디바이스 및 시스템
US11305186B2 (en) Methods and systems for facilitating participation in a game session
US10856035B2 (en) Message sharing method, client, and computer storage medium
CN109152955B (zh) 云游戏中的用户保存数据管理方法
CN102450031B (zh) 集成化身的共享媒体体验
US11497990B2 (en) Crowd sourced cloud gaming using peer-to-peer streaming
US20200338456A1 (en) Game mediation infrastructure for establishment of multiplayer gaming sessions
CN112402943A (zh) 加入或重放来自游戏广播的游戏实例
WO2023093698A1 (zh) 游戏直播的交互方法、存储介质、程序产品及电子设备
US10632374B2 (en) Information processing apparatus and user information displaying method

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right