KR102292820B1 - Remote control of gameplay - Google Patents

Remote control of gameplay Download PDF

Info

Publication number
KR102292820B1
KR102292820B1 KR1020207018764A KR20207018764A KR102292820B1 KR 102292820 B1 KR102292820 B1 KR 102292820B1 KR 1020207018764 A KR1020207018764 A KR 1020207018764A KR 20207018764 A KR20207018764 A KR 20207018764A KR 102292820 B1 KR102292820 B1 KR 102292820B1
Authority
KR
South Korea
Prior art keywords
user
gameplay
game
video
control
Prior art date
Application number
KR1020207018764A
Other languages
Korean (ko)
Other versions
KR20200083659A (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
Priority claimed from US13/831,190 external-priority patent/US9364743B2/en
Priority claimed from US13/831,178 external-priority patent/US9352226B2/en
Priority claimed from US13/839,382 external-priority patent/US9345966B2/en
Application filed by 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 filed Critical 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨
Publication of KR20200083659A publication Critical patent/KR20200083659A/en
Application granted granted Critical
Publication of KR102292820B1 publication Critical patent/KR102292820B1/en

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/45Controlling the progress of the video game
    • A63F13/47Controlling the progress of the video game involving branching, e.g. choosing one of several possible scenarios at a given point in time
    • 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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • 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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • 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/73Authorising game programs or game devices, e.g. checking authenticity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/87Communicating with other players during game play, e.g. by e-mail or chat
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/88Mini-games executed independently while main games are being loaded
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/497Partially or entirely replaying previous game actions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/533Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu
    • 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
    • A63F2300/5526Game data structure
    • A63F2300/554Game data structure by saving game or status data
    • 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/57Features 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 game services offered to the player

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Optics & Photonics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Pinball Game Machines (AREA)
  • Display Devices Of Pinball Game Machines (AREA)
  • Processing Or Creating Images (AREA)
  • Details Of Television Systems (AREA)
  • Selective Calling Equipment (AREA)

Abstract

비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법이 제공된다. 비디오 게임의 풀 버전의 사용자의 게임플레이가 레코딩된다. 사용자의 레코딩된 게임플레이는 관심 있는 영역을 결정하도록 분석된다. 결정된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계가 정의된다. 비디오 게임의 제한된 버전이 정의된 경계들에 기반하여 발생된다.A method is provided for generating a playable restricted version of a video game. The user's gameplay of the full version of the video game is recorded. The user's recorded gameplay is analyzed to determine areas of interest. Boundaries within the gameplay context of the video game are defined based on the determined region of interest. A limited version of the video game is generated based on defined boundaries.

Description

게임플레이의 원격 제어{REMOTE CONTROL OF GAMEPLAY}REMOTE CONTROL OF GAMEPLAY

본 발명은 레코딩된 게임플레이에 기반하여 제안된 미니-게임의 자동 발생, 레코딩된 게임플레이에 기반하여 클라우드-게이밍을 위한 멀티-파트 미니-게임의 발생, 레코딩된 게임플레이를 소셜 그래프에 공유, 및 제2 사용자에 의한 제1 사용자의 게임플레이의 원격 제어를 위한 방법 및 시스템에 관한 것이다.The present invention provides automatic generation of suggested mini-games based on recorded gameplay, generation of multi-part mini-games for cloud-gaming based on recorded gameplay, sharing recorded gameplay to social graphs, and a method and system for remote control of a first user's gameplay by a second user.

비디오 게임 산업은 수년에 걸쳐 많은 변화를 보았다. 컴퓨팅 능력이 확장되었으므로, 비디오 게임의 개발자는 마찬가지로 컴퓨팅 능력에서의 이들 증가를 이용하는 게임 소프트웨어를 창작하였다. 이러한 목적으로, 비디오 게임 개발자는 매우 실감나는 게임 체험을 산출하도록 정교한 연산 및 수학을 편입시키는 게임을 코딩해 오고 있다.The video game industry has seen many changes over the years. As computing power has expanded, developers of video games have likewise created game software that takes advantage of these increases in computing power. For this purpose, video game developers have been coding games that incorporate sophisticated computation and mathematics to produce highly immersive gaming experiences.

예시적 게이밍 플랫폼은, 소니(Sony) 플레이스테이션(Playstation)(등록상표), 소니(Sony) 플레이스테이션2(Playstation2)(등록상표)(PS2), 및 소니(Sony) 플레이스테이션3(Playstation3)(등록상표)(PS3)일 수 있고, 그 각각은 게임 콘솔의 형태로 팔린다. 주지되어 있는 바와 같이, 게임 콘솔은 모니터(통상 텔레비전)에 접속하여 핸드헬드 컨트롤러를 통한 사용자 대화를 가능하게 하도록 설계된다. 게임 콘솔은, CPU, 프로세싱 집약적 그래픽 연산을 위한 그래픽 합성기, 기하학적 변환을 수행하기 위한 벡터 유닛, 및 다른 글루 하드웨어를 포함하는 전문 프로세싱 하드웨어, 펌웨어 및 소프트웨어를 갖게 설계된다. 게임 콘솔은 게임 콘솔을 통한 로컬 플레이를 위해 게임 콤팩트 디스크를 수용하기 위한 광학 디스크 트레이를 갖게 더 설계된다. 사용자가 인터넷을 통하여 다른 사용자와 맞서 또는 함께 대화형 플레이할 수 있는 온라인 게이밍 또한 가능하다. 게임 복잡도가 플레이어의 흥미를 계속 불러일으키므로, 게임 및 하드웨어 제조자는 부가적 대화성 및 컴퓨터 프로그램을 가능하게 하도록 계속 혁신하여 왔다.Exemplary gaming platforms include: Sony Playstation(R), Sony Playstation2(R)(PS2), and Sony Playstation3(R) ( (PS3), each sold in the form of a game console. As is well known, game consoles are designed to connect to a monitor (usually a television) and enable user interaction via a handheld controller. Game consoles are designed with specialized processing hardware, firmware and software including a CPU, a graphics synthesizer for processing intensive graphics operations, a vector unit for performing geometric transformations, and other glue hardware. The game console is further designed to have an optical disc tray for receiving a game compact disc for local play through the game console. Online gaming is also possible, where users can play interactively against or with other users via the Internet. As game complexity continues to arouse the interest of players, game and hardware manufacturers continue to innovate to enable additional interactivity and computer programs.

컴퓨터 게이밍 산업에서 성장하는 동향은 사용자와 게이밍 시스템 간 대화를 증가시키는 게임을 개발하는 것이다. 더 풍부한 대화형 체험을 성취하는 하나의 방식은 플레이어의 움직임을 추적하고 이들 움직임을 게임을 위한 입력으로서 사용하기 위하여 그 움직임이 게이밍 시스템에 의해 추적되는 무선 게임 컨트롤러를 사용하는 것이다. 일반적으로 말하면, 제스처 입력은 컴퓨팅 시스템, 비디오 게임 콘솔, 스마트 기기 등과 같은 전자 디바이스를 플레이어에 의해 이루어지고 전자 디바이스에 의해 캡처링되는 소정 제스처에 반응시키는 것을 지칭한다.A growing trend in the computer gaming industry is to develop games that increase the conversation between the user and the gaming system. One way to achieve a richer interactive experience is to use a wireless game controller whose movements are tracked by the gaming system to track the player's movements and use those movements as input for the game. Generally speaking, gesture input refers to reacting an electronic device, such as a computing system, video game console, smart appliance, etc., to a certain gesture made by a player and captured by the electronic device.

산업계에서 성장하는 다른 동향은 클라우드-기반 게이밍 시스템의 개발을 포함한다. 그러한 시스템은 게임 애플리케이션을 실행하고, 그리고 사용자로부터 입력을 수신하고 디스플레이 상에 비디오를 렌더링하도록 구성될 수 있는 로컬 씬 클라이언트와 통신하는 원격 프로세싱 서버를 포함할 수 있다.Another growing trend in the industry includes the development of cloud-based gaming systems. Such a system may include a remote processing server that executes a gaming application and communicates with a local thin client that may be configured to receive input from a user and render video on a display.

그것이 본 발명의 실시예가 생기는 이러한 맥락 내에 있다.It is within this context in which embodiments of the invention arise.

본 발명의 실시예는 레코딩된 게임플레이에 기반하여 제안된 미니-게임의 자동 발생, 레코딩된 게임플레이에 기반하여 클라우드-게이밍을 위한 멀티-파트 미니-게임의 발생, 레코딩된 게임플레이를 소셜 그래프에 공유, 및 제2 사용자에 의한 제1 사용자의 게임플레이의 원격 제어를 위한 방법 및 시스템을 제공한다. 본 발명은, 프로세스, 장치, 시스템, 디바이스, 또는 컴퓨터 판독가능한 매체 상의 방법과 같은, 수많은 방식으로 구현될 수 있음을 인식하여야 한다. 본 발명의 수개의 진보적 실시예가 아래에 설명된다.Embodiments of the present invention provide automatic generation of suggested mini-games based on recorded gameplay, generation of multi-part mini-games for cloud-gaming based on recorded gameplay, and social graphing of recorded gameplay A method and system for sharing, and remote control of a first user's gameplay by a second user. It should be appreciated that the invention may be embodied in numerous ways, such as as a process, apparatus, system, device, or method on a computer-readable medium. Several inventive embodiments of the present invention are described below.

일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산; 결정된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 및 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In one embodiment, there is provided a method for generating a playable restricted version of a video game, the method operation comprising: recording a user's gameplay of a full version of the video game; analyzing the user's recorded gameplay to determine areas of interest; an operation that defines boundaries within the gameplay context of the video game based on the determined region of interest; and generating a limited version of the video game based on the defined boundaries, the method being executed by the processor.

다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산; 선택을 위해 관심 있는 영역의 각각을 제시하는 연산; 선택된 관심 있는 영역을 나타내는 선택 입력을 수신하는 연산; 선택된 관심 있는 영역에 대해, 선택된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 및 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In another embodiment, there is provided a method for generating a playable restricted version of a video game, the method operation comprising: recording a user's gameplay of a full version of the video game; analyzing the user's recorded gameplay to determine areas of interest; an operation that presents each of the regions of interest for selection; an operation for receiving a selection input indicative of a selected region of interest; an operation for defining, for the selected region of interest, boundaries within the gameplay context of the video game based on the selected region of interest; and generating a limited version of the video game based on the defined boundaries, the method being executed by the processor.

다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산으로서, 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 연산을 포함하는 사용자의 게임플레이를 레코딩하는 연산; 하나 이상의 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산으로서, 각각의 관심 있는 영역은 하나 이상의 임계치에 대한 대응에 기반하여 자동으로 식별되는 분석하는 연산; 선택을 위해 관심 있는 영역의 각각을 제시하는 연산; 선택된 관심 있는 영역을 나타내는 선택 입력을 수신하는 연산; 선택된 관심 있는 영역에 대해, 선택된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In another embodiment, there is provided a method for generating a playable limited version of a video game, the method operation comprising: recording user's gameplay of a full version of the video game, either user input data or game state data. an operation for recording a user's gameplay, including operations for recording one or more; an operation of analyzing the user's recorded gameplay to determine one or more regions of interest, wherein each region of interest is automatically identified based on a correspondence to one or more thresholds; an operation that presents each of the regions of interest for selection; an operation for receiving a selection input indicative of a selected region of interest; an operation for defining, for the selected region of interest, boundaries within the gameplay context of the video game based on the selected region of interest; A method is provided, comprising an operation that generates a limited version of the video game based on defined boundaries, the method being executed by a processor.

일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하는 연산; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키는 연산; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In one embodiment, there is provided a method for generating a playable restricted version of a video game, the method operation comprising: recording a user's gameplay of a full version of the video game; an operation that determines a plurality of user-defined portions of the user's recorded gameplay; for each user-defined portion, defining boundaries within the gameplay context of the video game based on the user-defined portion, and generating a playable portion of the video game based on the defined boundaries; A method is provided, comprising the operation of arranging each of the playable portions of the video game in a series to define a limited version of the video game, the method being executed by a processor.

다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 프로그램 명령어가 구체화되어 있는 유형적 컴퓨터 판독가능한 매체로서, 이하의 명령어: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하기 위한 프로그램 명령어; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하기 위한 프로그램 명령어; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키기 위한 프로그램 명령어; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하기 위한 프로그램 명령어를 포함하는 매체가 제공된다.In another embodiment, there is provided a tangible computer readable medium embodied on program instructions for generating a playable limited version of a video game, the instructions comprising: a program for recording gameplay of a user of a full version of the video game command; program instructions for determining a plurality of user-defined portions of the user's recorded gameplay; program instructions for, for each user-defined portion, defining boundaries within a gameplay context of the video game based on the user-defined portion, and generating a playable portion of the video game based on the defined boundaries; A medium is provided comprising program instructions for arranging each of the playable portions of the video game in a series to define a limited version of the video game.

다른 일 실시예에 있어서는, 시스템으로서: 적어도 하나의 서버 컴퓨팅 디바이스를 포함하고, 적어도 하나의 서버 컴퓨팅 디바이스는, 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하기 위한 로직; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하기 위한 로직; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키기 위한 로직; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하기 위한 로직을 포함하는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 로직을 갖는 시스템이 제공된다.In another embodiment, a system includes: at least one server computing device, the at least one server computing device comprising: logic for recording gameplay of a user of a full version of a video game; logic for determining a plurality of user-defined portions of the user's recorded gameplay; logic for, for each user-defined portion, defining boundaries within a gameplay context of the video game based on the user-defined portion, and generating a playable portion of the video game based on the defined boundaries; A system with logic for generating a playable limited version of a video game is provided, comprising logic for arranging each of the playable portions of the video game in a series to define a limited version of the video game.

일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 방법으로서, 이하의 방법 연산: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하는 연산; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하는 연산; 커맨드를 수신하는 것에 응답하여, 게임플레이 세션의 휴지 상태에 들어가고 공유하는 인터페이스를 제시하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 결정하도록 공유하는 인터페이스를 통하여 수신된 입력을 프로세싱하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하는 연산; 게임플레이 세션의 활동 상태를 재개하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In one embodiment, there is provided a method for sharing recorded gameplay to a social graph, comprising the following method operations: recording a video of a user's gameplay during an active state of a gameplay session; an operation that receives a command to initiate a shared operation during an active state of a gameplay session; in response to receiving the command, entering an idle state of the gameplay session and presenting a sharing interface; processing input received via the sharing interface to determine a user-defined selection of recorded video; an operation to share a user-defined selection of recorded video to the user's social graph; A method is provided, comprising an operation for resuming an active state of a gameplay session, wherein the method is executed by a processor.

다른 일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 방법으로서, 이하의 방법 연산: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하는 연산; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하는 연산; 커맨드를 수신하는 것에 응답하여, 레코딩된 비디오의 사용자-정의된 선택을 결정하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In another embodiment, there is provided a method for sharing recorded gameplay to a social graph, comprising the following method operations: recording a video of a user's gameplay during an active state of a gameplay session; an operation that receives a command to initiate a shared operation during an active state of a gameplay session; in response to receiving the command, determining a user-defined selection of recorded video; A method is provided, comprising the operation of sharing a user-defined selection of recorded video to a user's social graph, wherein the method is executed by a processor.

다른 일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 프로그램 명령어가 정의되어 있는 비-일시적 컴퓨터 판독가능한 매체가 제공된다. 프로그램 명령어는: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하기 위한 프로그램 명령어; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하기 위한 프로그램 명령어; 커맨드를 수신하는 것에 응답하여, 레코딩된 비디오의 사용자-정의된 선택을 결정하기 위한 프로그램 명령어; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하기 위한 프로그램 명령어를 포함한다.In another embodiment, a non-transitory computer readable medium having program instructions defined for sharing recorded gameplay to a social graph is provided. The program instructions include: program instructions for recording a video of a user's gameplay during an active state of a gameplay session; program instructions for receiving a command to initiate a shared operation during an active state of a gameplay session; program instructions for determining, in response to receiving the command, a user-defined selection of recorded video; program instructions for sharing a user-defined selection of recorded video to a user's social graph.

일 실시예에 있어서는, 사용자의 게임플레이의 원격 제어를 제공하기 위한 방법으로서, 이하의 방법 연산: 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 연산; 제1 사용자의 게임플레이의 제어를 제2 사용자에게 이행하는 요청을 프로세싱하는 연산; 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 연산을 포함하되, 방법은 적어도 하나의 프로세서에 의해 실행되는 방법이 제공된다.In one embodiment, there is provided a method for providing remote control of a user's gameplay, the method operation comprising: presenting a live video feed of a first user's gameplay to a remote second user; processing a request to transfer control of the first user's gameplay to the second user; A method is provided, comprising an operation that initiates control of gameplay of a first user by a second user, the method being executed by at least one processor.

다른 일 실시예에 있어서는, 멀티플레이어 게임플레이를 제공하기 위한 방법으로서, 이하의 방법 연산: 제1 사용자의 게임플레이 세션의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 연산; 제2 사용자가 제1 사용자의 게임플레이 세션에 합류하는 요청을 프로세싱하는 연산; 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 개시하는 연산을 포함하되, 방법은 적어도 하나의 프로세서에 의해 실행되는 방법이 제공된다.In another embodiment, there is provided a method for providing multiplayer gameplay comprising the following method operations: presenting a live video feed of a gameplay session of a first user to a remote second user; processing a request for a second user to join a gameplay session of the first user; A method is provided, comprising the operation of initiating gameplay by a second user in a gameplay session of a first user, the method being executed by at least one processor.

다른 일 실시예에 있어서는, 사용자의 게임플레이의 원격 제어를 제공하기 위한 프로그램 명령어가 구체화되어 있는 비-일시적 컴퓨터 판독가능한 매체가 제공되며, 프로그램 명령어는: 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하기 위한 프로그램 명령어; 제1 사용자의 게임플레이의 제어를 제2 사용자에게 이행하는 요청을 프로세싱하기 위한 프로그램 명령어; 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하기 위한 프로그램 명령어를 포함한다.In another embodiment, a non-transitory computer readable medium embodied in program instructions for providing remote control of a user's gameplay is provided, the program instructions comprising: a live video feed of a first user's gameplay program instructions for presentation to a remote second user; program instructions for processing a request to transfer control of gameplay of a first user to a second user; program instructions for initiating control of the first user's gameplay by the second user.

본 발명의 다른 태양은 본 발명의 원리를 예로서 예시하는 수반 도면과 함께 취해지는 이하의 상세한 설명으로부터 명백하게 될 것이다.Other aspects of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.

본 발명은 수반 도면과 함께 취해지는 이하의 설명을 참조하여 가장 잘 이해될 수 있다:
도 1a는, 본 발명의 실시예에 따라, 사용자가 클라우드-기반 비디오 게임을 플레이하는 것의 예시도;
도 1b는 다수 장소 내 다수 사용자가 클라우드-기반 비디오 게임의 게임플레이에 참여한 것의 예시도;
도 2a는, 본 발명의 일 실시예에 따라, 클라우드 게이밍을 위한 시스템의 예시도;
도 2b는, 본 발명의 실시예에 따라, 다양한 세대의 게이밍 콘솔에 걸친 게임 타이틀의 누적의 개념적 예시도;
도 3은, 본 발명의 일 실시예에 따라, 사용자에게 게임 데모를 제공하기 위한 방법의 예시도;
도 4a는, 본 발명의 일 실시예에 따라, 비디오게임의 다양한 부분의 계층적 조직의 예시도;
도 4b는, 본 발명의 일 실시예에 따라, 미니게임 또는 게임 슬라이스의 발생을 위해 게임플레이 타임라인의 일부를 선택하기 위한 인터페이스의 예시도;
도 4c는, 본 발명의 일 실시예에 따라, 미니게임의 발생을 위해 게임플레이 타임라인의 일부를 선택하기 위한 인터페이스의 예시도;
도 5는, 본 발명의 일 실시예에 따라, 기존 클라우드-기반 비디오게임으로부터 미니게임을 발생시키기 위한 방법을 실증하는 일련의 스크린샷의 예시도;
도 6은, 본 발명의 일 실시예에 따라, 게임 슬라이스 코드를 발생시키기 위한 시스템의 예시도;
도 7a는, 본 발명의 일 실시예에 따라, 비디오 게임의 게임 슬라이스를 발생시키려는 목적으로 가상 공간의 수정의 예시도;
도 7b는, 본 발명의 실시예에 따라, 게임 슬라이스를 발생시키려는 목적으로 장면 그래프의 수정의 예시도;
도 8은, 본 발명의 일 실시예에 따라, 게임 슬라이스를 발생시키기 위한 방법의 예시도;
도 9a는, 본 발명의 일 실시예에 따라, 다양한 게임 타이틀과 연관된 게임 슬라이스를 브라우징하기 위한 인터페이스의 예시도;
도 9b는, 본 발명의 일 실시예에 따라, 게임 슬라이스 정보 페이지의 예시도;
도 10은, 본 발명의 일 실시예에 따라, 클라우드 게이밍 소셜 네트워크 내 친구의 라이브 뷰를 포함하는, 사용자의 계정 정보의 뷰의 예시도;
도 11은, 본 발명의 일 실시예에 따라, 현재 사용자의 친구의 라이브 게임플레이 피드를 제시하기 위한 방법의 예시도;
도 12는, 본 발명의 일 실시예에 따라, 소셜 네트워크 및 클라우드 게이밍 시스템을 포함하는 시스템의 예시도;
도 13은, 본 발명의 실시예에 따라, 시간에 걸친 다양한 게임 상태 변수를 예시하는 그래프;
도 14a는, 본 발명의 일 실시예에 따라, 선형 유형 비디오게임에 대한 게임 슬라이스를 발생시키기 위한 방법의 예시도;
도 14b는, 본 발명의 일 실시예에 따라, 오픈 월드 유형 비디오게임에 대한 게임 슬라이스를 발생시키기 위한 방법의 예시도;
도 14c는, 본 발명의 일 실시예에 따라, 스포츠 비디오게임에 대한 게임 슬라이스를 발생시키기 위한 방법의 예시도;
도 15는, 본 발명의 일 실시예에 따라, 멀티-게임 슬라이스 게임의 형성의 개념적 예시도;
도 16은, 본 발명의 일 실시예에 따라, 멀티-게임 슬라이스 게임의 발생의 개념적 예시도;
도 17은, 본 발명의 일 실시예에 따라, 게임플레이를 공유하기 위한 인터페이스의 예시도;
도 18은, 본 발명의 일 실시예에 따라, 공유를 위해 레코딩된 게임플레이 비디오의 일부를 선택하기 위한 인터페이스(1800)의 예시도;
도 19는, 본 발명의 일 실시예에 따라, 사용자의 게임플레이의 라이브 비디오 스트림을 보기 위한 인터페이스(1900)의 예시도;
도 20은, 본 발명의 일 실시예에 따라, 비디오 게임과의 대화성을 제공하도록 사용될 수 있는 사용자 인터페이스 및 하드웨어의 예시도;
도 21은, 본 발명의 일 실시예에 따라, 명령어를 프로세싱하도록 사용될 수 있는 부가적 하드웨어의 예시도;
도 22는, 본 발명의 일 실시예에 따라, 인터넷을 통하여 서버 프로세싱에 접속되는 게임 클라이언트(1102)와 각각의 사용자(A) 내지 사용자(E)가 대화하고 있는 장면(A) 내지 장면(E)의 일례의 예시도; 및
도 23은 정보 서비스 제공자 아키텍처의 일 실시예의 예시도.
BRIEF DESCRIPTION OF THE DRAWINGS The present invention may be best understood by reference to the following description taken in conjunction with the accompanying drawings:
1A is an illustration of a user playing a cloud-based video game, in accordance with an embodiment of the present invention;
1B is an illustration of multiple users in multiple venues engaging in gameplay of a cloud-based video game;
2A is an illustration of a system for cloud gaming, in accordance with an embodiment of the present invention;
2B is a conceptual illustration of the accumulation of game titles across various generations of gaming consoles, in accordance with an embodiment of the present invention;
3 is an exemplary diagram of a method for providing a game demo to a user, in accordance with an embodiment of the present invention;
4A is an illustration of a hierarchical organization of various portions of a videogame, in accordance with an embodiment of the present invention;
4B is an illustration of an interface for selecting a portion of a gameplay timeline for generation of a minigame or game slice, in accordance with an embodiment of the present invention;
4C is an illustration of an interface for selecting a portion of a gameplay timeline for generation of a minigame, in accordance with an embodiment of the present invention;
5 is an illustrative series of screenshots demonstrating a method for generating a minigame from an existing cloud-based videogame, in accordance with an embodiment of the present invention;
6 is an exemplary diagram of a system for generating game slice codes, in accordance with an embodiment of the present invention;
7A is an illustration of a modification of a virtual space for the purpose of generating a game slice of a video game, in accordance with an embodiment of the present invention;
7B is an illustration of a modification of a scene graph for the purpose of generating a game slice, in accordance with an embodiment of the present invention;
8 is an illustration of a method for generating a game slice, in accordance with an embodiment of the present invention;
9A is an illustration of an interface for browsing game slices associated with various game titles, in accordance with an embodiment of the present invention;
9B is an exemplary diagram of a game slice information page, in accordance with an embodiment of the present invention;
10 is an illustrative view of a user's account information, including a live view of a friend in a cloud gaming social network, in accordance with an embodiment of the present invention;
11 is an illustration of a method for presenting a live gameplay feed of a friend of a current user, in accordance with an embodiment of the present invention;
12 is an exemplary diagram of a system including a social network and a cloud gaming system, in accordance with an embodiment of the present invention;
13 is a graph illustrating various game state variables over time, in accordance with an embodiment of the present invention;
14A is an illustration of a method for generating a game slice for a linear type videogame, in accordance with an embodiment of the present invention;
14B is an illustration of a method for generating a game slice for an open world type videogame, in accordance with an embodiment of the present invention;
14C is an illustration of a method for generating a game slice for a sports videogame, in accordance with an embodiment of the present invention;
15 is a conceptual illustration of the formation of a multi-game slice game, according to an embodiment of the present invention;
16 is a conceptual illustration of the generation of a multi-game slice game, in accordance with an embodiment of the present invention;
17 is an exemplary diagram of an interface for sharing gameplay, in accordance with an embodiment of the present invention;
18 is an illustration of an interface 1800 for selecting a portion of a recorded gameplay video for sharing, in accordance with an embodiment of the present invention;
19 is an illustration of an interface 1900 for viewing a live video stream of a user's gameplay, in accordance with an embodiment of the present invention;
20 is an illustration of a user interface and hardware that may be used to provide interactivity with a video game, in accordance with one embodiment of the present invention;
21 is an illustration of additional hardware that may be used to process instructions, in accordance with one embodiment of the present invention;
22 is a view showing a game client 1102 connected to server processing via the Internet and each user A to E having a conversation, according to an embodiment of the present invention. ) of an example; and
23 is an exemplary diagram of one embodiment of an information service provider architecture.

이하의 실시예는 레코딩된 게임플레이에 기반하여 제안된 미니-게임의 자동 발생, 레코딩된 게임플레이에 기반하여 클라우드-게이밍을 위한 멀티-파트 미니-게임의 발생, 레코딩된 게임플레이를 소셜 그래프에 공유, 및 제2 사용자에 의한 제1 사용자의 게임플레이의 원격 제어를 위한 방법 및 장치를 설명한다.The following embodiments provide automatic generation of suggested mini-games based on recorded gameplay, generation of multi-part mini-games for cloud-gaming based on recorded gameplay, and recording recorded gameplay into social graphs. A method and apparatus for sharing and remote control of a first user's gameplay by a second user are described.

그렇지만, 본 발명이 이들 특정 상세 중 일부 또는 전부 없이 실시될 수 있음은 당업자에게 자명할 것이다. 다른 경우에 있어서, 주지의 프로세스 연산은 본 발명을 불필요하게 모호하게 하지 않기 위하여 상세히 설명되지는 않았다.However, it will be apparent to one skilled in the art that the present invention may be practiced without some or all of these specific details. In other instances, well-known process operations have not been described in detail in order not to unnecessarily obscure the present invention.

도 1a는, 본 발명의 실시예에 따라, 사용자가 클라우드-기반 비디오 게임을 플레이하는 것을 예시하고 있다. 도시된 바와 같이, 사용자(U1)는 디스플레이(100) 상에 보이는 클라우드-기반 비디오 게임을 플레이한다. 클라우드-기반 비디오 게임은 주로 원격 서버 상에서 실행되는 비디오 게임이다. 서버는, 일 실시예에 있어서, 가상 기계 데이터 센터에서 실행되는 개개의 서버 또는 서버들을 포함할 수 있으며, 이 경우 많은 서버는 요청된 프로세싱을 제공하도록 가상화될 수 있다. 도시된 실시예에 있어서, 클라우드 게이밍 서버(들)(104)는 디스플레이(100) 상에서 렌더링되는 비디오 게임을 실행한다. 클라이언트(101)는 입력을 수신 및 프로세싱하고 이들을 클라우드 게이밍 서버(104)에 통신하도록, 그리고 또한 클라우드 게이밍 서버(104)로부터 비디오 및 오디오 데이터를 수신하도록 사용자의 장소에 놓여 있다. 클라이언트(101) 및 클라우드 게이밍 서버(104)는 인터넷과 같은 네트워크(102)를 통하여 통신한다. 다른 실시예에 있어서, 클라이언트는, 클라이언트가 네트워크와 통신하고 게임 플레이를 렌더링하도록 디스플레이로의 액세스를 제공하고 사용자로부터의 입력이 대화성을 구동 가능하게 할 수 있는 한, 포터블이든 아니든, 무선이든 아니든, 어떠한 디바이스라도 될 수 있다. 일 실시예에 있어서, 클라이언트는 씬 클라이언트이다. 그렇지만, 다른 실시예에 있어서, 클라이언트는 범용 컴퓨터, 특수 목적 컴퓨터, 게이밍 콘솔, 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 모바일 컴퓨팅 디바이스, 포터블 게이밍 디바이스, 셀룰러 폰, 셋-톱 박스, 스트리밍 미디어 인터페이스/디바이스, 스마트 텔레비전 또는 네트워크형 디스플레이, 또는 여기에서 정의된 바와 같은 클라이언트의 기능성을 수행하도록 구성될 수 있는 어떠한 다른 컴퓨팅 디바이스라도 될 수 있다. 일 실시예에 있어서, 클라우드 게이밍 서버는 사용자에 의해 이용되고 있는 클라이언트 디바이스의 유형을 검출하고 사용자의 클라이언트 디바이스에 적합한 클라우드-게이밍 체험을 제공하도록 구성된다. 예를 들어, 이미지 설정, 오디오 설정 및 다른 유형의 설정이 사용자의 클라이언트 디바이스에 최적화될 수 있다. 1A illustrates a user playing a cloud-based video game, in accordance with an embodiment of the present invention. As shown, user U1 plays a cloud-based video game shown on display 100 . Cloud-based video games are primarily video games that run on remote servers. A server, in one embodiment, may include an individual server or servers running in a virtual machine data center, in which case many servers may be virtualized to provide the requested processing. In the illustrated embodiment, the cloud gaming server(s) 104 runs a video game that is rendered on the display 100 . The client 101 is located at the user's location to receive and process inputs and communicate them to the cloud gaming server 104 , and also to receive video and audio data from the cloud gaming server 104 . The client 101 and the cloud gaming server 104 communicate via a network 102 such as the Internet. In another embodiment, the client, whether portable or not, wireless or not, as long as the client provides access to the display to communicate with the network and render gameplay and input from the user may enable interactivity to be driven. , can be any device. In one embodiment, the client is a thin client. However, in other embodiments, the client may be a general purpose computer, special purpose computer, gaming console, personal computer, laptop computer, tablet computer, mobile computing device, portable gaming device, cellular phone, set-top box, streaming media interface/device , a smart television or networked display, or any other computing device that may be configured to perform the functionality of a client as defined herein. In one embodiment, the cloud gaming server is configured to detect the type of client device being used by the user and provide a cloud-gaming experience suitable for the user's client device. For example, image settings, audio settings, and other types of settings may be optimized for the user's client device.

다양한 실시예에 있어서, 클라이언트에 의해 수행되는 프로세싱의 정도는 입력 및 출력 프로세싱에 관하여 달라질 수 있다. 그렇지만, 대체로, 비디오 게임 상태는 실질적으로 클라우드 게이밍 서버(104) 상에서 유지 및 실행되며, 클라이언트는 주로 사용자 입력을 수신 및 통신하고 렌더링을 위해 비디오/오디오 데이터를 수신하도록 기능한다. 클라이언트(101)는 디스플레이(100)에 접속되고 디스플레이(100) 상의 렌더링을 위한 비디오 데이터를 제공하는 자립형 디바이스일 수 있다. 다른 실시예에 있어서, 클라이언트는 디스플레이(100) 내에 통합될 수 있다. 일 실시예에 있어서, 디스플레이(100)는 디스플레이의 네트워크 접속성을 이용하여 애플리케이션 또는 "앱"을 위한 플랫폼 운영 체제를 제공하는 네트워크형 디스플레이이다. 그러한 일 실시예에 있어서, 클라이언트는 디스플레이의 운영 체제에 의해 제공된 플랫폼 상에서 실행되는 애플리케이션에 의해 정의될 수 있다.In various embodiments, the degree of processing performed by the client may vary with respect to input and output processing. However, for the most part, the video game state is maintained and executed substantially on the cloud gaming server 104, where the client functions primarily to receive and communicate user input and to receive video/audio data for rendering. The client 101 may be a standalone device that connects to the display 100 and provides video data for rendering on the display 100 . In another embodiment, the client may be integrated into the display 100 . In one embodiment, display 100 is a networked display that utilizes the network connectivity of the display to provide a platform operating system for an application or “app”. In one such embodiment, the client may be defined by an application running on the platform provided by the operating system of the display.

도 1b는 다수 장소 내 다수 사용자가 클라우드-기반 비디오 게임의 게임플레이에 참여한 것을 예시하고 있다. 사용자(U1)는 제1 장소에서 디스플레이(100) 상에 렌더링된 비디오 게임과 대화하고 있는 것으로 도시되어 있다. 사용자(U2, U3)는 제2 장소에서 디스플레이(106) 상에 렌더링된 비디오 게임과 대화하고 있는 것으로 도시되어 있다. 사용자(U4)는 제3 장소에서 디스플레이(108) 상에 렌더링된 비디오 게임을 플레이하고 있는 것으로 도시되어 있다. 사용자(U5, U6, U7)는 제4 장소에서 디스플레이(110) 상에 렌더링된 비디오 게임과 대화하고 있는 것으로 도시되어 있다. 1B illustrates the participation of multiple users in multiple venues in gameplay of a cloud-based video game. A user U1 is shown having a conversation with a video game rendered on the display 100 at a first location. Users U2 and U3 are shown conversing with a video game rendered on display 106 at a second location. User U4 is shown playing a video game rendered on display 108 in a third location. Users U5 , U6 , and U7 are shown having a conversation with a video game rendered on display 110 at a fourth location.

제1, 제2, 제3 및 제4 장소의 각각에는, 다양한 사용자로부터의 입력을 프로세싱하고 그들 각각의 디스플레이 상에 클라우드-기반 비디오 게임을 렌더링하기 위한 적어도 하나의 컴퓨팅 디바이스가 제공된다. 컴퓨팅 디바이스는 디스플레이 내에 통합될 수도 있고, 데이터를 프로세싱 및 저장하기 위한 적어도 하나의 프로세서 및 메모리를 갖는 퍼스널 컴퓨터, 셋톱 박스, 게이밍 콘솔, 또는 어느 다른 유형의 디바이스와 같은 자립형 디바이스일 수도 있음을 인식하여야 한다. 컴퓨팅 디바이스는, 위에서 설명된 바와 같이, 클라이언트를 실행하거나 정의할 수 있다. 컴퓨팅 디바이스는 네트워크형이고, 인터넷(102)과 같은 네트워크를 통하여 클라우드 게이밍 서버(104)와 통신한다. At each of the first, second, third and fourth venues, at least one computing device is provided for processing input from the various users and rendering the cloud-based video game on their respective displays. It should be appreciated that the computing device may be integrated into a display and may be a stand-alone device, such as a personal computer, set-top box, gaming console, or any other type of device having at least one processor and memory for processing and storing data. do. A computing device may execute or define a client, as described above. The computing device is networked and communicates with the cloud gaming server 104 via a network, such as the Internet 102 .

클라우드 게이밍 서버(104)는, 사용자에 의해 플레이되고, 순간순간 소정 비디오 게임의 게임 상태를 정의하고, (이미지 데이터 및 오디오 데이터를 포함하는) 비디오 데이터를 특정 장소에서의 컴퓨팅 디바이스에 보내고 있는 다양한 비디오 게임을 실행한다. 소정 장소에서의 컴퓨팅 디바이스는 비디오 게임을 플레이하는 사용자(들)로부터의 입력을 프로세싱하고, 입력 데이터를 클라우드 게이밍 서버에 송신하고, 그러면, 차례로, 비디오 게임의 게임 상태에 영향을 미치도록 입력 데이터를 프로세싱한다. 클라우드-기반 게이밍은 네트워크를 통하여 모든 플레이어가 액세스가능한 원격 서버에서의 비디오 게임의 실행을 위해 제공함으로써 여러 다른 장소에 위치하는 플레이어로부터의 멀티-플레이어 게이밍을 용이하게 함을 인식하여야 한다. 이러한 방식으로, 비디오 게임의 실행은 어느 단일 플레이어의 하드웨어 또는 네트워크 접속성에도, 그러한 것이 그 소정 플레이어에 대한 사용자 체험에 영향을 미칠 것이더라도, 종속적이지 않다.The cloud gaming server 104 provides various video games played by the user, defining the game state of a given video game moment by moment, and sending video data (including image data and audio data) to a computing device at a specific location. Run the game. The computing device at the location processes input from the user(s) playing the video game, sends the input data to a cloud gaming server, and in turn sends the input data to affect the game state of the video game. process It should be appreciated that cloud-based gaming facilitates multi-player gaming from players located in different locations by providing for execution of video games on remote servers accessible to all players via a network. In this way, the execution of the video game is not dependent on any single player's hardware or network connectivity, though that will affect the user experience for that given player.

도 2a는, 본 발명의 일 실시예에 따라, 클라우드 게이밍을 위한 시스템을 예시하고 있다. 도시된 바와 같이, 사용자(200)는 클라우드-기반 비디오 게임에 입력을 제공하도록 컨트롤러(202)를 조작한다. 컨트롤러(202)는, 버튼, 조이스틱, 터치패드, 트랙볼, 및 가속도계 및 자력계와 같은 모션 감지 하드웨어와 같은, 다양한 종류의 입력 디바이스 중 어느 것이라도 포함할 수 있다. 일 실시예에 있어서, 컨트롤러(202)는 컨트롤러(202)의 위치를 결정하도록 추적될 수 있는 조명 물체를 포함할 수 있다. 컨트롤러(202)는 씬 게임 클라이언트(204)와 무선으로 통신할 수 있다. 클라이언트(204)는 네트워크(208)를 통하여 클라우드 게이밍 서비스(210)와 통신한다. 클라이언트(204)는 클라우드 게이밍 서비스(210)에 의해 실행된 비디오 게임에 통신되는 입력 데이터를 발생시키도록 컨트롤러(202)로부터의 데이터를 프로세싱한다. 부가적으로, 클라이언트(204)는, 디스플레이(206) 상의 렌더링을 위해, 클라우드 게이밍 서비스(210)로부터의 비디오 데이터를 수신한다. 일 실시예에 있어서, 클라이언트(204)는 디스플레이(206)와 호환가능한 포맷으로 비디오 스트림을 제공하도록 그 수신된 비디오 데이터를 프로세싱할 수 있다. 일 실시예에 있어서, 클라이언트(204)는 컨트롤러 디바이스 또는 컨트롤러 디바이스 상에 위치하는 물체를 추적하기 위한 카메라를 포함할 수 있다. 언급된 바와 같이, 물체는 카메라로부터 캡처링된 이미지 프레임의 분석에 기반하여 추적을 더 용이하게 하도록 조명될 수 있다.2A illustrates a system for cloud gaming, in accordance with an embodiment of the present invention. As shown, the user 200 manipulates the controller 202 to provide input to the cloud-based video game. The controller 202 may include any of a variety of input devices, such as buttons, joysticks, touchpads, trackballs, and motion sensing hardware such as accelerometers and magnetometers. In one embodiment, the controller 202 may include a lighting object that can be tracked to determine the location of the controller 202 . The controller 202 may communicate wirelessly with the thin game client 204 . The client 204 communicates with the cloud gaming service 210 via the network 208 . The client 204 processes data from the controller 202 to generate input data that is communicated to the video game played by the cloud gaming service 210 . Additionally, the client 204 receives video data from the cloud gaming service 210 for rendering on the display 206 . In one embodiment, the client 204 may process the received video data to provide a video stream in a format compatible with the display 206 . In one embodiment, the client 204 may include a controller device or a camera for tracking objects located on the controller device. As mentioned, the object may be illuminated to further facilitate tracking based on analysis of image frames captured from the camera.

클라우드 게이밍 서비스(210)는 비디오 게임이 실행될 수 있는 환경을 제공하기 위한 자원을 포함한다. 대체로, 자원은, 프로세서, 저장 디바이스, 및 네트워크 장비를 포함하는, 다양한 종류의 컴퓨터 서버 하드웨어를 포함할 수 있으며, 비디오 게임 애플리케이션의 실행을 용이하게 하도록 이용될 수 있다. 도시된 실시예에 있어서, 비디오 게임 라이브러리(212)는 다양한 게임 타이틀을 포함한다. 각각의 게임 타이틀은 실행가능한 코드와 더불어, 비디오 게임을 실체화하도록 이용되는 연관된 데이터 및 자산 라이브러리도 정의한다. 호스트(214)는 가상 기계(216)를 실체화하기 위한 플랫폼을 정의하는 단일 컴퓨팅 디바이스일 수 있다. 다른 일 실시예에 있어서, 호스트(214)는 자체가 가상화된 자원 플랫폼일 수 있다. 환언하면, 호스트(214)는 하나 이상의 서버 컴퓨팅 디바이스에 걸쳐 동작하여, 서버 컴퓨팅 디바이스에 의해 정의된 자원의 할당 및 사용을 취급하는 한편, 가상 기계(216)가 실체화될 수 있는 통합형 플랫폼을 제시할 수 있다.The cloud gaming service 210 includes resources for providing an environment in which video games can be played. Broadly, resources may include various types of computer server hardware, including processors, storage devices, and network equipment, and may be utilized to facilitate execution of video game applications. In the illustrated embodiment, the video game library 212 contains various game titles. Each game title defines, along with executable code, an associated library of data and assets used to instantiate the video game. The host 214 may be a single computing device that defines a platform for instantiating the virtual machine 216 . In another embodiment, host 214 may itself be a virtualized resource platform. In other words, the host 214 may operate across one or more server computing devices to handle the allocation and use of resources defined by the server computing devices, while presenting an integrated platform upon which the virtual machine 216 may be instantiated. can

각각의 가상 기계(216)는, 비디오 게임 애플리케이션(218)이 실행될 수 있는, 운영 체제를 지원할 수 있는 자원 환경을 정의한다. 일 실시예에 있어서, 가상 기계는 게이밍 콘솔의 하드웨어 자원 환경을 에뮬레이팅하도록 구성될 수 있으며, 게이밍 콘솔과 연관된 운영 체제는 그 게이밍 콘솔에 대해 개발된 게이밍 타이틀의 실행을 지원할 가상 기계 상에서 실행된다. 다른 일 실시예에 있어서, 운영 체제는, 기저 가상 기계가 게이밍 콘솔의 하드웨어를 에뮬레이팅하도록 구성될 수도 있고 그렇지 않을 수도 있더라도, 게이밍 콘솔의 네이티브 운영 체제 환경을 에뮬레이팅하도록 구성될 수 있다. 다른 일 실시예에 있어서, 에뮬레이터 애플리케이션이 가상 기계의 운영 체제 위에 실행되며, 에뮬레이터는 그 게이밍 콘솔에 대해 설계된 비디오 게임을 지원하도록 게이밍 콘솔의 네이티브 운영 체제 환경을 에뮬레이팅하도록 구성된다. 각종 현재 및 구형 게이밍 콘솔이 클라우드-기반 게이밍 시스템에서 에뮬레이팅될 수 있음을 인식하여야 한다. 이러한 방식으로, 사용자는 클라우드-게이밍 시스템을 통하여 여러 다른 게이밍 콘솔로부터 게임 타이틀에 액세스할 수 있다.Each virtual machine 216 defines a resource environment that can support an operating system in which video game applications 218 can run. In one embodiment, the virtual machine may be configured to emulate a hardware resource environment of a gaming console, and an operating system associated with the gaming console is running on the virtual machine that will support execution of a gaming title developed for that gaming console. In another embodiment, the operating system may be configured to emulate the native operating system environment of the gaming console, although the underlying virtual machine may or may not be configured to emulate the hardware of the gaming console. In another embodiment, the emulator application runs on top of the operating system of the virtual machine, and the emulator is configured to emulate the native operating system environment of the gaming console to support video games designed for the gaming console. It should be appreciated that a variety of current and legacy gaming consoles may be emulated in cloud-based gaming systems. In this way, the user can access game titles from several different gaming consoles through the cloud-gaming system.

사용자(200)가 특정 비디오 게임 타이틀을 플레이하도록 요청할 때, 비디오 게임 타이틀은 라이브러리(212)로부터 검색된다. 호환가능한 가상 기계가 이미 실체화되지 않았거나 사용에 이용가능하지 않으면, 그때는 새로운 호환가능한 가상 기계가 호스트(214) 상에 실체화된다. 그 후 검색된 비디오 게임 타이틀은 이용가능한 또는 새롭게 실체화된 가상 기계(216) 상에서 애플리케이션(218)으로서 실행된다. 일 실시예에 있어서, 이것은 비디오 게임 타이틀에 적합한 플랫폼(예를 들어, 어느 게이밍 콘솔 또는 운영 체제를 게임이 실행하도록 요구하는지)을 결정하는 것 및 실행에 적합한 가상 기계, 예를 들어, 비디오 게임 타이틀의 실행을 취급할 수 있는 에뮬레이터 애플리케이션을 갖는 것에 비디오 게임 타이틀을 배정하는 것을 수반할 수 있다. 실행 중 비디오 게임은 대화형 게이밍 체험을 사용자(200)에 제공하도록 게임 클라이언트(204)와 통신한다. 더 구체적으로, 실행 중 비디오게임 애플리케이션(218)은 네트워크(208)를 통하여 클라이언트(204)로부터 입력 데이터를 수신한다. 애플리케이션(218)은 실행 중 애플리케이션의 게임 상태를 업데이트하도록 입력 데이터를 프로세싱한다. 게임 상태가 변화할 때, 애플리케이션(218)은 디스플레이(206) 상의 렌더링을 위해 클라이언트(204)에 보내지는 비디오 데이터를 출력한다. 부가적으로, 애플리케이션(218)은 또한 부가적 피드백 메커니즘을 사용자에게 제공하도록 이용되는 피드백 데이터를 클라이언트(204)에 출력할 수 있다. 예로서, 사용자의 컨트롤러(202)는 비디오 게임 애플리케이션으로부터의 출력 피드백 데이터에 기반하여 활성화될 수 있는 촉각 진동 피드백 메커니즘을 포함할 수 있다.When the user 200 requests to play a particular video game title, the video game title is retrieved from the library 212 . If a compatible virtual machine has not already been instantiated or is not available for use, then a new compatible virtual machine is instantiated on the host 214 . The retrieved video game title is then executed as an application 218 on the available or newly instantiated virtual machine 216 . In one embodiment, this involves determining a suitable platform for a video game title (eg, which gaming console or operating system the game requires to run) and a virtual machine suitable for execution, eg, a video game title. It may involve assigning a video game title to having an emulator application that can handle the execution of During execution, the video game communicates with the game client 204 to provide an interactive gaming experience to the user 200 . More specifically, while running, the videogame application 218 receives input data from the client 204 over the network 208 . Application 218 processes the input data to update the application's game state during execution. When the game state changes, the application 218 outputs video data that is sent to the client 204 for rendering on the display 206 . Additionally, the application 218 may also output feedback data to the client 204 that is used to provide an additional feedback mechanism to the user. As an example, the user's controller 202 may include a tactile vibration feedback mechanism that may be activated based on output feedback data from a video game application.

일 실시예에 있어서, 클라우드 게이밍 시스템은 사용자와 연관된 클라이언트 디바이스의 유형, 및 또한 사용자가 클라우드-기반 비디오 게임으로의 입력을 제공하는데 이용가능한 컨트롤러의 유형을 검출하도록 구성된다. 예를 들어, 일 실시예에 있어서, 사용자가 클라우드 게이밍 시스템에 로그인할 때, 그들은 그들이 클라우드 게이밍 시스템에 액세스하고 있는 클라이언트 디바이스의 유형을 지정하는 옵션을 제시받을 수 있다. 일 실시예에서는, 사용자가 그들 클라이언트 디바이스에 대응하는 것을 선택할 수 있는 일련의 클라이언트 디바이스 옵션이 제시된다. 또한 그들이 비디오 게임을 플레이하는데 사용할 컨트롤러 디바이스의 유형을 지정하는 옵션이 사용자에게 제시될 수 있다. 일 실시예에서는, 사용자가 그들 컨트롤러 하드웨어에 대응하는 컨트롤러 유형을 지정하도록 선택할 수 있는 일련의 컨트롤러 옵션이 사용자에게 제시될 수 있다. 다른 실시예에 있어서, 클라우드 게이밍 시스템은 클라이언트 디바이스 유형 및/또는 컨트롤러 디바이스 유형을 자동으로 검출하도록 구성될 수 있다.In one embodiment, the cloud gaming system is configured to detect the type of client device associated with the user, and also the type of controller available to the user to provide input to the cloud-based video game. For example, in one embodiment, when users log into the cloud gaming system, they may be presented with an option to specify the type of client device they are accessing the cloud gaming system. In one embodiment, a set of client device options are presented from which the user may select the corresponding one for their client device. The user may also be presented with an option to specify the type of controller device they will use to play the video game. In one embodiment, the user may be presented with a set of controller options from which the user may select to specify a controller type corresponding to their controller hardware. In another embodiment, the cloud gaming system may be configured to automatically detect a client device type and/or a controller device type.

예를 들어, 로그인시에, 클라이언트 디바이스는 (예를 들어, 클라우드 게이밍 서버로부터의 요청에 응답하여) 자신과 더불어 접속된 컨트롤러 디바이스도 식별시키는 정보를 클라우드 게이밍 서버에 보낼 수 있다. 이러한 정보에 기반하여, 클라우드 게이밍 서버는 사용자의 클라이언트 디바이스 및 컨트롤러 디바이스에 최적화된 게이밍 체험을 제공하기에 적합한 비디오 게임 출력 구성 및 입력 파라미터 구성을 결정할 수 있다. 일 실시예에서는, 검출된 클라이언트 디바이스 및 검출된 컨트롤러 디바이스에 기반하여 비디오 게임 구성 및 입력 파라미터 구성을 결정하도록 룩-업 테이블이 채용된다.For example, upon login, the client device may send information to the cloud gaming server (eg, in response to a request from the cloud gaming server) identifying itself as well as the connected controller device. Based on this information, the cloud gaming server may determine an appropriate video game output configuration and input parameter configuration to provide an optimized gaming experience to the user's client device and controller device. In one embodiment, a look-up table is employed to determine the video game configuration and input parameter configuration based on the detected client device and the detected controller device.

소정 비디오 게임이 특정 플랫폼 및 특정 연관된 컨트롤러 디바이스에 대해 개발될 수 있음을 인식하여야 한다. 그렇지만, 그러한 게임이 여기에서 제시된 바와 같은 클라우드 게이밍 시스템을 통하여 이용가능하게 될 때, 사용자는 다른 컨트롤러 디바이스로 비디오 게임에 액세스하고 있을 수 있다. 예를 들어, 게임이 게임 콘솔 및 그 연관된 컨트롤러에 대해 개발되었지만, 반면 사용자는 키보드 및 마우스를 이용하여 퍼스널 컴퓨터로부터 게임의 클라우드-기반 버전에 액세스하고 있을 수 있다. 그러한 시나리오에 있어서, 입력 파라미터 구성은 사용자의 이용가능한 컨트롤러 디바이스(이 경우에는, 키보드 및 마우스)에 의해 발생될 수 있는 입력으로부터 비디오 게임의 실행을 위해 받아들여질 수 있는 입력으로의 매핑을 정의할 수 있다. It should be appreciated that certain video games may be developed for particular platforms and particular associated controller devices. However, when such games become available through a cloud gaming system as presented herein, the user may be accessing the video game with another controller device. For example, a game may be developed for a game console and its associated controller, whereas a user may be accessing a cloud-based version of the game from a personal computer using a keyboard and mouse. In such a scenario, the input parameter configuration may define a mapping from inputs that may be generated by the user's available controller devices (in this case, keyboard and mouse) to inputs that may be accepted for execution of the video game. have.

다른 일례에 있어서, 사용자는 태블릿 컴퓨팅 디바이스, 터치스크린 스마트폰, 또는 다른 터치스크린 구동 디바이스를 통하여 클라우드 게이밍 시스템에 액세스할 수 있다. 이 경우에 있어서, 클라이언트 디바이스 및 컨트롤러 디바이스는 동일 디바이스 내 함께 통합되며, 검출된 터치스크린 입력/제스처에 의해 입력이 제공된다. 그러한 디바이스에 대해, 입력 파라미터 구성은 비디오 게임에 대한 게임 입력에 대응하는 특정 터치스크린 입력을 정의할 수 있다. 예를 들어, 버튼, 방향성 패드, 또는 다른 유형의 입력 엘리먼트는 사용자가 게임 입력을 발생시키도록 터치할 수 있는 터치스크린 상의 위치를 나타내도록 비디오 게임의 실행 동안 디스플레이 또는 오버레이될 수 있다. 특정 터치 모션 또는 특정 방향으로의 스와이핑과 같은 제스처가 또한 게임 입력으로서 검출될 수 있다. 일 실시예에서는, 사용자가 터치스크린 상의 컨트롤의 조작에 익숙하게 하도록, 예를 들어 비디오 게임의 게임플레이를 시작하기 이전에, 게임플레이를 위해 터치스크린을 통하여 어떻게 입력을 제공하는지 나타내는 튜토리얼이 사용자에게 제공될 수 있다.In another example, a user may access the cloud gaming system through a tablet computing device, touchscreen smartphone, or other touchscreen powered device. In this case, the client device and the controller device are integrated together in the same device, and the input is provided by a detected touchscreen input/gesture. For such devices, the input parameter configuration may define a specific touchscreen input that corresponds to a game input for a video game. For example, a button, directional pad, or other type of input element may be displayed or overlaid during execution of a video game to indicate a location on a touchscreen that a user may touch to generate game input. Gestures such as specific touch motion or swiping in a specific direction may also be detected as game input. In one embodiment, to familiarize the user with the manipulation of controls on the touchscreen, for example, prior to beginning gameplay of a video game, a tutorial is provided to the user showing how to provide input via the touchscreen for gameplay. can be provided.

일부 실시예에 있어서, 클라이언트 디바이스는 컨트롤러 디바이스에 대한 접속 포인트로서 역할한다. 즉, 컨트롤러 디바이스는 컨트롤러 디바이스로부터 클라이언트 디바이스로 입력을 송신하도록 무선 또는 유선 접속을 통하여 클라이언트 디바이스와 통신한다. 차례로 클라이언트 디바이스는 이들 입력을 프로세싱하고 그 후 입력 데이터를 (예를 들어, 라우터와 같은 로컬 네트워크 디바이스를 통하여 액세스되는) 네트워크를 통하여 클라우드 게이밍 서버에 송신할 수 있다. 그렇지만, 다른 실시예에 있어서, 컨트롤러는 그 자체로, 우선 클라이언트 디바이스를 통해 그러한 입력을 통신하도록 요구됨이 없이, 클라우드 게이밍 서버에 네트워크를 통하여 직접 입력을 통신할 수 있는 능력을 갖는 네트워크형 디바이스일 수 있다. 예를 들어, 컨트롤러는 데이터를 클라우드 게이밍 서버에 보내고 그로부터 수신하도록 (전술한 라우터와 같은) 로컬 네트워크 디바이스에 접속될 수 있다. 그리하여, 클라이언트 디바이스가 여전히 클라우드-기반 비디오 게임으로부터의 비디오 출력을 수신하고 그것을 로컬 디스플레이 상에 렌더링하도록 요구될 수 있으면서도, 컨트롤러가, 클라이언트 디바이스를 우회하여, 클라우드 게이밍 서버에 네트워크를 통하여 직접 입력을 보낼 수 있게 함으로써 입력 레이턴시가 감축될 수 있다.In some embodiments, the client device serves as a point of attachment to the controller device. That is, the controller device communicates with the client device via a wireless or wired connection to transmit input from the controller device to the client device. The client device in turn may process these inputs and then transmit the input data to the cloud gaming server via a network (eg, accessed via a local network device such as a router). However, in other embodiments, the controller may itself be a networked device with the ability to communicate input directly over the network to the cloud gaming server without being required to first communicate such input through the client device. have. For example, the controller may be connected to a local network device (such as the router described above) to send data to and receive data from the cloud gaming server. Thus, the controller can send input directly over the network to the cloud gaming server, bypassing the client device, while the client device may still be required to receive video output from the cloud-based video game and render it on a local display. By doing so, the input latency can be reduced.

일 실시예에 있어서, 네트워크형 컨트롤러 및 클라이언트 디바이스는 특정 유형의 입력을 클라우드 게이밍 서버에 컨트롤러로부터 직접, 그리고 다른 유형의 입력을 클라이언트 디바이스를 통하여 보내도록 구성될 수 있다. 예를 들어, 그 검출이 컨트롤러 자체 외의 어느 부가적 하드웨어 또는 프로세싱에도 종속하지 않는 입력은, 클라이언트 디바이스를 우회하여, 네트워크를 통하여 클라우드 게이밍 서버에 컨트롤러로부터 직접 보내질 수 있다. 그러한 입력은 버튼 입력, 조이스틱 입력, 매립된 모션 검출 입력(예를 들어, 가속도계, 자력계, 자이로스코프) 등을 포함할 수 있다. 그렇지만, 부가적 하드웨어를 이용하거나 클라이언트 디바이스에 의한 프로세싱을 요구하는 입력은 클라이언트 디바이스에 의해 클라우드 게이밍 서버에 보내질 수 있다. 이들은 클라우드 게이밍 서버에 보내기 전에 클라이언트 디바이스에 의해 프로세싱될 수 있는 게임 환경으로부터의 캡처링된 비디오 또는 오디오를 포함할 수 있다. 부가적으로, 컨트롤러의 모션 검출 하드웨어로부터의 입력은 컨트롤러의 위치 및 모션을 검출하도록 캡처링된 비디오와 함께 클라이언트 디바이스에 의해 프로세싱될 수 있어서, 후속하여 클라이언트 디바이스에 의해 클라우드 게이밍 서버에 통신될 것이다. 다양한 실시예에 따른 컨트롤러 디바이스가 또한 클라이언트 디바이스로부터 또는 클라우드 게이밍 서버로부터 직접 데이터(예를 들어, 피드백 데이터)를 수신할 수 있음을 인식하여야 한다.In one embodiment, the networked controller and client device may be configured to send certain types of input to the cloud gaming server directly from the controller and other types of input through the client device. For example, input whose detection does not depend on any additional hardware or processing other than the controller itself may be sent directly from the controller to the cloud gaming server via the network, bypassing the client device. Such inputs may include button inputs, joystick inputs, embedded motion detection inputs (eg, accelerometer, magnetometer, gyroscope), and the like. However, input using additional hardware or requiring processing by the client device may be sent by the client device to the cloud gaming server. These may include captured video or audio from the gaming environment that may be processed by the client device prior to sending it to the cloud gaming server. Additionally, input from the controller's motion detection hardware may be processed by the client device along with the captured video to detect the controller's position and motion, which would subsequently be communicated by the client device to the cloud gaming server. It should be appreciated that a controller device according to various embodiments may also receive data (eg, feedback data) directly from a client device or from a cloud gaming server.

도 2b는, 본 발명의 실시예에 따라, 다양한 세대의 게이밍 콘솔에 걸친 게임 타이틀의 누적을 개념적으로 예시하고 있다. 비디오 게이밍 산업에 있어서, 비디오 게임은 특정 비디오 게임 콘솔에 대해 개발된다. 시간에 걸쳐 게임 타이틀의 라이브러리는 특정 게임 콘솔에 대해 축적된다. 예를 들어, 예시된 선도에 있어서, 제1 세대 콘솔(220)은 그에 대해 개발되어 온 게임 타이틀 집합(228)을 갖는다. 제2 세대 콘솔(222)은 그에 대해 개발되어 온 게임 타이틀 집합(230)을 그와 연관되어 갖는다. 그리고 제3 세대 콘솔(224)이 또한 그에 대해 개발된 게임 타이틀 집합(232)을 갖는 것으로 도시되어 있다. 다른 실시예에서는, 클라이언트(226)와 함께 사용을 위해 클라우드-기반 게임으로서 특히 개발되어 온 게임 타이틀 집합(234)이 있을 수 있다. 더욱, 인터넷 게임과 같은 다른 유형의 게임이, 여기에서 설명되는 바와 같이, 클라우드 게이밍 시스템에 걸친 분산을 위해 개발 및 수집될 수 있다. 여러 다른 세대의 게임 콘솔로부터의 게임 타이틀이 클라우드 게이밍 라이브러리(212)에서 수집 및 통합될 수 있다. 도시된 바와 같이, 라이브러리(212)는 제1 세대 콘솔(220)에 대해 개발되어 온 게임 타이틀을 포함하는 제1 세대 콘솔 라이브러리(236)를 포함한다. 유사한 방식으로, 라이브러리(212)는 또한, 각각, 제2 및 제3 세대 콘솔에 대해 개발되어 온 비디오 게임을 포함하고 있는 제2 세대 콘솔 라이브러리(238) 및 제3 세대 콘솔 라이브러리(240)를 포함한다. 클라이언트(226)에 대해 개발되어 온 게임 및 인터넷 게임과 같은 다른 유형의 게임이 또한 게임 라이브러리(212)에 포함될 수 있다. 알 수 있는 바와 같이, 다양한 세대의 비디오 게이밍 콘솔에 걸쳐 온 다수의 게임 타이틀이 클라우드 게이밍 라이브러리를 통하여 축적되고 이용가능하게 될 수 있다. 설명된 바와 같이, 이들 게임의 각각은 게임이 개발된 소정 게이밍 콘솔과 연관된 운영 체제 환경을 시뮬레이팅하는 가상 기계 상에서 실행될 수 있다. 이러한 방식으로, 클라우드-기반 게이밍 시스템에 액세스하는 사용자는 여러 다른 콘솔에 걸쳐 온 게임과 더불어 클라우드-기반 게이밍 시스템과의 사용을 위해 특히 개발되어 온 게임 및 인터넷 게임과 같은 다른 콘택트로부터의 게임에도 용이하게 액세스하여 플레이할 수 있다.2B conceptually illustrates the accumulation of game titles across various generations of gaming consoles, in accordance with an embodiment of the present invention. In the video gaming industry, video games are developed for specific video game consoles. Over time a library of game titles accumulates for a particular game console. For example, in the illustrated diagram, a first generation console 220 has a set of game titles 228 that have been developed for it. The second generation console 222 has associated therewith a set of game titles 230 that have been developed for it. and a third generation console 224 is also shown having a set of game titles 232 developed for it. In other embodiments, there may be a set of game titles 234 that have been specifically developed as cloud-based games for use with clients 226 . Moreover, other types of games, such as Internet games, may be developed and aggregated for distribution across cloud gaming systems, as described herein. Game titles from different generations of game consoles may be collected and consolidated in the cloud gaming library 212 . As shown, library 212 includes a first-generation console library 236 containing game titles that have been developed for first-generation console 220 . In a similar manner, library 212 also includes a second generation console library 238 and a third generation console library 240 containing video games that have been developed for second and third generation consoles, respectively. do. Other types of games, such as games that have been developed for the client 226 and Internet games, may also be included in the game library 212 . As can be seen, a large number of game titles from across different generations of video gaming consoles may be accumulated and made available through the cloud gaming library. As described, each of these games may be run on a virtual machine simulating an operating system environment associated with a given gaming console on which the game was developed. In this way, users accessing a cloud-based gaming system can easily access games from other contacts, such as Internet games and games that have been developed specifically for use with cloud-based gaming systems, as well as games that span multiple different consoles. You can access and play.

도 3은, 본 발명의 일 실시예에 따라, 사용자에게 게임 데모를 제공하기 위한 방법을 예시하고 있다. 데모에 이용가능한 다양한 게임 타이틀의 비네트 또는 아이콘(302, 304, 306, 308, 310, 312)을 제공하는 인터페이스(300)가 도시되어 있다. 각각의 아이콘은 그것이 표현하는 게임을 나타내는 이미지를 제공하도록 구성될 수 있다. 일 실시예에 있어서, 사용자가 소정 아이콘으로 항행할 때, 아이콘은 비디오 게임을 표현하는 또는 그렇지 않으면 비디오 게임의 컨텐트에 대해 사용자에게 부가적 정보를 제공하는 애니메이션 또는 비디오 클립을 보여주도록 활성화될 수 있다. 도시된 실시예에 있어서, 사용자는 아이콘(302)으로 항행하였고, 그래서 하이라이트 표시되어 비디오 게임으로부터의 장면을 보여주는 활동적 애니메이션을 디스플레이한다. 사용자가 아이콘을 선택할 때, 미리보기 비디오가 방법 연산(314)에 따라 보여질 수 있다. 사용자가 계속하여 방법 연산(316)에서 게임을 선택하면, 그때 방법 연산(318)에서는, 데모를 위한 게임 코드가 론칭된다. 방법 연산(320)에서는, 게임 데모가 사용자에 의한 게임플레이를 위해 즉석으로 이용가능하게 된다. 게임 데모가 클라우드 기반이기 때문에, 그것은 클라우드-기반 시스템에서 미리 로딩된 게임 데모 실체화로부터 즉석으로 이용가능하게 될 수 있음을 인식하여야 한다. 게임 데모가 론칭될 때, 미리 로딩된 게임 데모 실체화가 실행하도록 트리거링된다(triggered). 방법 연산(322)에서는, 사용자가 게임 데모의 게임플레이를 계속하기를 바라는지 또는, 하나가 이용가능하면, 비디오게임의 부가적 데모를 플레이하기를 바라는지 결정된다. 그러하면, 그때 방법은 연산(322)으로 복귀하여 게임 데모를 계속 실행하거나 또는 비디오게임에 대한 새로운 게임 데모를 실행한다. 아니라면, 그때는 방법 연산(324)에서, 사용자에게 비디오게임의 미니 버전을 구입하는 옵션이 제시된다. 부가적으로, 방법 연산(326)에서는, 사용자에게 비디오게임의 풀 버전을 구입하는 옵션이 제시될 수 있다. 사용자가 게임의 미니 버전 또는 풀 버전 중 어느 하나를 구입하기를 선택하면, 그때 방법 연산(328)에서는 그 게임 버전이 사용자의 계정에 부가된다. 게임이 클라우드-기반 게이밍 시스템을 통하여 이용가능하게 되기 때문에, 사용자의 계정에 게임의 부가는 단순히 게임의 특정 버전으로의 액세스 특권을 사용자의 계정과 연관시키는 것을 수반할 수 있음을 인식하여야 한다. 더욱, 구입되고 나면, 게임은, 특히 게임이 클라우드-기반 시스템에서 미리-실체화될 수 있으므로, 사용자에 의한 게임플레이를 위해 클라우드-기반 시스템으로부터 즉석으로 실제로 이용가능하게 될 수 있다.3 illustrates a method for providing a game demo to a user, in accordance with an embodiment of the present invention. An interface 300 is shown that provides vignettes or icons 302 , 304 , 306 , 308 , 310 , 312 of various game titles available for demonstration. Each icon may be configured to provide an image representing the game it represents. In one embodiment, when a user navigates to an icon, the icon may be activated to show an animation or video clip representing the video game or otherwise providing additional information to the user about the content of the video game. . In the illustrated embodiment, the user has navigated to icon 302 , so highlighted to display an active animation showing a scene from the video game. When the user selects the icon, a preview video may be shown according to method operation 314 . If the user continues to select a game at method operation 316 , then at method operation 318 , the game code for demo is launched. In method operation 320, a game demo is made immediately available for gameplay by the user. It should be appreciated that since the game demo is cloud-based, it may be made available on the fly from a preloaded game demo instantiation in a cloud-based system. When the game demo is launched, the preloaded game demo instantiation is triggered to run. In method operation 322, it is determined whether the user wishes to continue gameplay of the game demo or, if one is available, to play additional demos of the video game. If so, then the method returns to operation 322 to continue running the game demo or run a new game demo for the videogame. If not, then in method operation 324, the user is presented with the option to purchase a mini version of the videogame. Additionally, at method operation 326 , the user may be presented with an option to purchase a full version of the videogame. If the user chooses to purchase either the mini version or the full version of the game, then the method operation 328 adds that game version to the user's account. It should be appreciated that, as the game is made available through the cloud-based gaming system, adding the game to the user's account may simply involve associating the user's account with privileges of access to a particular version of the game. Moreover, once purchased, the game may be actually made available immediately from the cloud-based system for gameplay by the user, particularly since the game may be pre-instantiated in the cloud-based system.

도 4a는, 본 발명의 일 실시예에 따라, 비디오게임의 다양한 부분의 계층적 조직을 예시하고 있다. 예로서, 비디오게임은 다양한 섹션(400)으로 조직될 수 있다. 도시된 실시예에 있어서, 이들은 설정 섹션, 도입 섹션, 다양한 레벨 섹션, 및 아우트로 섹션을 포함할 수 있다. 소정 레벨은 다양한 장면으로 더 분할될 수 있다. 도시된 바와 같이, 레벨 3 섹션은 다양한 장면(402)으로 나뉜다. 사용자가 소정 장면을 통해 플레이할 때, 실행된 게임 애플리케이션의 게임 상태 및 레코딩된 입력 데이터뿐만 아니라 사용자의 게임플레이의 레코딩된 비디오도 포함하는, 그 장면의 게임플레이 타임라인이 레코딩될 수 있다. 예시된 실시예에서는, 게임플레이 타임라인(404)이 게임의 레벨 3의 장면 2의 사용자 게임플레이를 표현하는 것으로서 도시되어 있다. 본 발명의 실시예에 의하면, 사용자는 그들의 레코딩된 게임플레이의 어느 부분으로부터 미니 게임 또는 게임 슬라이스를 발생시킬지 선택할 수 있다. 예를 들어, 도시된 실시예에 있어서, 게임플레이 타임라인(404)은 시작 시간(T0) 및 종료 시간(Tz)을 갖는다. 시간(Tx)으로부터 시간(Ty)까지의 게임플레이 타임라인의 일부로부터 미니게임을 발생시키도록 선택되었다.4A illustrates the hierarchical organization of various parts of a videogame, in accordance with an embodiment of the present invention. As an example, a videogame may be organized into various sections 400 . In the illustrated embodiment, these may include a setting section, an introduction section, a various level section, and an outro section. A given level may be further divided into various scenes. As shown, the level 3 section is divided into various scenes 402 . As the user plays through a scene, a gameplay timeline of that scene may be recorded, including the game state and recorded input data of the executed game application as well as recorded video of the user's gameplay. In the illustrated embodiment, the gameplay timeline 404 is shown as representing user gameplay of scene 2 of level 3 of the game. In accordance with embodiments of the present invention, users can select from which parts of their recorded gameplay to generate mini-games or game slices. For example, in the illustrated embodiment, the gameplay timeline 404 has a start time T 0 and an end time T z . The minigame was chosen to generate from a portion of the gameplay timeline from time T x to time T y .

도 4b는, 본 발명의 일 실시예에 따라, 미니게임 또는 게임 슬라이스의 발생을 위해 게임플레이 타임라인의 일부를 선택하기 위한 인터페이스를 예시하고 있다. 도시된 실시예에 있어서, 인터페이스(412)는 디바이스(410)의 터치스크린(411) 상에 제시된다. 일 실시예에 있어서, 디바이스(410)는 태블릿 컴퓨팅 디바이스이다. 인터페이스(412)는 선택가능한 게임플레이 타임라인(414)을 포함한다. 게임플레이 타임라인(414)의 확대도(430)에 있어서, 일 실시예에서는 게임플레이 타임라인(414)이 조절가능한 마커(416, 418)를 갖는 필름 스트립으로서 표현됨을 알 수 있다. 마커(416)는 선택의 게임플레이 타임라인(414)을 따른 시작 포인트를 지정하는 반면, 마커(418)는 선택의 게임플레이 타임라인을 따른 종료 포인트를 지정한다. 더욱, 마커(419)는 시작 마커(416)와 종료 마커(418)에 의해 찾은 게임플레이 타임라인(414) 부분 내 위치결정될 수 있다. 사용의 용이함을 위해 그리고 그들의 게임플레이의 어떤 부분이 선택되고 있는지의 시각적 이해를 사용자에게 제공하기 위해, 시작 프레임(420)은 마커(416)가 위치결정된 게임플레이 타임라인을 따른 포인트에 대응하여 보여질 수 있다. 시작 프레임(420)은 시작 마커(416)가 위치결정되는 시간에 대응하는 레코딩된 게임플레이 비디오의 이미지이다. 마찬가지로, 대표적 종료 프레임(424)은 마커(418)가 위치결정된 게임플레이 타임라인을 따른 포인트에 대응하여 보여질 수 있다. 유사한 방식으로, 종료 프레임(424)은 종료 마커(418)가 위치결정되는 시간에 대응하는 레코딩된 게임플레이 비디오의 이미지이다. 부가적으로, 대표적 프레임(422)은 게임플레이 타임라인을 따른 마커(419)의 포인트에 대응하여 디스플레이될 수 있다. 대표적 프레임(422)은 게임플레이 타임라인의 선택된 부분에 기반하여 생성되는 미니게임에 대한 대표적 이미지로서 이용될 수 있다. 도시된 실시예에서는 터치스크린 인터페이스가 제공 및 설명되고 있더라도, 다른 실시예에서는 다양한 다른 종류의 입력이 미니게임의 생성을 위한 게임플레이의 일부를 정의할 시작 및 종료 포인트를 선택하도록 이용될 수 있음을 인식하여야 한다. 예를 들어, 입력은 레코딩된 게임플레이 비디오로부터의 대표적 이미지 프레임의 선택과 함께 게임플레이의 일부의 선택을 가능하게 하도록 게임 컨트롤러, 키보드를 통하여, 제스처 입력, 음성 입력을 통하여, 그리고 다른 유형의 입력 디바이스 및 메커니즘에 따라 제공될 수 있다.4B illustrates an interface for selecting a portion of a gameplay timeline for generation of a minigame or game slice, in accordance with an embodiment of the present invention. In the illustrated embodiment, interface 412 is presented on touchscreen 411 of device 410 . In one embodiment, device 410 is a tablet computing device. Interface 412 includes a selectable gameplay timeline 414 . In enlarged view 430 of gameplay timeline 414 , it can be seen that in one embodiment, gameplay timeline 414 is represented as a strip of film with adjustable markers 416 , 418 . Marker 416 designates a starting point along the gameplay timeline 414 of selection, while marker 418 designates an ending point along the gameplay timeline of selection. Further, the marker 419 may be positioned within the portion of the gameplay timeline 414 found by the start marker 416 and the end marker 418 . For ease of use and to provide the user with a visual understanding of which part of their gameplay is being selected, a starting frame 420 is shown corresponding to a point along the gameplay timeline at which a marker 416 is located. can get The start frame 420 is an image of the recorded gameplay video corresponding to the time at which the start marker 416 is positioned. Likewise, a representative end frame 424 may be shown corresponding to a point along the gameplay timeline at which the marker 418 was located. In a similar manner, end frame 424 is an image of the recorded gameplay video corresponding to the time at which end marker 418 is positioned. Additionally, representative frames 422 may be displayed corresponding to points of markers 419 along the gameplay timeline. Representative frame 422 may be used as a representative image for a minigame that is created based on a selected portion of the gameplay timeline. Although a touchscreen interface is provided and described in the illustrated embodiment, it should be noted that in other embodiments a variety of other types of input may be used to select starting and ending points that will define some of the gameplay for the creation of a minigame. should be recognized For example, input may be via a game controller, keyboard, via gesture input, voice input, and other types of input to enable selection of portions of gameplay along with selection of representative image frames from recorded gameplay video. It may be provided depending on the device and mechanism.

일부 실시예에 있어서, 선택 마커는 게임플레이 타임라인을 따라 연속적으로 조절가능하지 않을 수 있고, 대신에 게임플레이 타임라인을 따른 기-정의된 시간 포인트로 똑딱하도록 구성될 수 있다. 예를 들어, 미리 정의된 시간 포인트는 게임플레이 타임라인에서 일어나는 특정 이벤트와 대응하도록 정의될 수 있다. 미리 정의된 시간 포인트가 배정될 소정 게임플레이 타임라인의 특정 이벤트는 사용자 게임플레이의 분석에 기반하여 발생될 수 있고, 비디오게임 게임플레이의 특정 아키텍처에 종속할 것이다. 일 실시예에 있어서, 미리 정의된 시간 포인트는 비디오게임에 의해 정의된 가상 세계 내 캐릭터의 지리적 위치에 기반하여 배정될 수 있다. 예를 들어, 미리 정의된 시간 포인트는 캐릭터가, 예를 들어, 하나의 장면 위치로부터 다른 장면 위치로 이동하여, 하나의 도시로부터 다른 도시로 이동하여, 구조물에 들어가, 구조물 내 방에 들어가, 차량에 들어가, 다른 유형의 환경에 들어가, 또는 유의미한 어느 다른 종류의 지리적 이행으로, 하나의 지리적 무대로부터 다른 지리적 무대로 이동한 특정 시간에 배정될 수 있다. 다른 일 실시예에 있어서, 미리 정의된 시간 포인트는 비디오게임에서 제어되는 사용자의 캐릭터 또는 엔티티의 진화에 기반하여 배정될 수 있다. 예를 들어, 미리 정의된 시간 포인트는 사용자에 의해 제어되는 캐릭터 또는 엔티티가 과업을 성취하거나, 스킬을 취득하거나, 물체를 취득하거나, 레벨을 통과하거나 아니면 비디오게임의 일부를 완료하거나, 또는 비디오 게임에서 어느 다른 종류의 유의미한 활동을 수행 또는 달성할 때 배정될 수 있다.In some embodiments, the selection marker may not be continuously adjustable along the gameplay timeline, but instead may be configured to tick to pre-defined time points along the gameplay timeline. For example, predefined time points may be defined to correspond to specific events occurring in the gameplay timeline. Certain events in a given gameplay timeline to which predefined time points will be assigned may occur based on analysis of user gameplay and will depend on the particular architecture of videogame gameplay. In one embodiment, the predefined time points may be assigned based on the geographic location of the character within the virtual world defined by the videogame. For example, a predefined time point may indicate that a character moves, eg, from one scene location to another, moves from one city to another, enters a structure, enters a room within the structure, enters a vehicle may be assigned to a specific time of movement from one geographic stage to another, into a location, into a different type of environment, or any other kind of geographic transition that is significant. In another embodiment, predefined time points may be assigned based on the evolution of a user's character or entity controlled in the videogame. For example, a predefined time point may indicate that a character or entity controlled by the user accomplishes a task, acquires a skill, acquires an object, passes a level, or otherwise completes a portion of a videogame, or a videogame. may be assigned when performing or accomplishing any other kind of meaningful activity in

도 4c는, 본 발명의 일 실시예에 따라, 미니게임의 발생을 위해 게임플레이 타임라인의 일부를 선택하기 위한 인터페이스를 예시하고 있다. 게임플레이 타임라인(414)은 일반적으로는, 미니게임을 발생시킬 게임플레이의 선택을 지정하도록, 사용자가 시작 및 종료 마커(416, 418)를 설정할 수 있는 타임라인을 예시하고 있다. 시작 마커(416)의 위치에 대응하는 시작 프레임(410)과 더불어, 종료 마커(418)의 위치에 대응하는 종료 프레임(424)도 보여지고 있다. 프레임은 사용자의 게임플레이의 레코딩된 비디오로부터 식별될 수 있음을 인식할 것이다. 여러 후보 프레임(440, 442, 444, 446)이 제시되며, 그로부터 사용자는 미니게임에 대한 대표적 프레임으로서 이용될 하나를 선택할 수 있다. 후보 프레임은 다양한 방법에 따라 결정될 수 있다. 예를 들어, 후보 프레임은 게임플레이 타임라인의 선택된 부분의 프랙션 인터벌로부터 제시될 수 있다. 인터벌은, 후보 프레임이 게임플레이 타임라인을 따라 동등하게 이격되어 있도록 균등할 수 있거나, 또는 인터벌은, 일부 프레임이 게임플레이 타임라인을 따른 다른 것들보다 서로 더 근접하여 있도록 비-균등일 수 있다. 일 실시예에 있어서, 더 높은 밀도의 후보 프레임은 게임플레이 타임라인의 선택된 부분의 나중 부분에 비해 게임플레이 타임라인의 선택된 부분의 앞선 부분으로부터 발생된다. 일 실시예에 있어서, 더 높은 밀도의 후보 프레임은 게임플레이 타임라인의 선택된 부분의 앞선 영역으로부터도 그리고 나중 영역으로부터도 발생되는 반면, 더 낮은 밀도의 후보 프레임은 게임플레이 타임라인의 선택된 부분의 중심 부분으로부터 발생된다.4C illustrates an interface for selecting a portion of a gameplay timeline for generation of a minigame, in accordance with an embodiment of the present invention. Gameplay timeline 414 generally illustrates a timeline in which a user can set start and end markers 416 and 418 to specify a selection of gameplay that will result in a minigame. In addition to the start frame 410 corresponding to the position of the start marker 416 , an end frame 424 corresponding to the position of the end marker 418 is also shown. It will be appreciated that frames can be identified from recorded video of the user's gameplay. Several candidate frames 440 , 442 , 444 , 446 are presented from which the user can select one to be used as a representative frame for the minigame. The candidate frame may be determined according to various methods. For example, candidate frames may be presented from fractional intervals of selected portions of the gameplay timeline. Intervals may be uniform such that candidate frames are equally spaced along the gameplay timeline, or the intervals may be non-uniform such that some frames are closer together than others along the gameplay timeline. In one embodiment, the higher density of candidate frames is generated from earlier portions of the selected portion of the gameplay timeline compared to later portions of the selected portion of the gameplay timeline. In one embodiment, the higher density of candidate frames originates from regions both earlier and later of the selected portion of the gameplay timeline, while the lower density of candidate frames is the center of the selected portion of the gameplay timeline. arises from part.

사용자가 미니게임을 생성할 게임플레이의 일부를 선택한 후에, 본 발명의 실시예는 게임플레이의 선택된 부분에 기반하여 플레이가능한 미니게임을 생성할 방법 및 시스템을 제공한다. 더 구체적으로, 미니게임은 원래 사용자가 플레이한 비디오 게임의 실질적 동일 부분을 플레이하게 할 수 있고, 실질적으로 동일 조건 및 파라미터 하에서 가능하다. 이러한 의미에서, 미니게임은 (원래 사용자의 게임플레이의 리플레이 비디오 클립이 미니게임과 함께 제시될 수 있더라도) 단순히 원래 사용자의 게임플레이의 리플레이 비디오 이상이지만, 그들 자신의 게임플레이의 사용자 선택에 기반하여 지정된 비디오 게임 자체의 플레이가능한 부분이다. 그리하여 이차 사용자는 원래 사용자와 실질적으로 유사한 게임플레이 체험을 경험할 수 있다.After the user has selected a portion of gameplay for which to create a minigame, embodiments of the present invention provide a method and system for creating a playable minigame based on the selected portion of gameplay. More specifically, the minigame may cause the user to play substantially the same portion of the video game originally played, and under substantially the same conditions and parameters. In this sense, minigames are more than simply replay videos of the original user's gameplay (even though a replay video clip of the original user's gameplay may be presented with the minigame), but based on user selections of their own gameplay. A playable part of the designated video game itself. Thus, the secondary user may experience a gameplay experience substantially similar to that of the original user.

도 5는, 본 발명의 일 실시예에 따라, 기존 클라우드-기반 비디오게임으로부터 미니게임을 발생시키기 위한 방법을 실증하는 일련의 스크린샷을 예시하고 있다. 스크린샷(500)은 사용자의 비디오게임 플레이를 보여주고 있다. 도시된 실시예에 있어서, 사용자는 비디오게임의 레벨 3을 플레이한다. 스크린샷(502)에서, 사용자는 비디오게임의 레벨 3을 완료하였다. 레벨의 완료시, 사용자에게는 그 레벨의 사용자의 게임플레이에 기반하여 게임 슬라이스 또는 미니게임을 발생시키는 옵션이 제공된다. 사용자가 게임 슬라이스를 발생시키기로 동의할 때, 그 후 스크린샷(504)에서 사용자에게는 사용자의 레코딩된 게임플레이로부터 게임 슬라이스에 대한 시작 포인트를 선택하는 인터페이스가 제시된다. 설명된 바와 같이, 게임플레이 타임라인의 표현은 사용자가 게임 슬라이스에 대한 시작 포인트를 지정하도록 움직일 수 있는 조절가능한 슬라이더와 보여질 수 있다. 사용자가 시작 포인트를 정의한 후에, 그 후 스크린샷(506)에서, 사용자에게는 게임 슬라이스에 대한 종료 포인트의 선택을 가능하게 하도록 구성된 인터페이스가 제시된다. 또다시, 조절가능한 슬라이더는 인터페이스에서 대표적 게임플레이 타임라인을 따라 종료 포인트를 지정하도록 사용자에 의해 움직여진다. 사용자의 게임플레이 타임라인으로부터 시작 및 종료 포인트가 지정된 후에, 게임 슬라이스 또는 미니게임이 여기 다른 곳에서 설명되는 바와 같이 시스템에 의해 발생된다. 스크린샷(508)에서, 사용자에게는, 새롭게 생성된 게임 슬라이스를 다른 사용자와 공유하거나 아니면 새롭게 발생된 게임 슬라이스를 다른 사용자에게 알려주는 옵션, 동일 게임플레이 타임라인으로부터 다른 게임 슬라이스를 발생시키는 옵션, 현재 비디오게임의 게임플레이를 계속하는 옵션, 사용자의 기존 게임 슬라이스를 보는 옵션 등과 같은, 부가적 옵션이 제시될 수 있다. 사용자가 그들의 기존 게임 슬라이스를 보기로 선택하면, 그때 스크린샷(510)에서는, 사용자의 이전 생성된 게임 슬라이스를 디스플레이하는 인터페이스가 보여진다. 도시된 실시예에 있어서, 사용자는, 스크린샷(512)에 도시된 바와 같이, 이전에 생성된 게임 슬라이스 중 하나를 선택하고, 그 게임 슬라이스와 관련된 정보 및 통계를 볼 수 있다. 소정 게임 슬라이스와 관련된 정보 및 통계는 이하의 것 중 어느 것을 포함할 수 있다: 게임 슬라이스의 타이틀, 게임 슬라이스가 원래 생성된 비디오게임, 게임 슬라이스가 생성된 일자, 게임 슬라이스가 다른 사용자에 의해 플레이된 횟수, 게임 슬라이스를 플레이하도록 착수한 사용자에 의해 완료되어 있는 게임 슬라이스의 평균 백분율을 나타내는 완료 백분율, 다른 사용자에 의해 남겨진 코멘트 등.5 illustrates a series of screenshots demonstrating a method for generating a minigame from an existing cloud-based videogame, in accordance with an embodiment of the present invention. Screenshot 500 shows the user's videogame play. In the illustrated embodiment, the user plays level 3 of the videogame. In screenshot 502, the user has completed level 3 of the videogame. Upon completion of a level, the user is presented with the option to generate a game slice or minigame based on the user's gameplay of that level. When the user agrees to generate a game slice, then in screenshot 504 the user is presented with an interface to select a starting point for the game slice from the user's recorded gameplay. As described, a representation of the gameplay timeline can be shown with an adjustable slider that the user can move to specify a starting point for a game slice. After the user has defined the starting point, then in screenshot 506, the user is presented with an interface configured to enable selection of an ending point for the game slice. Again, the adjustable slider is moved by the user to specify an end point along the representative gameplay timeline in the interface. After starting and ending points are specified from the user's gameplay timeline, a game slice or minigame is generated by the system as described elsewhere herein. In screenshot 508, the user has the option to share the newly created game slice with other users, or otherwise inform other users of the newly created game slice, to generate another game slice from the same gameplay timeline, the current Additional options may be presented, such as an option to continue gameplay of the videogame, an option to view the user's existing game slice, and the like. If the user chooses to view their existing game slice, then in screenshot 510 an interface is shown displaying the user's previously created game slice. In the illustrated embodiment, the user may select one of the previously created game slices and view information and statistics related to that game slice, as shown in screenshot 512 . Information and statistics related to a given game slice may include any of the following: the title of the game slice, the videogame in which the game slice was originally created, the date the game slice was created, and when the game slice was played by another user. The number of times, the percentage complete representing the average percentage of game slices that have been completed by users who have initiated to play the game slice, comments left by other users, etc.

현재 설명된 실시예에서는 게임 슬라이스를 발생시키는 옵션이 비디오게임의 레벨의 완료에 뒤이어 사용자에게 제시되고 있더라도, 다른 실시예에서는, 게임 슬라이스에 대해 사용자에 의해 선택이 정의될 수 있는 비디오게임의 레코딩된 게임플레이가 존재하면, 사용자는 비디오게임의 게임플레이 동안 또는 그 외 어느 다른 시간에서라도 게임 슬라이스를 발생시킬 수 있음을 인식하여야 한다. 예를 들어, 일 실시예에서는 사용자와 연관되는 다양한 비디오 게임으로부터 다양한 레코딩된 게임플레이로의 액세스를 제공하는 인터페이스가 제시될 수 있다. 사용자는 특정 비디오게임의 게임플레이를 선택하고 여기에서 설명되는 실시예에 따라 게임 슬라이스를 발생시킬 레코딩된 게임플레이의 일부를 선택함으로써 게임 슬라이스를 발생시킬 수 있다.Although in the presently described embodiment the option to generate a game slice is presented to the user following completion of a level in the videogame, in another embodiment, a recorded videogame of a videogame in which selections can be defined by the user for the game slice. If gameplay is present, it should be appreciated that the user may generate game slices during gameplay of the videogame or at any other time. For example, in one embodiment, an interface may be presented that provides access to various recorded gameplay from various video games associated with the user. A user may generate a game slice by selecting the gameplay of a particular videogame and selecting a portion of the recorded gameplay for which to generate a game slice according to embodiments described herein.

도 6은, 본 발명의 일 실시예에 따라, 게임 슬라이스 코드를 발생시키기 위한 시스템을 예시하고 있다. 용어 게임 슬라이스 및 미니게임은 여기에서는 기존 레코딩된 게임플레이로부터 사용자 선택에 기반하여 발생되는 비디오게임의 디스크리트 및 플레이가능한 부분을 정의하도록 호환가능하게 사용된다. 도시된 실시예에 있어서, 사용자 게임플레이(600)는 비디오게임의 풀 버전과 대화하는 사용자를 개념적으로 표현한다. 주 게임 코드(602)는 사용자에 의해 디스플레이되는 비디오게임의 풀 버전을 정의하도록 실행된다. 비디오 게임이 플레이될 때, 그것은, 비디오 데이터, 게임 상태 데이터, 및 사용자 입력 데이터를 포함하는, 다양한 유형의 게임플레이 출력을 발생시킨다. 이들은 사용자의 레코딩된 게임플레이를 정의하도록 레코딩될 수 있다. 도시된 실시예에 있어서, 이미지 스트림(604)은 비디오게임에 의해 출력되는 비디오 데이터를 개념적으로 표현한다. 게임 상태 메타데이터(606) 및 사용자 입력 데이터(608)가 또한 도시되어 있다. 게임 상태 데이터(606)는 게임플레이 동안 순간순간 실행 중 비디오게임의 게임 상태를 정의하는 데이터를 포함한다. 게임 상태 데이터는 비디오게임의 실행 상태를 정의하는 어떠한 변수의 값이라도 포함할 수 있다. 사용자 입력 데이터는, 컨트롤러 디바이스 상의 입력 디바이스의 활성화, 센서 데이터(예를 들어, 모션 센서)의 검출, 캡처링된 오디오 입력 등을 통하여 제공될 수 있는 바와 같이, 비디오게임과의 대화 동안 일어나는 사용자 개시된 액션을 캡처링함으로써 발생된 데이터이다.6 illustrates a system for generating game slice codes, in accordance with an embodiment of the present invention. The terms game slice and minigame are used herein interchangeably to define discrete and playable portions of a videogame that are generated based on user selections from existing recorded gameplay. In the illustrated embodiment, user gameplay 600 is a conceptual representation of a user interacting with a full version of a videogame. Main game code 602 is executed to define the full version of the videogame displayed by the user. When a video game is played, it generates various types of gameplay output, including video data, game state data, and user input data. These can be recorded to define the user's recorded gameplay. In the illustrated embodiment, the image stream 604 conceptually represents the video data output by the videogame. Game state metadata 606 and user input data 608 are also shown. Game state data 606 includes data defining the game state of the videogame during execution moment by moment during gameplay. The game state data may include the value of any variable that defines the running state of the video game. User-input data may be provided through activation of an input device on a controller device, detection of sensor data (eg, motion sensor), captured audio input, etc., user-initiated data that occurs during a conversation with a videogame. Data generated by capturing an action.

설명된 바와 같이, 사용자 인터페이스는 게임 슬라이스를 발생시킬 사용자의 게임플레이의 일부의 사용자에 의한 선택을 용이하게 하도록 사용자의 레코딩된 게임플레이를 그래픽 묘사할 수 있다. 도시된 실시예에 있어서, 사용자는 그들 레코딩된 게임플레이로부터 선택(610)을 정의하였다. 사용자의 레코딩된 게임플레이의 이러한 선택은 사용자의 게임플레이의 선택된 부분에 기반하여 제한된 게임을 정의하는 게임 슬라이스 코드(622)를 발생시키도록 게임 슬라이스 발생기에 의해 이용된다. 게임 슬라이스 발생기(612)는 레코딩된 선택(610)의 게임 상태를 분석하는 게임 상태 분석기(614)를 포함한다. 레코딩된 선택의 게임 상태의 분석에 기반하여, 게임 브레이크포인트 프로세서는 게임 슬라이스의 시작 및 종료를 정의하기에 적합한 브레이크포인트를 결정한다. 브레이크포인트는 지리, 시간, 과업 또는 목표 성취, 장면 경계(물리적 또는 시간적), 또는 비디오 게임의 게임플레이가 게임 슬라이스를 발생시키도록 따라 세그먼팅될 수 있는 비디오 게임의 어느 다른 태양에 기반하여 정의될 수 있다. 일부 예시적 실시예의 간략한 설명이 브레이크포인트 결정에 대한 특정 가능성을 강조하는 역할을 할 것이다.As described, the user interface may graphically depict the user's recorded gameplay to facilitate selection by the user of a portion of the user's gameplay to generate a game slice. In the illustrated embodiment, the user has defined selections 610 from their recorded gameplay. This selection of the user's recorded gameplay is used by the game slice generator to generate game slice code 622 that defines a limited game based on the selected portion of the user's gameplay. The game slice generator 612 includes a game state analyzer 614 that analyzes the game state of the recorded selection 610 . Based on the analysis of the game state of the recorded selection, the game breakpoint processor determines suitable breakpoints to define the start and end of the game slice. Breakpoints may be defined based on geography, time, task or goal achievement, scene boundaries (physical or temporal), or any other aspect of a video game in which the gameplay of the video game may be segmented along to generate a game slice. can A brief description of some example embodiments will serve to highlight certain possibilities for breakpoint determination.

예를 들어, 일부 비디오 게임은 하나의 지리적 장면 또는 무대로부터 다른 장면 또는 무대로 이동될 수 있는 캐릭터의 제어를 수반한다. 사용자의 게임플레이의 선택된 부분은 특정 장면에서의 게임플레이로부터 발생되도록 결정될 수 있다. 그러한 일 실시예에 있어서, 특정 장면의 경계는 게임 슬라이스에 대한 지리적 브레이크포인트를 정의하여, 인접하지 않거나 맞닿지 않은 아니면 특정 장면과 덜 관련되거나 무관한 장면뿐만 아니라 다른 인접하거나 맞닿은 장면의 배제를 수반하는, 다른 장면의 배제로, 장면을 선택할 수 있다. 레코딩된 게임플레이 선택(610)은 다수의 장면으로부터의 게임플레이를 수반할 수 있고, 그 경우에, 게임 브레이크포인트 프로세서(616)는 레코딩된 게임플레이 선택을 위해 이용되는 다수의 장면의 경계에 따라 브레이크포인트를 정의하도록 구성될 수 있음을 인식하여야 한다.For example, some video games involve controlling a character that can be moved from one geographic scene or stage to another. A selected portion of the user's gameplay may be determined to result from gameplay in a particular scene. In one such embodiment, the boundaries of a particular scene define geographic breakpoints for the game slice, entailing the exclusion of non-adjacent or non-contiguous or less relevant or irrelevant scenes, as well as other adjacent or abutting scenes. A scene can be selected by excluding other scenes. The recorded gameplay selection 610 may involve gameplay from multiple scenes, in which case the game breakpoint processor 616 is configured to follow the boundaries of the multiple scenes used for the recorded gameplay selection. It should be appreciated that it can be configured to define breakpoints.

장면은 본질상 지리적이고 또한 시간적일 수 있음을 유념해야 한다. 즉, 장면은 비디오 게임에 의해 정의된 가상 공간 내 지리적 영역을 정의할 수 있을 뿐만 아니라, 또한 비디오 게임의 더 큰 맥락 내 특정 연대기적 포인트에서 또는 특정 시간 동안 존재하도록 구성될 수 있다. 그러한 장면은 플레이어에 의해 성취되어야 하는 목적 또는 목표를 정의하였을 수 있다. 그리하여, 게임 브레이크포인트는 비디오 게임에 의해 정의된 바와 같이 연대기적 또는 다른 시간적 태양에 기반하여 정의될 수 있다. It should be noted that a scene can be both geographical and temporal in nature. That is, a scene may not only define a geographic area within the virtual space defined by the video game, but may also be configured to exist at a specific chronological point or for a specific time within the larger context of the video game. Such a scene may have defined an objective or goal to be achieved by the player. Thus, game breakpoints may be defined based on chronological or other temporal aspects as defined by video games.

더욱, 소정 장면은 게임플레이 동안 장면의 일부분으로서 제시되는 물체 또는 피처(feature)를 연관시켰을 수 있다. 이들 물체 또는 피처는 그들 포함에 따라 추가적 브레이크포인트를 정의하도록 분석될 수 있다. 예를 들어, 장면 내 물체는 자산 라이브러리의 부분 집합으로부터 취해질 수 있고, 그 경우 자산 라이브러리의 부분 집합은, 레코딩된 게임플레이 선택과 연관된 장면(들)에서 이용되지 않는 자산 라이브러리 내 다른 물체를 배제하고, 게임 브레이크포인트 프로세서(616)에 의해 게임 슬라이스에 대해 정의될 수 있다. 물체 및 피처는 소정 장면의 동적 엘리먼트일 수 있으며, 연관된 메커니즘은 비디오 게임에서 일어나는 이벤트에 응답하여 그들 변화를 정의할 수 있음을 이해하여야 한다. 예를 들어, 물체는 그것이 손상될 때(예를 들어, 무기에 맞았을 때) 물체의 외관을 결정 및 조절하는 손상 모델링 모듈을 갖고 있을 수 있다. 또는 피처는 장면 동안 이용가능하게 되는 차량일 수 있으며, 차량은 게임플레이 동안 그 외관과 더불어 그 조작 및 사용자 입력에 대한 반응도 정의하는 로직을 연관시켰을 수 있다. 그러한 로직 또는 손상 모델링은 게임 슬라이스의 발생을 위한 게임 브레이크포인트를 더 정의할 수 있다.Moreover, certain scenes may have associated objects or features that are presented as part of the scene during gameplay. These objects or features can be analyzed to define additional breakpoints according to their inclusion. For example, objects in a scene may be taken from a subset of the asset library, in which case the subset of the asset library excludes other objects in the asset library that are not used in the scene(s) associated with the recorded gameplay selection and , may be defined for the game slice by the game breakpoint processor 616 . It should be understood that objects and features may be dynamic elements of a scene, and the associated mechanisms may define their changes in response to events occurring in the video game. For example, an object may have a damage modeling module that determines and adjusts the appearance of the object when it is damaged (eg, hit by a weapon). Or the feature could be a vehicle that becomes available during a scene, and the vehicle has associated logic that defines its appearance as well as its manipulation and response to user input during gameplay. Such logic or damage modeling may further define game breakpoints for the occurrence of game slices.

비디오 게임의 선택된 부분에 대해 이용되거나 그렇지 않으면 정의하는 비디오 게임의 다양한 태양이 게임 브레이크포인트를 정의하기 위한 기반일 수 있다. 현재 설명되는 예들은 단지 예로서 제공될 뿐이고 제한으로서가 아니다. 다른 실시예에 있어서, 비디오 게임의 다른 태양이 게임 슬라이스를 발생시킬 브레이크포인트를 정의하기 위한 기반을 형성할 수 있다.Various aspects of a video game that are used or otherwise defined for a selected portion of the video game may be the basis for defining game breakpoints. The examples currently described are provided by way of example only and not limitation. In other embodiments, other aspects of a video game may form the basis for defining breakpoints at which game slices will occur.

일 실시예에 있어서, 비디오 게임은, 나중 장면은 그 선행하는 장면이 우선 완료될 때까지 시도될 수 없게 되도록, 선형 방식으로 완료되어야 하는 다양한 장면으로 조직될 수 있다. 각각의 장면은 여러 목적 또는 목표를 포함할 수 있으며, 그 중 일부는 장면의 완료에 요구될 수 있고, 그 중 일부는 장면의 완료에 선택사항일 수 있다. 목적은 장면 내 미리 정의된 종료 위치로 시작 위치로부터 항행하는 것, 미리 정의된 시간 길이 동안 살아남는 것, 미리 정의된 수의 적을 죽이는 것, 소정 수의 포인트를 취득하는 것, 특정 적을 물리치는 것, 또는 게임 내 목적을 정의할 수 있는 어떠한 다른 활동이라도 포함할 수 있다. 장면은 다양한 미리 정의된 완료 포인트, 즉, 사용자가, 완료 포인트를 달성하고 나면, 사용자가 어떤 이유(예를 들어, 사용자가 게임을 그만 둠, 사용자의 캐릭터가 죽거나 생명 또는 건강을 다함, 사용자의 차량 박살 등)로 게임플레이를 계속할 수 없게 되면 그 포인트로 복귀할 수 있는 포인트를 가질 수 있다. 미리 정의된 완료 포인트에서, 비디오 게임은 사용자의 진행을 자동으로 저장하거나, 또는 그들 진행을 저장하는 옵션을 사용자에게 제시하도록 구성될 수 있다.In one embodiment, the video game may be organized into various scenes that must be completed in a linear fashion such that later scenes cannot be attempted until their predecessors have been completed first. Each scene may include several objectives or goals, some of which may be required for completion of the scene, some of which may be optional for completion of the scene. The objective is to navigate from the starting position to a predefined end position in the scene, to survive for a predefined length of time, to kill a predefined number of enemies, to obtain a predefined number of points, to defeat a specific enemy, or any other activity that may define an in-game purpose. A scene may contain a variety of predefined completion points, i.e., once the user achieves the completion point, the user may be prompted for some reason (e.g., the user quits the game, the user's character dies or runs out of life or health, the user's If you can't continue gameplay due to a vehicle smashed, etc.), you can have points to return to those points. At a predefined point of completion, the video game may be configured to automatically save the user's progress, or to present the user an option to save their progress.

일 실시예에 있어서, 게임 브레이크포인트 프로세서(616)는 미리 정의된 완료 포인트에서 게임 브레이크포인트를 정의하도록 구성된다. 일 실시예에 있어서, 이것은, 사용자의 레코딩된 게임플레이 선택의 선택된 시작 및 종료 포인트에 가장 가까운 완료 포인트를 찾고, 그리고 이들 가장 가까운 완료 포인트를 이용하여 게임 슬라이스에 대한 게임 브레이크포인트를 정의함으로써 성취된다. 다른 일 실시예에 있어서, 레코딩된 게임플레이 선택의 선택된 시작 포인트 전에 일어나는 가장 가까운 완료 포인트는 시작 브레이크포인트를 정의하도록 이용되는 반면, 레코딩된 게임플레이 선택의 선택된 종료 포인트 후에 일어나는 가장 가까운 완료 포인트는 게임 슬라이스의 생성을 위한 종료 브레이크포인트를 정의하도록 이용된다. 또 다른 일 실시예에 있어서, 완료 포인트가 사용자의 레코딩된 게임플레이 선택의 시작 또는 종료 포인트 중 어느 하나의 (예를 들어, 그 전이든 그 후이든) 미리 정의된 반경 내 놓여 있으면, 그때 그 완료 포인트는 게임 슬라이스에 대한 대응하는 시작 또는 종료 게임 브레이크포인트를 정의하도록 이용된다. 반면에, 완료 포인트가 미리 정의된 반경 내에 놓여 있지 않으면, 그때는 레코딩된 선택에 대한 사용자의 선택된 시작 또는 종료 포인트와 더 밀접하게 매칭하는 게임 브레이크포인트가 정의된다. 다른 실시예에 있어서, 시작 및 종료 포인트에 대한 미리 정의된 반경은 게임 브레이크포인트를 정의하는데 기존 완료 포인트를 이용할지 결정하려는 목적으로 다를 수 있다.In one embodiment, the game breakpoint processor 616 is configured to define a game breakpoint at a predefined completion point. In one embodiment, this is accomplished by finding the completion points closest to the selected start and ending points of the user's recorded gameplay selection, and using these closest completion points to define game breakpoints for the game slice. . In another embodiment, the closest completion point occurring before the selected starting point of the recorded gameplay selection is used to define a starting breakpoint, while the closest completion point occurring after the selected ending point of the recorded gameplay selection is the game Used to define an ending breakpoint for creation of a slice. In another embodiment, if the completion point lies within a predefined radius of either (eg, before or after) the start or end point of the user's recorded gameplay selection, then the completion Points are used to define corresponding start or end game breakpoints for game slices. On the other hand, if the completion point does not lie within the predefined radius, then a game breakpoint that more closely matches the user's selected start or end point for the recorded selection is defined. In other embodiments, predefined radii for start and end points may be different for the purpose of determining whether to use existing completion points to define game breakpoints.

논의된 바와 같이, 게임 브레이크포인트 프로세서(616)는 사용자 레코딩된 게임플레이 선택의 분석에 기반하여 비디오게임의 다양한 태양에 적용가능한 적합한 브레이크포인트를 결정한다. 프로세서(616)에 의해 정의된 브레이크포인트는 사용자 레코딩된 게임플레이 선택에 기반하여 산출될 게임 슬라이스의 제한된 범위를 정의하는 역할을 한다. 일 실시예에 있어서, 오버레이 프로세서(617)는 게임 슬라이스 발생기(612)에 의해 발생된 게임 슬라이스를 플레이할 때 개선된 사용자 체험에 기여할 수 있는 오버레이를 발생시키도록 제공된다. 예를 들어, 일 실시예에 있어서, 오버레이 프로세서(617)는 게임 슬라이스의 실제 게임플레이 이전에 게임 슬라이스로의 도입부로서 제공될 수 있는 비디오 또는 게임플레이 또는 부가적 정보를 정의하는 프리-게임 슬라이스 데이터를 정의한다. 프리-게임 슬라이스 데이터의 일례는 슬라이스가 된 게임플레이를 개시하는 사용자에게 맥락을 제공할 수 있는 입문 비디오이다. 다른 일 실시예에 있어서, 프리게임 슬라이스 데이터는, 슬라이스 게임을 플레이하는데 요구되거나 유용할 수 있는 스킬을 배울 기회를 사용자에게 제공할 수 있는, 게임 슬라이스에 대한 입문 게임플레이를 정의할 수 있다. 다른 일 실시예에 있어서, 프리게임 슬라이스 데이터는 게임 슬라이스에 대한 정보를 사용자에게 제공하는 일련의 하나 이상의 정보 스크린 또는 이미지를 정의할 수 있다. 그러한 정보는 사용자에게 유용하거나 아니면 게임 슬라이스를 플레이하는 사용자의 체험을 개선할 수 있는 게임 슬라이스와 관련한 컨트롤러 구성, 스토리 배경 정보, 목적 또는 목표, 맵, 또는 어느 다른 유형의 정보를 포함할 수 있다.As discussed, the game breakpoint processor 616 determines suitable breakpoints applicable to various aspects of the videogame based on analysis of the user recorded gameplay selections. The breakpoints defined by the processor 616 serve to define a limited range of game slices to be computed based on user recorded gameplay selections. In one embodiment, an overlay processor 617 is provided to generate an overlay that may contribute to an improved user experience when playing the game slice generated by the game slice generator 612 . For example, in one embodiment, the overlay processor 617 provides pre-game slice data defining video or gameplay or additional information that may be provided as an introduction to a game slice prior to actual gameplay of the game slice. define An example of pre-game slice data is an introductory video that can provide context to a user initiating sliced gameplay. In another embodiment, the pregame slice data may define introductory gameplay for a game slice, which may provide the user with an opportunity to learn skills that may be required or useful to play the slice game. In another embodiment, the pre-game slice data may define a series of one or more informational screens or images that provide the user with information about the game slice. Such information may include controller configurations, story background information, objectives or goals, maps, or any other type of information related to a game slice that may be useful to the user or otherwise improve the user's experience of playing the game slice.

오버레이 프로세서(617)는 또한 포스트게임 슬라이스 데이터를 정의하도록 구성될 수 있다. 일부 실시예에 있어서, 포스트게임 슬라이스 데이터는 게임 슬라이스의 게임 플레이의 완료에 뒤이어 보여질 비디오 또는 이미지를 정의할 수 있다. 예를 들어, 사용자가 게임 슬라이스를 완료한 후에 축하 비디오가 보여질 수 있다. 그러한 비디오는, 예를 들어, 사용자의 게임플레이에 기반하는 정보 또는 이미지를 보여줌으로써 게임 슬라이스의 사용자의 게임플레이에 기반하여 커스터마이징될 수 있다. 일 실시예에 있어서, 포스트게임 슬라이스 데이터는 그 완료에 뒤이어 게임 슬라이스의 사용자의 게임플레이의 레코딩된 부분을 플레이하는 재생 메커니즘을 정의할 수 있다. 다른 일 실시예에 있어서, 포스트게임 슬라이스 데이터는 게임 슬라이스의 사용자 게임플레이에 대한 통계를 디스플레이하도록 구성될 수 있고, 게임 슬라이스의 원래 생성자의 것 또는 다른 사용자의 것에 대해 사용자 게임플레이의 비교를 나타낼 수 있다. 또 다른 실시예에 있어서, 포스트게임 슬라이스 데이터는 게임 슬라이스의 완료시 사용자에게 제시될 부가적 대화형 엘리먼트를 정의할 수 있다. 이들은 게임 슬라이스가 기반하는 비디오 게임을 전체로 또는 부분적으로 구입하는 옵션, 비디오게임과 관련한 부가적 정보 소스로의 리디렉트 옵션 등을 포함할 수 있다.The overlay processor 617 may also be configured to define postgame slice data. In some embodiments, the postgame slice data may define a video or image to be viewed following completion of game play of the game slice. For example, a celebratory video may be shown after the user has finished slicing the game. Such a video may be customized based on the user's gameplay of the game slice, for example, by showing information or images based on the user's gameplay. In one embodiment, the postgame slice data may define a playback mechanism that plays a recorded portion of the user's gameplay of the game slice following its completion. In another embodiment, the postgame slice data may be configured to display statistics about user gameplay of the game slice, and may represent a comparison of user gameplay to that of the original creator of the game slice or that of another user. have. In yet another embodiment, the postgame slice data may define additional interactive elements to be presented to the user upon completion of the game slice. These may include the option to purchase in whole or in part the video game on which the game slice is based, the option to redirect to additional sources of information related to the video game, and the like.

일부 실시예에 있어서, 오버레이 프로세서(617)는 게임 슬라이스 내로 오버레이되는 엘리먼트를 정의하도록 구성될 수 있다. 이들은, 캐릭터, 물체, 속성, 및 다른 유형의 커스터마이징 옵션의 커스터마이징과 같이, 게임 슬라이스를 플레이하는 사용자에 의해 커스터마이징될 수 있는 엘리먼트를 포함할 수 있다. 일부 실시예에 있어서, 오버레이 프로세서(617)는 게임 슬라이스를 실행하는데 요구되는 자원량 및 게임 슬라이스 코드의 복잡도를 감축하도록 게임 슬라이스에 대해 단순화된 엘리먼트를 정의하도록 구성될 수 있다. 예로서, 많은 비디오 게임은 캐릭터, 차량, 적 등과 같은 인공 지능(AI) 엔티티를 포함한다. 이들 AI 엔티티는 풀 비디오게임에서는 비디오게임에서 일어나는 이벤트에 기반하여 AI 엔티티의 리액션 및 활동을 정의하는 인공 지능 모델에 의해 지배될 수 있다. 그렇지만, 제한된 범위인 게임 슬라이스의 맥락에서는, 풀 비디오게임에서 그러할 바와 같이 AI 엔티티의 활동을 풀 모델링하기보다는, 하드코딩된 정의 또는 단순화된 외삽을 통해 AI 엔티티의 활동을 단순히 정의하는 것이 수용가능할 수 있다. In some embodiments, overlay processor 617 may be configured to define elements that are overlaid into a game slice. These may include elements that may be customized by the user playing the game slice, such as customization of characters, objects, attributes, and other types of customization options. In some embodiments, the overlay processor 617 may be configured to define simplified elements for the game slice to reduce the amount of resources required to execute the game slice and the complexity of the game slice code. As an example, many video games include artificial intelligence (AI) entities such as characters, vehicles, enemies, and the like. These AI entities can be governed by artificial intelligence models that define the reactions and activities of AI entities based on events occurring in the videogame in full videogames. However, in the context of a game slice, which is of limited scope, it may be acceptable to simply define the activity of an AI entity through hardcoded definitions or simplified extrapolation, rather than full modeling the activity of an AI entity as would be the case in a full videogame. have.

예를 들어, 풀 비디오게임의 레코딩된 게임플레이 선택에 있어서 소정 AI 캐릭터가 게임 슬라이스에서 변화할 것 같지 않은 그 AI 모델에 따라 특정 방식으로 움직이면, 그때는 게임 슬라이스에 대한 AI 캐릭터의 움직임의 근사를 정의하는 것이 더 효율적일 수 있다. 그러한 근사는 게임 슬라이스 코드의 일부분으로서 풀 AI 모델이 포함될 것을 요구하지는 않을 것이지만, 게임 슬라이스를 플레이하는 사용자에게 그 AI 캐릭터에 관해 게임 슬라이스가 발생된 원래 사용자의 게임 플레이의 것과 실질적으로 유사한 체험을 제공할 것이다. AI 엔티티의 근사를 통해 실현된 자원 절약은 사용자의 레코딩된 게임플레이 선택에서 다수의 AI 엔티티가 존재하여 대화하고 있을 때 훨씬 더 상당할 수 있다. AI 엔티티의 각각에 대하여 다른 AI 엔티티의 것들의 출력에 종속하는 AI 모델을 가질 수 있다. 그렇지만, 게임플레이가 레코딩되었을 때 이들 AI 엔티티의 각각의 활동은 알려져 있고, 그래서 그들 활동의 근사 및 그들 제어 변수의 직접 인코딩과 같은 단순화된 메커니즘을 통해 게임 슬라이스에서 재현될 수 있다.For example, in the recorded gameplay selection of a full videogame, if a given AI character moves in a certain way according to that AI model, which is unlikely to change in the game slice, then an approximation of the AI character's motion relative to the game slice is used. It may be more efficient to define Such an approximation would not require the full AI model to be included as part of the game slice code, but would provide a user playing a game slice with an experience substantially similar to that of the original user's gameplay for which the game slice was generated for that AI character. something to do. The resource savings realized through approximation of AI entities can be even more significant when multiple AI entities are present and conversing in the user's recorded gameplay choices. For each of the AI entities you can have an AI model that depends on the output of those of the other AI entities. However, the activities of each of these AI entities are known when the gameplay is recorded, so they can be reproduced in the game slice through simplified mechanisms such as approximation of their activities and direct encoding of their control variables.

도 6을 계속 참조하면, 게임 설정 상태 프로세서(618)는 게임 슬라이스의 초기 상태를 정의하도록 제공된다. 게임 상태 분석기(614), 게임 브레이크포인트 프로세서(616), 및 게임 설정 상태 프로세서(618)의 연산에 기반하여, 코드 어셈블리 매니저(620)는 게임 슬라이스 코드(622)를 정의하도록 다양한 코드 부분을 어셈블링한다. 게임 슬라이스 코드(622)가 실행될 때, 사용자 게임플레이(624)는, 사용자에게 게임 슬라이스를 렌더링하도록 비디오 데이터 및 피드백 데이터를 포함하는 게임플레이 출력을 산출하는, 게임 슬라이스 코드의 실행의 상태를 정의하도록 입력을 제공한다. 비디오 데이터는 프리게임 슬라이스 오버레이 비디오(622), 게임 슬라이스의 게임플레이로부터 초래되는 비디오인 게임 슬라이스 비디오(624), 및 포스트게임 슬라이스 오버레이 비디오(626)를 포함할 수 있다.With continued reference to Figure 6, a game setup state processor 618 is provided to define an initial state of a game slice. Based on the operation of the game state analyzer 614 , the game breakpoint processor 616 , and the game settings state processor 618 , the code assembly manager 620 assembles the various pieces of code to define the game slice code 622 . ring When the game slice code 622 is executed, the user gameplay 624 defines a state of execution of the game slice code that yields a gameplay output that includes video data and feedback data to render the game slice to the user. provide input. The video data may include pregame slice overlay video 622 , game slice video 624 which is video resulting from gameplay of the game slice, and postgame slice overlay video 626 .

일 실시예에 있어서, 게임 슬라이스 코드(622)는, 게임 슬라이스를 실행하도록 요구되는 모든 코드 부분을 포함하여, 완전히 자체-포함되어 있음을 인식하여야 한다. 그렇지만, 다른 실시예에 있어서, 게임 슬라이스 코드(622)는 풀 비디오 게임의 주 게임 코드 내 기존 코드 부분으로의 참조 또는 포인터를 편입시킬 수 있다. 더욱, 게임 슬라이스 코드(622)는 풀 비디오 게임의 주 게임 코드의 자산 라이브러리 내 기존 자산을 이용하거나 참조를 포함할 수 있다. 그렇지만, 다른 실시예에 있어서는, 새로운 자산 라이브러리가 게임 슬라이스 코드에 대해 발생될 수 있다.It should be noted that, in one embodiment, the game slice code 622 is completely self-contained, including all portions of the code required to execute the game slice. However, in other embodiments, the game slice code 622 may incorporate references or pointers to existing code portions within the main game code of the full video game. Moreover, the game slice code 622 may use or contain a reference to an existing asset in the asset library of the main game code of the full video game. However, in other embodiments, a new asset library may be generated for the game slice code.

도 7a는, 본 발명의 일 실시예에 따라, 비디오 게임의 게임 슬라이스를 발생시키려는 목적으로 가상 공간의 수정을 예시하고 있다. 맵(700)은 비디오 게임의 지리적 부분 또는 장면을 표현한다. 도시된 바와 같은 맵은 비디오 게임의 실제 게임플레이 동안 항행 및 체험되는 3-차원 가상 공간을 표현할 수 있는 2-차원 표현이다. 도시된 바와 같이, 맵(700)은 영역(702), 및 수개의 경로(704, 706, 708, 710)를 예시하고 있다. 비디오 게임의 레코딩된 게임플레이에 있어서, 사용자의 캐릭터(712)는 영역(702)으로부터 경로(710)로 이동한다. 비디오 게임의 게임플레이의 이러한 레코딩된 이동 및 다른 분석에 기반하여, 부가적 경로(704, 706, 708)가 그 게임 슬라이스의 발생에는 필요하지 않다고 결정될 수 있다. 그 경로들은 경로(710)에 비해 옳지 않은 선택을 표현할 수 있거나, 게임 슬라이스와 관련 없는 구역에 이를 수 있거나, 경로를 따르고 원래 사용자의 것과 유사한 게임플레이를 체험할 수 있는 게임 슬라이스 플레이어의 능력을 손상시킬 수 있다. 더욱, 경로(704, 706, 708)가 이르게 되는 구역이 게임 슬라이스에서 지원되지 않는 것이면, 그때 그러한 경로의 포함은 플레이어들 간 혼동을 야기하거나, 적어도 불량한 사용자 체험일 수 있다. 그래서, 수정된 맵(720)에서, 경로(704, 706, 708)는 게임 슬라이스에서의 게임플레이에 이용불가능하게 되는 반면, 경로(710)와 더불어 영역(702)은 변하지 않고 남아있다. 그리하여, 사용자가 맵(720)에 의해 정의된 토포그래피를 편입시키는 게임 슬라이스를 플레이할 때, 그는 경로(704, 706, 708)가 횡단에 이용가능하지 않은 가상 공간을 체험할 것이다. 그때 사용자는 원래 사용자가 했었던 바와 같이 경로(710)를 횡단할 가능성이 더 클 것이고, 그리하여 유사한 게임플레이를 체험한다.7A illustrates a modification of a virtual space for the purpose of generating a game slice of a video game, in accordance with an embodiment of the present invention. Map 700 represents a geographic portion or scene of a video game. A map as shown is a two-dimensional representation capable of representing a three-dimensional virtual space navigated and experienced during actual gameplay of a video game. As shown, map 700 illustrates an area 702 , and several paths 704 , 706 , 708 , 710 . In recorded gameplay of a video game, the user's character 712 moves from area 702 to path 710 . Based on this recorded movement and other analysis of the gameplay of the video game, it may be determined that additional paths 704 , 706 , 708 are not required for the generation of that game slice. Those paths may represent incorrect choices relative to path 710, may lead to areas unrelated to the game slice, or impair the game slice player's ability to follow the path and experience gameplay similar to that of the original user. can do it Moreover, if the region that the path 704 , 706 , 708 leads to is not supported in the game slice, then inclusion of such path may cause confusion among players, or at least a poor user experience. Thus, in the modified map 720 , paths 704 , 706 , 708 become unavailable for gameplay in the game slice, while region 702 along with path 710 remains unchanged. Thus, when a user plays a game slice that incorporates the topography defined by map 720, he will experience a virtual space in which paths 704, 706, 708 are not available for traversing. The user will then be more likely to traverse the path 710 as the original user did, and thus experience similar gameplay.

게임 슬라이스 또는 미니게임에 대해 정의된 가상 공간의 부분은 사용자의 레코딩된 게임플레이에 기반하여 결정되는 경계에 의해 정의될 수 있음을 인식할 것이다. 경계는 더 큰 가상 공간의 부분-영역을 정의하고, 더 큰 가상 공간에서 이용가능한 피처의 부분 집합을 포함할 것이다. 일부 실시예에 있어서, 가상 공간 경계는 사용자의 게임플레이에 의해 정의된 가상 공간 내 위치를 결정하고, 그 후 그들 위치에 가장 가깝고 그것들을 망라하도록 배열되는 가상 공간과 연관된 미리 정의된 경계를 결정함으로써 결정될 수 있다. 예를 들어, 사용자의 게임플레이는 사용자의 비디오 게임 캐릭터에 의해 횡단된 경로를 정의할 수 있다. 이러한 경로는 분석될 수 있고, 가상 공간 내 경로의 위치에 기반하여, 미리 정의된 경계 세트가 그 경로를 망라하는 영역을 정의하도록 선택될 수 있다. 일부 실시예에 있어서, 미리 정의된 경계는 가상 공간의 부분들을 고유하게 정의하는 특정 피처, 예를 들어, 문, 창, 벽, 방, 복도, 펜스, 도로, 교차로, 복도 등에 의해 정의될 수 있다.It will be appreciated that the portion of virtual space defined for a game slice or minigame may be defined by boundaries determined based on the user's recorded gameplay. A boundary defines a sub-region of a larger virtual space and will contain a subset of features available in the larger virtual space. In some embodiments, the virtual space boundary is determined by determining a location within the virtual space defined by the user's gameplay, and then determining a predefined boundary associated with the virtual space that is closest to and arranged to encompass them. can be decided. For example, the user's gameplay may define a path traversed by the user's video game character. This path may be analyzed and, based on the path's location in virtual space, a predefined set of boundaries may be selected to define an area encompassing the path. In some embodiments, predefined boundaries may be defined by specific features that uniquely define portions of virtual space, eg, doors, windows, walls, rooms, corridors, fences, roads, intersections, corridors, etc. .

도 7b는, 본 발명의 실시예에 따라, 게임 슬라이스를 발생시키려는 목적으로 장면 그래프의 수정을 예시하고 있다. 장면 그래프(730)는 비디오 게임의 다양한 장면(A 내지 G)의 조직을 개념적으로 예시하고 있다. 여기에서 설명된 바와 같은 장면은 본질상 지리적 및/또는 시간적일 수 있고, 각각은 플레이어가 하나의 장면으로부터 다른 장면으로 따라 진행할 수 있는 비디오게임 내 스테이지, 레벨, 섹션, 위치 또는 어느 다른 조직적 유닛과 같은, 비디오게임의 플레이가능한 부분을 표현할 수 있다. 장면 그래프(730)에서는, 장면(A 내지 G)을 표현하는 다양한 노드가 도시되어 있다. 도시된 바와 같이, 플레이어는 장면(A)으로부터 장면(B)으로, 그리고 장면(B)으로부터 장면(D 또는 E) 중 어느 하나로 진행할 수 있다. 플레이어는 또한 장면(A)으로부터 장면(C)으로, 그리고 장면(C)으로부터 장면(F 또는 G) 중 어느 하나로 진행할 수 있다. 장면 그래프(730)는 풀 비디오 게임의 장면 조직을 예시하고 있다. 그렇지만, 게임 슬라이스를 생성하려는 목적으로, 이용가능한 장면 중 전부가 게임 슬라이스에 요구되는 것은 아닐 수 있다. 그리하여, 예로서, 장면 그래프(732)는 게임 슬라이스에 대한 장면의 조직을 예시하고 있다. 도시된 바와 같이, 장면 그래프(732)는 장면(A, B, C, F)을 포함하지만, 풀 비디오 게임의 장면 그래프(730)에 포함되었던 나머지 장면은 포함하지 않는다. 그리하여, 사용자는 장면(A)으로부터 장면(B 또는 C) 중 어느 하나로, 그리고 장면(C)으로부터 장면(F)으로 진행할 수 있다. 그렇지만, 풀 비디오 게임 장면 그래프(730)로부터의 다른 장면은 게임 슬라이스에서의 게임플레이에는 이용가능하지 않다. 설명된 바와 같이, 본 발명의 실시예에 따른 시스템은 게임 슬라이스를 발생시킬 때 장면의 포함을 제한하도록 구성될 수 있다. 이러한 방식으로, 게임 슬라이스는 그 게임플레이의 제한된 맥락 및 의도된 목적에 요구되지 않는 장면을 포함하지 않는다.7B illustrates a modification of a scene graph for the purpose of generating a game slice, in accordance with an embodiment of the present invention. The scene graph 730 conceptually illustrates the organization of various scenes A to G of a video game. Scenes as described herein may be geographical and/or temporal in nature, each with a stage, level, section, location, or any other organizational unit within a videogame that the player may progress from one scene to another. Similarly, a playable part of a video game can be expressed. In the scene graph 730, various nodes representing scenes A through G are shown. As shown, the player can progress from scene (A) to scene (B) and from scene (B) to either scene (D or E). The player can also progress from scene (A) to scene (C) and from scene (C) to either scene (F or G). Scene graph 730 illustrates the scene organization of a full video game. However, for purposes of creating a game slice, not all of the available scenes may be required for a game slice. Thus, by way of example, scene graph 732 illustrates the organization of a scene for a game slice. As shown, scenegraph 732 includes scenes A, B, C, and F, but not the rest of the scenes that were included in scenegraph 730 of the full video game. Thus, the user can progress from scene A to either scene B or C, and from scene C to scene F. However, other scenes from the full video game scene graph 730 are not available for gameplay in the game slice. As described, a system according to an embodiment of the present invention may be configured to limit the inclusion of scenes when generating game slices. In this way, a game slice does not contain scenes that are not required for the intended purpose and limited context of its gameplay.

도 8은, 본 발명의 일 실시예에 따라, 게임 슬라이스를 발생시키기 위한 방법을 예시하고 있다. 방법 연산(800)에서, 비디오게임의 사용자 게임플레이는 레코딩되며, 비디오게임의 게임 상태 데이터 및 입력 데이터와 같은 비디오게임 데이터 및 사용자 게임플레이의 비디오의 레코딩을 포함한다. 방법 연산(802)에서는 게임 슬라이스를 발생시키도록 레코딩된 게임플레이의 선택을 위해 사용자 인터페이스가 제시된다. 인터페이스는 레코딩된 게임플레이로부터 시작 및 종료 포인트를 정의하도록 사용자 입력을 수신하기 위한 메커니즘을 정의한다. 예를 들어, 레코딩된 게임플레이 비디오를 검토하기 위한 인터페이스는 게임플레이 비디오의 재생 또는 항행에 기반하여 게임플레이 비디오 내 시작 및 종료 포인트를 사용자가 정의 가능하게 하도록 제공될 수 있다. 방법 연산(804)에서는, 게임플레이 비디오의 사용자-정의된 선택이 수신된다. 방법 연산(806)에서, 비디오게임 브레이크포인트는 게임플레이 비디오의 수신된 사용자-정의된 선택에 기반하여 식별된다. 일 실시예에 있어서는, 비디오게임에 대해 미리 정의된 브레이크포인트가 있다. 게임플레이 비디오의 사용자-정의된 선택에 기반하여, 사용자-정의된 선택의 시작 및 종료 포인트에 가장 가까운 게임 브레이크포인트는 발생될 게임 슬라이스에 대한 게임 브레이크포인트로서 선택될 수 있다. 방법 연산(808)에서는, 게임 코드가 식별된 브레이크포인트에 의해 정의된 바와 같은 슬라이스 선택에 대해 정의된다. 방법 연산(810)에서는, 게임 설정 상태가 슬라이스 선택에 대해 정의된다. 일 실시예에 있어서, 게임 설정 상태는 사용자의 레코딩된 게임플레이 동안 존재한 게임 상태에 기반한다. 방법 연산(812)에서는, 게임 슬라이스 코드가 발생되고, 방법 연산(814)에서는, 게임 슬라이스 코드가 게임 슬라이스 라이브러리에 저장되고 사용자의 계정과 연관된다.8 illustrates a method for generating a game slice, according to an embodiment of the present invention. In method operation 800 , user gameplay of the video game is recorded and includes video game data such as game state data and input data of the video game and video of the user gameplay. In method operation 802, a user interface is presented for selection of recorded gameplay to generate a game slice. The interface defines a mechanism for receiving user input to define start and end points from recorded gameplay. For example, an interface for reviewing recorded gameplay video may be provided to allow a user to define start and end points within the gameplay video based on the playback or navigation of the gameplay video. At method operation 804 , a user-defined selection of gameplay video is received. At method operation 806 , a videogame breakpoint is identified based on the received user-defined selection of gameplay video. In one embodiment, there are predefined breakpoints for videogames. Based on the user-defined selection of the gameplay video, game breakpoints closest to the start and end points of the user-defined selection may be selected as game breakpoints for the game slice to be generated. In method operation 808, game code is defined for the slice selection as defined by the identified breakpoint. In method operation 810, a game setup state is defined for slice selection. In one embodiment, the game setup state is based on a game state that existed during the user's recorded gameplay. In method operation 812, game slice code is generated, and in method operation 814, the game slice code is stored in a game slice library and associated with the user's account.

일 실시예에 있어서, 방법은 제안된 게임 슬라이스 비디오 선택이 사용자의 레코딩된 게임플레이 비디오 및 데이터에 기반하여 발생되는 방법 연산(816)을 포함할 수 있다. 사용자 게임플레이의 제안된 선택은 사용자의 레코딩된 게임플레이의 분석에 기반하여 결정될 수 있다. 예를 들어, 더 높은 활동 레벨(예를 들어, 미리 정의된 임계치를 초과하는 활동 레벨)이 검출되는 게임플레이의 부분이 가능한 게임 슬라이스 비디오 선택으로서 제안될 수 있다. 방법 연산(818)에서, 게임 슬라이스 선택을 위한 전술한 사용자 인터페이스는 제안된 게임 슬라이스 비디오 선택을 사용자에게 제시할 수 있다. 일 실시예에 있어서는, 각각의 제안된 게임 슬라이스 비디오 선택을 표현하는 스크린샷이 사용자에게 제시될 수 있다. 방법 연산(820)에서는 제안된 게임 슬라이스 비디오 선택 중 하나의 사용자에 의한 선택이 수신된다. 사용자 선택에 기반하여, 게임 슬라이스 코드가 앞서 설명된 바와 같이 발생 및 저장될 수 있다.In one embodiment, the method may include a method operation 816 in which a suggested game slice video selection is generated based on the user's recorded gameplay video and data. The suggested selection of user gameplay may be determined based on analysis of the user's recorded gameplay. For example, the portion of gameplay in which a higher activity level (eg, an activity level exceeding a predefined threshold) is detected may be suggested as a possible game slice video selection. At method operation 818, the user interface described above for game slice selection may present a suggested game slice video selection to the user. In one embodiment, a screenshot representing each suggested game slice video selection may be presented to the user. In method operation 820, a selection by the user of one of the suggested game slice video selections is received. Based on user selections, game slice codes may be generated and stored as described above.

도 9a는, 본 발명의 일 실시예에 따라, 다양한 게임 타이틀과 연관된 게임 슬라이스를 브라우징하기 위한 인터페이스를 예시하고 있다. 도시된 실시예에 있어서, 인터페이스는 선택될 때 여러 다른 게임 타이틀에 대응하는 다양한 페이지로의 액세스를 제공하는, 탭(900, 902, 904)을 포함하는, 일련의 탭으로 조직된다. 도시된 실시예에 있어서는, 탭(900)이 현재 선택되어서, 제시된 페이지는 특정 게임 타이틀(T1)에 대해 생성된 게임 슬라이스에 대한 정보를 제공한다. 게임 슬라이스 목록(904)은 게임 타이틀(T1)로부터 생성되었던 다양한 게임 슬라이스를 열거하고 있다. 일 실시예에 있어서, 게임 슬라이스 목록(904)은 또한 게임 슬라이스를 생성한 사용자를 식별시킨다(예를 들어, 게임 슬라이스를 생성한 사용자의 사용자명을 디스플레이한다). 일 실시예에 있어서, 게임 슬라이스 목록(904)은 게임 슬라이스 목록(904) 내 열거된 게임 슬라이스 중 다른 것들을 하이라이트 표시하도록 항행 또는 브라우징될 수 있다. 도시된 실시예에서는, 사용자(A)에 의해 생성된 게임 슬라이스(A)가 현재 하이라이트 표시되어, 게임 슬라이스(A)와 관련한 상세(906)가 디스플레이되게 야기한다. 상세(906)는, 게임 슬라이스가 발생된 레벨 또는 스테이지, 게임 슬라이스가 생성된 위치에 대한 더 구체적 정보를 제공하는 게임 상세, 게임 슬라이스를 생성한 사용자(A)에 의한 코멘트, 타인으로부터의 코멘트의 수, 게임 슬라이스가 플레이된 횟수, 또는 게임 슬라이스의 목록이 하이라이트 표시될 때 제공될 수 있는 게임 슬라이스에 대한 어느 다른 유형의 정보와 같은, 게임 슬라이스와 관련된 다양한 종류의 정보를 포함할 수 있다.9A illustrates an interface for browsing game slices associated with various game titles, in accordance with an embodiment of the present invention. In the illustrated embodiment, the interface is organized into a series of tabs, including tabs 900 , 902 , 904 , which when selected provide access to various pages corresponding to different game titles. In the illustrated embodiment, tab 900 is currently selected so that the presented page provides information about the game slices created for the particular game title T1. The game slice list 904 lists the various game slices that have been created from the game title T1. In one embodiment, game slice listing 904 also identifies the user who created the game slice (eg, displays the username of the user who created the game slice). In one embodiment, the game slice list 904 may be navigated or browsed to highlight other of the listed game slices in the game slice list 904 . In the illustrated embodiment, game slice A created by user A is currently highlighted, causing details 906 relating to game slice A to be displayed. Details 906 include the level or stage at which the game slice was created, the game details providing more specific information about the location where the game slice was created, comments by user A who created the game slice, and comments from others. It may include various kinds of information related to a game slice, such as a number, the number of times a game slice has been played, or any other type of information about a game slice that may be provided when a list of game slices is highlighted.

도 9b는, 본 발명의 일 실시예에 따라, 게임 슬라이스 정보 페이지를 예시하고 있다. 게임 슬라이스 정보 페이지는 도 9a를 참조하여 논의된 게임 슬라이스(A)에 대한 것이고, 도 9a에 도시된 바와 같이 게임 슬라이스(A)의 목록을 사용자가 선택할 때 도달될 수 있다. 도 9b를 계속 참조하면, 게임 슬라이스 정보 페이지는 게임 슬라이스와 관련된 다양한 종류의 정보를 제공한다. 게임 슬라이스에 대한 서지 정보(예를 들어, 타이틀, 게임 슬라이스를 생성한 사용자의 사용자명, 생성 일자 등)에 부가하여, 게임 슬라이스의 비디오(910)가 디스플레이될 수 있다. 일 실시예에 있어서, 비디오(910)는 게임 슬라이스를 생성한 원래 사용자의 레코딩된 게임플레이 비디오이다. 다른 일 실시예에 있어서, 비디오(910)는, 게임 슬라이스에서 가장 높은 득점을 달성한 사용자, 또는 게임 슬라이스를 가장 최근에 플레이한 사용자와 같은, 다른 사용자의 레코딩된 게임플레이 비디오일 수 있다. 일 실시예에 있어서, 비디오(910)는 게임 슬라이스를 현재 플레이하고 있는 사용자의 라이브 피드일 수 있다. 다른 실시예에서는, 비디오 대신에 게임 슬라이스의 대표적 이미지가 보여질 수 있다.9B illustrates a game slice information page, in accordance with an embodiment of the present invention. The game slice information page is for the game slice (A) discussed with reference to FIG. 9A and can be reached when the user selects a list of game slices (A) as shown in FIG. 9A . With continued reference to FIG. 9B , the game slice information page provides various types of information related to game slices. In addition to bibliographic information about the game slice (eg, title, username of the user who created the game slice, creation date, etc.), a video 910 of the game slice may be displayed. In one embodiment, video 910 is a recorded gameplay video of the original user who created the game slice. In another embodiment, video 910 may be a recorded gameplay video of another user, such as the user who achieved the highest score in a game slice, or the user who most recently played the game slice. In one embodiment, video 910 may be a live feed of a user currently playing a game slice. In other embodiments, a representative image of a game slice may be shown instead of a video.

게임 슬라이스 정보 페이지는 게임 슬라이스의 게임플레이를 개시하기 위한 선택가능한 버튼(912)을 더 포함할 수 있다. 게임 슬라이스 정보 페이지는 또한, 플레이의 수, 평균 완료율 등과 같은, 게임 슬라이스에 대한 다양한 상세 및 통계 정보의 특징을 나타낼 수 있는, 상세 섹션(914)을 포함할 수 있다. 게임 슬라이스 정보 페이지는 또한, 사용자들에 의해 남겨진 코멘트를 특징으로 하는, 코멘트 섹션(916)을 포함할 수 있다. 분류 버튼(918)은 코멘트를 분류하기 위한 다양한 옵션을 선택하도록 제공될 수 있다(예를 들어, 연대기 순서, 역 연대기 순서, 가장 인기 있는 것, 순위 평가로, 현재 사용자에 대한 관계로(예를 들어, 소셜 그래프 내 사용자의 친구에 의한 코멘트가 우선순위) 등).The game slice information page may further include a selectable button 912 for initiating gameplay of the game slice. The game slice information page may also include a details section 914 , which may characterize various detailed and statistical information about the game slice, such as number of plays, average completion rate, and the like. The game slice information page may also include a comments section 916 , featuring comments left by users. A sort button 918 may be provided to select various options for sorting comments (e.g., chronological order, reverse chronological order, most popular, rank rating, by relationship to current user (e.g., chronological order). For example, comments by the user's friends in the social graph take precedence), etc.).

도 10은, 본 발명의 일 실시예에 따라, 클라우드 게이밍 소셜 네트워크 내 친구의 라이브 뷰를 포함하는, 사용자의 계정 정보의 뷰를 예시하고 있다. 라이브러리 섹션(1002)은 사용자의 라이브러리 내 다양한 게임 타이틀을 디스플레이한다. 이들은 사용자가 구입하였거나 아니면 취득한 게임 타이틀일 수 있다. 게임 타이틀의 디스플레이는, 타이틀 정보에 부가하여, 대표적 그래픽의 디스플레이를 포함할 수 있다. 게임은 풀 버전 게임 타이틀일 수 있지만, 각각 풀 버전 게임 타이틀의 일부이거나 풀 버전 게임 타이틀에 비해 일부 용량이 제한될 수 있는, 제한된 버전인 미니 버전일 수도 있음을 인식할 것이다. 친구 목록(1004)은 클라우드 게이밍 시스템과 연관된 소셜 네트워크 내 현재 사용자의 친구(즉, 현재 사용자의 소셜 그래프 내 다른 사용자)를 열거한다. 소셜 네트워크는 클라우드 게이밍 시스템에 특정한 소셜 네트워크일 수 있거나, 클라우드 게이밍 시스템이 사용자의 소셜 그래프에 대한 정보를 획득하도록 통신하는, 클라우드 게이밍 시스템과는 별개로 존재하는 (제3자) 소셜 네트워크일 수도 있다. 친구 목록(1004)은, 각각의 친구에 의해 소유되는 게임을 묘사하는 것, 친구의 온라인 상태(예를 들어, 온라인, 오프라인, 비활동 등)를 식별시키는 것, 친구의 마지막 로그인 및 그 지속시간, 친구에 의해 플레이된 마지막 게임 등과 같은, 사용자의 친구에 대한 부가적 정보를 포함할 수 있다.10 illustrates a view of a user's account information, including a live view of a friend in a cloud gaming social network, in accordance with an embodiment of the present invention. The library section 1002 displays various game titles in the user's library. These may be game titles that the user has purchased or otherwise acquired. The display of the game title may include, in addition to the title information, display of representative graphics. It will be appreciated that the games may be full version game titles, but may also be mini versions, which are limited versions, each of which may be part of a full version game title or may have some limited capacity compared to a full version game title. Friends list 1004 lists the current user's friends (ie, other users in the current user's social graph) in social networks associated with the cloud gaming system. The social network may be a social network specific to the cloud gaming system, or may be a (third party) social network that exists separately from the cloud gaming system, through which the cloud gaming system communicates to obtain information about the user's social graph. . The friend list 1004 describes the games owned by each friend, identifies the friend's online status (eg, online, offline, inactive, etc.), the friend's last login and its duration. , the last game played by the friend, etc. may include additional information about the user's friends.

일 실시예에 있어서, 라이브 활동 사용자 섹션(1006)은 현재 온라인으로 있고 비디오 게임을 플레이하고 있을 수 있는 친구의 게임플레이의 라이브 뷰를 제공한다. 일 실시예에 있어서, 각각의 사용자는 그들의 라이브 게임플레이를 다른 사용자에 의한 라이브 보기에 이용가능하게 할지 여부를 정의하는 옵션을 갖는다. 그러한 일 실시예에 있어서, 라이브 뷰는 그들의 라이브 게임플레이가 다른 사용자에 의해 보일 수 있게 허용하도록 지정된 옵션을 갖는 그들 사용자로부터만 제시된다. 도시된 실시예에 있어서, 라이브 활동 사용자 섹션(1006)은 친구(A)의 현재 게임플레이의 라이브 뷰(1008)와 더불어, 친구(B)의 현재 게임플레이의 라이브 뷰(1010)도 포함한다. 일 실시예에 있어서, 현재 사용자는 친구 목록(1004)의 친구를 항행 또는 브라우징하고 그리고/또는 라이브 활동 사용자 섹션(1006)에서 이용가능한 라이브 뷰를 브라우징할 수 있다. 일 실시예에 있어서, 라이브 뷰는 현재 사용자가 거기로 항행할 때 하이라이트 표시될 수 있고, 다른 라이브 뷰와는 구별되는 방식으로 렌더링될 수 있다. 예를 들어, 라이브 뷰는 디폴트로 채도가 감소된 컬러 기법으로 디스플레이될 수 있지만, 하이라이트 표시되거나 선택될 때는 완전 채도의 컬러 기법으로 디스플레이될 수 있다. 라이브 뷰는 디폴트로 또한 더 낮은 해상도, 프레임레이트 또는 사이즈로 디스플레이될 수 있지만, 선택될 때는 더 높은 해상도, 프레임레이트 또는 사이즈로 디스플레이될 수 있다. 이러한 방식으로, 대역폭은, 사용자가 보기에 관심 있는 라이브 뷰를 동시에 활동하고 있을 수 있는 다른 라이브 뷰보다 더 큰 하이파이로 제공하도록, 사용자 선택에 기반하여 특정 라이브 뷰에 할당될 수 있다. 라이브 뷰는 단지 비디오 게임의 특정 게임플레이만이 아니라, 그들 클라우드 게이밍 세션과 관련된 다른 유형의 활동 또는 메뉴를 통한 그들의 항행과 같이, 클라우드 게이밍 시스템 상의 친구의 다른 활동도 디스플레이할 수 있음을 인식하여야 한다.In one embodiment, the live active users section 1006 provides a live view of gameplay of a friend who may be currently online and playing a video game. In one embodiment, each user has the option to define whether their live gameplay is made available for live viewing by other users. In one such embodiment, the live view is presented only from those users who have the option specified to allow their live gameplay to be viewed by other users. In the illustrated embodiment, the live active users section 1006 includes a live view 1008 of friend A's current gameplay, as well as a live view 1010 of friend B's current gameplay. In one embodiment, the current user may navigate or browse friends in friend list 1004 and/or browse live views available in live active users section 1006 . In one embodiment, the live view may be highlighted as the current user navigates there, and may be rendered in a manner distinct from other live views. For example, the live view may be displayed in a desaturated color scheme by default, but may be displayed in a fully saturated color scheme when highlighted or selected. The live view may by default also be displayed at a lower resolution, frame rate or size, but may be displayed at a higher resolution, frame rate or size when selected. In this way, bandwidth may be allocated to a particular live view based on user selection to provide a live view that the user is interested in viewing with greater hi-fi than other live views that may be active at the same time. It should be appreciated that the live view may display not only the specific gameplay of the video game, but also other types of activities related to their cloud gaming session or other activities of a friend on the cloud gaming system, such as their navigation through menus. .

일 실시예에 있어서, 라이브 뷰는 비디오 게임의 게임플레이에 현재 활동적으로 참여하고 있는 그들 사용자에게만 이용가능하다. 환언하면, 사용자가 오프라인으로 있거나, 온라인이지만 비디오 게임의 게임플레이에 활동적으로 참여하고 있지 않을 때는 소정 사용자의 라이브 뷰가 이용가능하지 않다. 그리하여, 사용자가 클라우드 게이밍 시스템 상에서 다른 비-게임플레이 활동을 수행(예를 들어, 시스템에 로그인하는 동안 클라우드 게이밍 시스템의 그래픽 인터페이스를 항행)하고 있을 때, 그러한 활동은 타인이 보도록 라이브 피드에서 이용가능하게 되지 않는다. 다른 일 실시예에 있어서, 라이브 뷰는, 사용자의 게임플레이와 더불어 다른 비-게임플레이 활동도 포함하는, 클라우드 게이밍 시스템에 로그인되는 사용자의 모든 활동을 포함할 수 있다. In one embodiment, the live view is only available to those users who are currently actively participating in the gameplay of the video game. In other words, a live view of a given user is not available when the user is offline or online but not actively participating in the gameplay of the video game. Thus, when the user is performing other non-gameplay activities on the cloud gaming system (eg, navigating the graphical interface of the cloud gaming system while logging into the system), those activities are available in the live feed for others to view. not done In another embodiment, the live view may include all activities of a user logged into the cloud gaming system, including other non-gameplay activities in addition to the user's gameplay.

일 실시예에 있어서, 소정 사용자의 라이브 뷰는 타인이 보기에 잠재적으로 민감하거나 개인적인 정보를 노출시키지 않도록 필터링될 수 있다. 예를 들어, 클라우드 게이밍 시스템은 채팅 기능을 지원할 수 있다. 일부 사용자가 그들의 채팅이 비밀로 남아있기를 바랄 수 있으므로, 라이브 뷰를 제시할 때 채팅 로그를 배제하는 옵션이 제공될 수 있다. 채팅 기능은 게임플레이 활동 동안은 물론 비-게임플레이 활동 동안에도 구현될 수 있고, 이들 상황 중 어느 하나 또는 둘 다의 라이브 뷰로부터 필터링될 수 있음을 인식하여야 한다. 다른 일 실시예에서는, 비디오 게임의 태양이 라이브 뷰로부터 필터링될 수 있다. 예를 들어, 사용자는 특정 사용자-정의된 설정을 비밀로 유지하기를 바랄 수 있는데 그것들이 게임플레이 동안 그 사용자에게 이점을 부여할 수 있기 때문이다. 그리하여, (예를 들어, 사용자가 비디오 게임의 설정 인터페이스에 액세스할 때) 설정과 관련된 활동이 라이브 피드의 일부분으로서 디스플레이되지 않는 옵션이 제공될 수 있다. 다른 일 실시예에 있어서, 라이브 뷰는 개인적인 정보의 보기를 방지(예를 들어, 사용자가 개인적 정보 페이지에 액세스할 때, 지불 정보를 입력할 때, 비밀번호를 입력할 때 등 보기를 방지)하도록 구성될 수 있다.In one embodiment, a given user's live view may be filtered so as not to expose potentially sensitive or personal information to others to view. For example, a cloud gaming system may support a chat function. As some users may wish their chats to remain confidential, the option to exclude chat logs may be provided when presenting a live view. It should be appreciated that the chat function may be implemented during gameplay activity as well as during non-gameplay activity, and may be filtered from the live view of either or both of these situations. In another embodiment, aspects of the video game may be filtered from the live view. For example, a user may wish to keep certain user-defined settings secret as they may confer an advantage to that user during gameplay. As such, an option may be provided that activity related to settings is not displayed as part of the live feed (eg, when the user accesses the settings interface of the video game). In another embodiment, the live view is configured to prevent viewing of personal information (eg, preventing viewing when a user accesses a personal information page, enters payment information, enters a password, etc.) can be

일 실시예에 있어서, 인터페이스는 현재 온라인으로 있는 이차 사용자의 게이밍 세션에 합류하도록 요청하는 옵션을 일차 사용자에게 제공한다. 예를 들어, 일차 사용자는 이차 사용자의 라이브 게임플레이 피드를 보고 이차 사용자의 게임플레이에 합류하기를 바랄 수 있다. 일 실시예에 있어서, 옵션의 활성화는 요청을 이차 사용자에게 보내어 일차 사용자가 그들 세션에 합류하기를 바란다고 이차 사용자에게 통지한다. 이차 사용자가 그 요청을 수락하면, 그때는 비디오 게임의 멀티플레이어 모드가 개시되어, 제1 및 제2 사용자에 의한 멀티플레이어 게임플레이를 용이하게 한다. 다른 일 실시예에 있어서, 2 이상의 이차 사용자가 이미 멀티플레이어 게임플레이에 참여하고 있을 수 있다. 그러한 일 실시예에 있어서, 일차 사용자는 멀티플레이어 게임플레이에 합류하는 요청을 보낼 수 있다. 이차 사용자 중 하나(예를 들어, 게임플레이 세션의 지정된 호스트)에 의한 요청의 수락시, 일차 사용자는 비디오 게임의 멀티플레이어 세션에 합류할 수 있다. 이차 사용자의 라이브 게임플레이 피드를 보여주는 전술한 인터페이스는 일차 사용자가 그들의 게임플레이를 볼 수 있은 후에 이차 사용자의 게임플레이에 합류하는 것을 용이하게 함을 인식하여야 한다. In one embodiment, the interface provides the primary user with an option to request to join the gaming session of the secondary user who is currently online. For example, a primary user may view a secondary user's live gameplay feed and wish to join the secondary user's gameplay. In one embodiment, activation of the option sends a request to the secondary user notifying the secondary user that the primary user wishes to join their session. If the secondary user accepts the request, then a multiplayer mode of the video game is initiated, facilitating multiplayer gameplay by the first and second users. In another embodiment, two or more secondary users may already be engaged in multiplayer gameplay. In one such embodiment, the primary user may send a request to join the multiplayer gameplay. Upon acceptance of the request by one of the secondary users (eg, the designated host of the gameplay session), the primary user may join the multiplayer session of the video game. It should be appreciated that the aforementioned interface showing the secondary user's live gameplay feed facilitates joining the secondary user's gameplay after the primary user has been able to view their gameplay.

일 실시예에 있어서, 이차 사용자의 게임플레이에 합류하도록 요청하는 옵션은 일차 사용자에 의한 비디오 게임의 소유권 상황의 결정시 예측된다. 일차 사용자가 그 비디오 게임을 소유하고 있지 않으면, 그때는 옵션이 제시되지 않을 수 있는 반면, 일차 사용자가 이차 사용자와 동일한 비디오 게임을 소유하고 있으면, 그때는 이차 사용자의 게임플레이에 합류하도록 요청하는 옵션이 인터페이스의 일부분으로서 이용가능하게 된다. 일 실시예에 있어서, 일차 사용자가 그 비디오 게임의 소유자가 아니라고 결정될 때, 그때 일차 사용자는 여전히 이차 사용자의 게임플레이에 멀티플레이어 모드로 그러나, 게임플레이의 지속시간, 이용가능한 장면/레벨/스테이지/등, 커스터마이징 옵션, 능력, 스킬, 무기, 캐릭터, 차량, 또는 제한될 수 있는 비디오 게임의 어느 다른 태양의 관점에서 제한되는 것과 같은, 제한된 용량으로 합류할 수 있다. 일 실시예에 있어서, 비디오 게임의 제한된 버전의 게임플레이에 뒤이어, 일차 사용자에게 풀 비디오 게임을 구입하는 옵션이 제공된다. 다른 일 실시예에서는, 일차 사용자에게 비디오 게임의 부가적 부분을 구입하는 옵션이 제공된다.In one embodiment, the option to request to join the secondary user's gameplay is predicted upon determination of the status of ownership of the video game by the primary user. If the primary user does not own the video game, then the option may not be presented, whereas if the primary user owns the same video game as the secondary user, then the option to request to join the secondary user's gameplay It is made available as part of this interface. In one embodiment, when it is determined that the primary user is not the owner of the video game, then the primary user is still in multiplayer mode to the secondary user's gameplay, however, the duration of the gameplay, available scenes/levels/stages/ etc., may join with a limited capacity, such as limited in terms of customization options, abilities, skills, weapons, characters, vehicles, or any other aspect of the video game that may be limited. In one embodiment, following gameplay of the limited version of the video game, the primary user is provided with the option to purchase the full video game. In another embodiment, the primary user is provided with the option to purchase an additional portion of the video game.

도 10을 계속 참조하면, 디스플레이된 정보는 또한 사용자의 친구의 게임 이력 정보(1012)를 포함할 수 있다. 게임 이력 정보(1012)는, 플레이된 가장 최근 게임, 게임플레이 세션의 지속시간, 게임플레이와 관련한 통계 등과 같은, 소정 친구의 게임플레이 이력에 대한 정보를 제공할 수 있다.With continued reference to FIG. 10 , the displayed information may also include game history information 1012 of the user's friends. The game history information 1012 may provide information on the gameplay history of a certain friend, such as the most recent game played, the duration of a gameplay session, statistics related to gameplay, and the like.

클라우드 게이밍 인터페이스를 제시하기 위한 많은 방법 및 구성이 본 발명의 다양한 실시예에 따라 가능함을 인식할 것이다. 그러한 일 실시예에 있어서는, 클라우드 게이밍 시스템의 사용자의 현재 게이밍 상황을 디스플레이하기 위한 방법으로서, 이하의 방법 연산: 일차 사용자의 클라우드 게이밍 인터페이스를 제시하는 연산; 일차 사용자의 친구인 하나 이상의 이차 사용자를 결정하는 연산; 이차 사용자의 각각의 현재 상황으로서, 온라인 또는 오프라인 중 하나인 현재 상황을 결정하는 연산; 적어도 하나의 온라인 이차 사용자에 대하여, 온라인 이차 사용자의 현재 게이밍 세션의 라이브 피드로서, 온라인 이차 사용자의 현재 게이밍 세션에 합류하는 옵션을 일차 사용자에게 제공하는 것을 포함하는 라이브 피드를 일차 사용자의 클라우드 게이밍 인터페이스에서 제시하는 연산; 일차 사용자가 온라인 이차 사용자의 현재 게이밍 세션에 합류하는 옵션을 활성화시키는 요청을 수신하는 것에 응답하여, 온라인 이차 사용자의 현재 게이밍 세션의 멀티플레이어 모드로서, 온라인 이차 사용자의 현재 게이밍 세션에서 일차 사용자의 게임플레이를 위해 제공되는 멀티플레이어 모드를 개시하는 연산을 포함하되, 멀티플레이어 모드를 개시하는 연산은 온라인 이차 사용자의 현재 게이밍 세션을 정의하는 비디오 게임에 관하여 일차 사용자의 소유권 상황을 결정하는 연산을 포함하고; 일차 사용자가 그 비디오 게임을 소유하고 있다고 결정될 때, 그때는 비디오 게임의 풀 버전의 게임플레이에 대해 멀티플레이어 모드가 제공되고; 일차 사용자가 그 비디오 게임을 소유하고 있지 않다고 결정될 때, 그때는 비디오 게임의 제한된 버전의 게임플레이에 대해 멀티플레이어 모드가 제공되는 방법이 제공된다.It will be appreciated that many methods and configurations for presenting a cloud gaming interface are possible in accordance with various embodiments of the present invention. In one such embodiment, there is provided a method for displaying a current gaming situation of a user of a cloud gaming system, comprising: an operation for presenting a cloud gaming interface of a primary user; an operation for determining one or more secondary users that are friends of the primary user; an operation for determining, as each current situation of the secondary user, a current situation that is one of online or offline; providing, for the at least one online secondary user, a live feed of the online secondary user's current gaming session, the live feed comprising providing the primary user with an option to join the online secondary user's current gaming session to the primary user's cloud gaming interface operation presented in ; In response to the primary user receiving a request to activate an option to join the online secondary user's current gaming session, a multiplayer mode of the online secondary user's current gaming session, the primary user's game in the online secondary user's current gaming session an operation for initiating a multiplayer mode provided for play, wherein the operation for initiating a multiplayer mode comprises an operation for determining an ownership situation of a primary user with respect to a video game defining a current gaming session of an online secondary user; ; When it is determined that the primary user owns the video game, then a multiplayer mode is provided for the gameplay of the full version of the video game; When it is determined that the primary user does not own the video game, then a method is provided in which a multiplayer mode is provided for the gameplay of the limited version of the video game.

일 실시예에 있어서, 비디오 게임의 제한된 버전은, 비디오 게임의 풀 버전에 비할 때, 하나 이상의 이용가능한 레벨, 이용가능한 장면, 이용가능한 피처, 시간 제한, 가상 공간, 캠페인 길이, 생명의 수, 또는 리플레이의 수에 있어서의 감축을 정의한다.In one embodiment, the limited version of the video game, when compared to the full version of the video game, includes one or more available levels, available scenes, available features, time restrictions, virtual space, campaign length, number of lives, or Defines the reduction in the number of replays.

일 실시예에 있어서, 방법은, 비디오 게임이 일차 사용자에 의해 소유되고 있지 않을 때, 그 비디오 게임의 적어도 일부를 구입하는 옵션을 일차 사용자에게 제시하는 방법 연산을 더 포함한다.In one embodiment, the method further comprises a method operation of presenting to the primary user an option to purchase at least a portion of the video game when the video game is not owned by the primary user.

일 실시예에 있어서, 온라인 이차 사용자의 라이브 피드는 제1 해상도로 제시되고, 라이브 피드의 선택은 제1 해상도보다 더 높은 제2 해상도로 온라인 이차 사용자의 라이브 피드의 제시를 트리거링한다.In one embodiment, the online secondary user's live feed is presented at a first resolution, and selection of the live feed triggers presentation of the online secondary user's live feed at a second resolution higher than the first resolution.

일 실시예에 있어서, 온라인 이차 사용자의 라이브 피드는 채도가 감소된 컬러 모드로 제시되고, 라이브 피드의 선택은 채도가 있는 컬러 모드로 온라인 이차 사용자의 라이브 피드의 제시를 트리거링한다.In one embodiment, the online secondary user's live feed is presented in a desaturated color mode, and selection of the live feed triggers presentation of the online secondary user's live feed in a saturated color mode.

일 실시예에 있어서, 클라우드 게이밍 인터페이스를 제시하는 것은 이차 사용자의 각각과 연관된 게임 타이틀의 라이브러리를 제시하는 것을 포함한다.In one embodiment, presenting the cloud gaming interface includes presenting a library of game titles associated with each of the secondary users.

일 실시예에 있어서, 하나 이상의 이차 사용자를 결정하는 것은 일차 사용자와 연관된 소셜 그래프에 액세스하는 것을 포함한다. 일 실시예에 있어서, 소셜 그래프에 액세스하는 것은 소셜 네트워크의 API에 액세스하는 것을 포함한다.In one embodiment, determining the one or more secondary users comprises accessing a social graph associated with the primary user. In one embodiment, accessing the social graph comprises accessing an API of the social network.

일 실시예에 있어서, 일차 사용자의 클라우드 게이밍 인터페이스를 제시하는 것은 우선순위 순서로 이차 사용자의 각각의 목록을 제시하는 것을 포함하고, 우선순위 순서는 현재 상황, 로그인의 최근성, 또는 일차 사용자와의 게임의 공통 소유권 중 하나 이상에 기반한다.In one embodiment, presenting the cloud gaming interface of the primary user comprises presenting each list of secondary users in a priority order, wherein the priority order is current situation, recentity of login, or relationship with the primary user. Based on one or more of the common ownership of the game.

도 11은, 본 발명의 일 실시예에 따라, 현재 사용자의 친구의 라이브 게임플레이 피드를 제시하기 위한 방법을 예시하고 있다. 방법 연산(1100)에서, 현재 사용자는 클라우드 게이밍 시스템에 로그온한다. 방법 연산(1102)에서, 현재의 사용자의 친구가 현재 사용자의 소셜 그래프로부터 식별된다. 언급된 바와 같이, 현재 사용자의 소셜 그래프는 클라우드 게이밍 시스템에 특정한 소셜 네트워크로부터일 수도 있고 클라우드 게이밍 시스템과는 별개로 존재하는 소셜 네트워크로부터일 수도 있다. 방법 연산(1104)에서는, 사용자의 친구의 라이브러리 정보가 검색된다. 사용자의 친구의 라이브러리 정보는 사용자의 친구 라이브러리 내 게임 타이틀을 식별시킬 수 있다. 방법 연산(1106)에서는, 현재 사용자의 친구의 현재 상황이 식별된다. 소정 친구의 현재 상황이 온라인이면, 그때 방법 연산(1108)에서는 그 소정 친구가 클라우드-기반 시스템 상의 비디오게임의 게임플레이에 현재 참여하고 있는지 결정된다. 그렇다면, 그때 방법 연산(1112)에서는, 그 사용자에 대한 라이브 게임플레이 피드가 획득된다. 방법 연산(1110)에서, 현재 사용자의 친구는 다양한 인자 또는 선호도에 기반하여 디스플레이를 위한 우선순위가 결정된다. 방법 연산(1114)에서는, 현재 사용자의 친구 및 그들 상황 정보 및 라이브 게임플레이 피드가 우선순위 순서로 제시된다. 일 실시예에 있어서는, 온라인으로 있는 현재 사용자의 친구가 현재 오프-라인으로 있는 친구에 비해 우선순위로 될 수 있다. 일 실시예에 있어서는, 활동 중 게임플레이에 현재 참여하고 있는 현재 사용자의 친구가 활동 중 게임플레이에 현재 참여하고 있지 않은 친구에 비해 우선순위로 될 수 있다. 일 실시예에 있어서는, 이용가능한 라이브 게임플레이 피드를 갖는 친구가 다른 친구에 비해 우선순위로 될 수 있다. 일 실시예에 있어서, 친구는 클라우드 게이밍 시스템에 로그인한 최근성에 기반하여 우선순위가 결정될 수 있다. 다른 일 실시예에 있어서, 친구는 비디오게임의 공통 소유권에 기반하여 우선순위가 결정될 수 있다. 친구의 우선순위결정의 상기 예들은 단지 예로서 제공될 뿐이고 제한으로서가 아니다. 다른 실시예에서, 현재 사용자의 친구는 어느 다른 관련 있는 인자에 기반하는 우선순위 배치에 따라 우선순위결정 및 제시될 수 있음을 당업자는 인식할 것이다.11 illustrates a method for presenting a live gameplay feed of a friend of a current user, in accordance with an embodiment of the present invention. At method operation 1100 , the current user logs on to the cloud gaming system. At method operation 1102 , a friend of the current user is identified from the social graph of the current user. As mentioned, the current user's social graph may be from a social network specific to the cloud gaming system or from a social network that exists separately from the cloud gaming system. In method operation 1104, library information of the user's friends is retrieved. The user's friend's library information may identify a game title in the user's friend library. At method operation 1106 , the current status of a friend of the current user is identified. If the current status of the given friend is online, then a method operation 1108 determines whether the given friend is currently engaged in gameplay of a videogame on the cloud-based system. If so, then in method operation 1112, a live gameplay feed for that user is obtained. In method operation 1110, the current user's friends are prioritized for display based on various factors or preferences. In method operation 1114 , the current user's friends and their context information and live gameplay feeds are presented in priority order. In one embodiment, the current user's friends who are online may be prioritized over friends who are currently offline. In one embodiment, friends of the current user who are currently engaged in active gameplay may be prioritized over friends not currently engaged in active gameplay. In one embodiment, friends with live gameplay feeds available may be prioritized over other friends. In one embodiment, friends may be prioritized based on recentness of logging into the cloud gaming system. In another embodiment, friends may be prioritized based on common ownership of the videogame. The above examples of prioritizing friends are provided by way of example only and not limitation. Those skilled in the art will recognize that, in other embodiments, the current user's friends may be prioritized and presented according to a prioritization arrangement based on any other relevant factor.

도 12는, 본 발명의 일 실시예에 따라, 소셜 네트워크 및 클라우드 게이밍 시스템을 포함하는 시스템을 예시하고 있다. 클라우드 게이밍 시스템(1200)은 클라우드-기반의 당신의 게임으로의 액세스를 제공한다. 클라우드 게이밍 시스템은 사용자에 의해 플레이될 수 있는 다양한 게임 타이틀을 포함하고 있는 게임 라이브러리(1202)를 포함한다. 사용자 데이터(1204)는, 사용자에 의해 소유되고 있는 게임 타이틀, 및 사용자의 어느 저장된 게임플레이와 같이, 사용자 계정과 연관되어 있는 다양한 종류의 데이터를 포함하고 있다. 도시된 실시예에 있어서는, 세션(A), 세션(B) 및 세션(C)을 포함하는, 다양한 게임플레이 세션이 개념적으로 도시되어 있다. 세션(A)은, 디스플레이(1208) 상에서 세션(A)의 게임플레이를 보는, 사용자(A)의 게임플레이를 정의한다. 세션(A)의 게임플레이는 사용자(A)의 디스플레이(1208) 상에 뷰(1210)로서 렌더링된다. 마찬가지로, 세션(B)은, 뷰(1214)로서 사용자(B)의 디바이스(1212) 상에 렌더링되는, 사용자(B)의 게임플레이를 정의한다. 도시된 실시예에 있어서, 사용자(B)의 세션의 뷰(1214)는, 세션(A)의 라이브 뷰 및 세션(C)의 라이브 뷰를 포함하는, 다른 사용자로부터의 라이브 뷰를 포함하는 인터페이스를 도시하고 있다. 세션(A, C)으로부터의 게임플레이가 진행함에 따라, 사용자(B)의 뷰(1214)에서 디스플레이되도록, 게임플레이 비디오가 세션(A, C)으로부터 출력되어 사용자(B)의 세션을 통하여 스트리밍될 수 있다. 게임플레이 비디오는 사용자(B)의 세션을 통하여 스트리밍하도록 프로세싱될 수 있다, 예를 들어, 대역폭을 아끼도록 해상도, 사이즈, 프레임레이트, 컬러 채도 등을 낮출 수 있다.12 illustrates a system including a social network and a cloud gaming system, in accordance with an embodiment of the present invention. The cloud gaming system 1200 provides cloud-based access to your games. The cloud gaming system includes a game library 1202 containing various game titles that may be played by a user. User data 1204 includes various types of data associated with a user account, such as game titles owned by the user, and any stored gameplay of the user. In the illustrated embodiment, various gameplay sessions are conceptually illustrated, including session A, session B, and session C. Session A defines the gameplay of user A, viewing the gameplay of session A on display 1208 . Session A's gameplay is rendered as view 1210 on user A's display 1208 . Similarly, session B defines user B's gameplay, which is rendered on user B's device 1212 as view 1214 . In the illustrated embodiment, user B's view 1214 of a session includes an interface comprising a live view from another user, including a live view of session A and a live view of session C. is showing As gameplay from Sessions A, C progresses, gameplay video is output from Sessions A, C and streamed through User B's Session, such that it is displayed in User B's View 1214 . can be The gameplay video may be processed to stream through user B's session, eg lowering the resolution, size, framerate, color saturation, etc. to conserve bandwidth.

도 12를 계속 참조하면, 소셜 네트워크(1216)가 또한 도시되어 있다. 소셜 네트워크(1216)는, 사용자의 소셜 그래프, 게시물, 사진, 비디오, 약력 정보 등과 같은 데이터를 포함하는, 사용자 데이터(1218)를 포함한다. 앱(1220)이 소셜 네트워크 플랫폼 상에서 실행될 수 있다. 그래픽 사용자 인터페이스(GUI)(1222)는 소셜 네트워크와 대화하기 위한 인터페이스를 정의한다. API(1224)는 소셜 네트워크로의 액세스를 용이하게 한다. 통지 모듈(1226)은 소셜 네트워크 사용자에 대한 통지를 그들 선호도에 따라 취급한다. 언급된 바와 같이, 사용자(B)의 뷰(1214)는 다른 사용자의 세션으로부터의 라이브 피드를 포함한다. 일 실시예에 있어서, 사용자(B)의 친구는 사용자(B)의 소셜 그래프의 구성원을 결정하도록 소셜 네트워크(1216)의 API(1224)에 액세스하는 것에 기반하여 결정될 수 있다. 이들 구성원은, 세션(A, C)으로부터의 피드를 포함하는, 사용자(B)의 친구로부터의 라이브 게임플레이 피드를 제공하도록 클라우드 게이밍 시스템의 사용자에 대비하여 상호-참조되었다. With continued reference to FIG. 12 , a social network 1216 is also shown. Social network 1216 includes user data 1218 , including data such as the user's social graphs, posts, photos, videos, biographical information, and the like. The app 1220 may run on the social networking platform. A graphical user interface (GUI) 1222 defines an interface for interacting with a social network. API 1224 facilitates access to social networks. Notification module 1226 handles notifications to social network users according to their preferences. As mentioned, user B's view 1214 includes live feeds from other users' sessions. In one embodiment, user B's friends may be determined based on accessing API 1224 of social network 1216 to determine members of user B's social graph. These members were cross-referenced against the user of the cloud gaming system to provide live gameplay feeds from users B's friends, including feeds from sessions A and C.

일 실시예에 있어서, 사용자(A)는 그의 게임플레이 세션(A)으로부터 그의 소셜 그래프에 공유하는데 동의한다. 사용자(A)의 세션(A)은 사용자(A)의 소셜 그래프 내 친구에게 적합한 통지를 보내기 위해 소셜 네트워크(1216)의 통지 모듈(1226)을 활성화시키도록 API(1224)를 통하여 통신한다. 사용자(A)의 소셜 그래프 내에 있는 소셜 네트워크 사용자(1230)가 디바이스(1228)를 통하여 소셜 네트워크에 액세스할 때, 그들은 사용자(A)의 세션에 대한 사용자(A)로부터의 메시지 또는 게시물을 볼 수 있다. 설정되면, 사용자는 사용자(A)가 소셜 네트워크 상에 무언가를 공유하였음을 나타내는 이-메일과 같은 통지를 수신할 수 있다. 사용자(A)는, 비디오 게임에서의 업적, 비디오 게임을 플레이하도록 초대, 비디오 게임에 대한 코멘트, 사용자(A)가 생성한 게임 슬라이스를 보거나 플레이하도록 초대, 사용자(A)의 게임플레이의 비디오 클립 등과 같은, 다양한 비디오 게임 관련 활동에 대해 공유할 수 있음을 인식하여야 한다.In one embodiment, user A agrees to share on his social graph from his gameplay session A. User A's session A communicates via API 1224 to activate notification module 1226 of social network 1216 to send appropriate notifications to friends in user A's social graph. When social network users 1230 within user A's social graph access the social network through device 1228, they can view messages or posts from user A about user A's session. have. Once set, the user may receive a notification, such as an e-mail, indicating that user A has shared something on the social network. User (A) receives a video clip of user (A)'s gameplay: achievements in the video game, invitation to play the video game, comments on the video game, invitation to view or play the game slice created by user (A) It should be appreciated that a variety of video game related activities may be shared, such as, for example.

도 13은, 본 발명의 실시예에 따라, 시간에 걸친 다양한 게임 상태 변수를 예시하는 그래프이다. 다양한 실시예에 있어서, 특정 비디오 게임에 특정할 여러 다른 종류의 게임 상태 변수가 있을 수 있음을 인식하여야 한다. 도시된 실시예를 참조하여 도시 및 설명되는 것들은 단지 예로서 제공될 뿐이고 제한으로서가 아니다. 게임 상태 변수는 실행 중 비디오 게임에 의해 정의되는 값은 물론 사용자 입력에 의해 정의되는 값도 포함할 수 있다. 도시된 실시예에 있어서는, 캐릭터 또는 차량과 같이 비디오게임의 가상 공간 내 물체의 X, Y 및 Z 위치를 나타내는 위치 변수가 도시되어 있다. 카메라 각도 변수는 비디오게임에서 가상 카메라 또는 가상 뷰의 방향을 나타낸다. 일 실시예에 있어서, 카메라 각도는 방위각 기준에 상대적으로 (예를 들어, 수평 평면을 따라) 측정된 방위각 성분 및 경사각 기준에 상대적으로 (예를 들어, 수직선에 상대적으로) 측정된 경사각 성분에 의해 정의된다. 예시된 액션(A, B)과 같은 액션 변수는 비디오게임 내 다양한 액션의 개시 및 지속을 나타낸다. 소정 비디오게임에 대한 액션이 그 비디오게임의 맥락에 특정할 것임을 인식하여야 한다. 예로서, 액션은 특정 책략의 개시, 스킬의 적용, 그 강도 또는 빈도 레벨을 증가시키는 것 등과 같이 기존 액션을 수정하는 수정 메커니즘의 트리거링, 또는 비디오게임의 코스 동안 사용자 입력에 의해 트리거링될 수 있는 어느 다른 유형의 액션 또는 활동을 포함할 수 있다. 도 13을 계속 참조하면, 무기 변수는 비디오게임에서 무기의 트리거링을 나타낸다. 건강 변수는, 예를 들어, 비디오게임에서 사용자의 캐릭터의 건강 레벨을 나타낸다. 버튼 변수는 컨트롤러 디바이스 상의 버튼의 상태, 예를 들어, 버튼이 눌려진 상태에 있는지 풀린 상태에 있는지를 나타낸다. 도시된 실시예에 있어서 조이스틱 상태 변수는 중립 위치에 상대적인 조이스틱 움직임의 크기를 나타낸다. 도시된 실시예를 참조하여 설명된 상기 게임 상태 변수는 단지 예시일 뿐이며, 여러 다른 유형의 게임 상태 변수가 시간에 걸쳐 추적될 수 있음을 당업자는 인식할 것이다.13 is a graph illustrating various game state variables over time, in accordance with an embodiment of the present invention. It should be appreciated that, in various embodiments, there may be several different kinds of game state variables that are specific to a particular video game. Those shown and described with reference to the illustrated embodiments are provided by way of example only and not limitation. The game state variable may include values defined by the video game during execution as well as values defined by user input. In the illustrated embodiment, position variables are shown representing the X, Y and Z positions of objects in the virtual space of the videogame, such as characters or vehicles. The camera angle variable represents the orientation of the virtual camera or virtual view in the videogame. In one embodiment, the camera angle is determined by an azimuth component measured relative to an azimuth reference (eg, along a horizontal plane) and a tilt angle component measured relative to an inclination angle reference (eg, relative to a vertical line). Defined. Action variables, such as illustrated actions (A, B), represent the initiation and duration of various actions in the videogame. It should be appreciated that actions for a given videogame will be specific to the context of that videogame. For example, an action may be triggered by user input during the course of a videogame, triggering a modification mechanism that modifies an existing action, such as initiating a particular maneuver, applying a skill, increasing its intensity or frequency level, etc. It may contain other types of actions or activities. With continued reference to Figure 13, the weapon variable represents the triggering of the weapon in the videogame. The health variable represents, for example, the health level of a user's character in a video game. The button variable represents the state of a button on the controller device, eg, whether the button is in a pressed or released state. In the illustrated embodiment, the joystick state variable indicates the magnitude of the joystick movement relative to the neutral position. Those skilled in the art will recognize that the game state variables described with reference to the illustrated embodiments are exemplary only, and that many other types of game state variables may be tracked over time.

도 6의 실시예를 또다시 참조하면, 일 실시예에 있어서, 게임 상태 분석기(614)는 사용자의 레코딩된 게임플레이의 게임 상태 변수를 분석하도록 구성될 수 있다. 사용자의 레코딩된 게임플레이의 분석에 기반하여, 사용자의 레코딩된 게임플레이의 관심 있는 다양한 영역이 정의되고 게임 슬라이스를 발생시킬 가능한 선택으로서 사용자에게 제시될 수 있다. 예를 들어, 특정 게임 상태 변수에 대한 높은 활동 레벨을 특징으로 하는 게임플레이의 영역은 사용자의 레코딩된 게임플레이의 선택을 정의할 수 있다. 소정 게임 상태 변수에 대한 활동 레벨은 강도 레벨, 활성화 빈도, 지속 시간 등과 같은 다양한 인자에 기반할 수 있음을 인식하여야 한다. 일부 실시예에 있어서, 게임 상태 변수의 분석은 2 이상의 다른 게임 상태 변수의 활동 레벨이 미리 정의된 방식으로 상관되는, 예를 들어, 2 이상의 변수가 동시에 높은 활동 레벨을 갖는 게임플레이의 영역을 찾는 것을 수반할 수 있다. 높은 활동 레벨은 미리 정의된 임계치에 기반하여 결정될 수 있다.Referring again to the embodiment of FIG. 6 , in one embodiment, game state analyzer 614 may be configured to analyze game state variables of the user's recorded gameplay. Based on the analysis of the user's recorded gameplay, various areas of interest of the user's recorded gameplay can be defined and presented to the user as possible choices for generating game slices. For example, regions of gameplay characterized by high activity levels for a particular game state variable may define the user's choices of recorded gameplay. It should be appreciated that the activity level for a given game state variable may be based on various factors such as intensity level, activation frequency, duration, and the like. In some embodiments, the analysis of the game state variable is to find areas of gameplay where the activity levels of two or more other game state variables are correlated in a predefined way, eg, where two or more variables simultaneously have high activity levels. may entail The high activity level may be determined based on a predefined threshold.

다양한 실시예에 있어서, 사용자의 레코딩된 게임플레이의 관심 있는 영역은 이하의 것 중 어느 하나 이상의 임계 검출에 기반하여 자동으로 결정될 수 있다: 하나 이상의 사용자 입력, 사용자의 입력 레이트, 입력 빈도, 입력 유형의 반복, 입력 패턴의 발생, 조합 입력(예를 들어, 콤보 키), 모션 벡터, 컨트롤러 상에 발휘된 압력, (예를 들어, 사용자의 캡처링된 이미지 또는 오디오 데이터에 기반하여 검출되는) 사용자의 흥분.In various embodiments, the region of interest of the user's recorded gameplay may be automatically determined based on threshold detection of any one or more of the following: one or more user inputs, the user's input rate, input frequency, input type. repetition of, occurrence of input patterns, combinational input (e.g., combo keys), motion vectors, pressure exerted on the controller, user (e.g., detected based on the user's captured image or audio data) of excitement.

도 14a는, 본 발명의 일 실시예에 따라, 선형 유형 비디오게임에 대한 게임 슬라이스를 발생시키기 위한 방법을 예시하고 있다. 대체로, 선형 비디오게임은 비디오게임을 통한 플레이어의 진행이 선형 코스를 따르되, 비디오게임을 통해 진행하기 위하여 플레이어는 나중 목적으로 진행하기 전에 앞선 목적을 완료해야 하는 것이다. 그리하여, 모든 플레이어는 비디오게임을 통해 진행하기 위하여 동일 목적을 동일 순서로 완료해야 한다. 선형 비디오게임에서의 목적은 비디오게임의 시공 스토리라인의 맥락 내 지리적은 물론 시간적 위치에도 묶여 있을 수 있다. 방법 연산(1400)에서는, 비디오게임의 장면이 식별된다. 장면은 본질상 공간적이고 또한 시간적이고, 거기 내에 정의된 다양한 목적을 가질 수 있다. 방법 연산(1402)에서는, 장면의 공간적 또는 시간적 길이가 정의된다. 장면의 길이는 사용자 입력에 따라 정의될 수 있고, 또한 장면에 묶여 있는 목적에 기반하여 정의될 수 있다. 방법 연산(1404)에서는, 속성이 배정될 수 있는 장면 내 아이템, 캐릭터 또는 어느 다른 물체의 초기 속성이 정의된다. 방법 연산(1406)에서는, 앞서 정의된 바와 같은 초기 속성을 갖는 장면의 식별된 길이에 대해 게임 슬라이스가 발생된다.14A illustrates a method for generating a game slice for a linear type videogame, in accordance with an embodiment of the present invention. In general, linear videogames are such that the player's progression through the videogame follows a linear course, but in order to progress through the videogame, the player must complete an earlier objective before proceeding to a later objective. Thus, all players must complete the same objectives in the same order in order to progress through the videogame. Objects in linear videogames can be tied to geographic as well as temporal locations within the context of the videogame's space-time storyline. At method operation 1400 , a scene of a videogame is identified. A scene is spatial and temporal in nature, and can have a variety of purposes defined therein. In method operation 1402, the spatial or temporal length of the scene is defined. The length of the scene may be defined according to a user input, and may also be defined based on a purpose tied to the scene. In a method operation 1404, an initial property of an item, character, or any other object in the scene to which the property can be assigned is defined. In a method operation 1406, a game slice is generated for the identified length of the scene having the initial properties as defined above.

도 14b는, 본 발명의 일 실시예에 따라, 오픈 월드 유형 비디오게임에 대한 게임 슬라이스를 발생시키기 위한 방법을 예시하고 있다. 오픈 월드 비디오게임은 사용자가 어떠한 수의 목적이라도 그들 자신의 선택의 순서로 추구할 자유가 있는 것으로서 특징지어질 수 있다. 전형적으로 오픈 월드 유형 비디오 게임은 또한 사용자가 하나 이상의 가상 공간을 마음대로 항행 가능하게 한다. 비디오게임의 여러 다른 레벨로 진행하거나 비디오게임을 완료하기 위하여, 특정 목적 세트의 완료가 요구될 수 있지만, 그렇지만 사용자는 이들 목적을 여러 다른 순서로 자유롭게 완료할 수 있다. 방법 연산(1410)에서는, 비디오게임의 가상 세계 내 위치가 식별된다. 방법 연산(1412)에서는, 가상 세계의 제한된 부분이 정의된다. 가상 세계의 제한된 부분은 여기에서 설명된 바와 같이 레코딩된 게임플레이의 선택을 정의하는 사용자 입력에 기반하여 정의될 수 있다. 예를 들어, 오픈 월드 비디오게임 내 사용자의 게임플레이는 게임플레이의 코스 동안 매우 다양한 위치에 걸쳐 미칠 수 있다. 그렇지만, 게임 슬라이스를 발생시키려는 목적으로, 사용자는 비디오게임의 가상 세계의 제한된 지리적 영역 내에서 일어나는 게임플레이의 일부를 선택할 수 있다. 이러한 제한된 지리적 영역은 그들 레코딩된 게임플레이의 사용자 선택된 부분의 분석에 기반하여, 예를 들어, 가상 세계 내 사용자 제어되는 캐릭터의 위치를 추적하고 캐릭터가 존재하는 것으로 발견된 모든 위치를 포함하는 경계를 정의하여 결정될 수 있다. 방법 연산(1414)에서는, 사용자의 레코딩된 게임플레이 선택으로부터 앞서 결정된 제한된 지리적 영역 내에서 발견되는 다양한 물체, 캐릭터, 아이템, 차량 또는 어느 다른 물체의 초기 속성이 정의된다. 방법 연산(1416)에서는, 오픈 월드의 제한된 지리적 영역 및 앞서 정의된 속성에 기반하여 게임 슬라이스가 발생된다.14B illustrates a method for generating a game slice for an open world type videogame, in accordance with an embodiment of the present invention. An open world video game can be characterized as one in which the user is free to pursue any number of goals in the order of their own choice. Typically open world type video games also allow the user to freely navigate one or more virtual spaces. In order to progress through the different levels of a videogame or complete a videogame, completion of a specific set of objectives may be required, however, the user is free to complete these objectives in any number of different orders. At method operation 1410, a location within the virtual world of the videogame is identified. At method operation 1412, a limited portion of the virtual world is defined. A limited portion of the virtual world may be defined based on user input defining selections of recorded gameplay as described herein. For example, a user's gameplay in an open world videogame may span a wide variety of locations during the course of gameplay. However, for purposes of generating a game slice, the user may select a portion of the gameplay that takes place within a limited geographic area of the virtual world of the videogame. This limited geographic area tracks the location of a user-controlled character within the virtual world, for example, based on analysis of a user-selected portion of their recorded gameplay, and defines a boundary that includes all locations where the character is found to exist. It can be determined by definition. In method operation 1414, initial properties of various objects, characters, items, vehicles, or any other objects found within a limited geographic area previously determined from the user's recorded gameplay selections are defined. In a method operation 1416, a game slice is generated based on the previously defined attributes and the limited geographic area of the open world.

도 14c는, 본 발명의 일 실시예에 따라, 스포츠 비디오게임에 대한 게임 슬라이스를 발생시키기 위한 방법을 예시하고 있다. 게임 슬라이스는 사용자 레코딩된 게임플레이의 사용자 정의된 선택에 기반하여 발생될 수 있다. 방법 연산(1420)에서는, 사용자의 레코딩된 게임플레이의 선택에 기반하여 설정이 식별된다. 예로서, 설정은, 비디오게임의 스포츠 이벤트가 일어날 수 있는 코트, 스타디움, 트랙 또는 어느 다른 장소 설정과 같은, 스포츠 이벤트의 위치를 정의할 수 있다. 방법 연산(1422)에서는, 사용자의 레코딩된 게임플레이의 선택에 기반하여 시간 기간이 식별된다. 시간 기간은 게임 슬라이스가 발생될 시간적 부분을 정의하고, 레코딩된 게임플레이의 사용자 선택에 기반하여 정의될 수 있다. 스포츠 비디오 게임의 시간 기간은, 스포츠 동안 특정 시간 기간에 일어나는 특별 규칙 또는 활동의 포함과 같은, 비디오 게임 슬라이스의 특정 태양을 결정할 수 있다. 방법 연산(1424)에서는, 사용자의 레코딩된 게임플레이 선택에 포함된 플레이어에 기반하여 게임 슬라이스의 플레이어가 결정된다. 플레이어는 사용자에 의해 정의된 하나 이상의 캐릭터와 더불어, 게임플레이 때에 실행 중 비디오 게임의 인공 지능(AI) 캐릭터 제어 로직에 의해 제어된 AI 캐릭터도 포함할 수 있다. 여기 다른 곳에서 설명된 바와 같이, AI 캐릭터의 액션은 일부 경우에서는 근사될 수 있다. 반면 일부 실시예에 있어서, AI 캐릭터 제어 로직은 사용자의 레코딩된 게임플레이 선택에서 정의된 바와 같은 파라미터로 게임 슬라이스에 대해 정의된다. 방법 연산(1426)에서는, 스포츠 비디오 게임 슬라이스의 위치 설정에 대한 장면 속성이 정의된다. 예를 들어, 이들은 날씨, 트랙 또는 코트 조건, 및 스포츠 설정의 다른 속성과 같은 속성을 포함할 수 있다. 방법 연산(1428)에서는, 전술한 파라미터에 기반하여 비디오 게임에 대한 게임 슬라이스가 발생된다.14C illustrates a method for generating a game slice for a sports videogame, in accordance with an embodiment of the present invention. Game slices may be generated based on user-defined selections of user recorded gameplay. At method operation 1420, settings are identified based on the user's selection of recorded gameplay. As an example, a setting may define a location for a sporting event, such as a court, stadium, track, or any other venue setting where the sporting event of a videogame may take place. At method operation 1422, a time period is identified based on the user's selection of recorded gameplay. The time period defines the portion of time in which the game slice will occur, and may be defined based on user selections of recorded gameplay. A time period of a sports video game may determine certain aspects of a video game slice, such as the inclusion of special rules or activities that occur during a particular time period during a sport. At method operation 1424, a player of the game slice is determined based on the player included in the user's recorded gameplay selection. In addition to one or more user-defined characters, the player may also include AI characters controlled by the video game's artificial intelligence (AI) character control logic during execution during gameplay. As described elsewhere herein, the actions of an AI character may be approximated in some cases. Whereas in some embodiments, AI character control logic is defined for the game slice with parameters as defined in the user's recorded gameplay selections. In method operation 1426, scene properties for positioning of sports video game slices are defined. For example, these may include attributes such as weather, track or court conditions, and other attributes of sports settings. At method operation 1428, a game slice for the video game is generated based on the parameters described above.

도 15는, 본 발명의 일 실시예에 따라, 멀티-게임 슬라이스 게임의 형성을 개념적으로 예시하고 있다. 비디오게임은 다양한 레벨 또는 스테이지로 조직될 수 있다. 도시된 실시예에 있어서는, 비디오게임의 다양한 레벨로부터의 사용자 게임플레이가 도시되어 있다. 특히, 게임플레이 타임라인(1500)은 비디오게임의 제1 레벨로부터의 사용자의 게임플레이를 표현하는 반면, 게임플레이 타임라인(1502) 및 게임플레이 타임라인(1506)은, 각각, 비디오게임의 제2 및 제3 레벨로부터의 사용자의 게임플레이를 표현한다. 본 발명의 일 실시예에 따라, 사용자는 더 큰 멀티-게임 슬라이스 미니게임을 형성하도록 비디오게임으로부터 다수의 게임 슬라이스를 연접할 수 있다. 도시된 실시예에 있어서, 사용자의 게임플레이 타임라인(1500)으로부터의 선택(1502)은 제1 게임 슬라이스(1514)를 정의하도록 이용된다. 2의 사용자의 게임플레이 타임라인(15)으로부터의 선택(1504)은 제2 게임 슬라이스(1818)를 정의하도록 이용된다. 그리고 사용자의 게임플레이 타임라인(1506)으로부터의 선택(1508)은 제3 팀 슬라이스(1522)를 정의하도록 이용된다. 제1, 제2 및 제3 게임 슬라이스는 미니게임(1510)을 정의하도록 순차적 순서로 배열된다. 그렇게 함에 있어서, 미니게임(1510)은 비디오게임의 제1, 제2 및 제3 레벨의 각각으로부터의 게임 슬라이스를 포함한다. 이러한 방식으로, 미니게임(1510)을 플레이하는 사용자는 미니게임(1510)을 통해 플레이함으로써 비디오게임의 다수 레벨의 제한된 부분을 체험할 수 있다. 이것은 사용자가 비디오 게임의 하나의 레벨 또는 스테이지로부터의 하나의 부분만을 플레이할 수 있는 관용적 게임 데모보다 비디오 게임의 더 많은 강렬한 미리보기 또는 데모를 제공하는데 유용할 수 있다. 체험은, 전형적으로는, 단지 단일 클립이 아니라, 동일 영화의 여러 다른 부분으로부터의 클립을 제공하는, 영화 미리보기의 그것과 유사하다. 본 발명의 실시예에 의하면, 사용자는 풀 비디오게임의 더 나은 의미의 범위를 제공하는, 그리고 하나의 부분으로부터 다음으로 연속적 방식으로 게임플레이의 특징을 나타낼 수 있는 다수-부분 게임 데모를 즐길 수 있다. 15 conceptually illustrates the formation of a multi-game slice game, according to an embodiment of the present invention. Videogames can be organized into various levels or stages. In the illustrated embodiment, user gameplay from various levels of a videogame is shown. In particular, gameplay timeline 1500 represents the user's gameplay from a first level of the videogame, while gameplay timeline 1502 and gameplay timeline 1506, respectively, represent the first level of the videogame. Represents the user's gameplay from the 2nd and 3rd levels. In accordance with one embodiment of the present invention, a user may concatenate multiple game slices from a videogame to form a larger multi-game slice minigame. In the illustrated embodiment, a selection 1502 from the user's gameplay timeline 1500 is used to define a first game slice 1514 . A selection 1504 from the user's gameplay timeline 15 of 2 is used to define a second game slice 1818 . and selection 1508 from the user's gameplay timeline 1506 is used to define a third team slice 1522 . The first, second and third game slices are arranged in sequential order to define a minigame 1510 . In doing so, minigame 1510 includes game slices from each of the first, second and third levels of the videogame. In this way, a user playing the minigame 1510 may experience a limited portion of the multiple levels of the videogame by playing through the minigame 1510 . This can be useful to provide a more intense preview or demo of a video game than an idiomatic game demo in which the user can only play one level or one portion from a stage of the video game. The experience is similar to that of a movie preview, typically providing clips from different parts of the same movie, rather than just a single clip. According to embodiments of the present invention, users can enjoy multi-part game demos that provide a better range of meanings of full videogames, and which can characterize gameplay in a continuous manner from one part to the next. .

일 실시예에 있어서, 사용자는, 게임 슬라이스 전에 또는 다음에, 사용자 정의된 비디오, 메시지, 이미지 또는 어느 다른 유형의 정보와 같은, 부가적 자료를 삽입할 수 있다. 도시된 실시예에 있어서, 도입부(1512)는 미니게임(1510)에 대한 플레이어를 소개하고 아마도 제1 게임 슬라이스(1514)에 대한 플레이어도 소개하도록 제공된다. 부가적으로, 메시지(1516)는 제1 게임 슬라이스(1514)와 제2 게임 슬라이스(1518)의 사이에 삽입되는 한편, 다른 메시지(1520)는 제2 게임 슬라이스(1518)와 제3 게임 슬라이스(1522)의 사이에 삽입된다. 일 실시예에 있어서, 삽입된 자료는 게임 슬라이스가 발생된 원래 사용자의 레코딩된 게임플레이의 레코딩된 게임플레이 비디오를 포함할 수 있다. 레코딩된 게임플레이가 게임 슬라이스를 플레이하기 전에 보여지면, 게임 슬라이스를 개시하는 플레이어는 게임플레이를 시작하기 전에 게임 슬라이스 및 그 목적을 더 잘 이해할 수 있는 반면, 게임 슬라이스의 게임플레이 후에 보여지면, 플레이어는 게임 슬라이스의 그들의 게임플레이가 원래 사용자의 그것에 얼마나 필적하는지 이해할 수 있다.In one embodiment, the user may insert additional material, such as a user-defined video, message, image, or any other type of information, before or after a game slice. In the illustrated embodiment, an introduction 1512 is provided to introduce the player to the minigame 1510 and possibly also the player to the first game slice 1514 . Additionally, a message 1516 is inserted between the first game slice 1514 and the second game slice 1518, while the other message 1520 is inserted between the second game slice 1518 and the third game slice (1518). 1522) is inserted. In one embodiment, the embedded material may include recorded gameplay video of the original user's recorded gameplay from which the game slice occurred. If the recorded gameplay is shown before playing the game slice, the player initiating the game slice can better understand the game slice and its purpose before starting the gameplay, whereas when viewed after the gameplay of the game slice, the player can understand how comparable their gameplay of the game slice is to that of the original user.

도 16은, 본 발명의 일 실시예에 따라, 멀티-게임 슬라이스 게임의 발생을 개념적으로 예시하고 있다. 도시된 실시예에 있어서는, 게임(B)에 대한 사용자의 레코딩된 게임플레이 타임라인(1604), 및 게임(C)에 대한 사용자의 레코딩된 게임플레이 타임라인(1608)과 함께, 게임(A)에 대한 사용자의 레코딩된 게임플레이 타임라인(1600)이 도시되어 있다. 일 실시예에 있어서, 사용자는 여러 다른 비디오 게임으로부터의 게임 슬라이스에 기반하여 멀티-게임 슬라이스 미니게임을 발생시킬 수 있다. 도시된 실시예에 있어서는, 사용자의 레코딩된 게임플레이(1600)의 선택(1602)이 게임 슬라이스(1616)를 정의하도록 이용되는 반면, 사용자의 레코딩된 게임플레이(1604)로부터의 선택(1606)은 게임 슬라이스(1620)를 정의하도록 이용되고, 및 사용자의 레코딩된 게임플레이(1608)로부터의 선택(1610)은 게임 슬라이스(1624)를 정의하도록 이용된다. 게임 슬라이스(1616, 1620, 1624)는 미니게임(1612)을 정의하도록 순차적으로 배열된다. 선택사항으로서, 게임 슬라이스 전에 또는 다음에 부가적 자료가 삽입될 수 있다. 도시된 실시예에 있어서, 도입부(1614)는 게임 슬라이스(1616) 전에 삽입되는 반면, 막간(1618)은 게임 슬라이스(1616)와 게임 슬라이스(1620)의 사이에 정의되고, 다른 막간(1622)은 게임 슬라이스(1620)와 게임 슬라이스(1624)의 사이에 정의된다.16 conceptually illustrates the generation of a multi-game slice game, in accordance with an embodiment of the present invention. In the illustrated embodiment, game A, along with the user's recorded gameplay timeline 1604 for game B, and the user's recorded gameplay timeline 1608 for game C A user's recorded gameplay timeline 1600 is shown. In one embodiment, a user may generate a multi-game slice minigame based on game slices from several different video games. In the illustrated embodiment, the user's selection 1602 of the recorded gameplay 1600 is used to define the game slice 1616 , while the user's selection 1606 from the recorded gameplay 1604 is A game slice 1620 is used to define, and a user's selection 1610 from recorded gameplay 1608 is used to define a game slice 1624 . Game slices 1616 , 1620 , 1624 are arranged sequentially to define a minigame 1612 . Optionally, additional material may be inserted before or after the game slice. In the illustrated embodiment, an introduction 1614 is inserted before game slice 1616, while an interlude 1618 is defined between game slice 1616 and game slice 1620, and another interlude 1622 is It is defined between the game slice 1620 and the game slice 1624 .

도시된 실시예에 있어서, 게임 슬라이스는 여러 다른 비디오 게임으로부터 취해짐을 인식할 것이다. 이것은 사용자가 여러 다른 게임 타이틀, 장르, 및 또한 콘솔 플랫폼 세대에 걸쳐 그로부터의 게임 슬라이스를 함께 혼합할 수 있는 큰 융통성을 허용한다. 단지 예로서, 사용자는 단수형 비디오 게임 시리즈 내 수개의 게임 타이틀의 각각으로부터의 게임 슬라이스를 갖는 미니게임을 생성할 수 있다. 이러한 방식으로, 미니게임의 플레이어는 비디오 게임 시리즈의 진화를 연속적 게임플레이 체험으로 경험 및 인식할 수 있다. It will be appreciated that in the illustrated embodiment, game slices are taken from several different video games. This allows great flexibility for users to mix together different game titles, genres, and also game slices from across console platform generations. By way of example only, a user may create a minigame with game slices from each of several game titles in a singular video game series. In this way, the player of the minigame can experience and perceive the evolution of the video game series as a continuous gameplay experience.

본 발명의 실시예들은 일반적으로 클라우드-기반 게이밍 시스템을 참조하여 설명되었다. 그렇지만, 여기에서 설명된 바와 유사한 개념 및 원리가 전통적 콘솔-기반 비디오게임 시스템에 적용될 수 있으며, 클라우드-기반 게이밍 시스템과 함께 가능함을 당업자는 인식하여야 한다. 예를 들어, 사용자는 콘솔-기반 비디오게임을 플레이하고 사용자의 게임플레이 입력 데이터 및 게임 체류 메타데이터가 게임플레이 동안 레코딩되게 할 수 있다. 사용자의 게임플레이 입력 데이터 및 게임 상태 메타데이터에 기반하여, 비디오게임의 실제 게임플레이 출력이 추후 시간에 재생될 수 있다. 그래서, 레코딩된 입력 데이터 및 게임 상태 메타데이터는, 설명된 바와 같이, 미니게임을 발생시킬 사용자의 게임플레이의 일부의 선택을 위한 인터페이스를 제공하도록 비디오게임 코드와 함께 이용될 수 있다. 미니게임 코드는 콘솔에서 발생되고 클라우드 시스템에 업로드되어 다른 사용자에 의한 다운로드에 이용가능하게 될 수 있다. 다른 일 실시예에 있어서, 미니게임 코드는 사용자 게임플레이 입력 데이터 및 게임 상태 메타데이터의 선택된 부분을 수신한 후에 클라우드 시스템에 의해 발생된다. 클라우드 시스템은 클라우드 시스템에 저장된 비디오게임 코드에 기반하여 미니게임 코드를 발생시키도록 사용자 게임플레이 입력 데이터 및 게임 상태 메타데이터의 선택된 부분을 프로세싱한다. 발생되고 나면, 미니게임은 미니게임의 실행이 클라우드-기반 시스템에서 일어나는 클라우드-기반 게이밍에 이용가능하게 될 수 있지만, 미니게임의 콘솔-기반 게임플레이를 용이하게 하도록 콘솔 상에서의 실행을 위해 전통적 콘솔-기반 시스템으로의 다운로드에도 이용가능하게 될 수 있다. 이러한 방식으로, 미니게임은 콘솔-기반 비디오 게이밍 시스템의 사용자에 의해서도 그리고 클라우드-기반 비디오 게이밍 시스템의 사용자에 의해서도 생성 및 플레이될 수 있다.Embodiments of the present invention have been described generally with reference to a cloud-based gaming system. However, it should be appreciated by those skilled in the art that similar concepts and principles as described herein may be applied to traditional console-based video game systems, and possibly with cloud-based gaming systems. For example, a user may play a console-based videogame and have the user's gameplay input data and game dwell metadata recorded during gameplay. Based on the user's gameplay input data and game state metadata, the actual gameplay output of the videogame may be played back at a later time. Thus, the recorded input data and game state metadata can be used in conjunction with the videogame code to provide an interface for the user's selection of a portion of gameplay to generate a minigame, as described. The minigame code may be generated on the console and uploaded to a cloud system to make it available for download by other users. In another embodiment, the minigame code is generated by the cloud system after receiving the selected portion of the user gameplay input data and game state metadata. The cloud system processes the selected portion of the user gameplay input data and game state metadata to generate minigame code based on the videogame code stored in the cloud system. Once generated, the minigame can be made available for cloud-based gaming where the execution of the minigame takes place on a cloud-based system, but is traditionally consoled for execution on the console to facilitate console-based gameplay of the minigame. - can also be made available for download to the underlying system. In this way, minigames can be created and played both by users of console-based video gaming systems and by users of cloud-based video gaming systems.

본 발명의 실시예는 일반적으로 비디오 게임의 플레이가능한 사용자-정의된 부분 또는 미니게임을 참조하여 설명되었다. 그렇지만, 여기에서 설명된 원리 중 다수는, 레코딩된 게임플레이 비디오, 스크린샷, 및 활동 게임플레이의 라이브 스트리밍을 공유하는 것을 포함하는, 레코딩된 게임플레이의 발생 및 공유에도 쉽게 적용됨을 당업자는 인식할 것이다. 일부 실시예에 있어서, (예를 들어, 통지를 수신하는 것에 응답하여) 미니게임으로의 액세스를 제공하는 것은 미니게임에 대한 기반을 형성한 원래 사용자의 게임플레이의 레코딩된 비디오의 제시를 포함할 수 있다. 또 다른 실시예에 있어서는, 사용자의 소셜 그래프로의 사용자의 게임플레이의 공유를 용이하게 하기 위한 방법, 시스템 및 인터페이스가 고려된다.Embodiments of the present invention have been described generally with reference to a playable user-defined portion or minigame of a video game. However, those skilled in the art will appreciate that many of the principles described herein also readily apply to the generation and sharing of recorded gameplay, including sharing live streaming of recorded gameplay videos, screenshots, and active gameplay. will be. In some embodiments, providing access to the minigame (eg, in response to receiving the notification) may include presentation of a recorded video of the original user's gameplay that formed the basis for the minigame. can In yet another embodiment, methods, systems, and interfaces are contemplated for facilitating sharing of a user's gameplay to a user's social graph.

일 실시예에 있어서는, 게임플레이를 저장하기 위한 방법이 고려된다. 게임플레이는, 소망 게임플레이와 연관된 데이터 세트에 관하여 표준 파일 작업의 형태로 올 수 있는, 사용자 요청에 응답하여 게임 콘솔의 운영 체제에 의해 실행될 수 있다. 요청은 게임과 연관된 애플리케이션으로부터 송신될 수 있다. 게임플레이는, 예를 들어, 월페이퍼, 테마, 코드 "애드-온" 컨텐트, 또는 게임과 연관된 어느 다른 유형의 컨텐트를 포함하는, 비디오 컨텐트, 오디오 컨텐트 및/또는 정적 시각적 컨텐트를 포함할 수 있다. 그러한 컨텐트는 사용자- 또는 개발자-생성되거나, 무료 또는 유료이거나, 완전판 또는 체험판이거나, 그리고/또는 판매용 또는 대여용일 수 있는 것으로 고려된다.In one embodiment, a method for storing gameplay is contemplated. Gameplay may be executed by the game console's operating system in response to a user request, which may come in the form of a standard file operation with respect to a data set associated with the desired gameplay. The request may be sent from an application associated with the game. Gameplay may include video content, audio content, and/or static visual content, including, for example, wallpapers, themes, code "add-on" content, or any other type of content associated with a game. It is contemplated that such content may be user- or developer-generated, free or paid, full or trial, and/or for sale or rental.

게임플레이의 일부는 버퍼링, 즉, 일시적으로 저장될 수 있다. 예를 들어, 게임플레이 내 이전 액션에 대해, 이전 15초, 이전에 완료된 레벨이, 여기에서 더 설명되는 바와 같이, 일시적으로 저장될 수 있다. 여기에서 사용되는 용어 "부분"은 단일 또는 다수 데이터 비트 또는 바이트의 어느 관련 또는 임의 그룹으로 분할가능한 게임플레이의 어느 일부분에 대응할 수 있다. 예를 들어, 게임플레이의 "부분"은 레벨, 챕터, 장면, 단계, 캐릭터, 배경, 텍스처, 코스, 액션, 노래, 테마, 지속시간, 사이즈, 파일, 그 일부분, 및 그 조합에 대응할 수 있다. 더욱, 게임플레이의 부분은 비디오 캡처의 규정된 지속시간 또는 스크린샷을 포함할 수 있다.Part of the gameplay may be buffered, ie temporarily stored. For example, for previous actions in gameplay, the previous 15 seconds, previously completed levels, may be temporarily stored, as further described herein. As used herein, the term “portion” may correspond to any portion of gameplay that is divisible into any related or arbitrary group of single or multiple bits or bytes of data. For example, a “portion” of gameplay may correspond to a level, chapter, scene, stage, character, background, texture, course, action, song, theme, duration, size, file, portion thereof, and combinations thereof. . Moreover, part of the gameplay may include a screen shot or a defined duration of video capture.

일 실시예에 있어서, 게임플레이의 부분은 일시적 또는 영구적 저장소에 게임 콘솔 상에 로컬 저장될 수 있다. 대안으로 또는 부가적으로, 게임플레이의 부분은 네트워크를 통하여 송신되어 원격으로 저장될 수 있다. 예를 들어, 게임플레이의 부분은 무선 또는 유선 네트워크를 통하여 다른 컴퓨팅 디바이스에, 다른 게임 콘솔에, 또는 원격 서버에 송신될 수 있다. 그러한 원격 서버는 소셜 미디어 서버를 포함할 수 있다.In one embodiment, portions of gameplay may be stored locally on the game console in either temporary or permanent storage. Alternatively or additionally, portions of gameplay may be transmitted over a network and stored remotely. For example, portions of gameplay may be transmitted over a wireless or wired network to another computing device, to another game console, or to a remote server. Such remote servers may include social media servers.

선택사항으로서, 버퍼로부터 검색되지 않는 게임플레이의 부분 또는 특정 게이밍 인터벌(예를 들어, 특정 지속시간, 레벨, 챕터, 코스 등) 밖의 게임플레이의 부분은 버퍼로부터 제거될 수 있다. 이러한 제거 프로세스는 운영 체제 상에서 표준 파일 작업을 사용하여 완료될 수 있다.Optionally, portions of gameplay that are not retrieved from the buffer or portions of gameplay outside a specific gaming interval (eg, a specific duration, level, chapter, course, etc.) may be removed from the buffer. This removal process can be completed using standard file operations on the operating system.

게임플레이의 부분은 저장된 게임플레이로의 액세스를 갖는 여러 디스플레이 디바이스 중 어디에라도 디스플레이될 수 있다. 예를 들어, 저장된 게임플레이는 게임플레이가 캡처링된 게임 콘솔에 접속된 텔레비전 세트 상에서 디스플레이될 수 있다. 다른 일례에 있어서, 저장된 게임플레이는 저장된 게임플레이가 송신된 컴퓨터 상에 디스플레이될 수 있다. 저장된 게임플레이는, 소셜 미디어 웹사이트 상에와 같이, 다른 정보와 함께 또는 단독으로 디스플레이될 수 있다. Portions of gameplay may be displayed on any of several display devices that have access to the stored gameplay. For example, the stored gameplay may be displayed on a television set connected to the game console from which the gameplay was captured. In another example, the stored gameplay may be displayed on a computer to which the stored gameplay was transmitted. Stored gameplay may be displayed alone or with other information, such as on a social media website.

일 실시예에 있어서, 게임플레이의 부분은 게임플레이를 버퍼링하거나 캡처링한 사용자 이외의 사용자와 연관된 다른 게임 콘솔에 의해 디스플레이된다. 이러한 실시예에 의하면, 게임플레이의 부분은, 제1 사용자의 관점에서, 제1 사용자로부터 제2 사용자에게로 던져지는 공을 보여줄 수 있다. 게임플레이의 부분은 그 후 제2 사용자의 게임 콘솔에 송신될 수 있다. 그리하여, 제2 사용자는 그 후 제1 사용자의 관점에서 게임플레이를 볼 수 있다. 제2 사용자는 또한, 제2 사용자의 관점에서, 제1 사용자에 의해 던져지고 제2 사용자에 의해 잡히는 공을 보여주는 게임플레이의 부분이 저장되게 할 수 있다. 이러한 실시예에 있어서, 제2 사용자는 제1 사용자의 관점에서도 그리고 제2 사용자의 관점에서도 게임플레이를 검토할 수 있다. 더더욱, 제2 사용자에 의해 저장된 게임플레이의 부분은 제1 사용자의 게임 콘솔에 송신될 수 있어서, 제1 사용자는 2개의 관점에서 게임플레이를 검토할 수 있다. 이러한 실시예는 어떠한 수의 관점이라도 갖는 어떠한 수의 사용자에게라도 적용될 수 있고, 그래서 게임플레이는 어떠한 수의 다른 관점에서라도 검토될 수 있다.In one embodiment, the portion of the gameplay is displayed by another game console associated with the user other than the user who buffered or captured the gameplay. According to this embodiment, a portion of the gameplay may show, from the first user's perspective, a ball being thrown from a first user to a second user. The portion of the gameplay may then be transmitted to the second user's game console. Thus, the second user can then view the gameplay from the perspective of the first user. The second user may also have a portion of the gameplay stored, from the second user's point of view, showing the ball thrown by the first user and caught by the second user. In such an embodiment, the second user may review the gameplay both from the first user's perspective and from the second user's perspective. Even more, the portion of the gameplay stored by the second user may be transmitted to the game console of the first user, so that the first user may review the gameplay from two perspectives. This embodiment can be applied to any number of users with any number of viewpoints, so that gameplay can be reviewed from any number of different viewpoints.

여기에서 설명되는 바와 같은 게임플레이의 부분의 저장, 송신 및/또는 디스플레이에 관하여, 게임플레이의 부분은 이미지 또는 비디오 데이터로서 저장, 송신 및 디스플레이될 수 있는 것으로 고려된다. 그렇지만, 다른 일 실시예에 있어서, 게임플레이의 부분은 이미지 또는 비디오 데이터를 표현하는 메타데이터 또는 원격 계측으로서 저장 및 송신될 수 있고, 디스플레이 이전에 게임 콘솔 또는 다른 디바이스에 의해 이미지 또는 비디오로서 재-생성될 수 있다.With respect to storage, transmission, and/or display of portions of gameplay as described herein, it is contemplated that portions of gameplay may be stored, transmitted, and displayed as image or video data. However, in another embodiment, portions of gameplay may be stored and transmitted as metadata or telemetry representing image or video data and re-as images or video by a game console or other device prior to display. can be created

일부 실시예에 있어서, 게임플레이의 부분은 실행된 게임플레이와 미리 결정된 관계를 갖는다. 예를 들어, 게임플레이의 부분은, 게임플레이의 이전 10초와 같이, 현재 실행 중 게임플레이 이전 특정량의 게임플레이에 대응할 수 있다. 다른 일 실시예에 있어서, 게임플레이의 제1 부분은 게임플레이의 제2 부분과 미리 결정된 관계를 갖는다. 예를 들어, 게임플레이의 제1 부분은, 캡처 버튼의 선택 이전 10초와 같이, 게임플레이의 제2 부분을 캡처링하는 요청의 수신 이전 특정량의 게임플레이에 대응할 수 있다. 이들 실시예의 각각에 있어서, 현재 게임플레이 또는 요청된 게임플레이 이전에 버퍼링된 게임플레이의 양은 그 또는 그녀의 특정 선호도에 따라 사용자에 의해 구성 및 조절될 수 있다.In some embodiments, a portion of the gameplay has a predetermined relationship to the executed gameplay. For example, a portion of gameplay may correspond to a certain amount of gameplay prior to gameplay during the current execution, such as the previous 10 seconds of gameplay. In another embodiment, the first portion of the gameplay has a predetermined relationship with the second portion of the gameplay. For example, a first portion of gameplay may correspond to a specified amount of gameplay prior to receipt of a request to capture a second portion of gameplay, such as 10 seconds prior to selection of a capture button. In each of these embodiments, the amount of gameplay buffered prior to the current gameplay or requested gameplay may be configured and adjusted by the user according to his or her specific preferences.

다른 실시예에 있어서, 버퍼는, 그것이 시간에 관계 없이 변수에 따라 게임플레이를 캡처링하게 되도록, "스마트" 또는 "탄력적"이다. 일부 실시예에 있어서, 게임플레이의 제1 부분은 게임플레이와 관련된 이벤트와 미리 결정된 관계를 갖는다. 예를 들어, 게임플레이의 제1 부분은, 고득점에 도달, 단시간량에 다수의 포인트 모으기, 컨트롤러 상에서 버튼의 다중 선택, 및 다른 드문 이벤트와 같은, 통계적 이례를 포함하도록 버퍼링될 수 있다. 그러한 통계적 이례는 일반적으로 모든 게임에 대한 또는 특정 게임 또는 장면에 대한 평균 메트릭에 게임플레이 메트릭을 비교함으로써 결정될 수 있다. 그러한 평균 메트릭은 비교를 위해 원격 또는 로컬 저장될 수 있다. 예를 들어, 게임 콘솔은 특정 게임에 대한 세계적 고득점을 추적하고, 그리고 사용자가 그 고득점에 다가가 능가하는 게임플레이를 버퍼링할 수 있다. 다른 일례에 있어서, 원격 서버는 특정 게임에 대한 세계적 고득점을 추적할 수 있고, 그리고 그 정보를 게임 콘솔에 통신할 수 있어서, 사용자가 그 고득점에 다가가 능가하는 게임플레이를 버퍼링한다.In other embodiments, the buffer is "smart" or "elastic" such that it captures gameplay according to a variable, regardless of time. In some embodiments, the first portion of gameplay has a predetermined relationship to an event related to gameplay. For example, a first portion of gameplay may be buffered to include statistical anomalies, such as reaching a high score, collecting multiple points in a short amount of time, multiple selection of buttons on a controller, and other rare events. Such statistical anomalies can generally be determined by comparing the gameplay metric to an average metric for all games or for a particular game or scene. Such average metrics may be stored remotely or locally for comparison. For example, a game console may track a global high score for a particular game, and buffer gameplay as the user approaches and surpasses that high score. In another example, a remote server may track a global high score for a particular game, and communicate that information to the game console, thereby buffering gameplay as the user approaches and surpasses that high score.

다른 일례에 있어서, 게임플레이의 부분은, 획득되는 트로피 또는 도달되는 다른 랜드마크와 같은, 업적을 포함하도록 버퍼링될 수 있다. 그러한 트로피 또는 랜드마크는, 획득되는 특정 포인트 수, 도달되는 특정 레벨 등과 같은, 어느 목표 또는 게이밍 업적을 기념하였다. 예를 들어, 게임플레이는 레벨 10에 도달하는 것, 100,000 포인트에 도달하는 것 등에 대한 트로피의 수여를 포함하도록 버퍼링될 수 있다.In another example, portions of gameplay may be buffered to include achievements, such as trophies earned or other landmarks reached. Such trophies or landmarks commemorated some goal or gaming achievement, such as a specific number of points earned, a specific level reached, and the like. For example, gameplay may be buffered to include the awarding of trophies for reaching level 10, reaching 100,000 points, and the like.

유사하게, 이벤트에 도달을 향한 진행은, 통계적 이례 또는 트로피의 실제 획득에 부가하여, 게임플레이의 부분에 포함되도록 버퍼링될 수 있다. 예를 들어, 스크린샷은 레벨 일 내지 10의 각각에서 취해져, 레벨 10에 도달한 것에 대한 트로피의 수령을 기념할 포토 앨범을 생성할 수 있다. 다른 일례로서, 제1 내지 제5 회에 대해 레이스에서 사용자가 승리한 것에 대한 비디오가 취해질 수 있고, 여기서 트로피는 5번의 승리에 대해 수여된다.Similarly, progress towards reaching an event may be buffered for inclusion as part of gameplay, in addition to statistical anomalies or actual winning of trophies. For example, screenshots may be taken at each of levels one through ten to create a photo album to commemorate the receipt of a trophy for reaching level ten. As another example, a video may be taken of a user winning a race for innings 1-5, where a trophy is awarded for victories 5 times.

그리하여, 본 발명의 실시예에 따라, 실행된 게임플레이의 적어도 일부는 작동 중 버퍼에 항상 유지될 수 있다. 환언하면, 게임플레이의 일부를 공유하는 요청이 수신될 때, 이전 게임플레이의 일부는 이미 이전 푸티지(footage)를 포함하도록 캡처링될 수 있다. 예를 들어, 게임플레이를 공유하는 요청이 사용자가 레이싱 게임에서 결승선을 통과한 후에 수신되면, 버퍼링된 게임플레이는 사용자가 결승선을 통과하는 푸티지를 포함할 수 있다. 환언하면, 사용자는 게임플레이를 공유하는 요청이 이루어지기 전에 일어나는 순간을 캡처링할 수 있을 것이다.Thus, in accordance with an embodiment of the present invention, at least a portion of the executed gameplay may always be held in a buffer during operation. In other words, when a request to share a portion of the gameplay is received, the portion of the previous gameplay may already be captured to include the previous footage. For example, if a request to share gameplay is received after the user crosses the finish line in a racing game, the buffered gameplay may include footage of the user crossing the finish line. In other words, the user will be able to capture the moment that occurs before the request to share gameplay is made.

도 17은, 본 발명의 일 실시예에 따라, 게임플레이를 공유하기 위한 인터페이스를 예시하고 있다. 도시된 바와 같은 인터페이스(1700)는 사용자의 친구, 예를 들어, 사용자의 소셜 그래프의 구성원에게 공유하는 것을 용이하게 하도록 다양한 선택가능한 아이콘을 포함한다. 일 실시예에 있어서, 인터페이스(1700)는 컨트롤러 디바이스 상의 전용 버튼으로부터 액세스될 수 있다. 버튼이 게임플레이 동안 눌러질 때, 인터페이스(1700)는 사용자가 그들 게임플레이를 공유 가능하게 하도록 제시될 수 있다.17 illustrates an interface for sharing gameplay, according to an embodiment of the present invention. Interface 1700 as shown includes various selectable icons to facilitate sharing to the user's friends, eg, members of the user's social graph. In one embodiment, interface 1700 can be accessed from a dedicated button on the controller device. When the button is pressed during gameplay, an interface 1700 may be presented to allow users to share their gameplay.

아이콘(1702)은 사용자의 게임플레이로부터의 스크린샷의 업로드를 개시하도록 선택될 수 있다. 일 실시예에 있어서, 아이콘(1702)의 영역(1704)에는 사용자의 최근 게임플레이로부터의 대표적 스크린샷이 거처하고 있고, 그로써 공유될 수 있는 스크린샷의 작은-스케일 미리보기를 제공한다. 일 실시예에 있어서, 아이콘(1702)의 선택은 사용자의 소셜 그래프로의 공유를 위해 사용자의 레코딩된 게임플레이로부터의 특정 스크린샷을 사용자가 선택할 수 있게 하는 부가적 스크린샷 선택 인터페이스로의 액세스를 제공할 수 있다. 이것은, 게임플레이 내 특정 시간 포인트 및 그 대응하는 스크린샷을 식별하도록 항행 또는 횡단될 수 있는, 항행가능한 게임플레이 비디오 타임라인의 형태를 취할 수 있다. Icon 1702 may be selected to initiate upload of a screenshot from the user's gameplay. In one embodiment, area 1704 of icon 1702 is populated with representative screenshots from the user's recent gameplay, thereby providing small-scale previews of screenshots that can be shared. In one embodiment, selection of icon 1702 provides access to an additional screenshot selection interface that allows the user to select specific screenshots from the user's recorded gameplay for sharing to the user's social graph. can provide This may take the form of a navigable gameplay video timeline, which may be navigated or traversed to identify specific time points within gameplay and their corresponding screenshots.

아이콘(1706)은 사용자의 게임플레이의 비디오의 업로드를 개시하도록 선택될 수 있다. 아이콘(1706)의 영역(1708)은 사용자의 최근 게임플레이로부터의 대표적 비디오 클립, 예를 들어, 사용자의 게임플레이의 마지막 5초, 최근 업적 등을 디스플레이하고, 그로써 타인과 공유될 수 있는 사용자의 게임플레이로부터의 비디오 클립의 작은-스케일 미리보기를 디스플레이하도록 구성될 수 있다. Icon 1706 may be selected to initiate upload of a video of the user's gameplay. Area 1708 of icon 1706 displays representative video clips from the user's recent gameplay, eg, the last 5 seconds of the user's gameplay, recent achievements, etc. may be configured to display a small-scale preview of a video clip from gameplay.

아이콘(1710)은 사용자의 활동 게임플레이의 라이브 비디오 스트리밍을 개시하도록 선택될 수 있다. 일 실시예에 있어서, 아이콘(1710)의 선택은 사용자의 게임플레이의 재개를 트리거링하는 한편 사용자의 게임플레이의 라이브 비디오 스트리밍을 개시할 것이다. 다른 일 실시예에 있어서, 아이콘(1710)의 선택은, 누구와 스트리밍 비디오를 공유할지, 게임플레이 동안 사용자 그녀/그 자신에게 보여주도록 의도된 로컬 이미지 캡처 디바이스로부터의 비디오 스트림을 포함할지, 코멘트를 가능하게 할지 등과 같이, 스트리밍 비디오 브로드캐스트에 대한 설정을 결정하도록 인터페이스로의 액세스를 제공한다.Icon 1710 may be selected to initiate a live video streaming of the user's active gameplay. In one embodiment, selection of icon 1710 will trigger a resumption of the user's gameplay while initiating live video streaming of the user's gameplay. In another embodiment, selection of icon 1710 may include, with whom to share the streaming video, whether to include a video stream from a local image capture device intended to be shown to the user herself/herself during gameplay, comments Provides access to an interface to determine settings for streaming video broadcasts, such as whether to enable and so on.

사용자는 게임플레이(예를 들어, 선택된 스크린샷, 비디오, 또는 라이브 게임플레이 스트림)을 하나 이상의 특별 선택된 친구에게, 그들 소셜 그래프 전체에게, 또는 소셜 네트워크의 어느 사용자에게 공유할 수 있음을 인식할 것이다. 소셜 네트워크는 비디오 게임이 실행되는 플랫폼과 연관된 게이밍 소셜 네트워크이거나, 비디오 게임 또는 그 플랫폼과는 별개로 존재하는 제3자 소셜 네트워크일 수 있다. 소셜 네트워크는 소셜 네트워크와의 인터페이싱을 가능하게 하도록 정의된 API를 통해 액세스될 수 있다. 게임플레이가 공유된 사용자는 공유된 게임플레이에 대해 그들에게 알려주는 통지를 수신할 수 있다. 그러한 통지는 소셜 뉴스 피드로의 게시, 소셜 네트워크를 통한 비밀 메시지, 게임-내 통지, 이-메일, 채팅 통지 등의 형태를 취할 수 있다. 소셜 네트워크에 게임플레이를 공유하는 것은 공유하는 사용자의 소셜 그래프의 일부분일 수도 있고 아닐 수도 있는 소셜 네트워크의 사용자의 다른 부분 집합에 게임플레이를 이용가능하게 하는 것을 수반할 수 있다. 예를 들어, 소정 비디오 게임에 대하여, 게임플레이는 비디오 게임을 또한 소유하고 그래서 비디오 게임의 공유된 게임플레이로의 액세스를 승인받은 소셜 네트워크의 어느 사용자에게 공유 또는 이용가능하게 될 수 있다. 그러한 공유된 게임플레이는 비디오 게임의 플레이어에게만 이용가능한 온라인 포럼, 채팅 방, 또는 다른 온라인 채널을 통해 액세스될 수 있다. 일 실시예에 있어서, 비디오 게임은 소셜 네트워크 상에 전용 페이지 또는 사이트를 가질 수 있다. 공유된 게임플레이는 비디오 게임의 페이지 또는 사이트에 액세스하는 사용자에게 이용가능하게 될 수 있다. 물론, 공유하는 사용자의 관점에서, 사용자가 그들의 게임플레이가 누구에게 그리고 어떤 포럼에 공유될지 특정하고 맞출 수 있게 하는 옵션이 제공될 수 있음을 인식할 것이다.Users will appreciate that they can share gameplay (eg, selected screenshots, videos, or live gameplay streams) to one or more specially selected friends, to their entire social graph, or to any user on a social network. . The social network may be a gaming social network associated with the platform on which the video game is run, or a third party social network that exists independently of the video game or the platform. The social network may be accessed through APIs defined to enable interfacing with the social network. Users with whom gameplay has been shared may receive a notification informing them about the shared gameplay. Such notifications may take the form of postings to social news feeds, confidential messages via social networks, in-game notifications, e-mails, chat notifications, and the like. Sharing gameplay on a social network may involve making the gameplay available to a different subset of users of the social network that may or may not be part of the sharing user's social graph. For example, for a given video game, the gameplay may be shared or made available to any user of a social network who also owns the video game and thus has been granted access to the video game's shared gameplay. Such shared gameplay may be accessed through online forums, chat rooms, or other online channels available only to players of the video game. In one embodiment, the video game may have a dedicated page or site on the social network. The shared gameplay may be made available to users accessing a page or site of the video game. Of course, it will be appreciated that, in terms of sharing users, options may be provided that allow users to specify and customize with whom and on which forums their gameplay will be shared.

도 18은, 본 발명의 일 실시예에 따라, 공유를 위해 레코딩된 게임플레이 비디오의 일부를 선택하기 위한 인터페이스(1800)를 예시하고 있다. 인터페이스(1800)는, 사용자의 게임플레이로부터의 비디오의 현재 선택된 부분의 미리보기를 루프로 나타내는, 미리보기 영역(1802)을 포함한다. 스크린샷(1804, 1806, 1808, 1810, 1812)은 게임플레이 비디오의 컨텐트를 나타내는 스크린샷의 타임라인을 정의하도록 연대기 순서로 서로 인접하여 위치결정된다. 다양한 스크린샷(1804, 1806, 1808, 1810, 1812)은 게임플레이 비디오로부터 규칙적 인터벌로 추출된 이미지 프레임일 수 있다. 스크린샷 타임라인은 현재 디스플레이되는 것들에 선행하거나 속행하는 부가적 프레임을 보여주도록 좌측 또는 우측으로 스크롤링될 수 있다. 마커(1814, 1816)는 현재 선택된 비디오 클립(또는 세그먼트 또는 부분)에 대한 시작 및 종료 포인트를 나타낸다. 현재 선택된 비디오 클립은, 언급된 바와 같이, 미리보기 영역(1802)에서 반복적으로 재생될 수 있다.18 illustrates an interface 1800 for selecting a portion of a recorded gameplay video for sharing, in accordance with an embodiment of the present invention. Interface 1800 includes a preview area 1802, which loops a preview of the currently selected portion of video from the user's gameplay. Screenshots 1804 , 1806 , 1808 , 1810 , 1812 are positioned adjacent to each other in chronological order to define a timeline of screenshots representing the content of the gameplay video. The various screenshots 1804, 1806, 1808, 1810, 1812 may be image frames extracted at regular intervals from gameplay video. The screenshot timeline can be scrolled left or right to show additional frames preceding or following those currently displayed. Markers 1814 and 1816 indicate start and end points for the currently selected video clip (or segment or portion). The currently selected video clip can be played repeatedly in the preview area 1802 , as noted.

일 실시예에 있어서, 버튼(1818, 1820)은, 각각, 선택된 비디오 부분의 지속시간을 감축 또는 증가시키도록 선택될 수 있다. 미리보기 옵션(1822)은 현재 선택된 비디오 클립의 풀스크린 미리보기의 재생을 트리거링하도록 선택될 수 있다. 트리밍 옵션(1824)은 부가적 비디오 트리밍 특징에 액세스하도록 선택될 수 있다.In one embodiment, buttons 1818 and 1820 may be selected to decrease or increase the duration of the selected video portion, respectively. Preview option 1822 may be selected to trigger playback of a full-screen preview of the currently selected video clip. Trimming options 1824 may be selected to access additional video trimming features.

도 19는, 본 발명의 일 실시예에 따라, 사용자의 게임플레이의 라이브 비디오 스트림을 보기 위한 인터페이스(1900)를 예시하고 있다. 참조(1902)에서는, 그들의 게임플레이를 스트리밍하고 있는 사용자의 이름 및/또는 별명이 보여진다. 참조(1904)에서는, 라이브 비디오 스트림을 현재 보고 있는 사용자의 수가 보여진다. 사용자의 게임플레이의 라이브 비디오 스트림은 비디오 디스플레이 영역(1906)에 디스플레이된다. 부가적으로, 게임플레이가 라이브 스트리밍되고 있는 실제 사용자의 라이브 비디오를 보여주는, 라이브 사용자 비디오(1908)가 포함될 수 있다. 보고 있는 사용자가 비디오 게임에 영향을 미치는 커맨드를 발행하거나, 스트리밍 사용자의 게임플레이를 제어할 수도 있게 하는 커맨드 옵션(1910)이 선택될 수 있다. 게임-내 커맨드의 발행 또는 사용자의 게임플레이의 원격 제어는, 보고 있는 사용자가 그러한 액션을 수행 가능하게 하도록 게임을 플레이하는 사용자로부터, 게임플레이 때 요청되든 기정의되든, 허가를 요구할 수 있음을 인식할 것이다.19 illustrates an interface 1900 for viewing a live video stream of a user's gameplay, in accordance with one embodiment of the present invention. At reference 1902 , the name and/or nickname of the user who is streaming their gameplay is shown. At reference 1904 , the number of users currently viewing the live video stream is shown. A live video stream of the user's gameplay is displayed in a video display area 1906 . Additionally, a live user video 1908 may be included, showing a live video of an actual user whose gameplay is being live streamed. A command option 1910 can be selected that allows the viewing user to issue commands that affect the video game, or even control the streaming user's gameplay. Recognize that the issuance of an in-game command or remote control of a user's gameplay may require permission from the user playing the game, whether requested or predefined during gameplay, to enable the viewing user to perform such an action. something to do.

옵션(1912)은 보고 있는 사용자가 스트리밍 사용자의 게임플레이에 합류 가능하게 한다. 그리고 옵션(1914)은 보고 있는 사용자가 진행-중 비디오 게임을 구입 가능하게 한다. Option 1912 allows the viewing user to join the streaming user's gameplay. and option 1914 enables the viewing user to purchase the in-progress video game.

더욱, 인터페이스는, 라이브 비디오 스트림을 보고 있는 사용자로부터의 코멘트를 디스플레이하여 각각의 코멘트의 시간을 나타내는 코멘트 섹션(1916)을 포함할 수 있다. 코멘트 입력 필드(1918)는 보고 있는 사용자가 게시될 코멘트에 대한 문자를 입력하도록 제공된다. 그리고 보내기 버튼(1920)은 라이브 스트리밍 사용자 및 라이브 비디오 스트림을 보고 있는 타인에 의한 보기를 위해 코멘트를 업로드하도록 눌려진다.Furthermore, the interface may include a comments section 1916 that displays comments from the user viewing the live video stream indicating the time of each comment. A comment input field 1918 is provided for the viewing user to enter text for a comment to be posted. And the send button 1920 is pressed to upload comments for viewing by the live streaming user and others viewing the live video stream.

본 발명의 실시예가 전용 버튼 누르기로부터 공유를 위한 다양한 인터페이스에 액세스하는 것을 참조하여 설명되었더라도, 다른 실시예에서는, 이들 인터페이스 중 일부 또는 전부가 사용자 소셜 그래프로의 게임플레이의 공유를 용이하게 하는데 요구되지 않을 수 있음을 인식할 것이다. 예를 들어, 일 실시예에 있어서, 컨트롤러 버튼은 눌려질 때 사용자 게임플레이의 스크린샷을 캡처링하도록 구성될 수 있다. 캡처링된 스크린샷은 그 후 자동으로 업로드되어 사용자 소셜 그래프에 공유될 수 있다.Although embodiments of the present invention have been described with reference to accessing various interfaces for sharing from a dedicated button press, in other embodiments, some or all of these interfaces are not required to facilitate sharing of gameplay to a user's social graph. You will realize that you may not. For example, in one embodiment, a controller button may be configured to capture a screenshot of the user's gameplay when pressed. Captured screenshots can then be automatically uploaded and shared to user social graphs.

다른 일 실시예에 있어서, 컨트롤러 상의 특정 버튼을 누르는 것은 게임플레이 비디오의 레코딩을 개시한다. 특정 버튼이 제2 회 눌려질 때, 게임플레이 비디오의 레코딩은 중단되고, 비디오 클립은 업로드되어 사용자 소셜 그래프에 공유될 수 있다. 일 실시예에 있어서, 사용자 소셜 그래프로의 비디오 클립의 업르도 및 공유는 비디오 레코딩 작업의 종료에 뒤이어 자동으로 일어날 수 있다. 그렇지만, 다른 일 실시예에 있어서는, 특정 버튼이 레코딩을 중단하도록 제2 회 눌려질 때, 비디오를 트리밍하는 것, 비디오에 대한 대표적 스크린샷을 선택하는 것, 비디오를 함께 공유할 특정 사용자를 결정하는 것, 캡션 또는 타이틀을 부가하는 것 등과 같은 다양한 옵션을 사용자가 커스터마이징 가능하게 하는 인터페이스가 제시된다. 사용자에 의한 커스터마이징 후에, 비디오는 타인과 공유되거나 아니면 보기에 이용가능하게 될 수 있다.In another embodiment, pressing a specific button on the controller initiates the recording of gameplay video. When the particular button is pressed a second time, the recording of the gameplay video is stopped, and the video clip can be uploaded and shared to the user social graph. In one embodiment, uploading and sharing of video clips to the user social graph may occur automatically following the end of the video recording operation. However, in another embodiment, when a particular button is pressed a second time to stop recording, trimming the video, selecting a representative screenshot for the video, determining a particular user to share the video with An interface is presented that allows the user to customize various options, such as adding text, captions or titles, and the like. After customization by the user, the video may be shared with others or otherwise made available for viewing.

일 실시예에 있어서, 컨트롤러 상의 특정 버튼은 소셜 네트워크 상에서 게임플레이 비디오의 미리 정의된 지속시간을 공유하도록 구성될 수 있다. 예를 들어, 사용자는 버튼이 눌려질 때 게임플레이 비디오의 이전 10초가 사용자 소셜 그래프에 공유될 것을 특정할 수 있다. 다른 일 실시예에 있어서는, 버튼이 눌려질 때 게임플레이 비디오의 다음 10초가 레코딩되어 소셜 그래프에 공유될 것이 특정될 수 있다. 비디오를 트리밍하고 다른 유형의 커스터마이징을 수행하기 위한 옵션은 레코딩된 게임플레이 비디오에 적용될 수 있음을 인식하여야 한다. 더욱, 버튼 트리거에 뒤이은 미리 정의된 지속시간의 레코딩된 게임플레이 비디오는 설명된 바와 같이 이전에 버퍼링된 게임플레이 비디오와 조합될 수 있다.In one embodiment, a specific button on the controller may be configured to share a predefined duration of a gameplay video on a social network. For example, the user may specify that the previous 10 seconds of gameplay video will be shared to the user social graph when a button is pressed. In another embodiment, it may be specified that the next 10 seconds of gameplay video will be recorded and shared to the social graph when the button is pressed. It should be appreciated that options for trimming the video and performing other types of customization may apply to recorded gameplay video. Moreover, recorded gameplay video of a predefined duration following a button trigger may be combined with previously buffered gameplay video as described.

또 다른 일 실시예에 있어서, 컨트롤러 디바이스 상의 특정 버튼은 사용자 활동 게임플레이의 라이브 비디오 스트리밍을 개시하도록 구성될 수 있다. 라이브 비디오 스트리밍은 단지 사용자 소셜 그래프의 구성원에게, 또는, 사용자 소셜 그래프의 특정 부분 집합, 동일 비디오 게임을 소유하거나 아니면 그것으로의 액세스를 갖는 모든 사용자, 게이밍 플랫폼의 어느 사용자 등과 같은, 다른 더 작거나 더 큰 사용자 그룹에 이용가능하게 될 뿐이도록 기정의될 수 있다.In yet another embodiment, a specific button on the controller device may be configured to initiate a live video streaming of a user active gameplay. Live video streaming is only available to members of the user social graph, or other smaller or It can be predefined to only be made available to a larger group of users.

레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay

일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산; 결정된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 및 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In one embodiment, there is provided a method for generating a playable restricted version of a video game, the method operation comprising: recording a user's gameplay of a full version of the video game; analyzing the user's recorded gameplay to determine areas of interest; an operation that defines boundaries within the gameplay context of the video game based on the determined region of interest; and generating a limited version of the video game based on the defined boundaries, the method being executed by the processor.

일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 사용자의 레코딩된 게임플레이를 분석하는 것은 사용자 입력 데이터 또는 게임 상태 데이터의 활동 레벨을 결정하는 것을 포함하고, 관심 있는 영역은 미리 정의된 임계치를 초과하는 활동 레벨을 갖는 영역이다.In one embodiment, recording the user's gameplay comprises recording one or more of user input data or game state data. In one embodiment, analyzing the recorded gameplay of the user comprises determining an activity level of user input data or game state data, wherein the region of interest is an region having an activity level that exceeds a predefined threshold. .

일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 가상 공간 내 공간적 경계를 정의하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 가상 공간 내 공간적 경계는 가상 공간의 전체보다 작은 가상 공간의 일부를 정의하고, 가상 공간의 일부는 가상 공간의 피처의 부분 집합을 갖는다.In one embodiment, defining boundaries within the gameplay context of the video game includes defining spatial boundaries within the virtual space of the video game. In one embodiment, a spatial boundary within the virtual space of the video game defines a portion of the virtual space that is smaller than the entire virtual space, the portion of the virtual space having a subset of the features of the virtual space.

일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 시간적 맥락 내 시간적 경계를 정의하는 것을 포함한다.In one embodiment, defining boundaries within the gameplay context of the video game includes defining temporal boundaries within the temporal context of the video game.

일 실시예에 있어서, 경계를 정의하는 것은 스테이지, 레벨 또는 장면 중 하나 이상의 가장 가까운 시작 포인트 또는 가장 가까운 종료 포인트를 식별하는 것을 포함한다.In one embodiment, defining the boundary comprises identifying a closest start point or a closest end point of one or more of a stage, level, or scene.

일 실시예에 있어서, 사용자의 레코딩된 게임플레이를 분석하는 것은 사용자의 레코딩된 게임플레이에 기반하여 사용자 게임 상태 설정들을 결정하는 것을 포함하고, 비디오 게임의 제한된 버전을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 제한된 버전을 정의하는 것을 포함한다.In one embodiment, analyzing the user's recorded gameplay comprises determining user game state settings based on the user's recorded gameplay, and generating a limited version of the video game comprises the determined user game state settings defining a limited version of the video game to have initial game state settings based on the

일 실시예에 있어서, 관심 있는 영역은 하나 이상의 임계치에 대한 대응에 기반하여 자동으로 식별된다. 일 실시예에 있어서, 상기 임계치 중 적어도 하나는 사용자 입력, 사용자 입력의 레이트, 사용자 입력의 빈도, 사용자 입력의 반복들, 입력 패턴, 다른 사용자들과의 게임플레이 맥락의 공유, 소셜 네트워크 상에 게임플레이와 연관된 코멘트들의 게시, 또는 소셜 네트워크 공유 레벨들에 기반하는 비디오 게임의 부분들의 인기 중 하나 이상과 연관된다.In one embodiment, regions of interest are automatically identified based on correspondence to one or more thresholds. In one embodiment, at least one of the thresholds is: user input, rate of user input, frequency of user input, repetitions of user input, input pattern, sharing of gameplay context with other users, game on social network associated with one or more of the posting of comments associated with the play, or the popularity of portions of the video game based on social network sharing levels.

다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산; 선택을 위해 관심 있는 영역의 각각을 제시하는 연산; 선택된 관심 있는 영역을 나타내는 선택 입력을 수신하는 연산; 선택된 관심 있는 영역에 대해, 선택된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 및 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In another embodiment, there is provided a method for generating a playable restricted version of a video game, the method operation comprising: recording a user's gameplay of a full version of the video game; analyzing the user's recorded gameplay to determine areas of interest; an operation that presents each of the regions of interest for selection; an operation for receiving a selection input indicative of a selected region of interest; an operation for defining, for the selected region of interest, boundaries within the gameplay context of the video game based on the selected region of interest; and generating a limited version of the video game based on the defined boundaries, the method being executed by the processor.

일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 사용자의 레코딩된 게임플레이를 분석하는 것은 사용자 입력 데이터 또는 게임 상태 데이터의 활동 레벨을 결정하는 것을 포함하고, 각각의 관심 있는 영역은 미리 정의된 임계치를 초과하는 활동 레벨을 갖는 영역이다.In one embodiment, recording the user's gameplay comprises recording one or more of user input data or game state data. In one embodiment, analyzing the user's recorded gameplay comprises determining an activity level of user input data or game state data, wherein each region of interest has an activity level that exceeds a predefined threshold. is the area

일 실시예에 있어서, 사용자의 레코딩된 게임플레이를 분석하는 것은 사용자의 레코딩된 게임플레이에 기반하여 사용자 게임 상태 설정들을 결정하는 것을 포함하고, 비디오 게임의 제한된 버전을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 제한된 버전을 정의하는 것을 포함한다.In one embodiment, analyzing the user's recorded gameplay comprises determining user game state settings based on the user's recorded gameplay, and generating a limited version of the video game comprises the determined user game state settings defining a limited version of the video game to have initial game state settings based on the

일 실시예에 있어서, 각각의 관심 있는 영역은 하나 이상의 임계치에 대한 대응에 기반하여 자동으로 식별된다.In one embodiment, each region of interest is automatically identified based on a correspondence to one or more thresholds.

다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산으로서, 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 연산을 포함하는 사용자의 게임플레이를 레코딩하는 연산; 하나 이상의 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산으로서, 각각의 관심 있는 영역은 하나 이상의 임계치에 대한 대응에 기반하여 자동으로 식별되는 분석하는 연산; 선택을 위해 관심 있는 영역의 각각을 제시하는 연산; 선택된 관심 있는 영역을 나타내는 선택 입력을 수신하는 연산; 선택된 관심 있는 영역에 대해, 선택된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In another embodiment, there is provided a method for generating a playable limited version of a video game, the method operation comprising: recording user's gameplay of a full version of the video game, either user input data or game state data. an operation for recording a user's gameplay, including operations for recording one or more; an operation of analyzing the user's recorded gameplay to determine one or more regions of interest, wherein each region of interest is automatically identified based on a correspondence to one or more thresholds; an operation that presents each of the regions of interest for selection; an operation for receiving a selection input indicative of a selected region of interest; an operation for defining, for the selected region of interest, boundaries within the gameplay context of the video game based on the selected region of interest; A method is provided, comprising an operation that generates a limited version of the video game based on defined boundaries, the method being executed by a processor.

일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 가상 공간 내 공간적 경계를 정의하는 것을 포함하고, 비디오 게임의 가상 공간 내 공간적 경계는 가상 공간의 전체보다 작은 가상 공간의 일부를 정의하고, 가상 공간의 일부는 가상 공간의 피처의 부분 집합을 갖는다.In one embodiment, defining boundaries within the gameplay context of the video game comprises defining a spatial boundary within a virtual space of the video game, wherein the spatial boundary within the virtual space of the video game is a virtual space that is less than the entirety of the virtual space. defines a part of , and a part of the virtual space has a subset of the features of the virtual space.

일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 시간적 맥락 내 시간적 경계를 정의하는 것을 포함한다.In one embodiment, defining boundaries within the gameplay context of the video game includes defining temporal boundaries within the temporal context of the video game.

일 실시예에 있어서, 경계를 정의하는 것은 스테이지, 레벨 또는 장면 중 하나 이상의 가장 가까운 시작 포인트 또는 가장 가까운 종료 포인트를 식별하는 것을 포함한다.In one embodiment, defining the boundary comprises identifying a closest start point or a closest end point of one or more of a stage, level, or scene.

일 실시예에 있어서, 상기 임계치 중 적어도 하나는 사용자 입력, 사용자 입력의 레이트, 사용자 입력의 빈도, 사용자 입력의 반복들, 입력 패턴, 다른 사용자들과의 게임플레이 맥락의 공유, 소셜 네트워크 상에 게임플레이와 연관된 코멘트들의 게시, 또는 소셜 네트워크 공유 레벨들에 기반하는 비디오 게임의 부분들의 인기 중 하나 이상과 연관된다.In one embodiment, at least one of the thresholds is: user input, rate of user input, frequency of user input, repetitions of user input, input pattern, sharing of gameplay context with other users, game on social network associated with one or more of the posting of comments associated with the play, or the popularity of portions of the video game based on social network sharing levels.

레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 멀티-파트 미니-게임의 발생Generation of multi-part mini-games for cloud-gaming based on recorded gameplay

일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하는 연산; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키는 연산; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In one embodiment, there is provided a method for generating a playable restricted version of a video game, the method operation comprising: recording a user's gameplay of a full version of the video game; an operation that determines a plurality of user-defined portions of the user's recorded gameplay; for each user-defined portion, defining boundaries within the gameplay context of the video game based on the user-defined portion, and generating a playable portion of the video game based on the defined boundaries; A method is provided, comprising the operation of arranging each of the playable portions of the video game in a series to define a limited version of the video game, the method being executed by a processor.

일 실시예에 있어서, 사용자의 레코딩된 게임플레이의 각각의 사용자-정의된 부분을 결정하는 것은 사용자의 레코딩된 게임플레이 내 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트를 수신하는 것, 및 수신된 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트에 기반하여 사용자-정의된 부분을 결정하는 것을 포함한다.In one embodiment, determining each user-defined portion of the user's recorded gameplay comprises receiving a user-defined start point and a user-defined end point within the user's recorded gameplay, and and determining a user-defined portion based on the received user-defined start point and user-defined end point.

일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 코드 엘리먼트(code element)들을 식별하도록 게임 상태 데이터를 분석하는 것, 및 비디오 게임의 플레이가능한 부분을 정의하는 실행가능한 코드를 정의하도록 코드 엘리먼트들을 어셈블링하는 것을 포함한다.In one embodiment, recording the user's gameplay comprises recording one or more of user input data or game state data. In one embodiment, generating the playable portion of the video game includes analyzing game state data to identify code elements, and code to define executable code defining the playable portion of the video game. It involves assembling elements.

일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 가상 공간 내 공간적 경계를 정의하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 가상 공간 내 공간적 경계는 가상 공간의 전체보다 작은 가상 공간의 일부를 정의하고, 가상 공간의 일부는 가상 공간의 피처의 부분 집합을 갖는다.In one embodiment, defining boundaries within the gameplay context of the video game includes defining spatial boundaries within the virtual space of the video game. In one embodiment, a spatial boundary within the virtual space of the video game defines a portion of the virtual space that is smaller than the entirety of the virtual space, the portion of the virtual space having a subset of the features of the virtual space.

일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 시간적 맥락 내 시간적 경계를 정의하는 것을 포함한다.In one embodiment, defining boundaries within the gameplay context of the video game includes defining temporal boundaries within the temporal context of the video game.

일 실시예에 있어서, 방법은, 각각의 사용자-정의된 부분에 대해, 사용자 게임 상태 설정을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산을 더 포함하되, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 플레이가능한 부분을 정의하는 것을 포함한다.In one embodiment, the method further comprises, for each user-defined portion, analyzing the user's recorded gameplay to determine a user game state setting, generating a playable portion of the video game. includes defining the playable portion of the video game to have initial game state settings based on the determined user game state settings.

일 실시예에 있어서, 경계를 정의하는 것은 스테이지, 레벨 또는 장면 중 하나 이상의 가장 가까운 시작 포인트 또는 종료 포인트를 식별하는 것을 포함한다.In one embodiment, defining the boundary comprises identifying a closest start or end point of one or more of a stage, level, or scene.

일 실시예에 있어서, 방법은 사용자-정의된 비디오를 레코딩하는 연산을 더 포함하되, 비디오 게임의 플레이가능한 부분을 배열하는 것은 비디오 게임의 플레이가능한 부분 중 하나에 선행하는 또는 후행하는 시리즈 내 위치에 사용자-정의된 비디오를 배열하는 것을 포함한다. 일 실시예에 있어서, 사용자-정의된 비디오는 사용자의 레코딩된 게임플레이의 사용자-정의된 부분들 중 적어도 하나로부터의 비디오를 포함한다.In one embodiment, the method further comprises the operation of recording a user-defined video, wherein arranging the playable portion of the video game at a position in the series preceding or following one of the playable portions of the video game and arranging user-defined videos. In one embodiment, the user-defined video comprises video from at least one of the user-defined portions of the user's recorded gameplay.

다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 프로그램 명령어가 구체화되어 있는 유형적 컴퓨터 판독가능한 매체로서, 이하의 명령어: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하기 위한 프로그램 명령어; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하기 위한 프로그램 명령어; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키기 위한 프로그램 명령어; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하기 위한 프로그램 명령어를 포함하는 매체가 제공된다.In another embodiment, there is provided a tangible computer readable medium embodied on program instructions for generating a playable limited version of a video game, the instructions comprising: a program for recording gameplay of a user of a full version of the video game command; program instructions for determining a plurality of user-defined portions of the user's recorded gameplay; program instructions for, for each user-defined portion, defining boundaries within a gameplay context of the video game based on the user-defined portion, and generating a playable portion of the video game based on the defined boundaries; A medium is provided comprising program instructions for arranging each of the playable portions of the video game in a series to define a limited version of the video game.

일 실시예에 있어서, 사용자의 레코딩된 게임플레이의 각각의 사용자-정의된 부분을 결정하는 것은 사용자의 레코딩된 게임플레이 내 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트를 수신하는 것, 및 수신된 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트에 기반하여 사용자-정의된 부분을 결정하는 것을 포함한다.In one embodiment, determining each user-defined portion of the user's recorded gameplay comprises receiving a user-defined start point and a user-defined end point within the user's recorded gameplay, and and determining a user-defined portion based on the received user-defined start point and user-defined end point.

일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 코드 엘리먼트들을 식별하도록 게임 상태 데이터를 분석하는 것, 및 비디오 게임의 플레이가능한 부분을 정의하는 실행가능한 코드를 정의하도록 코드 엘리먼트들을 어셈블링하는 것을 포함한다.In one embodiment, recording the user's gameplay comprises recording one or more of user input data or game state data. In one embodiment, generating the playable portion of the video game includes analyzing game state data to identify code elements, and assembling the code elements to define executable code that defines the playable portion of the video game. includes doing

일 실시예에 있어서, 유형적 컴퓨터 판독가능한 매체는, 각각의 사용자-정의된 부분에 대해, 사용자 게임 상태 설정을 결정하도록 사용자의 레코딩된 게임플레이를 분석하기 위한 프로그램 명령어를 더 포함하되, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 플레이가능한 부분을 정의하는 것을 포함한다.In one embodiment, the tangible computer-readable medium further comprises, for each user-defined portion, program instructions for analyzing a user's recorded gameplay to determine a user game state setting, the video game's Generating the playable portion includes defining the playable portion of the video game to have initial game state settings based on the determined user game state settings.

다른 일 실시예에 있어서는, 시스템으로서: 적어도 하나의 서버 컴퓨팅 디바이스를 포함하고, 적어도 하나의 서버 컴퓨팅 디바이스는, 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하기 위한 로직; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하기 위한 로직; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키기 위한 로직; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하기 위한 로직을 포함하는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 로직을 갖는 시스템이 제공된다.In another embodiment, a system includes: at least one server computing device, the at least one server computing device comprising: logic for recording gameplay of a user of a full version of a video game; logic for determining a plurality of user-defined portions of the user's recorded gameplay; logic for, for each user-defined portion, defining boundaries within a gameplay context of the video game based on the user-defined portion, and generating a playable portion of the video game based on the defined boundaries; A system with logic for generating a playable limited version of a video game is provided, comprising logic for arranging each of the playable portions of the video game in a series to define a limited version of the video game.

일 실시예에 있어서, 사용자의 레코딩된 게임플레이의 각각의 사용자-정의된 부분을 결정하는 것은 사용자의 레코딩된 게임플레이 내 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트를 수신하는 것, 및 수신된 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트에 기반하여 사용자-정의된 부분을 결정하는 것을 포함한다.In one embodiment, determining each user-defined portion of the user's recorded gameplay comprises receiving a user-defined start point and a user-defined end point within the user's recorded gameplay, and and determining a user-defined portion based on the received user-defined start point and user-defined end point.

일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 코드 엘리먼트들을 식별하도록 게임 상태 데이터를 분석하는 것, 및 비디오 게임의 플레이가능한 부분을 정의하는 실행가능한 코드를 정의하도록 코드 엘리먼트들을 어셈블링하는 것을 포함한다.In one embodiment, recording the user's gameplay comprises recording one or more of user input data or game state data. In one embodiment, generating the playable portion of the video game includes analyzing game state data to identify code elements, and assembling the code elements to define executable code that defines the playable portion of the video game. includes doing

일 실시예에 있어서, 상기 로직은, 각각의 사용자-정의된 부분에 대해, 사용자 게임 상태 설정을 결정하도록 사용자의 레코딩된 게임플레이를 분석하기 위한 로직을 더 포함하되, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 플레이가능한 부분을 정의하는 것을 포함한다.In one embodiment, the logic further comprises, for each user-defined portion, logic to analyze the user's recorded gameplay to determine a user game state setting, wherein: Generating includes defining the playable portion of the video game to have initial game state settings based on the determined user game state settings.

레코딩된 게임플레이를 소셜 그래프에 공유Share your recorded gameplay to social graphs

일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 방법으로서, 이하의 방법 연산: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하는 연산; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하는 연산; 커맨드를 수신하는 것에 응답하여, 게임플레이 세션의 휴지 상태에 들어가고 공유하는 인터페이스를 제시하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 결정하도록 공유하는 인터페이스를 통하여 수신된 입력을 프로세싱하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하는 연산; 게임플레이 세션의 활동 상태를 재개하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In one embodiment, there is provided a method for sharing recorded gameplay to a social graph, comprising the following method operations: recording a video of a user's gameplay during an active state of a gameplay session; an operation that receives a command to initiate a shared operation during an active state of a gameplay session; in response to receiving the command, entering an idle state of the gameplay session and presenting a sharing interface; processing input received via the sharing interface to determine a user-defined selection of recorded video; an operation to share a user-defined selection of recorded video to the user's social graph; A method is provided, comprising an operation for resuming an active state of a gameplay session, wherein the method is executed by a processor.

일 실시예에 있어서, 사용자의 게임플레이의 비디오를 레코딩하는 것은 게임플레이 세션의 활동 상태 동안 버퍼에 비디오를 저장하는 것을 포함한다.In one embodiment, recording a video of the user's gameplay includes storing the video in a buffer during an active state of the gameplay session.

일 실시예에 있어서, 공유하는 인터페이스를 제시하는 것은 버퍼로부터 비디오의 하나 이상의 부분을 검색하여 제시하는 것을 포함한다.In one embodiment, presenting the sharing interface includes retrieving and presenting one or more portions of the video from a buffer.

일 실시예에 있어서, 공유하는 인터페이스는 사용자-정의된 선택의 지속시간을 정의하기 위한 지속시간 선택기를 포함한다.In one embodiment, the sharing interface includes a duration selector for defining the duration of the user-defined selection.

일 실시예에 있어서, 선택을 공유하는 것은 사용자의 소셜 그래프를 정의하는 소셜 네트워크 서비스 상에서 이용가능하도록 선택을 업로드하는 것을 포함한다.In one embodiment, sharing the selection includes uploading the selection for use on a social networking service that defines the user's social graph.

일 실시예에 있어서, 선택을 업로드하는 것은 선택을 압축하고 압축된 선택을 업로드하는 것을 포함한다.In one embodiment, uploading the selection includes compressing the selection and uploading the compressed selection.

일 실시예에 있어서, 선택을 공유하는 것은 사용자의 소셜 그래프의 구성원에게 통지를 발생시키는 것을 포함한다.In one embodiment, sharing the selection includes generating a notification to members of the user's social graph.

일 실시예에 있어서, 통지는 비밀 메시지, 채팅 메시지, 게임-내 통지, 소셜 뉴스 피드로의 게시, 이-메일 중 하나 이상에 의해 정의된다.In one embodiment, the notification is defined by one or more of a confidential message, a chat message, an in-game notification, posting to a social news feed, or e-mail.

일 실시예에 있어서, 선택을 공유하는 것은 사용자의 프로파일 페이지(profile page) 상에 선택을 제시하는 것을 포함한다.In one embodiment, sharing the selection includes presenting the selection on the user's profile page.

일 실시예에 있어서, 공유하는 연산을 개시하는 커맨드를 수신하는 것은 컨트롤러 디바이스 상의 버튼 누르기로부터 정의된다.In one embodiment, receiving a command to initiate a sharing operation is defined from a button press on the controller device.

다른 일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 방법으로서, 이하의 방법 연산: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하는 연산; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하는 연산; 커맨드를 수신하는 것에 응답하여, 레코딩된 비디오의 사용자-정의된 선택을 결정하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.In another embodiment, there is provided a method for sharing recorded gameplay to a social graph, comprising the following method operations: recording a video of a user's gameplay during an active state of a gameplay session; an operation that receives a command to initiate a shared operation during an active state of a gameplay session; in response to receiving the command, determining a user-defined selection of recorded video; A method is provided, comprising the operation of sharing a user-defined selection of recorded video to a user's social graph, wherein the method is executed by a processor.

일 실시예에 있어서, 사용자의 게임플레이의 비디오를 레코딩하는 것은 게임플레이 세션의 활동 상태 동안 버퍼에 비디오를 저장하는 것을 포함한다.In one embodiment, recording a video of the user's gameplay includes storing the video in a buffer during an active state of the gameplay session.

일 실시예에 있어서, 레코딩된 비디오의 사용자-정의된 선택을 결정하는 것은 버퍼로부터 비디오를 검색하여 제시하는 것, 및 비디오의 일부를 식별하는 사용자 입력을 프로세싱하는 것을 포함한다.In one embodiment, determining a user-defined selection of recorded video includes retrieving and presenting the video from a buffer, and processing user input identifying a portion of the video.

일 실시예에 있어서, 선택을 공유하는 것은 사용자의 소셜 그래프를 정의하는 소셜 네트워크 서비스 상에서 이용가능하도록 선택을 업로드하는 것을 포함한다.In one embodiment, sharing the selection includes uploading the selection for use on a social networking service that defines the user's social graph.

일 실시예에 있어서, 공유하는 연산을 개시하는 커맨드를 수신하는 것은 컨트롤러 디바이스 상의 버튼 누르기로부터 정의된다.In one embodiment, receiving a command to initiate a sharing operation is defined from a button press on the controller device.

다른 일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 프로그램 명령어가 정의되어 있는 비-일시적 컴퓨터 판독가능한 매체가 제공된다. 프로그램 명령어는: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하기 위한 프로그램 명령어; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하기 위한 프로그램 명령어; 커맨드를 수신하는 것에 응답하여, 레코딩된 비디오의 사용자-정의된 선택을 결정하기 위한 프로그램 명령어; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하기 위한 프로그램 명령어를 포함한다.In another embodiment, a non-transitory computer readable medium having program instructions defined for sharing recorded gameplay to a social graph is provided. The program instructions include: program instructions for recording a video of a user's gameplay during an active state of a gameplay session; program instructions for receiving a command to initiate a shared operation during an active state of a gameplay session; program instructions for determining, in response to receiving the command, a user-defined selection of recorded video; program instructions for sharing a user-defined selection of recorded video to a user's social graph.

일 실시예에 있어서, 사용자의 게임플레이의 비디오를 레코딩하는 것은 게임플레이 세션의 활동 상태 동안 버퍼에 비디오를 저장하는 것을 포함한다.In one embodiment, recording a video of the user's gameplay includes storing the video in a buffer during an active state of the gameplay session.

일 실시예에 있어서, 레코딩된 비디오의 사용자-정의된 선택을 결정하는 것은 버퍼로부터 비디오를 검색하여 제시하는 것, 및 비디오의 일부를 식별하는 사용자 입력을 프로세싱하는 것을 포함한다.In one embodiment, determining a user-defined selection of recorded video includes retrieving and presenting the video from a buffer, and processing user input identifying a portion of the video.

일 실시예에 있어서, 선택을 공유하는 것은 사용자의 소셜 그래프를 정의하는 소셜 네트워크 서비스 상에서 이용가능하도록 선택을 업로드하는 것을 포함한다.In one embodiment, sharing the selection includes uploading the selection for use on a social networking service that defines the user's social graph.

일 실시예에 있어서, 공유하는 연산을 개시하는 커맨드를 수신하는 것은 컨트롤러 디바이스 상의 버튼 누르기로부터 정의된다.In one embodiment, receiving a command to initiate a sharing operation is defined from a button press on the controller device.

제2 사용자에 의한 제1 사용자의 게임플레이의 원격 제어Remote control of the first user's gameplay by the second user

일 실시예에 있어서는, 사용자의 게임플레이의 원격 제어를 제공하기 위한 방법으로서, 이하의 방법 연산: 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 연산; 제1 사용자의 게임플레이의 제어를 제2 사용자에게 이행하는 요청을 프로세싱하는 연산; 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 연산을 포함하되, 방법은 적어도 하나의 프로세서에 의해 실행되는 방법이 제공된다.In one embodiment, there is provided a method for providing remote control of a user's gameplay, the method operation comprising: presenting a live video feed of a first user's gameplay to a remote second user; processing a request to transfer control of the first user's gameplay to the second user; A method is provided, comprising an operation that initiates control of gameplay of a first user by a second user, the method being executed by at least one processor.

일 실시예에 있어서, 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 것은 제1 사용자와 연관된 제1 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어를 비활성화시키는 것, 및 제2 사용자와 연관된 제2 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어를 활성화시키는 것을 포함한다.In one embodiment, initiating control of the first user's gameplay by the second user comprises disabling control of the first user's gameplay by a first controller device associated with the first user, and a second and activating control of gameplay of the first user by a second controller device associated with the user.

일 실시예에 있어서, 제2 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어는 제2 컨트롤러 디바이스로부터 입력 커맨드들을 수신하는 것 및 제1 사용자의 게임플레이를 정의하도록 입력 커맨드들을 적용하는 것을 포함한다.In one embodiment, control of the gameplay of the first user by the second controller device comprises receiving input commands from the second controller device and applying the input commands to define the gameplay of the first user. .

일 실시예에 있어서, 라이브 비디오 피드는 소셜 인터페이스를 통해 제2 사용자에게 제시되고, 소셜 인터페이스는 제2 사용자의 소셜 그래프로의 액세스를 제공하고, 제1 사용자는 제2 사용자의 소셜 그래프의 구성원으로서 정의된다.In one embodiment, the live video feed is presented to a second user via a social interface, the social interface providing access to the second user's social graph, and the first user as a member of the second user's social graph. Defined.

일 실시예에 있어서, 소셜 인터페이스는 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함한다.In one embodiment, the social interface includes a comments interface for posting comments during gameplay of the first user.

일 실시예에 있어서, 제어를 이행하는 요청을 프로세싱하는 것은 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 허용하는 제1 사용자로부터의 확인응답을 수신하는 것을 포함한다.In one embodiment, processing the request to exercise control includes receiving an acknowledgment from the first user allowing control of the first user's gameplay by the second user.

일 실시예에 있어서, 제1 사용자의 게임플레이의 라이브 비디오 피드를 제2 사용자에게 제시하는 것은 비-풀스크린 포맷으로 라이브 비디오 피드를 제시하는 것을 포함하고, 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 것은 풀스크린 포맷으로 라이브 비디오 피드의 제시를 트리거링하는 것을 포함한다.In one embodiment, presenting the live video feed of the first user's gameplay to the second user comprises presenting the live video feed in a non-full screen format, wherein the game by the second user is Initiating control of play includes triggering presentation of a live video feed in a full screen format.

다른 일 실시예에 있어서는, 멀티플레이어 게임플레이를 제공하기 위한 방법으로서, 이하의 방법 연산: 제1 사용자의 게임플레이 세션의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 연산; 제2 사용자가 제1 사용자의 게임플레이 세션에 합류하는 요청을 프로세싱하는 연산; 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 개시하는 연산을 포함하되, 방법은 적어도 하나의 프로세서에 의해 실행되는 방법이 제공된다.In another embodiment, there is provided a method for providing multiplayer gameplay comprising the following method operations: presenting a live video feed of a gameplay session of a first user to a remote second user; processing a request for a second user to join a gameplay session of the first user; A method is provided, comprising the operation of initiating gameplay by a second user in a gameplay session of a first user, the method being executed by at least one processor.

일 실시예에 있어서, 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 개시하는 것은 비디오 게임의 멀티플레이어 모드를 개시하는 것을 포함한다.In one embodiment, initiating gameplay by a second user in a gameplay session of the first user comprises initiating a multiplayer mode of the video game.

일 실시예에 있어서, 라이브 비디오 피드는 소셜 인터페이스를 통해 제2 사용자에게 제시되고, 소셜 인터페이스는 제2 사용자의 소셜 그래프로의 액세스를 제공하고, 제1 사용자는 제2 사용자의 소셜 그래프의 구성원으로서 정의된다.In one embodiment, the live video feed is presented to a second user via a social interface, the social interface providing access to the second user's social graph, and the first user as a member of the second user's social graph. Defined.

일 실시예에 있어서, 소셜 인터페이스는 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함한다.In one embodiment, the social interface includes a comments interface for posting comments during gameplay of the first user.

일 실시예에 있어서, 제1 사용자의 게임플레이 세션에 합류하는 요청을 프로세싱하는 것은 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 허용하는 제1 사용자로부터의 확인응답을 수신하는 것을 포함한다.In one embodiment, processing the request to join the gameplay session of the first user includes receiving an acknowledgment from the first user allowing gameplay by the second user in the gameplay session of the first user. include

일 실시예에 있어서, 제1 사용자의 게임플레이의 라이브 비디오 피드를 제2 사용자에게 제시하는 것은 비-풀스크린 포맷으로 라이브 비디오 피드를 제시하는 것을 포함하고, 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 개시하는 것은 풀스크린 포맷으로 라이브 비디오 피드의 제시를 트리거링하는 것을 포함한다.In one embodiment, presenting the live video feed of the gameplay of the first user to the second user comprises presenting the live video feed in a non-fullscreen format, wherein the second user in a gameplay session of the first user Initiating gameplay by the user includes triggering presentation of a live video feed in a full screen format.

다른 일 실시예에 있어서는, 사용자의 게임플레이의 원격 제어를 제공하기 위한 프로그램 명령어가 구체화되어 있는 비-일시적 컴퓨터 판독가능한 매체가 제공되며, 프로그램 명령어는: 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하기 위한 프로그램 명령어; 제1 사용자의 게임플레이의 제어를 제2 사용자에게 이행하는 요청을 프로세싱하기 위한 프로그램 명령어; 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하기 위한 프로그램 명령어를 포함한다.In another embodiment, a non-transitory computer readable medium embodied in program instructions for providing remote control of a user's gameplay is provided, the program instructions comprising: a live video feed of a first user's gameplay program instructions for presentation to a remote second user; program instructions for processing a request to transfer control of gameplay of a first user to a second user; program instructions for initiating control of the first user's gameplay by the second user.

일 실시예에 있어서, 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 것은 제1 사용자와 연관된 제1 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어를 비활성화시키는 것, 및 제2 사용자와 연관된 제2 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어를 활성화시키는 것을 포함한다.In one embodiment, initiating control of the first user's gameplay by the second user comprises disabling control of the first user's gameplay by a first controller device associated with the first user, and a second and activating control of gameplay of the first user by a second controller device associated with the user.

일 실시예에 있어서, 제2 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어는 제2 컨트롤러 디바이스로부터 입력 커맨드들을 수신하는 것 및 제1 사용자의 게임플레이를 정의하도록 입력 커맨드들을 적용하는 것을 포함한다.In one embodiment, control of the gameplay of the first user by the second controller device comprises receiving input commands from the second controller device and applying the input commands to define the gameplay of the first user. .

일 실시예에 있어서, 라이브 비디오 피드는 소셜 인터페이스를 통해 제2 사용자에게 제시되고, 소셜 인터페이스는 제2 사용자의 소셜 그래프로의 액세스를 제공하고, 제1 사용자는 제2 사용자의 소셜 그래프의 구성원으로서 정의된다.In one embodiment, the live video feed is presented to a second user via a social interface, the social interface providing access to the second user's social graph, and the first user as a member of the second user's social graph. Defined.

일 실시예에 있어서, 소셜 인터페이스는 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함한다.In one embodiment, the social interface includes a comments interface for posting comments during gameplay of the first user.

일 실시예에 있어서, 제어를 이행하는 요청을 프로세싱하는 것은 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 허용하는 제1 사용자로부터의 확인응답을 수신하는 것을 포함한다.In one embodiment, processing the request to exercise control includes receiving an acknowledgment from the first user allowing control of the first user's gameplay by the second user.

일 실시예에 있어서, 제1 사용자의 게임플레이의 라이브 비디오 피드를 제2 사용자에게 제시하는 것은 비-풀스크린 포맷으로 라이브 비디오 피드를 제시하는 것을 포함하고, 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 것은 풀스크린 포맷으로 라이브 비디오 피드의 제시를 트리거링하는 것을 포함한다.In one embodiment, presenting the live video feed of the first user's gameplay to the second user comprises presenting the live video feed in a non-full screen format, wherein the game by the second user is Initiating control of play includes triggering presentation of a live video feed in a full screen format.

도 20은, 본 발명의 일 실시예에 따라, 비디오 게임과의 대화성을 제공하도록 사용될 수 있는 사용자 인터페이스 및 하드웨어를 예시하고 있다. 도 20은, 본 발명의 실시예에 따라 베이스 컴퓨팅 디바이스에서 실행되는 컴퓨터 프로그램과 제어 디바이스를 인터페이싱시키도록 호환가능할 수 있는 콘솔인, 소니(Sony)(등록상표) 플레이스테이션3(Playstation3)(등록상표) 엔터테인먼트 디바이스의 전반적 시스템 아키텍처를 도식적으로 예시하고 있다. 시스템 유닛(2000)에는 시스템 유닛(2000)에 접속가능한 다양한 주변 디바이스가 제공된다. 시스템 유닛(2000)은: 셀 프로세서(2028); 램버스(Rambus)(등록상표) 동적 램(XDRAM) 유닛(2026); 전용 비디오 램(VRAM) 유닛(2032)을 갖는 리얼리티 합성기 그래픽 유닛(2030); 및 I/O 브릿지(2034)를 포함한다. 시스템 유닛(2000)은 또한, I/O 브릿지(2034)를 통해 액세스가능한, 디스크(2040a)로부터 판독하기 위한 블루 레이(Blu Ray)(등록상표) 디스크 BD-ROM(등록상표) 광학 디스크 리더(2040) 및 착탈식 슬롯-인 하드 디스크 드라이브(HDD)(2036)를 포함한다. 선택사항으로서, 시스템 유닛(2000)은 또한, 유사하게 I/O 브릿지(2034)를 통해 액세스가능한, 콤팩트 플래시 메모리 카드를 판독하기 위한 메모리 카드 리더(2038), 및 Memory Stick(등록상표) 메모리 카드 등을 포함한다.20 illustrates a user interface and hardware that may be used to provide interactivity with a video game, in accordance with one embodiment of the present invention. 20 is a Sony(R) PlayStation3(R) console that may be compatible to interface a control device with a computer program running on a base computing device in accordance with an embodiment of the present invention; ) schematically illustrates the overall system architecture of the entertainment device. The system unit 2000 is provided with various peripheral devices connectable to the system unit 2000 . The system unit 2000 includes: a cell processor 2028; Rambus(R) Dynamic RAM (XDRAM) unit 2026; a reality synthesizer graphics unit 2030 having a dedicated video RAM (VRAM) unit 2032 ; and an I/O bridge 2034 . System unit 2000 also includes a Blu Ray(R) disc BD-ROM(R) optical disc reader for reading from disc 2040a, accessible via I/O bridge 2034. 2040 ) and a removable slot-in hard disk drive (HDD) 2036 . Optionally, the system unit 2000 also includes a memory card reader 2038 for reading compact flash memory cards, similarly accessible via an I/O bridge 2034, and a Memory Stick(R) memory card. etc.

I/O 브릿지(2034)는 또한 6개의 범용 직렬 버스(USB) 2.0 포트(2024); 기가비트 이더넷 포트(2022); IEEE 802.11 b/g 무선 네트워크(와이-파이) 포트(2020); 및 7개의 블루투스 접속까지 지원할 수 있는 Bluetooth(등록상표) 무선 링크 포트(2018)에 접속된다.The I/O bridge 2034 also includes six Universal Serial Bus (USB) 2.0 ports 2024; Gigabit Ethernet port 2022; IEEE 802.11 b/g wireless network (Wi-Fi) port 2020; and a Bluetooth (registered trademark) wireless link port 2018 capable of supporting up to 7 Bluetooth connections.

동작에 있어서, I/O 브릿지(2034)는, 하나 이상의 게임 컨트롤러(2002-2003)로부터의 데이터를 포함하여, 모든 무선, USB 및 이더넷 데이터를 취급한다. 예를 들어, 사용자가 게임을 플레이하고 있을 때, I/O 브릿지(2034)는 블루투스 링크를 통하여 게임 컨트롤러(2002-2003)로부터 데이터를 수신하고 그것을 셀 프로세서(2028)로 지향시키며, 그러면 그에 따라 게임의 현재 상태를 업데이트한다.In operation, I/O bridge 2034 handles all wireless, USB, and Ethernet data, including data from one or more game controllers 2002-2003. For example, when the user is playing a game, the I/O bridge 2034 receives data from the game controller 2002-2003 via a Bluetooth link and directs it to the cell processor 2028, which in turn Update the current state of the game.

무선, USB 및 이더넷 포트는 또한: 리모컨(2004); 키보드(2006); 마우스(2008); Sony 플레이스테이션(Playstation) Portable(등록상표)과 같은 포터블 엔터테인먼트 디바이스(2010); EyeToy(등록상표) 비디오 카메라(2012)와 같은 비디오 카메라; 마이크로폰 헤드셋(2014); 및 마이크로폰(2015)과 같이, 게임 컨트롤러(2002-2003)에 부가하여 다른 주변 디바이스에 대한 접속성을 제공한다. 그래서 그러한 주변 디바이스는 원칙적으로는 시스템 유닛(2000)에 무선으로 접속될 수 있다; 예를 들어 포터블 엔터테인먼트 디바이스(2010)는 와이-파이 애드-혹 접속을 통하여 통신할 수 있는 한편, 마이크로폰 헤드셋(2014)은 블루투스 링크를 통하여 통신할 수 있다.Wireless, USB and Ethernet ports also include: remote control (2004); keyboard (2006); mouse (2008); portable entertainment devices 2010 such as the Sony Playstation Portable(R); video cameras such as EyeToy(R) video camera 2012; microphone headset (2014); and microphone 2015, providing connectivity to other peripheral devices in addition to the game controller 2002-2003. So such a peripheral device can in principle be wirelessly connected to the system unit 2000 ; For example, the portable entertainment device 2010 may communicate via a Wi-Fi ad-hoc connection, while the microphone headset 2014 may communicate via a Bluetooth link.

이들 인터페이스의 제공은 플레이스테이션 3 디바이스가 또한 잠재적으로 디지털 비디오 레코더(DVR), 셋-톱 박스, 디지털 카메라, 포터블 미디어 플레이어, VoIP 전화기, 모바일 전화기, 프린터 및 스캐너와 같은 다른 주변 디바이스와 호환가능함을 의미한다.The provision of these interfaces makes the PlayStation 3 device also potentially compatible with other peripheral devices such as digital video recorders (DVRs), set-top boxes, digital cameras, portable media players, VoIP phones, mobile phones, printers and scanners. it means.

부가적으로, 구형 메모리 카드 리더(2016)가 USB 포트(2024)를 통하여 시스템 유닛에 접속되어, 플레이스테이션(Playstation)(등록상표) 또는 플레이스테이션(Playstation) 2(등록상표) 디바이스에 의해 사용되는 종류의 메모리 카드(2048)의 판독을 가능하게 할 수 있다.Additionally, an older memory card reader 2016 is connected to the system unit via a USB port 2024 and is used by a Playstation (registered trademark) or Playstation 2 (registered trademark) device. It is possible to enable reading of a type of memory card 2048 .

게임 컨트롤러(2002-2003)는 블루투스 링크를 통하여 시스템 유닛(2000)과 무선으로 통신하도록, 또는 USB 포트에 접속되어, 그로써 또한 게임 컨트롤러(2002-2003)의 배터리를 충전할 전력을 제공하도록 동작가능하다. 게임 컨트롤러(2002-2003)는 또한 메모리, 프로세서, 메모리 카드 리더, 플래시 메모리와 같은 영구적 메모리, 조명 구 섹션, LED 또는 적외선 광과 같은 발광기, 초음파 통신을 위한 마이크로폰 및 스피커, 음향 챔버, 디지털 카메라, 내부 클록, 게임 콘솔에 대향하는 구 섹션과 같은 인지가능한 형상, 및 Bluetooth(등록상표), 와이파이(WiFi)(상표명) 등과 같은 프로토콜을 사용하는 무선 통신을 포함할 수 있다.The game controller 2002-2003 is operable to communicate wirelessly with the system unit 2000 via a Bluetooth link, or to be connected to a USB port, thereby also providing power to charge the battery of the game controller 2002-2003. do. Game controller 2002-2003 also includes memory, processor, memory card reader, permanent memory such as flash memory, light sphere section, emitter such as LED or infrared light, microphone and speaker for ultrasonic communication, acoustic chamber, digital camera, internal clocks, recognizable shapes such as sphere sections facing a game console, and wireless communications using protocols such as Bluetooth®, WiFi®, and the like.

게임 컨트롤러(2002)는 2개의 손으로 사용되도록 설계된 컨트롤러이고, 게임 컨트롤러(2003)는 부착물을 갖는 한-손 컨트롤러이다. 하나 이상의 아날로그 조이스틱 및 관용적 제어 버튼에 부가하여, 게임 컨트롤러는 3-차원 위치 결정이 쉽다. 그 결과 게임 컨트롤러의 사용자에 의한 제스처 및 움직임은 관용적 버튼 또는 조이스틱 커맨드에 부가하여 또는 그 대신에 게임으로의 입력으로서 변환될 수 있다. 선택사항으로서, 플레이스테이션(Playstation)(상표명) 포터블 디바이스와 같은 다른 무선 가능 주변 디바이스가 컨트롤러로서 사용될 수 있다. 플레이스테이션(Playstation)(상표명) 포터블 디바이스의 경우에, 부가적 게임 또는 제어 정보(예를 들어, 제어 명령어 또는 생명의 수)가 디바이스의 스크린 상에 제공될 수 있다. 댄스 매트(도시되지 않음), 라이트 건(도시되지 않음), 스티어링 휠 및 페달(도시되지 않음), 또는 신속한-응답 퀴즈 게임을 위한 단일 또는 수개의 큰 버튼(또한 도시되지 않음)과 같은 맞춤형 컨트롤러와 같은, 다른 대안 또는 보충 제어 디바이스가 또한 사용될 수 있다.Game controller 2002 is a controller designed to be used with two hands, and game controller 2003 is a one-handed controller with attachments. In addition to one or more analog joysticks and idiomatic control buttons, the game controller facilitates three-dimensional positioning. As a result, gestures and movements by the user of the game controller can be converted as inputs to the game in addition to or instead of idiomatic button or joystick commands. Optionally, other wireless-capable peripheral devices, such as PlayStation(TM) portable devices, may be used as the controller. In the case of a PlayStation (trademark) portable device, additional game or control information (eg, control commands or number of lives) may be presented on the screen of the device. Custom controllers such as a dance mat (not shown), a light gun (not shown), a steering wheel and pedals (not shown), or a single or several large buttons (also not shown) for quick-response quiz games Other alternative or supplemental control devices may also be used, such as

리모컨(2004)은 또한 블루투스 링크를 통하여 시스템 유닛(2000)과 무선으로 통신하도록 동작가능하다. 리모컨(704)은 블루 레이(Blu Ray)(상표명) 디스크 BD-ROM 리더(2040)의 조작에 그리고 디스크 컨텐트의 항행에 적합한 컨트롤을 포함한다.The remote control 2004 is also operable to communicate wirelessly with the system unit 2000 via a Bluetooth link. The remote control 704 includes controls suitable for operation of the Blu Ray (trade name) disc BD-ROM reader 2040 and navigation of the disc content.

블루 레이(Blu Ray)(상표명) 디스크 BD-ROM 리더(2040)는, 관용적 기-레코딩된 그리고 레코딩가능한 CD, 및 소위 슈퍼 오디오 CD에 부가하여, 플레이스테이션 및 플레이스테이션 2 디바이스와 호환가능한 CD-ROM을 판독하도록 동작가능하다. 리더(2040)는 또한, 관용적 기-레코딩된 그리고 레코딩가능한 DVD에 부가하여, 플레이스테이션 2 및 플레이스테이션 3 디바이스와 호환가능한 DVD-ROM을 판독하도록 동작가능하다. 리더(2040)는, 관용적 기-레코딩된 그리고 레코딩가능한 블루-레이 디스크뿐만 아니라, 플레이스테이션 3 디바이스와 호환가능한 BD-ROM을 판독하도록 더 동작가능하다.The Blu Ray (trade name) disc BD-ROM reader 2040 is a CD-ROM compatible with PlayStation and PlayStation 2 devices, in addition to the conventional pre-recorded and recordable CDs, and so-called Super Audio CDs. operable to read ROM. Reader 2040 is also operable to read DVD-ROMs compatible with PlayStation 2 and PlayStation 3 devices, in addition to conventional pre-recorded and recordable DVDs. Reader 2040 is further operable to read conventional pre-recorded and recordable Blu-ray Discs, as well as BD-ROMs compatible with PlayStation 3 devices.

시스템 유닛(2000)은 오디오 및 비디오를, 리얼리티 합성기 그래픽 유닛(2030)을 통하여 플레이스테이션 3 디바이스에 의해 디코딩되든 발생되든, 오디오 및 비디오 커넥터를 통해 디스플레이(2044) 및 하나 이상의 라우드스피커(2046)를 갖는 텔레비전 세트 또는 모니터와 같은 디스플레이 및 사운드 출력 디바이스(2042)에 공급하도록 동작가능하다. 오디오 커넥터(2050)는 관용적 아날로그 및 디지털 출력을 포함할 수 있는 한편, 비디오 커넥터(2052)는 다양하게 컴포넌트 비디오, S-비디오, 콤포지트 비디오 및 하나 이상의 고선명 멀티미디어 인터페이스(HDMI) 출력을 포함할 수 있다. 그 결과, 비디오 출력은 PAL 또는 NTSC와 같은 포맷이거나, 720p, 1080i 또는 1080p 고선명일 수 있다.System unit 2000 provides audio and video, whether decoded or generated by a PlayStation 3 device through reality synthesizer graphics unit 2030, a display 2044 and one or more loudspeakers 2046 through audio and video connectors. operable to supply a display and sound output device 2042 such as a television set or monitor with Audio connector 2050 may include idiomatic analog and digital outputs, while video connector 2052 may include a variety of component video, S-video, composite video, and one or more high-definition multimedia interface (HDMI) outputs. . As a result, the video output may be in a format such as PAL or NTSC, or 720p, 1080i or 1080p high definition.

오디오 프로세싱(발생, 디코딩 등)은 셀 프로세서(2028)에 의해 수행된다. 플레이스테이션 3 디바이스의 운영 체제는 돌비(Dolby)(등록상표) 5.1 서라운드 사운드, 돌비(Dolby)(등록상표) 씨어터 서라운드(DTS), 및 블루 레이(Blu Ray)(등록상표) 디스크로부터의 7.1 서라운드 사운드의 디코딩을 지원한다.Audio processing (generation, decoding, etc.) is performed by cell processor 2028 . The operating system of the PlayStation 3 device is Dolby® 5.1 surround sound, Dolby® Theater Surround (DTS), and 7.1 surround from Blu Ray® discs. Supports sound decoding.

본 실시예에 있어서, 비디오 카메라(2012)는 단일 전하 결합 디바이스(CCD), LED 인디케이터, 및 압축된 비디오 데이터가 시스템 유닛(2000)에 의한 디코딩을 위해 인트라-이미지 기반 MPEG(motion picture expert group) 표준과 같은 적합한 포맷으로 송신될 수 있도록 하드웨어-기반 실시간 데이터 압축 및 인코딩 장치를 포함한다. 카메라 LED 인디케이터는, 예를 들어, 조명 악조건을 나타내도록 시스템 유닛(2000)으로부터의 적합한 제어 데이터에 응답하여 조명하도록 배열된다. 비디오 카메라(2012)의 실시예는 다양하게 USB, 블루투스 또는 와이-파이 통신 포트를 통하여 시스템 유닛(700)에 접속될 수 있다. 비디오 카메라의 실시예는 하나 이상의 연관된 마이크로폰을 포함할 수 있고 또한 오디오 데이터를 송신 가능할 수 있다. 비디오 카메라의 실시예에 있어서, CCD는 고-선명 비디오 캡처에 적합한 해상도를 가질 수 있다. 사용에 있어서, 비디오 카메라에 의해 캡처링된 이미지는 예를 들어 게임 제어 입력으로서 해석되거나 게임 내 편입될 수 있다. 다른 일 실시예에 있어서, 카메라는 적외선 광을 검출하기에 적합한 적외선 카메라이다.In this embodiment, the video camera 2012 is an intra-image based motion picture expert group (MPEG) for decoding by a single charge coupled device (CCD), an LED indicator, and the compressed video data by the system unit 2000 . It includes hardware-based real-time data compression and encoding devices so that they can be transmitted in a suitable format, such as a standard. The camera LED indicator is arranged to illuminate in response to appropriate control data from the system unit 2000 to indicate, for example, lighting conditions. Various embodiments of the video camera 2012 may be connected to the system unit 700 through a USB, Bluetooth or Wi-Fi communication port. Embodiments of a video camera may include one or more associated microphones and may also be capable of transmitting audio data. In an embodiment of a video camera, the CCD may have a resolution suitable for high-definition video capture. In use, an image captured by a video camera may be interpreted or incorporated into a game, for example as a game control input. In another embodiment, the camera is an infrared camera suitable for detecting infrared light.

일반적으로, 시스템 유닛(2000)의 통신 포트 중 하나를 통하여 리모컨 또는 비디오 카메라와 같은 주변 디바이스와 성공적 데이터 통신이 일어나기 위하여, 디바이스 드라이버와 같은 적합한 한 가지의 소프트웨어가 제공되어야 한다. 디바이스 드라이버 기술은 주지되어 있고, 당업자는 디바이스 드라이버 또는 유사한 소프트웨어 인터페이스가 설명된 본 실시예에서 요구될 수 있음을 알고 있을 것이라고 말하는 것 외에는, 여기서 상세히 설명되지 않을 것이다.In general, in order to successfully communicate data with a peripheral device such as a remote control or a video camera through one of the communication ports of the system unit 2000, a suitable piece of software such as a device driver must be provided. Device driver techniques are well known and will not be described in detail herein, other than to say that those skilled in the art will recognize that a device driver or similar software interface may be required in the described embodiments.

도 21은, 본 발명의 일 실시예에 따라, 명령어를 프로세싱하도록 사용될 수 있는 부가적 하드웨어를 예시하고 있다. 셀 프로세서(2028)는 4개의 기본 컴포넌트를 포함하는 아키텍처를 갖는다: 메모리 컨트롤러(2160) 및 듀얼 버스 인터페이스 컨트롤러(2170A, B)를 포함하는 외부 입력 및 출력 구조; 파워 프로세싱 엘리먼트(2150)라고 지칭되는 메인 프로세서; 시너지스틱 프로세싱 엘리먼트(SPE)(2110A-H)라고 지칭되는 8개의 코-프로세서; 및 엘리먼트 상호접속 버스(2180)라고 지칭되는 위 컴포넌트를 접속시키는 순환 데이터 버스. 셀 프로세서의 총 부동 소수점 성능은, 플레이스테이션 2 디바이스의 이모션 엔진의 6.2 GFLOPS에 비해, 218 GFLOPS이다.21 illustrates additional hardware that may be used to process instructions, in accordance with one embodiment of the present invention. Cell processor 2028 has an architecture that includes four basic components: an external input and output structure including a memory controller 2160 and dual bus interface controllers 2170A, B; a main processor referred to as a power processing element 2150; eight co-processors referred to as synergistic processing elements (SPEs) 2110A-H; and a circular data bus that connects the above components, referred to as element interconnect bus 2180 . The cell processor's total floating-point performance is 218 GFLOPS, compared to 6.2 GFLOPS for the PlayStation 2 device's Motion Engine.

파워 프로세싱 엘리먼트(PPE)(2150)는 3.2 GHz의 내부 클록으로 동작하는 2-방향 동시 멀티스레딩 파워 570 준수 파워PC 코어(PPU) 855에 기반한다. 그것은 512 kB 레벨 2(L2) 캐시 및 32 kB 레벨 1(L1) 캐시를 포함한다. PPE(2150)는, 3.2 GHz에서 25.6 GFLOPS로 해석되는, 클록 사이클당 8개의 단일 포지션 연산을 할 수 있다. PPE(2150)의 주 역할은, 계산 작업부하의 대부분을 취급하는, 시너지스틱 프로세싱 엘리먼트(2110A-H)를 위한 컨트롤러로서 역할하는 것이다. 동작에 있어서, PPE(2150)는 작업 큐를 유지하여, 시너지스틱 프로세싱 엘리먼트(2110A-H)에 대한 작업을 스케줄링하고 그들 진행을 모니터링한다. 그 결과, 각각의 시너지스틱 프로세싱 엘리먼트(2110A-H)는 역할이 작업을 인출하고, 그것을 실행하고 PPE(2150)와 동기화시키는 것인 커널을 실행한다.The Power Processing Element (PPE) 2150 is based on a two-way simultaneous multithreading Power 570 compliant PowerPC Core (PPU) 855 operating with an internal clock of 3.2 GHz. It contains a 512 kB level 2 (L2) cache and a 32 kB level 1 (L1) cache. The PPE 2150 is capable of 8 single position operations per clock cycle, which translates to 25.6 GFLOPS at 3.2 GHz. The primary role of the PPE 2150 is to serve as a controller for the synergistic processing elements 2110A-H, which handle most of the computational workload. In operation, the PPE 2150 maintains a job queue to schedule jobs for the synergistic processing elements 2110A-H and monitor their progress. As a result, each synergistic processing element 2110A-H executes a kernel whose role is to fetch a job, execute it and synchronize it with the PPE 2150 .

각각의 시너지스틱 프로세싱 엘리먼트(SPE)(2110A-H)는 각각의 시너지스틱 프로세싱 유닛(SPU)(2120A-H), 및 각각의 동적 메모리 액세스 컨트롤러(DMAC)(2142A-H), 각각의 메모리 관리 유닛(MMU)(2144A-H) 및 버스 인터페이스(도시되지 않음)를 차례로 포함하는 각각의 메모리 플로 컨트롤러(MFC)(2140A-H)를 포함한다. 각각의 SPU(2120A-H)는 원칙적으로는 4 GB까지 확장가능한 256 kB 로컬 RAM(2130A-H)을 포함하고 3.2 GHz에서 클록킹되는 RISC 프로세서이다. 각각의 SPE는 이론적 25.6 GFLOPS의 단일 정밀도 성능을 준다. SPU는 단일 클록 사이클에서 4개의 단일 정밀도 부동 소수점 멤버, 4개의 32-비트 넘버, 8개의 16-비트 정수, 또는 16개의 8-비트 정수에 대해 연산할 수 있다. 동일한 클록 사이클에서 그것은 또한 메모리 연산을 수행할 수 있다. SPU(2120A-H)는 시스템 메모리(XDRAM)(2026)에 직접 액세스하지 않는다; SPU(2120A-H)에 의해 형성된 64-비트 어드레스는 엘리먼트 상호접속 버스(2180) 및 메모리 컨트롤러(2160)를 통하여 메모리에 액세스하도록 그 DMA 컨트롤러(2142A-H)에 지시하는 MFC(2140A-H)에 넘겨진다.Each synergistic processing element (SPE) 2110A-H includes a respective synergistic processing unit (SPU) 2120A-H, and a respective dynamic memory access controller (DMAC) 2142A-H, each memory management each memory flow controller (MFC) 2140A-H, which in turn includes a unit (MMU) 2144A-H and a bus interface (not shown). Each SPU 2120A-H is in principle a RISC processor clocked at 3.2 GHz with 256 kB local RAM 2130A-H expandable up to 4 GB. Each SPE gives a single precision performance of theoretical 25.6 GFLOPS. The SPU can operate on four single-precision floating-point members, four 32-bit numbers, eight 16-bit integers, or 16 eight-bit integers in a single clock cycle. In the same clock cycle it can also perform memory operations. SPU 2120A-H does not directly access system memory (XDRAM) 2026; The 64-bit address formed by the SPU 2120A-H is the MFC 2140A-H, which instructs its DMA controller 2142A-H to access the memory via the element interconnect bus 2180 and the memory controller 2160. is handed over to

엘리먼트 상호접속 버스(EIB)(2180)는 셀 프로세서(2028) 내부의 논리적 순환 통신 버스로서, 위 프로세서 엘리먼트, 즉, PPE(2150), 메모리 컨트롤러(2160), 듀얼 버스 인터페이스(2170A, B) 및 8개의 SPE(2110A-H), 총 12개의 참가자를 접속시킨다. 참가자는 클록 사이클당 8 바이트의 레이트로 버스에 동시에 기록 및 판독할 수 있다. 앞서 언급된 바와 같이, 각각의 SPE(2110A-H)는 더 긴 판독 또는 기록 시퀀스를 스케줄링하기 위한 DMAC(2142A-H)를 포함한다. EIB는, 시계방향과 반-시계방향으로 각각 2개인, 4개의 채널을 포함한다. 그 결과, 12개의 참가자에 대해, 어느 2개의 참가자 간 가장 긴 단계별 데이터-플로는 적합한 방향으로 6개의 단계이다. 그래서 12개의 슬롯에 대한 이론적 피크 순시 EIB 대역폭은, 참가자 간 아비트레이션을 통한 완전 이용의 경우에, 클록당 96B이다. 이것은 3.2 GHz의 클록 레이트에서 307.2 GB/s(초당 기가바이트)의 이론적 피크 대역폭과 같다.Element interconnect bus (EIB) 2180 is a logical cyclic communication bus inside cell processor 2028, and the above processor elements, ie, PPE 2150, memory controller 2160, dual bus interfaces 2170A, B, and Connect 8 SPEs (2110A-H), a total of 12 participants. Participants can simultaneously write to and read from the bus at a rate of 8 bytes per clock cycle. As mentioned above, each SPE 2110A-H includes a DMAC 2142A-H for scheduling longer read or write sequences. The EIB includes four channels, two each in a clockwise and counter-clockwise direction. As a result, for 12 participants, the longest step-by-step data-flow between any two participants is 6 steps in the appropriate direction. So the theoretical peak instantaneous EIB bandwidth for 12 slots is 96B per clock for full utilization with inter-participant arbitration. This equates to a theoretical peak bandwidth of 307.2 GB/s (gigabytes per second) at a clock rate of 3.2 GHz.

메모리 컨트롤러(2160)는 램버스사에 의해 개발된 XDRAM 인터페이스(2162)를 포함한다. 메모리 컨트롤러는 25.6 GB/s의 이론적 피크 대역폭으로 램버스 XDRAM(2026)과 인터페이싱한다. The memory controller 2160 includes an XDRAM interface 2162 developed by Rambus. The memory controller interfaces with the Rambus XDRAM 2026 with a theoretical peak bandwidth of 25.6 GB/s.

듀얼 버스 인터페이스(2170A, B)는 Rambus FlexIO(등록상표) 시스템 인터페이스(2172A, B)를 포함한다. 인터페이스는 각각 8 비트 폭인 12개의 채널로 조직되며, 5개 경로는 인바운드이고 7개는 아웃바운드이다. 이것은 컨트롤러(2170B)를 통하여 리얼리티 시뮬레이터 그래픽 유닛(2130)과 컨트롤러(2170A)를 통하여 I/O 브릿지(2034) 및 셀 프로세서 간 62.4 GB/s(36.4 GB/s 아웃바운드, 26 GB/s 인바운드)의 이론적 피크 대역폭을 제공한다.Dual bus interfaces 2170A, B include Rambus FlexIO(R) system interfaces 2172A, B. The interface is organized into 12 channels, each 8 bits wide, with 5 paths inbound and 7 outbound. This is 62.4 GB/s (36.4 GB/s outbound, 26 GB/s inbound) between reality simulator graphics unit 2130 via controller 2170B and I/O bridge 2034 and cell processor via controller 2170A. gives the theoretical peak bandwidth of

셀 프로세서(2128)에 의해 리얼리티 시뮬레이터 그래픽 유닛(2130)에 보내지는 데이터는 전형적으로는, 정점을 그리고, 다각형에 텍스처를 적용하고, 조명 조건을 특정하는 등의 커맨드 시퀀스인, 디스플레이 리스트를 포함할 것이다.The data sent by the cell processor 2128 to the reality simulator graphics unit 2130 will typically include a display list, which is a sequence of commands to draw vertices, apply textures to polygons, specify lighting conditions, and the like. will be.

도 22는, 본 발명의 일 실시예에 따라, 인터넷을 통하여 서버 프로세싱에 접속되는 게임 클라이언트(2202)와 각각의 사용자(A) 내지 사용자(E)가 대화하고 있는 장면(A) 내지 장면(E)의 일례를 도시하고 있다. 게임 클라이언트는 사용자가 인터넷을 통하여 서버 애플리케이션 및 프로세싱에 접속할 수 있게 하는 디바이스이다. 게임 클라이언트는 사용자가, 국한되는 것은 아니지만, 게임, 영화, 음악 및 사진과 같은 온라인 엔터테인먼트 컨텐트에 액세스하여 재생할 수 있게 한다. 부가적으로, 게임 클라이언트는 VOIP, 문자 채팅 프로토콜, 및 이메일과 같은 온라인 통신 애플리케이션으로의 액세스를 제공할 수 있다. 22 is a view showing a game client 2202 connected to server processing via the Internet and each user A to E having a conversation, according to an embodiment of the present invention. ) is shown as an example. A game client is a device that allows a user to access server applications and processing via the Internet. Game clients allow users to access and play online entertainment content such as, but not limited to, games, movies, music and photos. Additionally, the game client may provide access to online communication applications such as VOIP, text chat protocols, and email.

사용자는 컨트롤러를 통하여 게임 클라이언트와 대화한다. 일부 실시예에 있어서, 컨트롤러는 게임 클라이언트 특정 컨트롤러인 한편, 다른 실시예에 있어서, 컨트롤러는 키보드와 마우스 조합일 수 있다. 일 실시예에 있어서, 게임 클라이언트는 모니터/텔레비전 및 연관된 오디오 장비를 통해 멀티미디어 환경을 생성하도록 오디오 및 비디오 신호를 출력할 수 있는 자립형 디바이스이다. 예를 들어, 게임 클라이언트는, 국한되는 것은 아니지만, 씬 클라이언트, 내부 PCI-익스프레스 카드, 외부 PCI-익스프레스 디바이스, 익스프레스카드 디바이스, 내부, 외부 또는 무선 USB 디바이스, 또는 파이어와이어 디바이스 등일 수 있다. 다른 실시예에 있어서, 게임 클라이언트는 DVR, 블루-레이 플레이어, DVD 플레이어 또는 멀티-채널 수신기와 같은 다른 멀티미디어 디바이스 또는 텔레비전과 통합된다. The user interacts with the game client through the controller. In some embodiments, the controller is a game client specific controller, while in other embodiments, the controller may be a keyboard and mouse combination. In one embodiment, the game client is a standalone device capable of outputting audio and video signals to create a multimedia environment via a monitor/television and associated audio equipment. For example, a game client may be, but is not limited to, a thin client, an internal PCI-Express card, an external PCI-Express device, an ExpressCard device, an internal, external or wireless USB device, or a FireWire device, or the like. In another embodiment, the game client is integrated with a television or other multimedia device such as a DVR, Blu-ray player, DVD player or multi-channel receiver.

도 22의 장면(A) 내에서, 사용자(A)는 게임 클라이언트(2202A)와 페어링된 컨트롤러(2206A)를 사용하여 모니터(2204A) 상에 디스플레이된 클라이언트 애플리케이션과 대화한다. 유사하게, 장면(B) 내에서, 사용자(B)는 게임 클라이언트(2202B)와 페어링된 컨트롤러(2206B)를 사용하여 모니터(2204B) 상에 디스플레이되는 다른 클라이언트 애플리케이션과 대화한다. 장면(C)는 사용자(C)가 게임 클라이언트(2202C)로부터 게임 및 친구 목록을 디스플레이하는 모니터를 주시하고 있을 때 그 뒤로부터 본 것을 예시하고 있다. 도 22가 단일 서버 프로세싱 모듈을 도시하고 있기는 하지만, 일 실시예에서는, 세계 곳곳의 다수의 서버 프로세싱 모듈이 있다. 각각의 서버 프로세싱 모듈은 사용자 세션 제어, 공유/통신 로직, 사용자 지리적-위치, 및 부하 균형 프로세싱 서비스를 위한 서브-모듈을 포함한다. 더욱, 서버 프로세싱 모듈은 네트워크 프로세싱 및 분산형 저장을 포함한다. Within scene A of FIG. 22 , user A uses controller 2206A paired with game client 2202A to interact with a client application displayed on monitor 2204A. Similarly, within scene B, user B uses controller 2206B paired with game client 2202B to interact with another client application displayed on monitor 2204B. Scene C illustrates the view from behind when user C is looking at a monitor displaying a game and friends list from game client 2202C. Although FIG. 22 depicts a single server processing module, in one embodiment, there are multiple server processing modules located throughout the world. Each server processing module includes sub-modules for user session control, sharing/communication logic, user geo-location, and load balancing processing services. Moreover, the server processing module includes network processing and distributed storage.

게임 클라이언트(2202)가 서버 프로세싱 모듈에 접속할 때, 사용자 세션 제어는 사용자를 인증하도록 사용될 수 있다. 인증된 사용자는 연관된 가상화된 분산형 저장 및 가상화된 네트워크 프로세싱을 가질 수 있다. 사용자의 가상화된 분산형 저장의 일부분으로서 저장될 수 있는 예시적 아이템은, 국한되는 것은 아니지만, 게임, 비디오 및 음악 등과 같은 구입한 미디어를 포함한다. 부가적으로, 분산형 저장은 다수 게임에 대한 게임 상황, 개개의 게임에 대한 커스터마이징된 설정, 및 게임 클라이언트에 대한 일반적 설정을 저장하도록 사용될 수 있다. 일 실시예에 있어서, 서버 프로세싱의 사용자 지리적-위치 모듈은 사용자 및 그 각각의 게임 클라이언트의 지리적 위치를 결정하도록 사용된다. 사용자의 지리적 위치는 다수의 서버 프로세싱 모듈의 프로세싱 요구 및 지리적 위치에 기반하여 성능을 최적화하도록 부하 균형 프로세싱 서비스에 의해서도 그리고 공유/통신 로직에 의해서도 사용될 수 있다. 네트워크 프로세싱 및 네트워크 저장 중 어느 하나 또는 둘 다를 가상화하는 것은 게임 클라이언트로부터의 프로세싱 태스크가 덜 이용된 서버 프로세싱 모듈(들)로 동적으로 시프트 가능하게 할 것이다. 그리하여, 부하 균형은 저장소로부터의 리콜과도 그리고 서버 프로세싱 모듈과 게임 클라이언트 간 데이터 송신과도 연관된 레이턴시를 최소화하도록 사용될 수 있다.When the game client 2202 connects to the server processing module, user session control can be used to authenticate the user. Authenticated users may have associated virtualized distributed storage and virtualized network processing. Exemplary items that may be stored as part of a user's virtualized distributed storage include, but are not limited to, purchased media such as games, videos, and music. Additionally, distributed storage can be used to store game situations for multiple games, customized settings for individual games, and general settings for game clients. In one embodiment, the user geo-location module of server processing is used to determine the geographic location of the user and their respective game clients. A user's geographic location may be used both by the load balancing processing service and by the sharing/communication logic to optimize performance based on geographic location and processing needs of multiple server processing modules. Virtualizing either or both of network processing and network storage will allow processing tasks from the game client to be dynamically shiftable to less utilized server processing module(s). As such, load balancing can be used to minimize the latency associated with recalls from storage and also with data transmission between the server processing module and the game client.

서버 프로세싱 모듈은 서버 애플리케이션(A) 및 서버 애플리케이션(B)의 인스턴스를 갖는다. 서버 프로세싱 모듈은 서버 애플리케이션(X1) 및 서버 애플리케이션(X2)에 의해 나타낸 바와 같은 다수의 서버 애플리케이션을 지원할 수 있다. 일 실시예에 있어서, 서버 프로세싱은 클러스터 내 다수의 프로세서가 서버 애플리케이션을 프로세싱할 수 있게 하는 클러스터 컴퓨팅 아키텍처에 기반한다. 다른 일 실시예에 있어서는, 다른 유형의 멀티-컴퓨터 프로세싱 기법이 서버 애플리케이션을 프로세싱하도록 적용된다. 이것은 다수의 클라이언트 애플리케이션 및 대응하는 서버 애플리케이션을 실행하는 다수의 게임 클라이언트를 수용하기 위하여 서버 프로세싱이 스케일링될 수 있게 한다. 대안으로, 서버 프로세싱은 그래픽 프로세싱 또는 게임, 비디오 압축, 또는 애플리케이션 복잡도를 더 요구함으로써 필요하게 된 증가된 컴퓨팅 수요를 수용하도록 스케일링될 수 있다. 일 실시예에 있어서, 서버 프로세싱 모듈은 서버 애플리케이션을 통하여 프로세싱의 대다수를 수행한다. 이것은 그래픽 프로세서, RAM 및 범용 프로세서와 같은 비교적 비싼 컴포넌트가 중앙에 위치할 수 있게 하여 게임 클라이언트의 비용을 감축한다. 프로세싱된 서버 애플리케이션 데이터는 인터넷을 통하여 대응하는 게임 클라이언트에 다시 보내져 모니터 상에 디스플레이된다.The server processing module has an instance of a server application (A) and a server application (B). The server processing module may support a number of server applications as represented by server application (X 1 ) and server application (X 2 ). In one embodiment, server processing is based on a cluster computing architecture that allows multiple processors in the cluster to process server applications. In another embodiment, other types of multi-computer processing techniques are applied to process server applications. This allows server processing to be scaled to accommodate multiple game clients running multiple client applications and corresponding server applications. Alternatively, server processing can be scaled to accommodate the increased computing demands made by requiring more graphics processing or gaming, video compression, or application complexity. In one embodiment, the server processing module performs the majority of processing through the server application. This reduces the cost of the game client by allowing relatively expensive components such as graphics processors, RAM and general purpose processors to be centrally located. The processed server application data is sent back to the corresponding game client via the Internet and displayed on the monitor.

장면(C)은 게임 클라이언트 및 서버 프로세싱 모듈에 의해 실행될 수 있는 일례의 애플리케이션을 예시하고 있다. 예를 들어, 일 실시예에 있어서, 게임 클라이언트(2202C)는 사용자(C)가 사용자(A), 사용자(B), 사용자(D) 및 사용자(E)를 포함하는 친구 목록(2220)을 생성하고 볼 수 있게 한다. 도시된 바와 같이, 장면(C)에서, 사용자(C)는 모니터(2204C) 상에서 각각의 사용자의 실시간 이미지 또는 아바타를 볼 수 있다. 서버 프로세싱은 게임 클라이언트(2202C) 및 사용자(A), 사용자(B), 사용자(D) 및 사용자(E)의 각각의 게임 클라이언트(2202)의 각각의 애플리케이션을 실행한다. 서버 프로세싱은 게임 클라이언트(B)에 의해 실행되고 있는 애플리케이션을 알고 있기 때문에, 사용자(A)에 대한 친구 목록은 어느 게임 사용자(B)가 플레이하고 있는지 나타낼 수 있다. 더더욱, 일 실시예에 있어서, 사용자(A)는 사용자(B)로부터 직접 게임 비디오 내 실제를 볼 수 있다. 이것은 단지 사용자(B)에 대한 프로세싱된 서버 애플리케이션 데이터를 게임 클라이언트(B)에 부가하여 게임 클라이언트(A)에 보냄으로써 가능하게 된다. Scene (C) illustrates an example application that may be executed by the game client and server processing modules. For example, in one embodiment, game client 2202C creates friend list 2220 where user C includes user A, user B, user D, and user E. and make it visible As shown, in scene C, user C can view a real-time image or avatar of each user on monitor 2204C. Server processing executes game client 2202C and respective applications of game client 2202 of user A, user B, user D, and user E, respectively. Since the server processing knows which application is running by the game client B, the friend list for user A can indicate which game user B is playing. Even more, in one embodiment, user A can view the reality in the game video directly from user B. This is only made possible by sending the processed server application data for user B to game client A in addition to it.

친구로부터의 비디오를 볼 수 있는 것에 부가하여, 통신 애플리케이션은 친구들 간 실시간 통신을 가능하게 할 수 있다. 앞선 예에 적용된 바와 같이, 이것은 사용자(A)가 사용자(B)의 실시간 비디오를 시청하면서 격려 또는 힌트를 제공 가능하게 한다. 일 실시예에서는, 2-방향 실시간 음성 통신이 클라이언트/서버 애플리케이션을 통해 확립된다. 다른 일 실시예에 있어서, 클라이언트/서버 애플리케이션은 문자 채팅을 가능하게 한다. 또 다른 일 실시예에 있어서, 클라이언트/서버 애플리케이션은 친구의 스크린 상에 디스플레이하기 위해 음성을 문자로 변환한다. In addition to being able to view videos from friends, the communication application may enable real-time communication between friends. As applied to the previous example, this enables user A to provide encouragement or hints while watching real-time video of user B. In one embodiment, two-way real-time voice communication is established via a client/server application. In another embodiment, the client/server application enables text chat. In another embodiment, the client/server application converts speech to text for display on a friend's screen.

장면(D) 및 장면(E)은 각각 게임 콘솔(2210D, 2210E)과 대화하는 각각의 사용자(D) 및 사용자(E)를 예시하고 있다. 각각의 게임 콘솔(2210D, 2210E)은 서버 프로세싱 모듈에 접속되어 있고 서버 프로세싱 모듈이 게임 콘솔과 게임 클라이언트 양자에 대해 게임 플레이를 조정하는 네트워크를 예시하고 있다.Scenes D and E illustrate users D and E, respectively, interacting with game consoles 2210D and 2210E, respectively. Each game console 2210D, 2210E is connected to a server processing module, illustrating a network in which the server processing module coordinates game play for both the game console and the game client.

도 23은 정보 서비스 제공자 아키텍처의 일 실시예를 도시하고 있다. 정보 서비스 제공자(ISP)(2370)는 지리적으로 분산되고 네트워크(2386)를 통하여 접속된 사용자(2382)에게 다수의 정보 서비스를 전달한다. ISP는, 주가 업데이트와 같은 단 하나의 유형의 서비스, 또는 브로드캐스트 미디어, 뉴스, 스포츠, 게이밍 등과 같은 다양한 서비스를 전달할 수 있다. 부가적으로, 각각의 ISP에 의해 제공되는 서비스는 동적이다, 즉, 서비스는 어느 시점에라도 부가되거나 없어질 수 있다. 그리하여, 특정 개인에 특정 유형의 서비스를 제공하는 ISP는 시간에 걸쳐 바뀔 수 있다. 예를 들어, 사용자는 사용자가 그녀의 고향에 있는 동안은 사용자에게 가까운 근처에 있는 ISP에 의해 서비스 제공받을 수 있고, 사용자는 사용자가 다른 도시로 여행할 때는 다른 ISP에 의해 서비스 제공받을 수 있다. 고향 ISP는, 사용자 정보가 새로운 도시로의 사용자를 "따라" 데이터가 사용자에게 더 가깝고 액세스가 더 용이하게 하도록, 요구되는 정보 및 데이터를 새로운 ISP로 이관할 것이다. 다른 일 실시예에 있어서는, 사용자에 대한 정보를 관리하는 마스터 ISP와 마스터 ISP로부터의 제어 하에 사용자와 직접 인터페이싱하는 서버 ISP 간 마스터-서버 관계가 확립될 수 있다. 다른 실시예에 있어서는, 사용자에게 서비스를 제공하기에 더 나은 위치에 있는 ISP가 이들 서비스를 전달하는 것이게 하도록 클라이언트가 세계를 돌아다닐 때 데이터가 하나의 ISP로부터 다른 하나의 ISP로 이관된다.23 illustrates one embodiment of an information service provider architecture. An information service provider (ISP) 2370 delivers a number of information services to users 2382 that are geographically dispersed and connected through a network 2386 . An ISP may deliver a single type of service, such as stock price updates, or a variety of services, such as broadcast media, news, sports, gaming, and the like. Additionally, the services provided by each ISP are dynamic, that is, services can be added or removed at any point in time. As such, ISPs that provide particular types of services to particular individuals may change over time. For example, the user may be served by an ISP in close proximity to the user while the user is in her hometown, and the user may be served by another ISP when the user travels to another city. The home ISP will migrate the required information and data to the new ISP so that the user information "follows" the user to the new city and the data is closer to the user and easier to access. In another embodiment, a master-server relationship may be established between a master ISP that manages information about a user and a server ISP that directly interfaces with the user under control from the master ISP. In another embodiment, data is migrated from one ISP to another as the client travels the world so that ISPs that are better positioned to provide services to users are delivering these services.

ISP(2370)는, 컴퓨터-기반 서비스를 네트워크를 통하여 고객에게 제공하는, 애플리케이션 서비스 제공자(ASP)(2372)를 포함한다. ASP 모델을 사용하여 제공된 소프트웨어는 때로는 주문형 소프트웨어 또는 서비스형 소프트웨어(SaaS)라고도 불린다. (고객 관계 관리와 같은) 특정 애플리케이션 프로그램으로의 액세스를 제공하는 단순 형태는 HTTP와 같은 표준 프로토콜을 사용하는 것에 의한다. 애플리케이션 소프트웨어는 벤더의 시스템 상에 상주하고, 벤더에 의해 제공된 특수 목적 클라이언트 소프트웨어, 또는 씬 클라이언트와 같은 다른 원격 인터페이스에 의해, HTML을 사용하는 웹 브라우저를 통해 사용자에 의해 액세스된다.ISP 2370 includes an application service provider (ASP) 2372 that provides computer-based services to customers over a network. Software delivered using the ASP model is sometimes referred to as software on demand or software as a service (SaaS). A simple form of providing access to specific application programs (such as customer relationship management) is by using standard protocols such as HTTP. The application software resides on the vendor's system and is accessed by the user through a web browser using HTML, either by special purpose client software provided by the vendor, or other remote interface such as a thin client.

넓은 지리적 지역을 통하여 전달되는 서비스는 흔히 클라우드 컴퓨팅을 사용한다. 클라우드 컴퓨팅은 동적으로 스케일링가능한 그리고 흔히 가상화된 자원이 인터넷을 통하여 서비스로서 제공되는 컴퓨팅 스타일이다. 사용자는 그들을 지원하는 "클라우드" 내 기술 기반구조에 전문가일 필요가 없다. 클라우드 컴퓨팅은, 서비스형 기반구조(IaaS), 서비스형 플랫폼(PaaS), 및 서비스형 소프트웨어(SaaS)와 같은, 여러 다른 서비스로 나뉠 수 있다. 클라우드 컴퓨팅 서비스는 흔히 웹 브라우저로부터 액세스되는 공통 비즈니스 애플리케이션을 온라인으로 제공하는 한편, 소프트웨어 및 데이터는 서버 상에 저장된다. 용어 클라우드는, 인터넷이 컴퓨터 네트워크 선도에서 어떻게 묘사되는지에 기반하여, 인터넷에 대한 은유로서 사용되고 그것이 은닉하는 복잡한 기반구조에 대한 추상화이다.Services delivered over a large geographic area often use cloud computing. Cloud computing is a style of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. Users do not have to be experts in the technology infrastructure in the "cloud" to support them. Cloud computing can be divided into several different services, such as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Cloud computing services provide common business applications online, often accessed from a web browser, while software and data are stored on servers. The term cloud, based on how the Internet is depicted in computer network diagrams, is used as a metaphor for the Internet and is an abstraction to the complex infrastructure it conceals.

더욱, ISP(2370)는 단일 및 멀티플레이어 비디오 게임을 플레이하도록 게임 클라이언트에 의해 사용되는 게임 프로세싱 서버(GPS)(2374)를 포함한다. 인터넷을 통하여 플레이되는 대부분의 비디오 게임은 게임 서버로의 접속을 통하여 동작한다. 전형적으로, 게임은 플레이어로부터 데이터를 수집하는 전용 서버 애플리케이션을 사용하고 그것을 다른 플레이어에게 배포한다. 이것은 피어-투-피어 배열보다 더 효율적이고 효과적이지만, 그것은 서버 애플리케이션을 호스팅할 별개의 서버를 요구한다. 다른 일 실시예에 있어서, GPS는 플레이어 간 통신을 확립하고 그들 각각의 게임-플레이하는 디바이스는 중앙집중형 GPS에 의존하지 않고 정보를 교환한다.Further, ISP 2370 includes a game processing server (GPS) 2374 used by game clients to play single and multiplayer video games. Most video games played over the Internet operate through a connection to a game server. Typically, games use a dedicated server application that collects data from players and distributes it to other players. Although this is more efficient and effective than a peer-to-peer arrangement, it requires a separate server to host the server application. In another embodiment, the GPS establishes player-to-player communication and their respective game-playing devices exchange information without relying on a centralized GPS.

전용 GPS는 클라이언트와 독립적으로 동작하는 서버이다. 그러한 서버는 보통 데이터 센터 내 위치하는 전용 하드웨어 상에서 동작되어, 더 많은 대역폭 및 전용 프로세싱 능력을 제공한다. 전용 서버는 대부분의 PC-기반 멀티플레이어 게임을 위한 게임 서버를 호스팅하는 선호되는 방법이다. 게임 타이틀을 소유하는 소프트웨어 회사에 의해 통상 호스팅되는 전용 서버 상에서 실행되는 멀티플레이어 온라인 게임은 대규모이며, 그들이 컨텐트를 제어 및 업데이트 가능하게 한다.A dedicated GPS is a server that operates independently of the client. Such servers are typically run on dedicated hardware located within the data center, providing more bandwidth and dedicated processing power. Dedicated servers are the preferred way to host game servers for most PC-based multiplayer games. Multiplayer online games running on dedicated servers typically hosted by the software companies that own the game titles are large-scale, allowing them to control and update the content.

브로드캐스트 프로세싱 서버(BPS)(2376)는 시청자에게 오디오 또는 비디오 신호를 배포한다. 매우 좁은 범위의 시청자에게 브로드캐스팅하는 것은 때로는 내로우캐스팅이라고 불린다. 브로드캐스트 배포의 최종 여정은 신호가 청취자 또는 관람자에게 어떻게 도달하는가이고, 그것은 라디오 스테이션 또는 TV 스테이션에 대해서와 같이 공중으로 안테나 및 수신기로 올 수도 있고, 네트워크로부터 직접 또는 스테이션을 통하여 케이블 TV 또는 케이블 라디오(또는 "무선 케이블")를 통해 올 수도 있다. 또한 인터넷은, 특히 신호 및 대역폭이 공유될 수 있게 하는 멀티캐스팅으로, 라디오 또는 TV를 수신자에게로 이끌 수 있다. 역사적으로, 브로드캐스트는, 국영 방송 또는 지역 방송과 같이, 지리적 영역에 의해 획정되어 왔다. 그렇지만, 고속 인터넷의 급증으로, 컨텐트가 세계 어느 나라에라도 거의 도달할 수 있으므로 브로드캐스트는 지리에 의해 정의되지 않는다.A broadcast processing server (BPS) 2376 distributes audio or video signals to viewers. Broadcasting to a very narrow audience is sometimes called narrowcasting. The final journey of broadcast distribution is how the signal gets to the listener or spectator, it may come to the antenna and receiver in the air, such as for a radio station or TV station, directly from the network or through a cable TV or cable radio station. (or "wireless cable"). The Internet can also lead radio or TV to recipients, particularly with multicasting that allows signals and bandwidth to be shared. Historically, broadcasts, such as national or regional broadcasts, have been delimited by geographic area. However, with the proliferation of high-speed Internet, broadcast is not defined by geography as the content can reach almost any country in the world.

저장 서비스 제공자(SSP)(2378)는 컴퓨터 저장 공간 및 관련 관리 서비스를 제공한다. SSP는 또한 주기적 백업 및 아카이빙을 제공한다. 서비스형 저장을 제공함으로써, 사용자는 필요에 따라 더 많은 저장을 주문할 수 있다. 또 다른 주요 이점은 SSP가 백업 서비스를 포함하고 사용자는 그들 컴퓨터의 하드 드라이브가 고장나더라도 모든 그들 데이터를 잃지는 않을 것이라는 것이다. 더욱, 복수의 SSP는 사용자의 데이터의 전체 또는 부분 사본을 갖고 있을 수 있어, 사용자가 위치하고 있는 곳 또는 데이터에 액세스하는데 사용되는 디바이스와는 독립적으로 효율적인 방식으로 사용자가 데이터에 액세스할 수 있게 한다. 예를 들어, 사용자는 집 컴퓨터에서는 물론, 사용자가 이동하고 있는 동안에는 모바일 폰에서도 개인 파일에 액세스할 수 있다.A storage service provider (SSP) 2378 provides computer storage space and related management services. SSP also provides periodic backup and archiving. By providing storage-as-a-service, users can order more storage as needed. Another major advantage is that SSP includes a backup service and users won't lose all their data if their computer's hard drive fails. Moreover, the plurality of SSPs may have full or partial copies of the user's data, allowing the user to access the data in an efficient manner independent of where the user is located or the device used to access the data. For example, users can access personal files from their home computer as well as from their mobile phone while the user is on the go.

통신 제공자(380)는 사용자에게 접속성을 제공한다. 통신 제공자의 한 종류는 인터넷으로의 액세스를 제공하는 인터넷 서비스 제공자(ISP)이다. ISP는, 다이얼-업, DSL, 케이블 모뎀, 무선 또는 전용 고속 상호접속과 같이, 인터넷 프로토콜 데이터그램을 전달하기에 적합한 데이터 전송 기술을 사용하여 그 고객을 접속시킨다. 통신 제공자는 또한, 이-메일, 인스턴트 메시징, 및 SMS 문자와 같은, 메시징 서비스를 제공할 수 있다. 다른 유형의 통신 제공자는 인터넷으로의 다이렉트 백본 액세스를 제공함으로써 네트워크 액세스 또는 대역폭을 판매하는 네트워크 서비스 제공자(NSP)이다. 네트워크 서비스 제공자는 원격 통신 회사, 데이터 캐리어, 무선 통신 제공자, 인터넷 서비스 제공자, 고속 인터넷 액세스를 제공하는 케이블 텔레비전 오퍼레이터 등으로 이루어질 수 있다.Communication provider 380 provides connectivity to users. One type of communication provider is an Internet Service Provider (ISP) that provides access to the Internet. ISPs connect their customers using a data transmission technology suitable for carrying Internet Protocol datagrams, such as dial-up, DSL, cable modem, wireless or dedicated high-speed interconnect. Communication providers may also provide messaging services, such as e-mail, instant messaging, and SMS text messages. Another type of communication provider is a network service provider (NSP) that sells network access or bandwidth by providing direct backbone access to the Internet. Network service providers may consist of telecommunications companies, data carriers, wireless communication providers, Internet service providers, cable television operators providing high-speed Internet access, and the like.

데이터 교환(2388)은 ISP(2370) 내부 수개의 모듈을 상호접속하고 이들 모듈을 네트워크(2386)를 통하여 사용자(2382)에 접속시킨다. 데이터 교환(2388)은 ISP(2370)의 모든 모듈이 가까운 근처에 있는 작은 지역을 맡을 수 있거나, 여러 다른 모듈이 지리적으로 분산되어 있을 때에는 큰 지리적 지역을 맡을 수 있다. 예를 들어, 데이터 교환(2388)은 데이터 센터의 캐비넷 내 고속 기가비트 이더넷(또는 더 고속), 또는 대륙간 가상지역망(VLAN)을 포함할 수 있다.Data exchange 2388 interconnects several modules within ISP 2370 and connects these modules to user 2382 via network 2386 . Data exchange 2388 may cover a small area in which all modules of the ISP 2370 are in close proximity, or may cover a large geographic area when several different modules are geographically dispersed. For example, data exchange 2388 may include high-speed gigabit Ethernet (or higher speed) in a cabinet of a data center, or an intercontinental virtual area network (VLAN).

사용자(2382)는, 적어도 CPU, 디스플레이 및 I/O을 포함하는, 클라이언트 디바이스(2384)로 원격 서비스에 액세스한다. 클라이언트 디바이스는 PC, 모바일 폰, 넷북, PDA 등일 수 있다. 일 실시예에 있어서, ISP(2370)는 클라이언트에 의해 사용되는 디바이스의 유형을 인식하고 채용되는 통신 방법을 조절한다. 다른 경우에 있어서, 클라이언트 디바이스는 ISP(2370)에 액세스하도록, html과 같은, 표준 통신 방법을 사용한다.User 2382 accesses remote services with client device 2384 , including at least CPU, display, and I/O. The client device may be a PC, mobile phone, netbook, PDA, or the like. In one embodiment, the ISP 2370 recognizes the type of device used by the client and adjusts the communication method employed. In other cases, the client device uses a standard communication method, such as html, to access the ISP 2370 .

본 발명의 실시예는 핸드-헬드 디바이스, 마이크로프로세서 시스템, 마이크로프로세서-기반 또는 프로그래밍 가능한 소비자 전자 제품, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 컴퓨터 시스템 구성으로 실시될 수 있다. 본 발명은 또한 유선-기반 또는 무선 네트워크를 통해 링크되어 있는 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산형 컴퓨팅 환경에서 실시될 수 있다. Embodiments of the present invention may be practiced in a variety of computer system configurations, including hand-held devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a wire-based or wireless network.

위 실시예들을 염두에 두고, 본 발명은 컴퓨터 시스템에 저장된 데이터를 관여시키는 다양한 컴퓨터-구현된 연산을 채용할 수 있음을 이해하여야 한다. 이들 연산은 물리적 수량의 물리적 조작을 요구하는 것들이다. 본 발명의 일부분을 형성하는 여기에서 설명된 연산 중 어느 것이라도 유용한 기계 연산이다. 본 발명은 또한 이들 연산을 수행하기 위한 장치 또는 디바이스에 관한 것이다. 장치는 요구되는 목적으로 특수 구성될 수 있거나, 또는 장치는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 구성되는 범용 컴퓨터일 수 있다. 특히, 다양한 범용 기계가 여기에서의 교시에 따라 작성된 컴퓨터 프로그램과 사용될 수 있거나, 또는 요구되는 연산을 수행하도록 더 전문적 장치를 구성하는 것이 더 편리할 수 있다.With the above embodiments in mind, it should be understood that the present invention may employ a variety of computer-implemented operations involving data stored in a computer system. These operations are those that require physical manipulation of physical quantities. Any of the operations described herein forming part of the present invention are useful machine operations. The invention also relates to an apparatus or device for performing these operations. The apparatus may be specially constructed for the required purpose, or the apparatus may be a general purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.

본 발명은 또한 컴퓨터 판독가능한 매체 상에 컴퓨터 판독가능한 코드로서 구체화될 수 있다. 컴퓨터 판독가능한 매체는, 이후 컴퓨터 시스템에 의해 판독될 수 있는, 데이터를 저장할 수 있는 어느 데이터 저장 디바이스이다. 컴퓨터 판독가능한 매체의 예는 하드 드라이브, NAS(network attached storage), 롬, 램, CD-ROM, CD-R, CD-RW, 자기 테이프 및 다른 광학 및 비-광학 데이터 저장 디바이스를 포함한다. 컴퓨터 판독가능한 매체는 컴퓨터 판독가능한 코드가 분산형 방식으로 저장 및 실행되도록 네트워크-결합형 컴퓨터 시스템을 통하여 분산된 컴퓨터 판독가능한 유형적 매체를 포함할 수 있다.The invention may also be embodied as computer readable code on a computer readable medium. A computer readable medium is any data storage device capable of storing data, which can then be read by a computer system. Examples of computer-readable media include hard drives, network attached storage (NAS), ROM, RAM, CD-ROM, CD-R, CD-RW, magnetic tape, and other optical and non-optical data storage devices. Computer-readable media may include computer-readable tangible media distributed over a network-coupled computer system such that the computer-readable code is stored and executed in a distributed fashion.

방법 연산이 특정 순서로 설명되었기는 하지만, 다른 하우스키핑 연산이 연산들 사이에 수행될 수도 있고, 연산이 조금 다른 시간에 일어나도록 그것이 조절될 수도 있고, 오버레이 연산의 프로세싱이 소망 방식으로 수행되는 한, 프로세싱과 연관된 다양한 인터벌로 프로세싱 연산의 발생을 허용하는 시스템에서 연산이 분산될 수도 있음을 이해하여야 한다.Although the method operations have been described in a specific order, other housekeeping operations may be performed between the operations, they may be adjusted to occur at slightly different times, and as long as the processing of the overlay operations is performed in the desired manner. , it should be understood that operations may be distributed in a system that allows for the occurrence of processing operations at various intervals associated with processing.

상기 발명이 이해의 명확성의 목적으로 일부 상세히 설명되었기는 하지만, 첨부 청구범위의 범위 내에서 특정한 변경 및 수정이 실시될 수 있음은 명백할 것이다. 따라서, 본 실시예는 제한이 아니라 예시로서 생각되어야 하며, 본 발명은 여기에서 주어진 상세로 한정되는 것이 아니라, 첨부된 청구범위의 범위 및 균등물 내에서 수정될 수 있다.Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, this embodiment is to be considered as illustrative and not restrictive, and the invention is not limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

Claims (12)

비디오 게임의 제1 사용자의 게임플레이의 원격 제어를 제공하기 위한 방법으로서, 상기 방법은:
상기 제1 사용자의 게임플레이의 라이브 비디오 피드를 보기 위해 원격의 제2 사용자로부터의 요청을 프로세싱하는 단계;
상기 요청에 응답하여, 상기 제1 사용자가 상기 비디오 게임의 활동 중인 게임플레이에 참여하는 동안에, 상기 제1 사용자의 게임플레이의 상기 라이브 비디오 피드를 상기 원격의 제2 사용자에 제시하는 단계;
상기 라이브 비디오 피드를 제시하는 동안에, 상기 제1 사용자의 게임플레이의 제어를 상기 제2 사용자에게 이행하는 요청을 프로세싱하는 단계;
상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계를 포함하되,
상기 이행하는 요청은, 상기 제2 사용자가 상기 제1 사용자의 게임플레이의 상기 라이브 비디오 피드를 보는 동안에, 상기 제2 사용자로부터 수신되고,
제어를 이행하는 상기 요청을 프로세싱하는 단계는 상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 상기 제어를 허용하기 위해 상기 제1 사용자로부터의 확인응답을 수신하는 단계를 포함하며,
상기 방법은 적어도 하나의 프로세서에 의해 실행되고,
상기 라이브 비디오 피드는 상기 제1 사용자의 디바이스에 제공된 인터페이스를 통해 상기 제2 사용자에게 제시되며, 상기 인터페이스는 상기 제1 사용자와 상기 제2 사용자에 의해 액세스될 수 있고, 상기 인터페이스는 플레이되고 있는 하나 이상의 비디오 게임의 라이브 뷰를 제공하며, 상기 인터페이스는 상기 제1 사용자에 의한 상기 라이브 비디오 피드의 공유를 용이하게 하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
A method for providing remote control of gameplay of a first user of a video game, the method comprising:
processing a request from a remote second user to view a live video feed of the first user's gameplay;
in response to the request, presenting the live video feed of the first user's gameplay to the remote second user while the first user is engaged in active gameplay of the video game;
processing a request to transfer control of gameplay of the first user to the second user while presenting the live video feed;
initiating control of gameplay of the first user by the second user;
the request to fulfill is received from the second user while the second user is viewing the live video feed of gameplay of the first user;
processing the request to exercise control comprises receiving an acknowledgment from the first user to allow the control of gameplay of the first user by the second user;
The method is executed by at least one processor,
The live video feed is presented to the second user through an interface provided on the device of the first user, the interface accessible by the first user and the second user, the interface being the one being played and providing a live view of the above video game, wherein the interface facilitates sharing of the live video feed by the first user.
제1항에 있어서, 상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계는 상기 제1 사용자와 연관된 제1 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 제어를 비활성화시키는 단계, 및 상기 제2 사용자와 연관된 제2 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 제어를 활성화시키는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.The method of claim 1 , wherein initiating control of gameplay of the first user by the second user comprises disabling control of gameplay of the first user by a first controller device associated with the first user. and activating control of gameplay of the first user by a second controller device associated with the second user. 제2항에 있어서, 상기 제2 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 상기 제어는 상기 제2 컨트롤러 디바이스로부터 입력 커맨드들을 수신하는 단계 및 상기 제1 사용자의 게임플레이를 정의하도록 상기 입력 커맨드들을 적용하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.3. The method of claim 2, wherein said control of gameplay of said first user by said second controller device comprises receiving input commands from said second controller device and said input commands to define gameplay of said first user. A method for providing remote control of gameplay, comprising the step of applying 제1항에 있어서, 상기 인터페이스는 상기 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.The method of claim 1 , wherein the interface comprises a comments interface for posting comments during gameplay of the first user. 삭제delete 제1항에 있어서, 상기 제1 사용자의 게임플레이의 상기 라이브 비디오 피드를 상기 제2 사용자에게 제시하는 단계는 비-풀스크린(non-full screen) 포맷으로 상기 라이브 비디오 피드를 제시하는 단계를 포함하고,
상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계는 풀스크린 포맷으로 상기 라이브 비디오 피드의 제시를 트리거링(triggering)하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
2. The method of claim 1, wherein presenting the live video feed of the first user's gameplay to the second user comprises presenting the live video feed in a non-full screen format. do,
wherein initiating control of gameplay of the first user by the second user comprises triggering presentation of the live video feed in a full screen format. method to provide.
비디오 게임의 제1 사용자의 게임플레이의 원격 제어를 제공하기 위한 방법으로서, 상기 방법은:
상기 제1 사용자의 게임플레이의 라이브 비디오 피드를 보기 위해 원격의 제2 사용자로부터의 요청을 프로세싱하는 단계;
상기 요청에 응답하여, 상기 제1 사용자가 상기 비디오 게임의 활동 중인 게임플레이에 참여하는 동안에, 상기 제1 사용자의 게임플레이의 상기 라이브 비디오 피드를 상기 원격의 제2 사용자에 제시하는 단계;
상기 라이브 비디오 피드를 제시하는 동안에, 상기 제1 사용자의 게임플레이의 제어를 상기 제2 사용자에게 이행하는 요청을 프로세싱하는 단계;
상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계를 포함하되,
상기 이행하는 요청은, 상기 제2 사용자가 상기 제1 사용자의 게임플레이의 상기 라이브 비디오 피드를 보는 동안에, 상기 제2 사용자로부터 수신되고,
제어를 이행하는 상기 요청을 프로세싱하는 단계는 상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 상기 제어를 허용하기 위해 상기 제1 사용자로부터의 확인응답을 수신하는 단계를 포함하며,
상기 방법은 적어도 하나의 프로세서에 의해 실행되고,
상기 비디오 게임의 상기 라이브 비디오 피드는, 상기 제1 사용자에 의한 상기 라이브 비디오 피드의 공유가 용이해지도록, 상기 제1 사용자의 디바이스에 제공된 인터페이스를 통해 상기 제2 사용자에게 제시되며, 제어를 수용하기 위한 이행이 가능해지는 경우, 상기 라이브 비디오 피드는 상기 제2 사용자가 제어를 보고 수용하기 위한 사용가능성을 식별하는 하나 이상의 이미지 중 하나인 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
A method for providing remote control of gameplay of a first user of a video game, the method comprising:
processing a request from a remote second user to view a live video feed of the first user's gameplay;
in response to the request, presenting the live video feed of the first user's gameplay to the remote second user while the first user is engaged in active gameplay of the video game;
processing a request to transfer control of gameplay of the first user to the second user while presenting the live video feed;
initiating control of gameplay of the first user by the second user;
the request to fulfill is received from the second user while the second user is viewing the live video feed of gameplay of the first user;
processing the request to exercise control comprises receiving an acknowledgment from the first user to allow the control of gameplay of the first user by the second user;
The method is executed by at least one processor,
The live video feed of the video game is presented to the second user through an interface provided on the device of the first user to facilitate sharing of the live video feed by the first user, to accept control. wherein the live video feed is one of one or more images identifying availability for the second user to view and accept control, when transition is enabled.
제7항에 있어서, 상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계는 상기 제1 사용자와 연관된 제1 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 제어를 비활성화시키는 단계, 및 상기 제2 사용자와 연관된 제2 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 제어를 활성화시키는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.8. The method of claim 7, wherein initiating control of gameplay of the first user by the second user comprises disabling control of gameplay of the first user by a first controller device associated with the first user. and activating control of gameplay of the first user by a second controller device associated with the second user. 제8항에 있어서, 상기 제2 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 상기 제어는 상기 제2 컨트롤러 디바이스로부터 입력 커맨드들을 수신하는 단계 및 상기 제1 사용자의 게임플레이를 정의하도록 상기 입력 커맨드들을 적용하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.9. The method of claim 8, wherein said control of gameplay of said first user by said second controller device comprises receiving input commands from said second controller device and said input commands to define gameplay of said first user. A method for providing remote control of gameplay, comprising the step of applying 제7항에 있어서, 상기 인터페이스는 상기 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.8. The method of claim 7, wherein the interface comprises a comments interface for posting comments during gameplay of the first user. 삭제delete 제7항에 있어서, 상기 제1 사용자의 게임플레이의 상기 라이브 비디오 피드를 상기 제2 사용자에게 제시하는 단계는 비-풀스크린 포맷으로 상기 라이브 비디오 피드를 제시하는 단계를 포함하고,
상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계는 풀스크린 포맷으로 상기 라이브 비디오 피드의 제시를 트리거링하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
8. The method of claim 7, wherein presenting the live video feed of the first user's gameplay to the second user comprises presenting the live video feed in a non-full screen format;
wherein initiating control of gameplay by the first user by the second user comprises triggering presentation of the live video feed in a full screen format. way for.
KR1020207018764A 2012-12-21 2013-12-20 Remote control of gameplay KR102292820B1 (en)

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
US201261745281P 2012-12-21 2012-12-21
US201261745290P 2012-12-21 2012-12-21
US61/745,290 2012-12-21
US61/745,281 2012-12-21
US13/831,190 US9364743B2 (en) 2012-12-21 2013-03-14 Generation of a multi-part mini-game for cloud-gaming based on recorded gameplay
US13/831,178 US9352226B2 (en) 2012-12-21 2013-03-14 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
US13/831,190 2013-03-14
US13/831,178 2013-03-14
US13/839,486 2013-03-15
US13/839,382 2013-03-15
US13/839,382 US9345966B2 (en) 2012-03-13 2013-03-15 Sharing recorded gameplay to a social graph
US13/839,486 US9242176B2 (en) 2012-12-21 2013-03-15 Remote control of a first user's gameplay by a second user
PCT/US2013/077320 WO2014100770A2 (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recordes gameplay
KR1020197021762A KR20190090077A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197021762A Division KR20190090077A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay

Publications (2)

Publication Number Publication Date
KR20200083659A KR20200083659A (en) 2020-07-08
KR102292820B1 true KR102292820B1 (en) 2021-08-25

Family

ID=50979420

Family Applications (7)

Application Number Title Priority Date Filing Date
KR1020217023036A KR20210094149A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR1020197014565A KR20190057448A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR1020207018764A KR102292820B1 (en) 2012-12-21 2013-12-20 Remote control of gameplay
KR1020197021762A KR20190090077A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR1020177014398A KR20170061196A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR1020207018763A KR20200083658A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR1020157019834A KR101742662B1 (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020217023036A KR20210094149A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR1020197014565A KR20190057448A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay

Family Applications After (4)

Application Number Title Priority Date Filing Date
KR1020197021762A KR20190090077A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR1020177014398A KR20170061196A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR1020207018763A KR20200083658A (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
KR1020157019834A KR101742662B1 (en) 2012-12-21 2013-12-20 Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay

Country Status (7)

Country Link
JP (4) JP6196147B2 (en)
KR (7) KR20210094149A (en)
BR (1) BR102013033136B1 (en)
MX (3) MX353111B (en)
RU (1) RU2605840C2 (en)
TW (3) TWI573619B (en)
WO (1) WO2014100770A2 (en)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6612019B2 (en) 2014-08-19 2019-11-27 株式会社ソニー・インタラクティブエンタテインメント Information processing apparatus, control data transmission method, and information processing system
US9919208B2 (en) * 2014-12-11 2018-03-20 Immersion Corporation Video gameplay haptics
JP5770918B1 (en) * 2014-12-18 2015-08-26 株式会社Cygames Information processing program and information processing method
US10207185B2 (en) * 2015-03-07 2019-02-19 Sony Interactive Entertainment America Llc Using connection quality history to optimize user experience
JP6893392B2 (en) * 2015-08-04 2021-06-23 任天堂株式会社 Game system, game device, control program and game control method
US10315108B2 (en) * 2015-08-19 2019-06-11 Sony Interactive Entertainment America Llc Local application quick start with cloud transitioning
US10744407B2 (en) * 2015-09-08 2020-08-18 Sony Interactive Entertainment LLC Dynamic network storage for cloud console server
EP3341098B1 (en) * 2015-09-30 2024-03-13 Sony Interactive Entertainment America LLC Multi-user demo streaming service for cloud gaming
CN105610868B (en) * 2016-03-03 2019-08-06 腾讯科技(深圳)有限公司 A kind of method of information exchange, equipment and system
US10238965B2 (en) * 2016-04-28 2019-03-26 Sony Interactive Entertainment America Llc Cloud gaming device handover
US10625156B2 (en) * 2016-06-30 2020-04-21 Sony Interactive Entertainment LLC Method and system for sharing video game content
GB2570305A (en) * 2018-01-18 2019-07-24 Sony Interactive Entertainment Europe Ltd User analysis system and method
GB2571306A (en) * 2018-02-23 2019-08-28 Sony Interactive Entertainment Europe Ltd Video recording and playback systems and methods
TWI716706B (en) * 2018-03-01 2021-01-21 致伸科技股份有限公司 Ai-assisted operating system
KR102551254B1 (en) * 2018-04-06 2023-07-04 주식회사 엔씨소프트 Method and computer program for providing a service of sharing a game
KR102319298B1 (en) * 2018-09-21 2021-10-29 주식회사 엔씨소프트 System, sever and method for contrllling game character
WO2020129861A1 (en) * 2018-12-21 2020-06-25 株式会社ソニー・インタラクティブエンタテインメント Information processing device for presenting preview screen
JP7222722B2 (en) * 2019-01-17 2023-02-15 株式会社ソニー・インタラクティブエンタテインメント Information processing system, information processing method and computer program
KR102329749B1 (en) * 2019-08-05 2021-11-22 주식회사 엔씨소프트 Sever, system and method for control of game character
US11344799B2 (en) 2019-10-01 2022-05-31 Sony Interactive Entertainment Inc. Scene change hint and client bandwidth used at encoder for handling video frames after a scene change in cloud gaming applications
CN111147885B (en) * 2020-01-03 2021-04-02 北京字节跳动网络技术有限公司 Live broadcast room interaction method and device, readable medium and electronic equipment
CN111494965B (en) * 2020-04-15 2021-09-14 腾讯科技(深圳)有限公司 Information processing method, device, equipment and storage medium
CN111603764B (en) * 2020-05-28 2021-05-28 腾讯科技(深圳)有限公司 Cloud game processing method and equipment
US20220008824A1 (en) * 2020-07-13 2022-01-13 Nvidia Corporation Game generation using one or more neural networks
CN111917768B (en) * 2020-07-30 2022-05-13 腾讯科技(深圳)有限公司 Virtual scene processing method and device and computer readable storage medium
KR102606834B1 (en) * 2021-05-10 2023-11-29 주식회사 엔씨소프트 System and method for providing game service
TWI790801B (en) * 2021-11-01 2023-01-21 宏碁股份有限公司 Remote game executing method and remote game executing system
JP7216314B1 (en) 2022-02-17 2023-02-01 株式会社Mixi Program, information processing device, and information processing method
WO2023157618A1 (en) * 2022-02-18 2023-08-24 優太 竹田 Replay system, processing method, and replay program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008194314A (en) * 2007-02-14 2008-08-28 Konami Digital Entertainment:Kk Game system, and game device included therein
JP2010178010A (en) * 2009-01-29 2010-08-12 Funai Electric Co Ltd Moving image editor
US20120270647A1 (en) 2009-02-12 2012-10-25 Zalewski Gary M Object based observation

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6280323B1 (en) * 1996-11-21 2001-08-28 Konami Co., Ltd. Device, method and storage medium for displaying penalty kick match cursors in a video soccer game
US6699127B1 (en) * 2000-06-20 2004-03-02 Nintendo Of America Inc. Real-time replay system for video game
RU2236702C2 (en) * 2002-09-02 2004-09-20 Савин Вадим Георгиевич Method for computer game
JP3534343B2 (en) * 2002-09-12 2004-06-07 株式会社コナミコンピュータエンタテインメントジャパン GAME PROGRAM AND GAME DEVICE
JP3703800B2 (en) * 2002-11-15 2005-10-05 株式会社スクウェア・エニックス Communication game system
US8930561B2 (en) * 2003-09-15 2015-01-06 Sony Computer Entertainment America Llc Addition of supplemental multimedia content and interactive capability at the client
JP4494882B2 (en) * 2004-06-29 2010-06-30 株式会社バンダイナムコゲームス Program, game device, display control device, server, and information storage medium
KR100682455B1 (en) * 2005-03-17 2007-02-15 엔에이치엔(주) Game scrap system, game scrap method, and computer readable recording medium recording program for implementing the method
JP5001445B2 (en) * 2005-05-06 2012-08-15 任天堂株式会社 Communication game system
CA2633895A1 (en) * 2005-12-27 2007-07-05 Massive Incorporated Streaming media casts, such as in a video game or mobile device environment
US20070173325A1 (en) * 2006-01-20 2007-07-26 Microsoft Corporation Join in-progress on-line game session
US20070294089A1 (en) * 2006-06-02 2007-12-20 Garbow Zachary A Gameplay Recording and Marketplace
JP5068080B2 (en) * 2007-01-09 2012-11-07 株式会社バンダイナムコゲームス GAME DEVICE, PROGRAM, AND INFORMATION STORAGE MEDIUM
KR20090000260A (en) * 2007-02-09 2009-01-07 주식회사 엠게임 Beta game providing system and its method for gradually opening to the gamers to arouse gamer's interest
JP5203646B2 (en) * 2007-07-17 2013-06-05 株式会社ソニー・コンピュータエンタテインメント GAME GUIDING SYSTEM, GAME GUIDING DEVICE, GAME SERVER, GAME GUIDING METHOD, PROGRAM, AND INFORMATION STORAGE MEDIUM
US8515253B2 (en) * 2008-02-15 2013-08-20 Sony Computer Entertainment America Llc System and method for automated creation of video game highlights
JP2010220089A (en) * 2009-03-18 2010-09-30 Sony Corp Digest reproducing apparatus, digest reproducing method and program
US8292742B2 (en) * 2009-03-23 2012-10-23 Utah State University Systems and methods for simulation and regeneration of a virtual environment
US9898675B2 (en) * 2009-05-01 2018-02-20 Microsoft Technology Licensing, Llc User movement tracking feedback to improve tracking
JP5449859B2 (en) * 2009-05-18 2014-03-19 任天堂株式会社 GAME PROGRAM, GAME DEVICE, AND GAME SYSTEM
JP2010284473A (en) * 2009-06-11 2010-12-24 Gonichi Sasaki Game player evaluation system
JP5417111B2 (en) * 2009-10-01 2014-02-12 株式会社コナミデジタルエンタテインメント GAME SYSTEM, GAME SYSTEM CONTROL METHOD, AND PROGRAM
JP5193242B2 (en) * 2010-03-11 2013-05-08 株式会社コナミデジタルエンタテインメント Game system, game part execution support method, and program
KR101139498B1 (en) * 2010-04-20 2012-05-02 주식회사 넥슨코리아 Watching system and method thereof of other user game play picture in online game
JP2010201180A (en) * 2010-04-30 2010-09-16 Nintendo Co Ltd Game apparatus and game program
JP2012038042A (en) * 2010-08-05 2012-02-23 Sony Computer Entertainment Inc Game device
JP5991649B2 (en) * 2010-08-05 2016-09-14 株式会社ソニー・インタラクティブエンタテインメント Game device
JP5271319B2 (en) * 2010-08-12 2013-08-21 株式会社コナミデジタルエンタテインメント GAME SYSTEM AND PLAY CONTENT BROWSE CONTROL METHOD
JP5542020B2 (en) * 2010-09-22 2014-07-09 株式会社ソニー・コンピュータエンタテインメント Information processing system, information processing method, program, and information storage medium
JP5740972B2 (en) * 2010-09-30 2015-07-01 ソニー株式会社 Information processing apparatus and information processing method
KR101269411B1 (en) * 2010-12-31 2013-05-30 (주)네오위즈게임즈 Game server, method, and recording medium for providing sport game including chatting service
US9345966B2 (en) * 2012-03-13 2016-05-24 Sony Interactive Entertainment America Llc Sharing recorded gameplay to a social graph
US10406429B2 (en) * 2012-08-29 2019-09-10 Sony Interactive Entertainment, LLC User-based mini-game generation and distribution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008194314A (en) * 2007-02-14 2008-08-28 Konami Digital Entertainment:Kk Game system, and game device included therein
JP2010178010A (en) * 2009-01-29 2010-08-12 Funai Electric Co Ltd Moving image editor
US20120270647A1 (en) 2009-02-12 2012-10-25 Zalewski Gary M Object based observation

Also Published As

Publication number Publication date
JP2020099729A (en) 2020-07-02
WO2014100770A8 (en) 2014-07-24
TW201438796A (en) 2014-10-16
KR20190090077A (en) 2019-07-31
BR102013033136B1 (en) 2021-10-26
MX356707B (en) 2018-06-11
TWI573619B (en) 2017-03-11
KR20200083658A (en) 2020-07-08
KR20210094149A (en) 2021-07-28
MX2014000231A (en) 2014-11-03
RU2013156817A (en) 2015-06-27
JP2014121610A (en) 2014-07-03
KR20200083659A (en) 2020-07-08
KR101742662B1 (en) 2017-06-01
RU2605840C2 (en) 2016-12-27
TWI564062B (en) 2017-01-01
JP6196147B2 (en) 2017-09-13
WO2014100770A2 (en) 2014-06-26
KR20170061196A (en) 2017-06-02
JP7461174B2 (en) 2024-04-03
MX2014000229A (en) 2014-11-03
MX353111B (en) 2017-12-20
JP2019018076A (en) 2019-02-07
JP2017200631A (en) 2017-11-09
KR20150099829A (en) 2015-09-01
TW201440856A (en) 2014-11-01
JP6434583B2 (en) 2018-12-05
KR20190057448A (en) 2019-05-28
MX353112B (en) 2017-12-20
TW201440857A (en) 2014-11-01
MX2014000227A (en) 2014-11-03
BR102013033136A2 (en) 2015-10-20
TWI559965B (en) 2016-12-01
WO2014100770A3 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
US11014012B2 (en) Sharing gameplay in cloud gaming environments
JP7461174B2 (en) Minigames accessed via shared interface
US10016677B2 (en) Remote control of a first user's session by a second user
EP2745893B1 (en) Automatic generation of suggested mini-games for cloud-gaming based on recorded gameplay
US11565187B2 (en) Method for sharing a portion of gameplay of a video game
US11406906B2 (en) Network connected controller for direct to cloud gaming

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant