KR20190090077A - 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생 - Google Patents

레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생 Download PDF

Info

Publication number
KR20190090077A
KR20190090077A KR1020197021762A KR20197021762A KR20190090077A KR 20190090077 A KR20190090077 A KR 20190090077A KR 1020197021762 A KR1020197021762 A KR 1020197021762A KR 20197021762 A KR20197021762 A KR 20197021762A KR 20190090077 A KR20190090077 A KR 20190090077A
Authority
KR
South Korea
Prior art keywords
user
game
game play
video
play
Prior art date
Application number
KR1020197021762A
Other languages
English (en)
Inventor
빅터 옥타브 슈바 미우라
데이비드 페리
필리프 디아스
켈빈 용
나단 개리
Original Assignee
소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/831,178 external-priority patent/US9352226B2/en
Priority claimed from US13/831,190 external-priority patent/US9364743B2/en
Priority claimed from US13/839,382 external-priority patent/US9345966B2/en
Application filed by 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 filed Critical 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨
Priority to KR1020207018764A priority Critical patent/KR102292820B1/ko
Publication of KR20190090077A publication Critical patent/KR20190090077A/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/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/85Providing additional services to players
    • A63F13/88Mini-games executed independently while main games are being loaded
    • 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/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/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/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
    • 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
    • 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
    • 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

Abstract

비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법이 제공된다. 비디오 게임의 풀 버전의 사용자의 게임플레이가 레코딩된다. 사용자의 레코딩된 게임플레이는 관심 있는 영역을 결정하도록 분석된다. 결정된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계가 정의된다. 비디오 게임의 제한된 버전이 정의된 경계들에 기반하여 발생된다.

Description

레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생{AUTOMATIC GENERATION OF SUGGESTED MINI-GAMES FOR CLOUD-GAMING BASED ON RECORDED GAMEPLAY}
본 발명은 레코딩된 게임플레이에 기반하여 제안된 미니-게임의 자동 발생, 레코딩된 게임플레이에 기반하여 클라우드-게이밍을 위한 멀티-파트 미니-게임의 발생, 레코딩된 게임플레이를 소셜 그래프에 공유, 및 제2 사용자에 의한 제1 사용자의 게임플레이의 원격 제어를 위한 방법 및 시스템에 관한 것이다.
비디오 게임 산업은 수년에 걸쳐 많은 변화를 보았다. 컴퓨팅 능력이 확장되었으므로, 비디오 게임의 개발자는 마찬가지로 컴퓨팅 능력에서의 이들 증가를 이용하는 게임 소프트웨어를 창작하였다. 이러한 목적으로, 비디오 게임 개발자는 매우 실감나는 게임 체험을 산출하도록 정교한 연산 및 수학을 편입시키는 게임을 코딩해 오고 있다.
예시적 게이밍 플랫폼은, 소니(Sony) 플레이스테이션(Playstation)(등록상표), 소니(Sony) 플레이스테이션2(Playstation2)(등록상표)(PS2), 및 소니(Sony) 플레이스테이션3(Playstation3)(등록상표)(PS3)일 수 있고, 그 각각은 게임 콘솔의 형태로 팔린다. 주지되어 있는 바와 같이, 게임 콘솔은 모니터(통상 텔레비전)에 접속하여 핸드헬드 컨트롤러를 통한 사용자 대화를 가능하게 하도록 설계된다. 게임 콘솔은, CPU, 프로세싱 집약적 그래픽 연산을 위한 그래픽 합성기, 기하학적 변환을 수행하기 위한 벡터 유닛, 및 다른 글루 하드웨어를 포함하는 전문 프로세싱 하드웨어, 펌웨어 및 소프트웨어를 갖게 설계된다. 게임 콘솔은 게임 콘솔을 통한 로컬 플레이를 위해 게임 콤팩트 디스크를 수용하기 위한 광학 디스크 트레이를 갖게 더 설계된다. 사용자가 인터넷을 통하여 다른 사용자와 맞서 또는 함께 대화형 플레이할 수 있는 온라인 게이밍 또한 가능하다. 게임 복잡도가 플레이어의 흥미를 계속 불러일으키므로, 게임 및 하드웨어 제조자는 부가적 대화성 및 컴퓨터 프로그램을 가능하게 하도록 계속 혁신하여 왔다.
컴퓨터 게이밍 산업에서 성장하는 동향은 사용자와 게이밍 시스템 간 대화를 증가시키는 게임을 개발하는 것이다. 더 풍부한 대화형 체험을 성취하는 하나의 방식은 플레이어의 움직임을 추적하고 이들 움직임을 게임을 위한 입력으로서 사용하기 위하여 그 움직임이 게이밍 시스템에 의해 추적되는 무선 게임 컨트롤러를 사용하는 것이다. 일반적으로 말하면, 제스처 입력은 컴퓨팅 시스템, 비디오 게임 콘솔, 스마트 기기 등과 같은 전자 디바이스를 플레이어에 의해 이루어지고 전자 디바이스에 의해 캡처링되는 소정 제스처에 반응시키는 것을 지칭한다.
산업계에서 성장하는 다른 동향은 클라우드-기반 게이밍 시스템의 개발을 포함한다. 그러한 시스템은 게임 애플리케이션을 실행하고, 그리고 사용자로부터 입력을 수신하고 디스플레이 상에 비디오를 렌더링하도록 구성될 수 있는 로컬 씬 클라이언트와 통신하는 원격 프로세싱 서버를 포함할 수 있다.
그것이 본 발명의 실시예가 생기는 이러한 맥락 내에 있다.
본 발명의 실시예는 레코딩된 게임플레이에 기반하여 제안된 미니-게임의 자동 발생, 레코딩된 게임플레이에 기반하여 클라우드-게이밍을 위한 멀티-파트 미니-게임의 발생, 레코딩된 게임플레이를 소셜 그래프에 공유, 및 제2 사용자에 의한 제1 사용자의 게임플레이의 원격 제어를 위한 방법 및 시스템을 제공한다. 본 발명은, 프로세스, 장치, 시스템, 디바이스, 또는 컴퓨터 판독가능한 매체 상의 방법과 같은, 수많은 방식으로 구현될 수 있음을 인식하여야 한다. 본 발명의 수개의 진보적 실시예가 아래에 설명된다.
일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산; 결정된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 및 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산; 선택을 위해 관심 있는 영역의 각각을 제시하는 연산; 선택된 관심 있는 영역을 나타내는 선택 입력을 수신하는 연산; 선택된 관심 있는 영역에 대해, 선택된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 및 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산으로서, 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 연산을 포함하는 사용자의 게임플레이를 레코딩하는 연산; 하나 이상의 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산으로서, 각각의 관심 있는 영역은 하나 이상의 임계치에 대한 대응에 기반하여 자동으로 식별되는 분석하는 연산; 선택을 위해 관심 있는 영역의 각각을 제시하는 연산; 선택된 관심 있는 영역을 나타내는 선택 입력을 수신하는 연산; 선택된 관심 있는 영역에 대해, 선택된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하는 연산; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키는 연산; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 프로그램 명령어가 구체화되어 있는 유형적 컴퓨터 판독가능한 매체로서, 이하의 명령어: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하기 위한 프로그램 명령어; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하기 위한 프로그램 명령어; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키기 위한 프로그램 명령어; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하기 위한 프로그램 명령어를 포함하는 매체가 제공된다.
다른 일 실시예에 있어서는, 시스템으로서: 적어도 하나의 서버 컴퓨팅 디바이스를 포함하고, 적어도 하나의 서버 컴퓨팅 디바이스는, 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하기 위한 로직; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하기 위한 로직; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키기 위한 로직; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하기 위한 로직을 포함하는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 로직을 갖는 시스템이 제공된다.
일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 방법으로서, 이하의 방법 연산: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하는 연산; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하는 연산; 커맨드를 수신하는 것에 응답하여, 게임플레이 세션의 휴지 상태에 들어가고 공유하는 인터페이스를 제시하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 결정하도록 공유하는 인터페이스를 통하여 수신된 입력을 프로세싱하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하는 연산; 게임플레이 세션의 활동 상태를 재개하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
다른 일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 방법으로서, 이하의 방법 연산: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하는 연산; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하는 연산; 커맨드를 수신하는 것에 응답하여, 레코딩된 비디오의 사용자-정의된 선택을 결정하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
다른 일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 프로그램 명령어가 정의되어 있는 비-일시적 컴퓨터 판독가능한 매체가 제공된다. 프로그램 명령어는: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하기 위한 프로그램 명령어; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하기 위한 프로그램 명령어; 커맨드를 수신하는 것에 응답하여, 레코딩된 비디오의 사용자-정의된 선택을 결정하기 위한 프로그램 명령어; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하기 위한 프로그램 명령어를 포함한다.
일 실시예에 있어서는, 사용자의 게임플레이의 원격 제어를 제공하기 위한 방법으로서, 이하의 방법 연산: 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 연산; 제1 사용자의 게임플레이의 제어를 제2 사용자에게 이행하는 요청을 프로세싱하는 연산; 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 연산을 포함하되, 방법은 적어도 하나의 프로세서에 의해 실행되는 방법이 제공된다.
다른 일 실시예에 있어서는, 멀티플레이어 게임플레이를 제공하기 위한 방법으로서, 이하의 방법 연산: 제1 사용자의 게임플레이 세션의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 연산; 제2 사용자가 제1 사용자의 게임플레이 세션에 합류하는 요청을 프로세싱하는 연산; 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 개시하는 연산을 포함하되, 방법은 적어도 하나의 프로세서에 의해 실행되는 방법이 제공된다.
다른 일 실시예에 있어서는, 사용자의 게임플레이의 원격 제어를 제공하기 위한 프로그램 명령어가 구체화되어 있는 비-일시적 컴퓨터 판독가능한 매체가 제공되며, 프로그램 명령어는: 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하기 위한 프로그램 명령어; 제1 사용자의 게임플레이의 제어를 제2 사용자에게 이행하는 요청을 프로세싱하기 위한 프로그램 명령어; 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하기 위한 프로그램 명령어를 포함한다.
본 발명의 다른 태양은 본 발명의 원리를 예로서 예시하는 수반 도면과 함께 취해지는 이하의 상세한 설명으로부터 명백하게 될 것이다.
본 발명은 수반 도면과 함께 취해지는 이하의 설명을 참조하여 가장 잘 이해될 수 있다:
도 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은 정보 서비스 제공자 아키텍처의 일 실시예의 예시도.
이하의 실시예는 레코딩된 게임플레이에 기반하여 제안된 미니-게임의 자동 발생, 레코딩된 게임플레이에 기반하여 클라우드-게이밍을 위한 멀티-파트 미니-게임의 발생, 레코딩된 게임플레이를 소셜 그래프에 공유, 및 제2 사용자에 의한 제1 사용자의 게임플레이의 원격 제어를 위한 방법 및 장치를 설명한다.
그렇지만, 본 발명이 이들 특정 상세 중 일부 또는 전부 없이 실시될 수 있음은 당업자에게 자명할 것이다. 다른 경우에 있어서, 주지의 프로세스 연산은 본 발명을 불필요하게 모호하게 하지 않기 위하여 상세히 설명되지는 않았다.
도 1a는, 본 발명의 실시예에 따라, 사용자가 클라우드-기반 비디오 게임을 플레이하는 것을 예시하고 있다. 도시된 바와 같이, 사용자(U1)는 디스플레이(100) 상에 보이는 클라우드-기반 비디오 게임을 플레이한다. 클라우드-기반 비디오 게임은 주로 원격 서버 상에서 실행되는 비디오 게임이다. 서버는, 일 실시예에 있어서, 가상 기계 데이터 센터에서 실행되는 개개의 서버 또는 서버들을 포함할 수 있으며, 이 경우 많은 서버는 요청된 프로세싱을 제공하도록 가상화될 수 있다. 도시된 실시예에 있어서, 클라우드 게이밍 서버(들)(104)는 디스플레이(100) 상에서 렌더링되는 비디오 게임을 실행한다. 클라이언트(101)는 입력을 수신 및 프로세싱하고 이들을 클라우드 게이밍 서버(104)에 통신하도록, 그리고 또한 클라우드 게이밍 서버(104)로부터 비디오 및 오디오 데이터를 수신하도록 사용자의 장소에 놓여 있다. 클라이언트(101) 및 클라우드 게이밍 서버(104)는 인터넷과 같은 네트워크(102)를 통하여 통신한다. 다른 실시예에 있어서, 클라이언트는, 클라이언트가 네트워크와 통신하고 게임 플레이를 렌더링하도록 디스플레이로의 액세스를 제공하고 사용자로부터의 입력이 대화성을 구동 가능하게 할 수 있는 한, 포터블이든 아니든, 무선이든 아니든, 어떠한 디바이스라도 될 수 있다. 일 실시예에 있어서, 클라이언트는 씬 클라이언트이다. 그렇지만, 다른 실시예에 있어서, 클라이언트는 범용 컴퓨터, 특수 목적 컴퓨터, 게이밍 콘솔, 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 모바일 컴퓨팅 디바이스, 포터블 게이밍 디바이스, 셀룰러 폰, 셋-톱 박스, 스트리밍 미디어 인터페이스/디바이스, 스마트 텔레비전 또는 네트워크형 디스플레이, 또는 여기에서 정의된 바와 같은 클라이언트의 기능성을 수행하도록 구성될 수 있는 어떠한 다른 컴퓨팅 디바이스라도 될 수 있다. 일 실시예에 있어서, 클라우드 게이밍 서버는 사용자에 의해 이용되고 있는 클라이언트 디바이스의 유형을 검출하고 사용자의 클라이언트 디바이스에 적합한 클라우드-게이밍 체험을 제공하도록 구성된다. 예를 들어, 이미지 설정, 오디오 설정 및 다른 유형의 설정이 사용자의 클라이언트 디바이스에 최적화될 수 있다.
다양한 실시예에 있어서, 클라이언트에 의해 수행되는 프로세싱의 정도는 입력 및 출력 프로세싱에 관하여 달라질 수 있다. 그렇지만, 대체로, 비디오 게임 상태는 실질적으로 클라우드 게이밍 서버(104) 상에서 유지 및 실행되며, 클라이언트는 주로 사용자 입력을 수신 및 통신하고 렌더링을 위해 비디오/오디오 데이터를 수신하도록 기능한다. 클라이언트(101)는 디스플레이(100)에 접속되고 디스플레이(100) 상의 렌더링을 위한 비디오 데이터를 제공하는 자립형 디바이스일 수 있다. 다른 실시예에 있어서, 클라이언트는 디스플레이(100) 내에 통합될 수 있다. 일 실시예에 있어서, 디스플레이(100)는 디스플레이의 네트워크 접속성을 이용하여 애플리케이션 또는 "앱"을 위한 플랫폼 운영 체제를 제공하는 네트워크형 디스플레이이다. 그러한 일 실시예에 있어서, 클라이언트는 디스플레이의 운영 체제에 의해 제공된 플랫폼 상에서 실행되는 애플리케이션에 의해 정의될 수 있다.
도 1b는 다수 장소 내 다수 사용자가 클라우드-기반 비디오 게임의 게임플레이에 참여한 것을 예시하고 있다. 사용자(U1)는 제1 장소에서 디스플레이(100) 상에 렌더링된 비디오 게임과 대화하고 있는 것으로 도시되어 있다. 사용자(U2, U3)는 제2 장소에서 디스플레이(106) 상에 렌더링된 비디오 게임과 대화하고 있는 것으로 도시되어 있다. 사용자(U4)는 제3 장소에서 디스플레이(108) 상에 렌더링된 비디오 게임을 플레이하고 있는 것으로 도시되어 있다. 사용자(U5, U6, U7)는 제4 장소에서 디스플레이(110) 상에 렌더링된 비디오 게임과 대화하고 있는 것으로 도시되어 있다.
제1, 제2, 제3 및 제4 장소의 각각에는, 다양한 사용자로부터의 입력을 프로세싱하고 그들 각각의 디스플레이 상에 클라우드-기반 비디오 게임을 렌더링하기 위한 적어도 하나의 컴퓨팅 디바이스가 제공된다. 컴퓨팅 디바이스는 디스플레이 내에 통합될 수도 있고, 데이터를 프로세싱 및 저장하기 위한 적어도 하나의 프로세서 및 메모리를 갖는 퍼스널 컴퓨터, 셋톱 박스, 게이밍 콘솔, 또는 어느 다른 유형의 디바이스와 같은 자립형 디바이스일 수도 있음을 인식하여야 한다. 컴퓨팅 디바이스는, 위에서 설명된 바와 같이, 클라이언트를 실행하거나 정의할 수 있다. 컴퓨팅 디바이스는 네트워크형이고, 인터넷(102)과 같은 네트워크를 통하여 클라우드 게이밍 서버(104)와 통신한다.
클라우드 게이밍 서버(104)는, 사용자에 의해 플레이되고, 순간순간 소정 비디오 게임의 게임 상태를 정의하고, (이미지 데이터 및 오디오 데이터를 포함하는) 비디오 데이터를 특정 장소에서의 컴퓨팅 디바이스에 보내고 있는 다양한 비디오 게임을 실행한다. 소정 장소에서의 컴퓨팅 디바이스는 비디오 게임을 플레이하는 사용자(들)로부터의 입력을 프로세싱하고, 입력 데이터를 클라우드 게이밍 서버에 송신하고, 그러면, 차례로, 비디오 게임의 게임 상태에 영향을 미치도록 입력 데이터를 프로세싱한다. 클라우드-기반 게이밍은 네트워크를 통하여 모든 플레이어가 액세스가능한 원격 서버에서의 비디오 게임의 실행을 위해 제공함으로써 여러 다른 장소에 위치하는 플레이어로부터의 멀티-플레이어 게이밍을 용이하게 함을 인식하여야 한다. 이러한 방식으로, 비디오 게임의 실행은 어느 단일 플레이어의 하드웨어 또는 네트워크 접속성에도, 그러한 것이 그 소정 플레이어에 대한 사용자 체험에 영향을 미칠 것이더라도, 종속적이지 않다.
도 2a는, 본 발명의 일 실시예에 따라, 클라우드 게이밍을 위한 시스템을 예시하고 있다. 도시된 바와 같이, 사용자(200)는 클라우드-기반 비디오 게임에 입력을 제공하도록 컨트롤러(202)를 조작한다. 컨트롤러(202)는, 버튼, 조이스틱, 터치패드, 트랙볼, 및 가속도계 및 자력계와 같은 모션 감지 하드웨어와 같은, 다양한 종류의 입력 디바이스 중 어느 것이라도 포함할 수 있다. 일 실시예에 있어서, 컨트롤러(202)는 컨트롤러(202)의 위치를 결정하도록 추적될 수 있는 조명 물체를 포함할 수 있다. 컨트롤러(202)는 씬 게임 클라이언트(204)와 무선으로 통신할 수 있다. 클라이언트(204)는 네트워크(208)를 통하여 클라우드 게이밍 서비스(210)와 통신한다. 클라이언트(204)는 클라우드 게이밍 서비스(210)에 의해 실행된 비디오 게임에 통신되는 입력 데이터를 발생시키도록 컨트롤러(202)로부터의 데이터를 프로세싱한다. 부가적으로, 클라이언트(204)는, 디스플레이(206) 상의 렌더링을 위해, 클라우드 게이밍 서비스(210)로부터의 비디오 데이터를 수신한다. 일 실시예에 있어서, 클라이언트(204)는 디스플레이(206)와 호환가능한 포맷으로 비디오 스트림을 제공하도록 그 수신된 비디오 데이터를 프로세싱할 수 있다. 일 실시예에 있어서, 클라이언트(204)는 컨트롤러 디바이스 또는 컨트롤러 디바이스 상에 위치하는 물체를 추적하기 위한 카메라를 포함할 수 있다. 언급된 바와 같이, 물체는 카메라로부터 캡처링된 이미지 프레임의 분석에 기반하여 추적을 더 용이하게 하도록 조명될 수 있다.
클라우드 게이밍 서비스(210)는 비디오 게임이 실행될 수 있는 환경을 제공하기 위한 자원을 포함한다. 대체로, 자원은, 프로세서, 저장 디바이스, 및 네트워크 장비를 포함하는, 다양한 종류의 컴퓨터 서버 하드웨어를 포함할 수 있으며, 비디오 게임 애플리케이션의 실행을 용이하게 하도록 이용될 수 있다. 도시된 실시예에 있어서, 비디오 게임 라이브러리(212)는 다양한 게임 타이틀을 포함한다. 각각의 게임 타이틀은 실행가능한 코드와 더불어, 비디오 게임을 실체화하도록 이용되는 연관된 데이터 및 자산 라이브러리도 정의한다. 호스트(214)는 가상 기계(216)를 실체화하기 위한 플랫폼을 정의하는 단일 컴퓨팅 디바이스일 수 있다. 다른 일 실시예에 있어서, 호스트(214)는 자체가 가상화된 자원 플랫폼일 수 있다. 환언하면, 호스트(214)는 하나 이상의 서버 컴퓨팅 디바이스에 걸쳐 동작하여, 서버 컴퓨팅 디바이스에 의해 정의된 자원의 할당 및 사용을 취급하는 한편, 가상 기계(216)가 실체화될 수 있는 통합형 플랫폼을 제시할 수 있다.
각각의 가상 기계(216)는, 비디오 게임 애플리케이션(218)이 실행될 수 있는, 운영 체제를 지원할 수 있는 자원 환경을 정의한다. 일 실시예에 있어서, 가상 기계는 게이밍 콘솔의 하드웨어 자원 환경을 에뮬레이팅하도록 구성될 수 있으며, 게이밍 콘솔과 연관된 운영 체제는 그 게이밍 콘솔에 대해 개발된 게이밍 타이틀의 실행을 지원할 가상 기계 상에서 실행된다. 다른 일 실시예에 있어서, 운영 체제는, 기저 가상 기계가 게이밍 콘솔의 하드웨어를 에뮬레이팅하도록 구성될 수도 있고 그렇지 않을 수도 있더라도, 게이밍 콘솔의 네이티브 운영 체제 환경을 에뮬레이팅하도록 구성될 수 있다. 다른 일 실시예에 있어서, 에뮬레이터 애플리케이션이 가상 기계의 운영 체제 위에 실행되며, 에뮬레이터는 그 게이밍 콘솔에 대해 설계된 비디오 게임을 지원하도록 게이밍 콘솔의 네이티브 운영 체제 환경을 에뮬레이팅하도록 구성된다. 각종 현재 및 구형 게이밍 콘솔이 클라우드-기반 게이밍 시스템에서 에뮬레이팅될 수 있음을 인식하여야 한다. 이러한 방식으로, 사용자는 클라우드-게이밍 시스템을 통하여 여러 다른 게이밍 콘솔로부터 게임 타이틀에 액세스할 수 있다.
사용자(200)가 특정 비디오 게임 타이틀을 플레이하도록 요청할 때, 비디오 게임 타이틀은 라이브러리(212)로부터 검색된다. 호환가능한 가상 기계가 이미 실체화되지 않았거나 사용에 이용가능하지 않으면, 그때는 새로운 호환가능한 가상 기계가 호스트(214) 상에 실체화된다. 그 후 검색된 비디오 게임 타이틀은 이용가능한 또는 새롭게 실체화된 가상 기계(216) 상에서 애플리케이션(218)으로서 실행된다. 일 실시예에 있어서, 이것은 비디오 게임 타이틀에 적합한 플랫폼(예를 들어, 어느 게이밍 콘솔 또는 운영 체제를 게임이 실행하도록 요구하는지)을 결정하는 것 및 실행에 적합한 가상 기계, 예를 들어, 비디오 게임 타이틀의 실행을 취급할 수 있는 에뮬레이터 애플리케이션을 갖는 것에 비디오 게임 타이틀을 배정하는 것을 수반할 수 있다. 실행 중 비디오 게임은 대화형 게이밍 체험을 사용자(200)에 제공하도록 게임 클라이언트(204)와 통신한다. 더 구체적으로, 실행 중 비디오게임 애플리케이션(218)은 네트워크(208)를 통하여 클라이언트(204)로부터 입력 데이터를 수신한다. 애플리케이션(218)은 실행 중 애플리케이션의 게임 상태를 업데이트하도록 입력 데이터를 프로세싱한다. 게임 상태가 변화할 때, 애플리케이션(218)은 디스플레이(206) 상의 렌더링을 위해 클라이언트(204)에 보내지는 비디오 데이터를 출력한다. 부가적으로, 애플리케이션(218)은 또한 부가적 피드백 메커니즘을 사용자에게 제공하도록 이용되는 피드백 데이터를 클라이언트(204)에 출력할 수 있다. 예로서, 사용자의 컨트롤러(202)는 비디오 게임 애플리케이션으로부터의 출력 피드백 데이터에 기반하여 활성화될 수 있는 촉각 진동 피드백 메커니즘을 포함할 수 있다.
일 실시예에 있어서, 클라우드 게이밍 시스템은 사용자와 연관된 클라이언트 디바이스의 유형, 및 또한 사용자가 클라우드-기반 비디오 게임으로의 입력을 제공하는데 이용가능한 컨트롤러의 유형을 검출하도록 구성된다. 예를 들어, 일 실시예에 있어서, 사용자가 클라우드 게이밍 시스템에 로그인할 때, 그들은 그들이 클라우드 게이밍 시스템에 액세스하고 있는 클라이언트 디바이스의 유형을 지정하는 옵션을 제시받을 수 있다. 일 실시예에서는, 사용자가 그들 클라이언트 디바이스에 대응하는 것을 선택할 수 있는 일련의 클라이언트 디바이스 옵션이 제시된다. 또한 그들이 비디오 게임을 플레이하는데 사용할 컨트롤러 디바이스의 유형을 지정하는 옵션이 사용자에게 제시될 수 있다. 일 실시예에서는, 사용자가 그들 컨트롤러 하드웨어에 대응하는 컨트롤러 유형을 지정하도록 선택할 수 있는 일련의 컨트롤러 옵션이 사용자에게 제시될 수 있다. 다른 실시예에 있어서, 클라우드 게이밍 시스템은 클라이언트 디바이스 유형 및/또는 컨트롤러 디바이스 유형을 자동으로 검출하도록 구성될 수 있다.
예를 들어, 로그인시에, 클라이언트 디바이스는 (예를 들어, 클라우드 게이밍 서버로부터의 요청에 응답하여) 자신과 더불어 접속된 컨트롤러 디바이스도 식별시키는 정보를 클라우드 게이밍 서버에 보낼 수 있다. 이러한 정보에 기반하여, 클라우드 게이밍 서버는 사용자의 클라이언트 디바이스 및 컨트롤러 디바이스에 최적화된 게이밍 체험을 제공하기에 적합한 비디오 게임 출력 구성 및 입력 파라미터 구성을 결정할 수 있다. 일 실시예에서는, 검출된 클라이언트 디바이스 및 검출된 컨트롤러 디바이스에 기반하여 비디오 게임 구성 및 입력 파라미터 구성을 결정하도록 룩-업 테이블이 채용된다.
소정 비디오 게임이 특정 플랫폼 및 특정 연관된 컨트롤러 디바이스에 대해 개발될 수 있음을 인식하여야 한다. 그렇지만, 그러한 게임이 여기에서 제시된 바와 같은 클라우드 게이밍 시스템을 통하여 이용가능하게 될 때, 사용자는 다른 컨트롤러 디바이스로 비디오 게임에 액세스하고 있을 수 있다. 예를 들어, 게임이 게임 콘솔 및 그 연관된 컨트롤러에 대해 개발되었지만, 반면 사용자는 키보드 및 마우스를 이용하여 퍼스널 컴퓨터로부터 게임의 클라우드-기반 버전에 액세스하고 있을 수 있다. 그러한 시나리오에 있어서, 입력 파라미터 구성은 사용자의 이용가능한 컨트롤러 디바이스(이 경우에는, 키보드 및 마우스)에 의해 발생될 수 있는 입력으로부터 비디오 게임의 실행을 위해 받아들여질 수 있는 입력으로의 매핑을 정의할 수 있다.
다른 일례에 있어서, 사용자는 태블릿 컴퓨팅 디바이스, 터치스크린 스마트폰, 또는 다른 터치스크린 구동 디바이스를 통하여 클라우드 게이밍 시스템에 액세스할 수 있다. 이 경우에 있어서, 클라이언트 디바이스 및 컨트롤러 디바이스는 동일 디바이스 내 함께 통합되며, 검출된 터치스크린 입력/제스처에 의해 입력이 제공된다. 그러한 디바이스에 대해, 입력 파라미터 구성은 비디오 게임에 대한 게임 입력에 대응하는 특정 터치스크린 입력을 정의할 수 있다. 예를 들어, 버튼, 방향성 패드, 또는 다른 유형의 입력 엘리먼트는 사용자가 게임 입력을 발생시키도록 터치할 수 있는 터치스크린 상의 위치를 나타내도록 비디오 게임의 실행 동안 디스플레이 또는 오버레이될 수 있다. 특정 터치 모션 또는 특정 방향으로의 스와이핑과 같은 제스처가 또한 게임 입력으로서 검출될 수 있다. 일 실시예에서는, 사용자가 터치스크린 상의 컨트롤의 조작에 익숙하게 하도록, 예를 들어 비디오 게임의 게임플레이를 시작하기 이전에, 게임플레이를 위해 터치스크린을 통하여 어떻게 입력을 제공하는지 나타내는 튜토리얼이 사용자에게 제공될 수 있다.
일부 실시예에 있어서, 클라이언트 디바이스는 컨트롤러 디바이스에 대한 접속 포인트로서 역할한다. 즉, 컨트롤러 디바이스는 컨트롤러 디바이스로부터 클라이언트 디바이스로 입력을 송신하도록 무선 또는 유선 접속을 통하여 클라이언트 디바이스와 통신한다. 차례로 클라이언트 디바이스는 이들 입력을 프로세싱하고 그 후 입력 데이터를 (예를 들어, 라우터와 같은 로컬 네트워크 디바이스를 통하여 액세스되는) 네트워크를 통하여 클라우드 게이밍 서버에 송신할 수 있다. 그렇지만, 다른 실시예에 있어서, 컨트롤러는 그 자체로, 우선 클라이언트 디바이스를 통해 그러한 입력을 통신하도록 요구됨이 없이, 클라우드 게이밍 서버에 네트워크를 통하여 직접 입력을 통신할 수 있는 능력을 갖는 네트워크형 디바이스일 수 있다. 예를 들어, 컨트롤러는 데이터를 클라우드 게이밍 서버에 보내고 그로부터 수신하도록 (전술한 라우터와 같은) 로컬 네트워크 디바이스에 접속될 수 있다. 그리하여, 클라이언트 디바이스가 여전히 클라우드-기반 비디오 게임으로부터의 비디오 출력을 수신하고 그것을 로컬 디스플레이 상에 렌더링하도록 요구될 수 있으면서도, 컨트롤러가, 클라이언트 디바이스를 우회하여, 클라우드 게이밍 서버에 네트워크를 통하여 직접 입력을 보낼 수 있게 함으로써 입력 레이턴시가 감축될 수 있다.
일 실시예에 있어서, 네트워크형 컨트롤러 및 클라이언트 디바이스는 특정 유형의 입력을 클라우드 게이밍 서버에 컨트롤러로부터 직접, 그리고 다른 유형의 입력을 클라이언트 디바이스를 통하여 보내도록 구성될 수 있다. 예를 들어, 그 검출이 컨트롤러 자체 외의 어느 부가적 하드웨어 또는 프로세싱에도 종속하지 않는 입력은, 클라이언트 디바이스를 우회하여, 네트워크를 통하여 클라우드 게이밍 서버에 컨트롤러로부터 직접 보내질 수 있다. 그러한 입력은 버튼 입력, 조이스틱 입력, 매립된 모션 검출 입력(예를 들어, 가속도계, 자력계, 자이로스코프) 등을 포함할 수 있다. 그렇지만, 부가적 하드웨어를 이용하거나 클라이언트 디바이스에 의한 프로세싱을 요구하는 입력은 클라이언트 디바이스에 의해 클라우드 게이밍 서버에 보내질 수 있다. 이들은 클라우드 게이밍 서버에 보내기 전에 클라이언트 디바이스에 의해 프로세싱될 수 있는 게임 환경으로부터의 캡처링된 비디오 또는 오디오를 포함할 수 있다. 부가적으로, 컨트롤러의 모션 검출 하드웨어로부터의 입력은 컨트롤러의 위치 및 모션을 검출하도록 캡처링된 비디오와 함께 클라이언트 디바이스에 의해 프로세싱될 수 있어서, 후속하여 클라이언트 디바이스에 의해 클라우드 게이밍 서버에 통신될 것이다. 다양한 실시예에 따른 컨트롤러 디바이스가 또한 클라이언트 디바이스로부터 또는 클라우드 게이밍 서버로부터 직접 데이터(예를 들어, 피드백 데이터)를 수신할 수 있음을 인식하여야 한다.
도 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)에 포함될 수 있다. 알 수 있는 바와 같이, 다양한 세대의 비디오 게이밍 콘솔에 걸쳐 온 다수의 게임 타이틀이 클라우드 게이밍 라이브러리를 통하여 축적되고 이용가능하게 될 수 있다. 설명된 바와 같이, 이들 게임의 각각은 게임이 개발된 소정 게이밍 콘솔과 연관된 운영 체제 환경을 시뮬레이팅하는 가상 기계 상에서 실행될 수 있다. 이러한 방식으로, 클라우드-기반 게이밍 시스템에 액세스하는 사용자는 여러 다른 콘솔에 걸쳐 온 게임과 더불어 클라우드-기반 게이밍 시스템과의 사용을 위해 특히 개발되어 온 게임 및 인터넷 게임과 같은 다른 콘택트로부터의 게임에도 용이하게 액세스하여 플레이할 수 있다.
도 3은, 본 발명의 일 실시예에 따라, 사용자에게 게임 데모를 제공하기 위한 방법을 예시하고 있다. 데모에 이용가능한 다양한 게임 타이틀의 비네트 또는 아이콘(302, 304, 306, 308, 310, 312)을 제공하는 인터페이스(300)가 도시되어 있다. 각각의 아이콘은 그것이 표현하는 게임을 나타내는 이미지를 제공하도록 구성될 수 있다. 일 실시예에 있어서, 사용자가 소정 아이콘으로 항행할 때, 아이콘은 비디오 게임을 표현하는 또는 그렇지 않으면 비디오 게임의 컨텐트에 대해 사용자에게 부가적 정보를 제공하는 애니메이션 또는 비디오 클립을 보여주도록 활성화될 수 있다. 도시된 실시예에 있어서, 사용자는 아이콘(302)으로 항행하였고, 그래서 하이라이트 표시되어 비디오 게임으로부터의 장면을 보여주는 활동적 애니메이션을 디스플레이한다. 사용자가 아이콘을 선택할 때, 미리보기 비디오가 방법 연산(314)에 따라 보여질 수 있다. 사용자가 계속하여 방법 연산(316)에서 게임을 선택하면, 그때 방법 연산(318)에서는, 데모를 위한 게임 코드가 론칭된다. 방법 연산(320)에서는, 게임 데모가 사용자에 의한 게임플레이를 위해 즉석으로 이용가능하게 된다. 게임 데모가 클라우드 기반이기 때문에, 그것은 클라우드-기반 시스템에서 미리 로딩된 게임 데모 실체화로부터 즉석으로 이용가능하게 될 수 있음을 인식하여야 한다. 게임 데모가 론칭될 때, 미리 로딩된 게임 데모 실체화가 실행하도록 트리거링된다(triggered). 방법 연산(322)에서는, 사용자가 게임 데모의 게임플레이를 계속하기를 바라는지 또는, 하나가 이용가능하면, 비디오게임의 부가적 데모를 플레이하기를 바라는지 결정된다. 그러하면, 그때 방법은 연산(322)으로 복귀하여 게임 데모를 계속 실행하거나 또는 비디오게임에 대한 새로운 게임 데모를 실행한다. 아니라면, 그때는 방법 연산(324)에서, 사용자에게 비디오게임의 미니 버전을 구입하는 옵션이 제시된다. 부가적으로, 방법 연산(326)에서는, 사용자에게 비디오게임의 풀 버전을 구입하는 옵션이 제시될 수 있다. 사용자가 게임의 미니 버전 또는 풀 버전 중 어느 하나를 구입하기를 선택하면, 그때 방법 연산(328)에서는 그 게임 버전이 사용자의 계정에 부가된다. 게임이 클라우드-기반 게이밍 시스템을 통하여 이용가능하게 되기 때문에, 사용자의 계정에 게임의 부가는 단순히 게임의 특정 버전으로의 액세스 특권을 사용자의 계정과 연관시키는 것을 수반할 수 있음을 인식하여야 한다. 더욱, 구입되고 나면, 게임은, 특히 게임이 클라우드-기반 시스템에서 미리-실체화될 수 있으므로, 사용자에 의한 게임플레이를 위해 클라우드-기반 시스템으로부터 즉석으로 실제로 이용가능하게 될 수 있다.
도 4a는, 본 발명의 일 실시예에 따라, 비디오게임의 다양한 부분의 계층적 조직을 예시하고 있다. 예로서, 비디오게임은 다양한 섹션(400)으로 조직될 수 있다. 도시된 실시예에 있어서, 이들은 설정 섹션, 도입 섹션, 다양한 레벨 섹션, 및 아우트로 섹션을 포함할 수 있다. 소정 레벨은 다양한 장면으로 더 분할될 수 있다. 도시된 바와 같이, 레벨 3 섹션은 다양한 장면(402)으로 나뉜다. 사용자가 소정 장면을 통해 플레이할 때, 실행된 게임 애플리케이션의 게임 상태 및 레코딩된 입력 데이터뿐만 아니라 사용자의 게임플레이의 레코딩된 비디오도 포함하는, 그 장면의 게임플레이 타임라인이 레코딩될 수 있다. 예시된 실시예에서는, 게임플레이 타임라인(404)이 게임의 레벨 3의 장면 2의 사용자 게임플레이를 표현하는 것으로서 도시되어 있다. 본 발명의 실시예에 의하면, 사용자는 그들의 레코딩된 게임플레이의 어느 부분으로부터 미니 게임 또는 게임 슬라이스를 발생시킬지 선택할 수 있다. 예를 들어, 도시된 실시예에 있어서, 게임플레이 타임라인(404)은 시작 시간(T0) 및 종료 시간(Tz)을 갖는다. 시간(Tx)으로부터 시간(Ty)까지의 게임플레이 타임라인의 일부로부터 미니게임을 발생시키도록 선택되었다.
도 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)은 게임플레이 타임라인의 선택된 부분에 기반하여 생성되는 미니게임에 대한 대표적 이미지로서 이용될 수 있다. 도시된 실시예에서는 터치스크린 인터페이스가 제공 및 설명되고 있더라도, 다른 실시예에서는 다양한 다른 종류의 입력이 미니게임의 생성을 위한 게임플레이의 일부를 정의할 시작 및 종료 포인트를 선택하도록 이용될 수 있음을 인식하여야 한다. 예를 들어, 입력은 레코딩된 게임플레이 비디오로부터의 대표적 이미지 프레임의 선택과 함께 게임플레이의 일부의 선택을 가능하게 하도록 게임 컨트롤러, 키보드를 통하여, 제스처 입력, 음성 입력을 통하여, 그리고 다른 유형의 입력 디바이스 및 메커니즘에 따라 제공될 수 있다.
일부 실시예에 있어서, 선택 마커는 게임플레이 타임라인을 따라 연속적으로 조절가능하지 않을 수 있고, 대신에 게임플레이 타임라인을 따른 기-정의된 시간 포인트로 똑딱하도록 구성될 수 있다. 예를 들어, 미리 정의된 시간 포인트는 게임플레이 타임라인에서 일어나는 특정 이벤트와 대응하도록 정의될 수 있다. 미리 정의된 시간 포인트가 배정될 소정 게임플레이 타임라인의 특정 이벤트는 사용자 게임플레이의 분석에 기반하여 발생될 수 있고, 비디오게임 게임플레이의 특정 아키텍처에 종속할 것이다. 일 실시예에 있어서, 미리 정의된 시간 포인트는 비디오게임에 의해 정의된 가상 세계 내 캐릭터의 지리적 위치에 기반하여 배정될 수 있다. 예를 들어, 미리 정의된 시간 포인트는 캐릭터가, 예를 들어, 하나의 장면 위치로부터 다른 장면 위치로 이동하여, 하나의 도시로부터 다른 도시로 이동하여, 구조물에 들어가, 구조물 내 방에 들어가, 차량에 들어가, 다른 유형의 환경에 들어가, 또는 유의미한 어느 다른 종류의 지리적 이행으로, 하나의 지리적 무대로부터 다른 지리적 무대로 이동한 특정 시간에 배정될 수 있다. 다른 일 실시예에 있어서, 미리 정의된 시간 포인트는 비디오게임에서 제어되는 사용자의 캐릭터 또는 엔티티의 진화에 기반하여 배정될 수 있다. 예를 들어, 미리 정의된 시간 포인트는 사용자에 의해 제어되는 캐릭터 또는 엔티티가 과업을 성취하거나, 스킬을 취득하거나, 물체를 취득하거나, 레벨을 통과하거나 아니면 비디오게임의 일부를 완료하거나, 또는 비디오 게임에서 어느 다른 종류의 유의미한 활동을 수행 또는 달성할 때 배정될 수 있다.
도 4c는, 본 발명의 일 실시예에 따라, 미니게임의 발생을 위해 게임플레이 타임라인의 일부를 선택하기 위한 인터페이스를 예시하고 있다. 게임플레이 타임라인(414)은 일반적으로는, 미니게임을 발생시킬 게임플레이의 선택을 지정하도록, 사용자가 시작 및 종료 마커(416, 418)를 설정할 수 있는 타임라인을 예시하고 있다. 시작 마커(416)의 위치에 대응하는 시작 프레임(410)과 더불어, 종료 마커(418)의 위치에 대응하는 종료 프레임(424)도 보여지고 있다. 프레임은 사용자의 게임플레이의 레코딩된 비디오로부터 식별될 수 있음을 인식할 것이다. 여러 후보 프레임(440, 442, 444, 446)이 제시되며, 그로부터 사용자는 미니게임에 대한 대표적 프레임으로서 이용될 하나를 선택할 수 있다. 후보 프레임은 다양한 방법에 따라 결정될 수 있다. 예를 들어, 후보 프레임은 게임플레이 타임라인의 선택된 부분의 프랙션 인터벌로부터 제시될 수 있다. 인터벌은, 후보 프레임이 게임플레이 타임라인을 따라 동등하게 이격되어 있도록 균등할 수 있거나, 또는 인터벌은, 일부 프레임이 게임플레이 타임라인을 따른 다른 것들보다 서로 더 근접하여 있도록 비-균등일 수 있다. 일 실시예에 있어서, 더 높은 밀도의 후보 프레임은 게임플레이 타임라인의 선택된 부분의 나중 부분에 비해 게임플레이 타임라인의 선택된 부분의 앞선 부분으로부터 발생된다. 일 실시예에 있어서, 더 높은 밀도의 후보 프레임은 게임플레이 타임라인의 선택된 부분의 앞선 영역으로부터도 그리고 나중 영역으로부터도 발생되는 반면, 더 낮은 밀도의 후보 프레임은 게임플레이 타임라인의 선택된 부분의 중심 부분으로부터 발생된다.
사용자가 미니게임을 생성할 게임플레이의 일부를 선택한 후에, 본 발명의 실시예는 게임플레이의 선택된 부분에 기반하여 플레이가능한 미니게임을 생성할 방법 및 시스템을 제공한다. 더 구체적으로, 미니게임은 원래 사용자가 플레이한 비디오 게임의 실질적 동일 부분을 플레이하게 할 수 있고, 실질적으로 동일 조건 및 파라미터 하에서 가능하다. 이러한 의미에서, 미니게임은 (원래 사용자의 게임플레이의 리플레이 비디오 클립이 미니게임과 함께 제시될 수 있더라도) 단순히 원래 사용자의 게임플레이의 리플레이 비디오 이상이지만, 그들 자신의 게임플레이의 사용자 선택에 기반하여 지정된 비디오 게임 자체의 플레이가능한 부분이다. 그리하여 이차 사용자는 원래 사용자와 실질적으로 유사한 게임플레이 체험을 경험할 수 있다.
도 5는, 본 발명의 일 실시예에 따라, 기존 클라우드-기반 비디오게임으로부터 미니게임을 발생시키기 위한 방법을 실증하는 일련의 스크린샷을 예시하고 있다. 스크린샷(500)은 사용자의 비디오게임 플레이를 보여주고 있다. 도시된 실시예에 있어서, 사용자는 비디오게임의 레벨 3을 플레이한다. 스크린샷(502)에서, 사용자는 비디오게임의 레벨 3을 완료하였다. 레벨의 완료시, 사용자에게는 그 레벨의 사용자의 게임플레이에 기반하여 게임 슬라이스 또는 미니게임을 발생시키는 옵션이 제공된다. 사용자가 게임 슬라이스를 발생시키기로 동의할 때, 그 후 스크린샷(504)에서 사용자에게는 사용자의 레코딩된 게임플레이로부터 게임 슬라이스에 대한 시작 포인트를 선택하는 인터페이스가 제시된다. 설명된 바와 같이, 게임플레이 타임라인의 표현은 사용자가 게임 슬라이스에 대한 시작 포인트를 지정하도록 움직일 수 있는 조절가능한 슬라이더와 보여질 수 있다. 사용자가 시작 포인트를 정의한 후에, 그 후 스크린샷(506)에서, 사용자에게는 게임 슬라이스에 대한 종료 포인트의 선택을 가능하게 하도록 구성된 인터페이스가 제시된다. 또다시, 조절가능한 슬라이더는 인터페이스에서 대표적 게임플레이 타임라인을 따라 종료 포인트를 지정하도록 사용자에 의해 움직여진다. 사용자의 게임플레이 타임라인으로부터 시작 및 종료 포인트가 지정된 후에, 게임 슬라이스 또는 미니게임이 여기 다른 곳에서 설명되는 바와 같이 시스템에 의해 발생된다. 스크린샷(508)에서, 사용자에게는, 새롭게 생성된 게임 슬라이스를 다른 사용자와 공유하거나 아니면 새롭게 발생된 게임 슬라이스를 다른 사용자에게 알려주는 옵션, 동일 게임플레이 타임라인으로부터 다른 게임 슬라이스를 발생시키는 옵션, 현재 비디오게임의 게임플레이를 계속하는 옵션, 사용자의 기존 게임 슬라이스를 보는 옵션 등과 같은, 부가적 옵션이 제시될 수 있다. 사용자가 그들의 기존 게임 슬라이스를 보기로 선택하면, 그때 스크린샷(510)에서는, 사용자의 이전 생성된 게임 슬라이스를 디스플레이하는 인터페이스가 보여진다. 도시된 실시예에 있어서, 사용자는, 스크린샷(512)에 도시된 바와 같이, 이전에 생성된 게임 슬라이스 중 하나를 선택하고, 그 게임 슬라이스와 관련된 정보 및 통계를 볼 수 있다. 소정 게임 슬라이스와 관련된 정보 및 통계는 이하의 것 중 어느 것을 포함할 수 있다: 게임 슬라이스의 타이틀, 게임 슬라이스가 원래 생성된 비디오게임, 게임 슬라이스가 생성된 일자, 게임 슬라이스가 다른 사용자에 의해 플레이된 횟수, 게임 슬라이스를 플레이하도록 착수한 사용자에 의해 완료되어 있는 게임 슬라이스의 평균 백분율을 나타내는 완료 백분율, 다른 사용자에 의해 남겨진 코멘트 등.
현재 설명된 실시예에서는 게임 슬라이스를 발생시키는 옵션이 비디오게임의 레벨의 완료에 뒤이어 사용자에게 제시되고 있더라도, 다른 실시예에서는, 게임 슬라이스에 대해 사용자에 의해 선택이 정의될 수 있는 비디오게임의 레코딩된 게임플레이가 존재하면, 사용자는 비디오게임의 게임플레이 동안 또는 그 외 어느 다른 시간에서라도 게임 슬라이스를 발생시킬 수 있음을 인식하여야 한다. 예를 들어, 일 실시예에서는 사용자와 연관되는 다양한 비디오 게임으로부터 다양한 레코딩된 게임플레이로의 액세스를 제공하는 인터페이스가 제시될 수 있다. 사용자는 특정 비디오게임의 게임플레이를 선택하고 여기에서 설명되는 실시예에 따라 게임 슬라이스를 발생시킬 레코딩된 게임플레이의 일부를 선택함으로써 게임 슬라이스를 발생시킬 수 있다.
도 6은, 본 발명의 일 실시예에 따라, 게임 슬라이스 코드를 발생시키기 위한 시스템을 예시하고 있다. 용어 게임 슬라이스 및 미니게임은 여기에서는 기존 레코딩된 게임플레이로부터 사용자 선택에 기반하여 발생되는 비디오게임의 디스크리트 및 플레이가능한 부분을 정의하도록 호환가능하게 사용된다. 도시된 실시예에 있어서, 사용자 게임플레이(600)는 비디오게임의 풀 버전과 대화하는 사용자를 개념적으로 표현한다. 주 게임 코드(602)는 사용자에 의해 디스플레이되는 비디오게임의 풀 버전을 정의하도록 실행된다. 비디오 게임이 플레이될 때, 그것은, 비디오 데이터, 게임 상태 데이터, 및 사용자 입력 데이터를 포함하는, 다양한 유형의 게임플레이 출력을 발생시킨다. 이들은 사용자의 레코딩된 게임플레이를 정의하도록 레코딩될 수 있다. 도시된 실시예에 있어서, 이미지 스트림(604)은 비디오게임에 의해 출력되는 비디오 데이터를 개념적으로 표현한다. 게임 상태 메타데이터(606) 및 사용자 입력 데이터(608)가 또한 도시되어 있다. 게임 상태 데이터(606)는 게임플레이 동안 순간순간 실행 중 비디오게임의 게임 상태를 정의하는 데이터를 포함한다. 게임 상태 데이터는 비디오게임의 실행 상태를 정의하는 어떠한 변수의 값이라도 포함할 수 있다. 사용자 입력 데이터는, 컨트롤러 디바이스 상의 입력 디바이스의 활성화, 센서 데이터(예를 들어, 모션 센서)의 검출, 캡처링된 오디오 입력 등을 통하여 제공될 수 있는 바와 같이, 비디오게임과의 대화 동안 일어나는 사용자 개시된 액션을 캡처링함으로써 발생된 데이터이다.
설명된 바와 같이, 사용자 인터페이스는 게임 슬라이스를 발생시킬 사용자의 게임플레이의 일부의 사용자에 의한 선택을 용이하게 하도록 사용자의 레코딩된 게임플레이를 그래픽 묘사할 수 있다. 도시된 실시예에 있어서, 사용자는 그들 레코딩된 게임플레이로부터 선택(610)을 정의하였다. 사용자의 레코딩된 게임플레이의 이러한 선택은 사용자의 게임플레이의 선택된 부분에 기반하여 제한된 게임을 정의하는 게임 슬라이스 코드(622)를 발생시키도록 게임 슬라이스 발생기에 의해 이용된다. 게임 슬라이스 발생기(612)는 레코딩된 선택(610)의 게임 상태를 분석하는 게임 상태 분석기(614)를 포함한다. 레코딩된 선택의 게임 상태의 분석에 기반하여, 게임 브레이크포인트 프로세서는 게임 슬라이스의 시작 및 종료를 정의하기에 적합한 브레이크포인트를 결정한다. 브레이크포인트는 지리, 시간, 과업 또는 목표 성취, 장면 경계(물리적 또는 시간적), 또는 비디오 게임의 게임플레이가 게임 슬라이스를 발생시키도록 따라 세그먼팅될 수 있는 비디오 게임의 어느 다른 태양에 기반하여 정의될 수 있다. 일부 예시적 실시예의 간략한 설명이 브레이크포인트 결정에 대한 특정 가능성을 강조하는 역할을 할 것이다.
예를 들어, 일부 비디오 게임은 하나의 지리적 장면 또는 무대로부터 다른 장면 또는 무대로 이동될 수 있는 캐릭터의 제어를 수반한다. 사용자의 게임플레이의 선택된 부분은 특정 장면에서의 게임플레이로부터 발생되도록 결정될 수 있다. 그러한 일 실시예에 있어서, 특정 장면의 경계는 게임 슬라이스에 대한 지리적 브레이크포인트를 정의하여, 인접하지 않거나 맞닿지 않은 아니면 특정 장면과 덜 관련되거나 무관한 장면뿐만 아니라 다른 인접하거나 맞닿은 장면의 배제를 수반하는, 다른 장면의 배제로, 장면을 선택할 수 있다. 레코딩된 게임플레이 선택(610)은 다수의 장면으로부터의 게임플레이를 수반할 수 있고, 그 경우에, 게임 브레이크포인트 프로세서(616)는 레코딩된 게임플레이 선택을 위해 이용되는 다수의 장면의 경계에 따라 브레이크포인트를 정의하도록 구성될 수 있음을 인식하여야 한다.
장면은 본질상 지리적이고 또한 시간적일 수 있음을 유념해야 한다. 즉, 장면은 비디오 게임에 의해 정의된 가상 공간 내 지리적 영역을 정의할 수 있을 뿐만 아니라, 또한 비디오 게임의 더 큰 맥락 내 특정 연대기적 포인트에서 또는 특정 시간 동안 존재하도록 구성될 수 있다. 그러한 장면은 플레이어에 의해 성취되어야 하는 목적 또는 목표를 정의하였을 수 있다. 그리하여, 게임 브레이크포인트는 비디오 게임에 의해 정의된 바와 같이 연대기적 또는 다른 시간적 태양에 기반하여 정의될 수 있다.
더욱, 소정 장면은 게임플레이 동안 장면의 일부분으로서 제시되는 물체 또는 피처(feature)를 연관시켰을 수 있다. 이들 물체 또는 피처는 그들 포함에 따라 추가적 브레이크포인트를 정의하도록 분석될 수 있다. 예를 들어, 장면 내 물체는 자산 라이브러리의 부분 집합으로부터 취해질 수 있고, 그 경우 자산 라이브러리의 부분 집합은, 레코딩된 게임플레이 선택과 연관된 장면(들)에서 이용되지 않는 자산 라이브러리 내 다른 물체를 배제하고, 게임 브레이크포인트 프로세서(616)에 의해 게임 슬라이스에 대해 정의될 수 있다. 물체 및 피처는 소정 장면의 동적 엘리먼트일 수 있으며, 연관된 메커니즘은 비디오 게임에서 일어나는 이벤트에 응답하여 그들 변화를 정의할 수 있음을 이해하여야 한다. 예를 들어, 물체는 그것이 손상될 때(예를 들어, 무기에 맞았을 때) 물체의 외관을 결정 및 조절하는 손상 모델링 모듈을 갖고 있을 수 있다. 또는 피처는 장면 동안 이용가능하게 되는 차량일 수 있으며, 차량은 게임플레이 동안 그 외관과 더불어 그 조작 및 사용자 입력에 대한 반응도 정의하는 로직을 연관시켰을 수 있다. 그러한 로직 또는 손상 모델링은 게임 슬라이스의 발생을 위한 게임 브레이크포인트를 더 정의할 수 있다.
비디오 게임의 선택된 부분에 대해 이용되거나 그렇지 않으면 정의하는 비디오 게임의 다양한 태양이 게임 브레이크포인트를 정의하기 위한 기반일 수 있다. 현재 설명되는 예들은 단지 예로서 제공될 뿐이고 제한으로서가 아니다. 다른 실시예에 있어서, 비디오 게임의 다른 태양이 게임 슬라이스를 발생시킬 브레이크포인트를 정의하기 위한 기반을 형성할 수 있다.
일 실시예에 있어서, 비디오 게임은, 나중 장면은 그 선행하는 장면이 우선 완료될 때까지 시도될 수 없게 되도록, 선형 방식으로 완료되어야 하는 다양한 장면으로 조직될 수 있다. 각각의 장면은 여러 목적 또는 목표를 포함할 수 있으며, 그 중 일부는 장면의 완료에 요구될 수 있고, 그 중 일부는 장면의 완료에 선택사항일 수 있다. 목적은 장면 내 미리 정의된 종료 위치로 시작 위치로부터 항행하는 것, 미리 정의된 시간 길이 동안 살아남는 것, 미리 정의된 수의 적을 죽이는 것, 소정 수의 포인트를 취득하는 것, 특정 적을 물리치는 것, 또는 게임 내 목적을 정의할 수 있는 어떠한 다른 활동이라도 포함할 수 있다. 장면은 다양한 미리 정의된 완료 포인트, 즉, 사용자가, 완료 포인트를 달성하고 나면, 사용자가 어떤 이유(예를 들어, 사용자가 게임을 그만 둠, 사용자의 캐릭터가 죽거나 생명 또는 건강을 다함, 사용자의 차량 박살 등)로 게임플레이를 계속할 수 없게 되면 그 포인트로 복귀할 수 있는 포인트를 가질 수 있다. 미리 정의된 완료 포인트에서, 비디오 게임은 사용자의 진행을 자동으로 저장하거나, 또는 그들 진행을 저장하는 옵션을 사용자에게 제시하도록 구성될 수 있다.
일 실시예에 있어서, 게임 브레이크포인트 프로세서(616)는 미리 정의된 완료 포인트에서 게임 브레이크포인트를 정의하도록 구성된다. 일 실시예에 있어서, 이것은, 사용자의 레코딩된 게임플레이 선택의 선택된 시작 및 종료 포인트에 가장 가까운 완료 포인트를 찾고, 그리고 이들 가장 가까운 완료 포인트를 이용하여 게임 슬라이스에 대한 게임 브레이크포인트를 정의함으로써 성취된다. 다른 일 실시예에 있어서, 레코딩된 게임플레이 선택의 선택된 시작 포인트 전에 일어나는 가장 가까운 완료 포인트는 시작 브레이크포인트를 정의하도록 이용되는 반면, 레코딩된 게임플레이 선택의 선택된 종료 포인트 후에 일어나는 가장 가까운 완료 포인트는 게임 슬라이스의 생성을 위한 종료 브레이크포인트를 정의하도록 이용된다. 또 다른 일 실시예에 있어서, 완료 포인트가 사용자의 레코딩된 게임플레이 선택의 시작 또는 종료 포인트 중 어느 하나의 (예를 들어, 그 전이든 그 후이든) 미리 정의된 반경 내 놓여 있으면, 그때 그 완료 포인트는 게임 슬라이스에 대한 대응하는 시작 또는 종료 게임 브레이크포인트를 정의하도록 이용된다. 반면에, 완료 포인트가 미리 정의된 반경 내에 놓여 있지 않으면, 그때는 레코딩된 선택에 대한 사용자의 선택된 시작 또는 종료 포인트와 더 밀접하게 매칭하는 게임 브레이크포인트가 정의된다. 다른 실시예에 있어서, 시작 및 종료 포인트에 대한 미리 정의된 반경은 게임 브레이크포인트를 정의하는데 기존 완료 포인트를 이용할지 결정하려는 목적으로 다를 수 있다.
논의된 바와 같이, 게임 브레이크포인트 프로세서(616)는 사용자 레코딩된 게임플레이 선택의 분석에 기반하여 비디오게임의 다양한 태양에 적용가능한 적합한 브레이크포인트를 결정한다. 프로세서(616)에 의해 정의된 브레이크포인트는 사용자 레코딩된 게임플레이 선택에 기반하여 산출될 게임 슬라이스의 제한된 범위를 정의하는 역할을 한다. 일 실시예에 있어서, 오버레이 프로세서(617)는 게임 슬라이스 발생기(612)에 의해 발생된 게임 슬라이스를 플레이할 때 개선된 사용자 체험에 기여할 수 있는 오버레이를 발생시키도록 제공된다. 예를 들어, 일 실시예에 있어서, 오버레이 프로세서(617)는 게임 슬라이스의 실제 게임플레이 이전에 게임 슬라이스로의 도입부로서 제공될 수 있는 비디오 또는 게임플레이 또는 부가적 정보를 정의하는 프리-게임 슬라이스 데이터를 정의한다. 프리-게임 슬라이스 데이터의 일례는 슬라이스가 된 게임플레이를 개시하는 사용자에게 맥락을 제공할 수 있는 입문 비디오이다. 다른 일 실시예에 있어서, 프리게임 슬라이스 데이터는, 슬라이스 게임을 플레이하는데 요구되거나 유용할 수 있는 스킬을 배울 기회를 사용자에게 제공할 수 있는, 게임 슬라이스에 대한 입문 게임플레이를 정의할 수 있다. 다른 일 실시예에 있어서, 프리게임 슬라이스 데이터는 게임 슬라이스에 대한 정보를 사용자에게 제공하는 일련의 하나 이상의 정보 스크린 또는 이미지를 정의할 수 있다. 그러한 정보는 사용자에게 유용하거나 아니면 게임 슬라이스를 플레이하는 사용자의 체험을 개선할 수 있는 게임 슬라이스와 관련한 컨트롤러 구성, 스토리 배경 정보, 목적 또는 목표, 맵, 또는 어느 다른 유형의 정보를 포함할 수 있다.
오버레이 프로세서(617)는 또한 포스트게임 슬라이스 데이터를 정의하도록 구성될 수 있다. 일부 실시예에 있어서, 포스트게임 슬라이스 데이터는 게임 슬라이스의 게임 플레이의 완료에 뒤이어 보여질 비디오 또는 이미지를 정의할 수 있다. 예를 들어, 사용자가 게임 슬라이스를 완료한 후에 축하 비디오가 보여질 수 있다. 그러한 비디오는, 예를 들어, 사용자의 게임플레이에 기반하는 정보 또는 이미지를 보여줌으로써 게임 슬라이스의 사용자의 게임플레이에 기반하여 커스터마이징될 수 있다. 일 실시예에 있어서, 포스트게임 슬라이스 데이터는 그 완료에 뒤이어 게임 슬라이스의 사용자의 게임플레이의 레코딩된 부분을 플레이하는 재생 메커니즘을 정의할 수 있다. 다른 일 실시예에 있어서, 포스트게임 슬라이스 데이터는 게임 슬라이스의 사용자 게임플레이에 대한 통계를 디스플레이하도록 구성될 수 있고, 게임 슬라이스의 원래 생성자의 것 또는 다른 사용자의 것에 대해 사용자 게임플레이의 비교를 나타낼 수 있다. 또 다른 실시예에 있어서, 포스트게임 슬라이스 데이터는 게임 슬라이스의 완료시 사용자에게 제시될 부가적 대화형 엘리먼트를 정의할 수 있다. 이들은 게임 슬라이스가 기반하는 비디오 게임을 전체로 또는 부분적으로 구입하는 옵션, 비디오게임과 관련한 부가적 정보 소스로의 리디렉트 옵션 등을 포함할 수 있다.
일부 실시예에 있어서, 오버레이 프로세서(617)는 게임 슬라이스 내로 오버레이되는 엘리먼트를 정의하도록 구성될 수 있다. 이들은, 캐릭터, 물체, 속성, 및 다른 유형의 커스터마이징 옵션의 커스터마이징과 같이, 게임 슬라이스를 플레이하는 사용자에 의해 커스터마이징될 수 있는 엘리먼트를 포함할 수 있다. 일부 실시예에 있어서, 오버레이 프로세서(617)는 게임 슬라이스를 실행하는데 요구되는 자원량 및 게임 슬라이스 코드의 복잡도를 감축하도록 게임 슬라이스에 대해 단순화된 엘리먼트를 정의하도록 구성될 수 있다. 예로서, 많은 비디오 게임은 캐릭터, 차량, 적 등과 같은 인공 지능(AI) 엔티티를 포함한다. 이들 AI 엔티티는 풀 비디오게임에서는 비디오게임에서 일어나는 이벤트에 기반하여 AI 엔티티의 리액션 및 활동을 정의하는 인공 지능 모델에 의해 지배될 수 있다. 그렇지만, 제한된 범위인 게임 슬라이스의 맥락에서는, 풀 비디오게임에서 그러할 바와 같이 AI 엔티티의 활동을 풀 모델링하기보다는, 하드코딩된 정의 또는 단순화된 외삽을 통해 AI 엔티티의 활동을 단순히 정의하는 것이 수용가능할 수 있다.
예를 들어, 풀 비디오게임의 레코딩된 게임플레이 선택에 있어서 소정 AI 캐릭터가 게임 슬라이스에서 변화할 것 같지 않은 그 AI 모델에 따라 특정 방식으로 움직이면, 그때는 게임 슬라이스에 대한 AI 캐릭터의 움직임의 근사를 정의하는 것이 더 효율적일 수 있다. 그러한 근사는 게임 슬라이스 코드의 일부분으로서 풀 AI 모델이 포함될 것을 요구하지는 않을 것이지만, 게임 슬라이스를 플레이하는 사용자에게 그 AI 캐릭터에 관해 게임 슬라이스가 발생된 원래 사용자의 게임 플레이의 것과 실질적으로 유사한 체험을 제공할 것이다. AI 엔티티의 근사를 통해 실현된 자원 절약은 사용자의 레코딩된 게임플레이 선택에서 다수의 AI 엔티티가 존재하여 대화하고 있을 때 훨씬 더 상당할 수 있다. AI 엔티티의 각각에 대하여 다른 AI 엔티티의 것들의 출력에 종속하는 AI 모델을 가질 수 있다. 그렇지만, 게임플레이가 레코딩되었을 때 이들 AI 엔티티의 각각의 활동은 알려져 있고, 그래서 그들 활동의 근사 및 그들 제어 변수의 직접 인코딩과 같은 단순화된 메커니즘을 통해 게임 슬라이스에서 재현될 수 있다.
도 6을 계속 참조하면, 게임 설정 상태 프로세서(618)는 게임 슬라이스의 초기 상태를 정의하도록 제공된다. 게임 상태 분석기(614), 게임 브레이크포인트 프로세서(616), 및 게임 설정 상태 프로세서(618)의 연산에 기반하여, 코드 어셈블리 매니저(620)는 게임 슬라이스 코드(622)를 정의하도록 다양한 코드 부분을 어셈블링한다. 게임 슬라이스 코드(622)가 실행될 때, 사용자 게임플레이(624)는, 사용자에게 게임 슬라이스를 렌더링하도록 비디오 데이터 및 피드백 데이터를 포함하는 게임플레이 출력을 산출하는, 게임 슬라이스 코드의 실행의 상태를 정의하도록 입력을 제공한다. 비디오 데이터는 프리게임 슬라이스 오버레이 비디오(622), 게임 슬라이스의 게임플레이로부터 초래되는 비디오인 게임 슬라이스 비디오(624), 및 포스트게임 슬라이스 오버레이 비디오(626)를 포함할 수 있다.
일 실시예에 있어서, 게임 슬라이스 코드(622)는, 게임 슬라이스를 실행하도록 요구되는 모든 코드 부분을 포함하여, 완전히 자체-포함되어 있음을 인식하여야 한다. 그렇지만, 다른 실시예에 있어서, 게임 슬라이스 코드(622)는 풀 비디오 게임의 주 게임 코드 내 기존 코드 부분으로의 참조 또는 포인터를 편입시킬 수 있다. 더욱, 게임 슬라이스 코드(622)는 풀 비디오 게임의 주 게임 코드의 자산 라이브러리 내 기존 자산을 이용하거나 참조를 포함할 수 있다. 그렇지만, 다른 실시예에 있어서는, 새로운 자산 라이브러리가 게임 슬라이스 코드에 대해 발생될 수 있다.
도 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)를 횡단할 가능성이 더 클 것이고, 그리하여 유사한 게임플레이를 체험한다.
게임 슬라이스 또는 미니게임에 대해 정의된 가상 공간의 부분은 사용자의 레코딩된 게임플레이에 기반하여 결정되는 경계에 의해 정의될 수 있음을 인식할 것이다. 경계는 더 큰 가상 공간의 부분-영역을 정의하고, 더 큰 가상 공간에서 이용가능한 피처의 부분 집합을 포함할 것이다. 일부 실시예에 있어서, 가상 공간 경계는 사용자의 게임플레이에 의해 정의된 가상 공간 내 위치를 결정하고, 그 후 그들 위치에 가장 가깝고 그것들을 망라하도록 배열되는 가상 공간과 연관된 미리 정의된 경계를 결정함으로써 결정될 수 있다. 예를 들어, 사용자의 게임플레이는 사용자의 비디오 게임 캐릭터에 의해 횡단된 경로를 정의할 수 있다. 이러한 경로는 분석될 수 있고, 가상 공간 내 경로의 위치에 기반하여, 미리 정의된 경계 세트가 그 경로를 망라하는 영역을 정의하도록 선택될 수 있다. 일부 실시예에 있어서, 미리 정의된 경계는 가상 공간의 부분들을 고유하게 정의하는 특정 피처, 예를 들어, 문, 창, 벽, 방, 복도, 펜스, 도로, 교차로, 복도 등에 의해 정의될 수 있다.
도 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)로부터의 다른 장면은 게임 슬라이스에서의 게임플레이에는 이용가능하지 않다. 설명된 바와 같이, 본 발명의 실시예에 따른 시스템은 게임 슬라이스를 발생시킬 때 장면의 포함을 제한하도록 구성될 수 있다. 이러한 방식으로, 게임 슬라이스는 그 게임플레이의 제한된 맥락 및 의도된 목적에 요구되지 않는 장면을 포함하지 않는다.
도 8은, 본 발명의 일 실시예에 따라, 게임 슬라이스를 발생시키기 위한 방법을 예시하고 있다. 방법 연산(800)에서, 비디오게임의 사용자 게임플레이는 레코딩되며, 비디오게임의 게임 상태 데이터 및 입력 데이터와 같은 비디오게임 데이터 및 사용자 게임플레이의 비디오의 레코딩을 포함한다. 방법 연산(802)에서는 게임 슬라이스를 발생시키도록 레코딩된 게임플레이의 선택을 위해 사용자 인터페이스가 제시된다. 인터페이스는 레코딩된 게임플레이로부터 시작 및 종료 포인트를 정의하도록 사용자 입력을 수신하기 위한 메커니즘을 정의한다. 예를 들어, 레코딩된 게임플레이 비디오를 검토하기 위한 인터페이스는 게임플레이 비디오의 재생 또는 항행에 기반하여 게임플레이 비디오 내 시작 및 종료 포인트를 사용자가 정의 가능하게 하도록 제공될 수 있다. 방법 연산(804)에서는, 게임플레이 비디오의 사용자-정의된 선택이 수신된다. 방법 연산(806)에서, 비디오게임 브레이크포인트는 게임플레이 비디오의 수신된 사용자-정의된 선택에 기반하여 식별된다. 일 실시예에 있어서는, 비디오게임에 대해 미리 정의된 브레이크포인트가 있다. 게임플레이 비디오의 사용자-정의된 선택에 기반하여, 사용자-정의된 선택의 시작 및 종료 포인트에 가장 가까운 게임 브레이크포인트는 발생될 게임 슬라이스에 대한 게임 브레이크포인트로서 선택될 수 있다. 방법 연산(808)에서는, 게임 코드가 식별된 브레이크포인트에 의해 정의된 바와 같은 슬라이스 선택에 대해 정의된다. 방법 연산(810)에서는, 게임 설정 상태가 슬라이스 선택에 대해 정의된다. 일 실시예에 있어서, 게임 설정 상태는 사용자의 레코딩된 게임플레이 동안 존재한 게임 상태에 기반한다. 방법 연산(812)에서는, 게임 슬라이스 코드가 발생되고, 방법 연산(814)에서는, 게임 슬라이스 코드가 게임 슬라이스 라이브러리에 저장되고 사용자의 계정과 연관된다.
일 실시예에 있어서, 방법은 제안된 게임 슬라이스 비디오 선택이 사용자의 레코딩된 게임플레이 비디오 및 데이터에 기반하여 발생되는 방법 연산(816)을 포함할 수 있다. 사용자 게임플레이의 제안된 선택은 사용자의 레코딩된 게임플레이의 분석에 기반하여 결정될 수 있다. 예를 들어, 더 높은 활동 레벨(예를 들어, 미리 정의된 임계치를 초과하는 활동 레벨)이 검출되는 게임플레이의 부분이 가능한 게임 슬라이스 비디오 선택으로서 제안될 수 있다. 방법 연산(818)에서, 게임 슬라이스 선택을 위한 전술한 사용자 인터페이스는 제안된 게임 슬라이스 비디오 선택을 사용자에게 제시할 수 있다. 일 실시예에 있어서는, 각각의 제안된 게임 슬라이스 비디오 선택을 표현하는 스크린샷이 사용자에게 제시될 수 있다. 방법 연산(820)에서는 제안된 게임 슬라이스 비디오 선택 중 하나의 사용자에 의한 선택이 수신된다. 사용자 선택에 기반하여, 게임 슬라이스 코드가 앞서 설명된 바와 같이 발생 및 저장될 수 있다.
도 9a는, 본 발명의 일 실시예에 따라, 다양한 게임 타이틀과 연관된 게임 슬라이스를 브라우징하기 위한 인터페이스를 예시하고 있다. 도시된 실시예에 있어서, 인터페이스는 선택될 때 여러 다른 게임 타이틀에 대응하는 다양한 페이지로의 액세스를 제공하는, 탭(900, 902, 904)을 포함하는, 일련의 탭으로 조직된다. 도시된 실시예에 있어서는, 탭(900)이 현재 선택되어서, 제시된 페이지는 특정 게임 타이틀(T1)에 대해 생성된 게임 슬라이스에 대한 정보를 제공한다. 게임 슬라이스 목록(904)은 게임 타이틀(T1)로부터 생성되었던 다양한 게임 슬라이스를 열거하고 있다. 일 실시예에 있어서, 게임 슬라이스 목록(904)은 또한 게임 슬라이스를 생성한 사용자를 식별시킨다(예를 들어, 게임 슬라이스를 생성한 사용자의 사용자명을 디스플레이한다). 일 실시예에 있어서, 게임 슬라이스 목록(904)은 게임 슬라이스 목록(904) 내 열거된 게임 슬라이스 중 다른 것들을 하이라이트 표시하도록 항행 또는 브라우징될 수 있다. 도시된 실시예에서는, 사용자(A)에 의해 생성된 게임 슬라이스(A)가 현재 하이라이트 표시되어, 게임 슬라이스(A)와 관련한 상세(906)가 디스플레이되게 야기한다. 상세(906)는, 게임 슬라이스가 발생된 레벨 또는 스테이지, 게임 슬라이스가 생성된 위치에 대한 더 구체적 정보를 제공하는 게임 상세, 게임 슬라이스를 생성한 사용자(A)에 의한 코멘트, 타인으로부터의 코멘트의 수, 게임 슬라이스가 플레이된 횟수, 또는 게임 슬라이스의 목록이 하이라이트 표시될 때 제공될 수 있는 게임 슬라이스에 대한 어느 다른 유형의 정보와 같은, 게임 슬라이스와 관련된 다양한 종류의 정보를 포함할 수 있다.
도 9b는, 본 발명의 일 실시예에 따라, 게임 슬라이스 정보 페이지를 예시하고 있다. 게임 슬라이스 정보 페이지는 도 9a를 참조하여 논의된 게임 슬라이스(A)에 대한 것이고, 도 9a에 도시된 바와 같이 게임 슬라이스(A)의 목록을 사용자가 선택할 때 도달될 수 있다. 도 9b를 계속 참조하면, 게임 슬라이스 정보 페이지는 게임 슬라이스와 관련된 다양한 종류의 정보를 제공한다. 게임 슬라이스에 대한 서지 정보(예를 들어, 타이틀, 게임 슬라이스를 생성한 사용자의 사용자명, 생성 일자 등)에 부가하여, 게임 슬라이스의 비디오(910)가 디스플레이될 수 있다. 일 실시예에 있어서, 비디오(910)는 게임 슬라이스를 생성한 원래 사용자의 레코딩된 게임플레이 비디오이다. 다른 일 실시예에 있어서, 비디오(910)는, 게임 슬라이스에서 가장 높은 득점을 달성한 사용자, 또는 게임 슬라이스를 가장 최근에 플레이한 사용자와 같은, 다른 사용자의 레코딩된 게임플레이 비디오일 수 있다. 일 실시예에 있어서, 비디오(910)는 게임 슬라이스를 현재 플레이하고 있는 사용자의 라이브 피드일 수 있다. 다른 실시예에서는, 비디오 대신에 게임 슬라이스의 대표적 이미지가 보여질 수 있다.
게임 슬라이스 정보 페이지는 게임 슬라이스의 게임플레이를 개시하기 위한 선택가능한 버튼(912)을 더 포함할 수 있다. 게임 슬라이스 정보 페이지는 또한, 플레이의 수, 평균 완료율 등과 같은, 게임 슬라이스에 대한 다양한 상세 및 통계 정보의 특징을 나타낼 수 있는, 상세 섹션(914)을 포함할 수 있다. 게임 슬라이스 정보 페이지는 또한, 사용자들에 의해 남겨진 코멘트를 특징으로 하는, 코멘트 섹션(916)을 포함할 수 있다. 분류 버튼(918)은 코멘트를 분류하기 위한 다양한 옵션을 선택하도록 제공될 수 있다(예를 들어, 연대기 순서, 역 연대기 순서, 가장 인기 있는 것, 순위 평가로, 현재 사용자에 대한 관계로(예를 들어, 소셜 그래프 내 사용자의 친구에 의한 코멘트가 우선순위) 등).
도 10은, 본 발명의 일 실시예에 따라, 클라우드 게이밍 소셜 네트워크 내 친구의 라이브 뷰를 포함하는, 사용자의 계정 정보의 뷰를 예시하고 있다. 라이브러리 섹션(1002)은 사용자의 라이브러리 내 다양한 게임 타이틀을 디스플레이한다. 이들은 사용자가 구입하였거나 아니면 취득한 게임 타이틀일 수 있다. 게임 타이틀의 디스플레이는, 타이틀 정보에 부가하여, 대표적 그래픽의 디스플레이를 포함할 수 있다. 게임은 풀 버전 게임 타이틀일 수 있지만, 각각 풀 버전 게임 타이틀의 일부이거나 풀 버전 게임 타이틀에 비해 일부 용량이 제한될 수 있는, 제한된 버전인 미니 버전일 수도 있음을 인식할 것이다. 친구 목록(1004)은 클라우드 게이밍 시스템과 연관된 소셜 네트워크 내 현재 사용자의 친구(즉, 현재 사용자의 소셜 그래프 내 다른 사용자)를 열거한다. 소셜 네트워크는 클라우드 게이밍 시스템에 특정한 소셜 네트워크일 수 있거나, 클라우드 게이밍 시스템이 사용자의 소셜 그래프에 대한 정보를 획득하도록 통신하는, 클라우드 게이밍 시스템과는 별개로 존재하는 (제3자) 소셜 네트워크일 수도 있다. 친구 목록(1004)은, 각각의 친구에 의해 소유되는 게임을 묘사하는 것, 친구의 온라인 상태(예를 들어, 온라인, 오프라인, 비활동 등)를 식별시키는 것, 친구의 마지막 로그인 및 그 지속시간, 친구에 의해 플레이된 마지막 게임 등과 같은, 사용자의 친구에 대한 부가적 정보를 포함할 수 있다.
일 실시예에 있어서, 라이브 활동 사용자 섹션(1006)은 현재 온라인으로 있고 비디오 게임을 플레이하고 있을 수 있는 친구의 게임플레이의 라이브 뷰를 제공한다. 일 실시예에 있어서, 각각의 사용자는 그들의 라이브 게임플레이를 다른 사용자에 의한 라이브 보기에 이용가능하게 할지 여부를 정의하는 옵션을 갖는다. 그러한 일 실시예에 있어서, 라이브 뷰는 그들의 라이브 게임플레이가 다른 사용자에 의해 보일 수 있게 허용하도록 지정된 옵션을 갖는 그들 사용자로부터만 제시된다. 도시된 실시예에 있어서, 라이브 활동 사용자 섹션(1006)은 친구(A)의 현재 게임플레이의 라이브 뷰(1008)와 더불어, 친구(B)의 현재 게임플레이의 라이브 뷰(1010)도 포함한다. 일 실시예에 있어서, 현재 사용자는 친구 목록(1004)의 친구를 항행 또는 브라우징하고 그리고/또는 라이브 활동 사용자 섹션(1006)에서 이용가능한 라이브 뷰를 브라우징할 수 있다. 일 실시예에 있어서, 라이브 뷰는 현재 사용자가 거기로 항행할 때 하이라이트 표시될 수 있고, 다른 라이브 뷰와는 구별되는 방식으로 렌더링될 수 있다. 예를 들어, 라이브 뷰는 디폴트로 채도가 감소된 컬러 기법으로 디스플레이될 수 있지만, 하이라이트 표시되거나 선택될 때는 완전 채도의 컬러 기법으로 디스플레이될 수 있다. 라이브 뷰는 디폴트로 또한 더 낮은 해상도, 프레임레이트 또는 사이즈로 디스플레이될 수 있지만, 선택될 때는 더 높은 해상도, 프레임레이트 또는 사이즈로 디스플레이될 수 있다. 이러한 방식으로, 대역폭은, 사용자가 보기에 관심 있는 라이브 뷰를 동시에 활동하고 있을 수 있는 다른 라이브 뷰보다 더 큰 하이파이로 제공하도록, 사용자 선택에 기반하여 특정 라이브 뷰에 할당될 수 있다. 라이브 뷰는 단지 비디오 게임의 특정 게임플레이만이 아니라, 그들 클라우드 게이밍 세션과 관련된 다른 유형의 활동 또는 메뉴를 통한 그들의 항행과 같이, 클라우드 게이밍 시스템 상의 친구의 다른 활동도 디스플레이할 수 있음을 인식하여야 한다.
일 실시예에 있어서, 라이브 뷰는 비디오 게임의 게임플레이에 현재 활동적으로 참여하고 있는 그들 사용자에게만 이용가능하다. 환언하면, 사용자가 오프라인으로 있거나, 온라인이지만 비디오 게임의 게임플레이에 활동적으로 참여하고 있지 않을 때는 소정 사용자의 라이브 뷰가 이용가능하지 않다. 그리하여, 사용자가 클라우드 게이밍 시스템 상에서 다른 비-게임플레이 활동을 수행(예를 들어, 시스템에 로그인하는 동안 클라우드 게이밍 시스템의 그래픽 인터페이스를 항행)하고 있을 때, 그러한 활동은 타인이 보도록 라이브 피드에서 이용가능하게 되지 않는다. 다른 일 실시예에 있어서, 라이브 뷰는, 사용자의 게임플레이와 더불어 다른 비-게임플레이 활동도 포함하는, 클라우드 게이밍 시스템에 로그인되는 사용자의 모든 활동을 포함할 수 있다.
일 실시예에 있어서, 소정 사용자의 라이브 뷰는 타인이 보기에 잠재적으로 민감하거나 개인적인 정보를 노출시키지 않도록 필터링될 수 있다. 예를 들어, 클라우드 게이밍 시스템은 채팅 기능을 지원할 수 있다. 일부 사용자가 그들의 채팅이 비밀로 남아있기를 바랄 수 있으므로, 라이브 뷰를 제시할 때 채팅 로그를 배제하는 옵션이 제공될 수 있다. 채팅 기능은 게임플레이 활동 동안은 물론 비-게임플레이 활동 동안에도 구현될 수 있고, 이들 상황 중 어느 하나 또는 둘 다의 라이브 뷰로부터 필터링될 수 있음을 인식하여야 한다. 다른 일 실시예에서는, 비디오 게임의 태양이 라이브 뷰로부터 필터링될 수 있다. 예를 들어, 사용자는 특정 사용자-정의된 설정을 비밀로 유지하기를 바랄 수 있는데 그것들이 게임플레이 동안 그 사용자에게 이점을 부여할 수 있기 때문이다. 그리하여, (예를 들어, 사용자가 비디오 게임의 설정 인터페이스에 액세스할 때) 설정과 관련된 활동이 라이브 피드의 일부분으로서 디스플레이되지 않는 옵션이 제공될 수 있다. 다른 일 실시예에 있어서, 라이브 뷰는 개인적인 정보의 보기를 방지(예를 들어, 사용자가 개인적 정보 페이지에 액세스할 때, 지불 정보를 입력할 때, 비밀번호를 입력할 때 등 보기를 방지)하도록 구성될 수 있다.
일 실시예에 있어서, 인터페이스는 현재 온라인으로 있는 이차 사용자의 게이밍 세션에 합류하도록 요청하는 옵션을 일차 사용자에게 제공한다. 예를 들어, 일차 사용자는 이차 사용자의 라이브 게임플레이 피드를 보고 이차 사용자의 게임플레이에 합류하기를 바랄 수 있다. 일 실시예에 있어서, 옵션의 활성화는 요청을 이차 사용자에게 보내어 일차 사용자가 그들 세션에 합류하기를 바란다고 이차 사용자에게 통지한다. 이차 사용자가 그 요청을 수락하면, 그때는 비디오 게임의 멀티플레이어 모드가 개시되어, 제1 및 제2 사용자에 의한 멀티플레이어 게임플레이를 용이하게 한다. 다른 일 실시예에 있어서, 2 이상의 이차 사용자가 이미 멀티플레이어 게임플레이에 참여하고 있을 수 있다. 그러한 일 실시예에 있어서, 일차 사용자는 멀티플레이어 게임플레이에 합류하는 요청을 보낼 수 있다. 이차 사용자 중 하나(예를 들어, 게임플레이 세션의 지정된 호스트)에 의한 요청의 수락시, 일차 사용자는 비디오 게임의 멀티플레이어 세션에 합류할 수 있다. 이차 사용자의 라이브 게임플레이 피드를 보여주는 전술한 인터페이스는 일차 사용자가 그들의 게임플레이를 볼 수 있은 후에 이차 사용자의 게임플레이에 합류하는 것을 용이하게 함을 인식하여야 한다.
일 실시예에 있어서, 이차 사용자의 게임플레이에 합류하도록 요청하는 옵션은 일차 사용자에 의한 비디오 게임의 소유권 상황의 결정시 예측된다. 일차 사용자가 그 비디오 게임을 소유하고 있지 않으면, 그때는 옵션이 제시되지 않을 수 있는 반면, 일차 사용자가 이차 사용자와 동일한 비디오 게임을 소유하고 있으면, 그때는 이차 사용자의 게임플레이에 합류하도록 요청하는 옵션이 인터페이스의 일부분으로서 이용가능하게 된다. 일 실시예에 있어서, 일차 사용자가 그 비디오 게임의 소유자가 아니라고 결정될 때, 그때 일차 사용자는 여전히 이차 사용자의 게임플레이에 멀티플레이어 모드로 그러나, 게임플레이의 지속시간, 이용가능한 장면/레벨/스테이지/등, 커스터마이징 옵션, 능력, 스킬, 무기, 캐릭터, 차량, 또는 제한될 수 있는 비디오 게임의 어느 다른 태양의 관점에서 제한되는 것과 같은, 제한된 용량으로 합류할 수 있다. 일 실시예에 있어서, 비디오 게임의 제한된 버전의 게임플레이에 뒤이어, 일차 사용자에게 풀 비디오 게임을 구입하는 옵션이 제공된다. 다른 일 실시예에서는, 일차 사용자에게 비디오 게임의 부가적 부분을 구입하는 옵션이 제공된다.
도 10을 계속 참조하면, 디스플레이된 정보는 또한 사용자의 친구의 게임 이력 정보(1012)를 포함할 수 있다. 게임 이력 정보(1012)는, 플레이된 가장 최근 게임, 게임플레이 세션의 지속시간, 게임플레이와 관련한 통계 등과 같은, 소정 친구의 게임플레이 이력에 대한 정보를 제공할 수 있다.
클라우드 게이밍 인터페이스를 제시하기 위한 많은 방법 및 구성이 본 발명의 다양한 실시예에 따라 가능함을 인식할 것이다. 그러한 일 실시예에 있어서는, 클라우드 게이밍 시스템의 사용자의 현재 게이밍 상황을 디스플레이하기 위한 방법으로서, 이하의 방법 연산: 일차 사용자의 클라우드 게이밍 인터페이스를 제시하는 연산; 일차 사용자의 친구인 하나 이상의 이차 사용자를 결정하는 연산; 이차 사용자의 각각의 현재 상황으로서, 온라인 또는 오프라인 중 하나인 현재 상황을 결정하는 연산; 적어도 하나의 온라인 이차 사용자에 대하여, 온라인 이차 사용자의 현재 게이밍 세션의 라이브 피드로서, 온라인 이차 사용자의 현재 게이밍 세션에 합류하는 옵션을 일차 사용자에게 제공하는 것을 포함하는 라이브 피드를 일차 사용자의 클라우드 게이밍 인터페이스에서 제시하는 연산; 일차 사용자가 온라인 이차 사용자의 현재 게이밍 세션에 합류하는 옵션을 활성화시키는 요청을 수신하는 것에 응답하여, 온라인 이차 사용자의 현재 게이밍 세션의 멀티플레이어 모드로서, 온라인 이차 사용자의 현재 게이밍 세션에서 일차 사용자의 게임플레이를 위해 제공되는 멀티플레이어 모드를 개시하는 연산을 포함하되, 멀티플레이어 모드를 개시하는 연산은 온라인 이차 사용자의 현재 게이밍 세션을 정의하는 비디오 게임에 관하여 일차 사용자의 소유권 상황을 결정하는 연산을 포함하고; 일차 사용자가 그 비디오 게임을 소유하고 있다고 결정될 때, 그때는 비디오 게임의 풀 버전의 게임플레이에 대해 멀티플레이어 모드가 제공되고; 일차 사용자가 그 비디오 게임을 소유하고 있지 않다고 결정될 때, 그때는 비디오 게임의 제한된 버전의 게임플레이에 대해 멀티플레이어 모드가 제공되는 방법이 제공된다.
일 실시예에 있어서, 비디오 게임의 제한된 버전은, 비디오 게임의 풀 버전에 비할 때, 하나 이상의 이용가능한 레벨, 이용가능한 장면, 이용가능한 피처, 시간 제한, 가상 공간, 캠페인 길이, 생명의 수, 또는 리플레이의 수에 있어서의 감축을 정의한다.
일 실시예에 있어서, 방법은, 비디오 게임이 일차 사용자에 의해 소유되고 있지 않을 때, 그 비디오 게임의 적어도 일부를 구입하는 옵션을 일차 사용자에게 제시하는 방법 연산을 더 포함한다.
일 실시예에 있어서, 온라인 이차 사용자의 라이브 피드는 제1 해상도로 제시되고, 라이브 피드의 선택은 제1 해상도보다 더 높은 제2 해상도로 온라인 이차 사용자의 라이브 피드의 제시를 트리거링한다.
일 실시예에 있어서, 온라인 이차 사용자의 라이브 피드는 채도가 감소된 컬러 모드로 제시되고, 라이브 피드의 선택은 채도가 있는 컬러 모드로 온라인 이차 사용자의 라이브 피드의 제시를 트리거링한다.
일 실시예에 있어서, 클라우드 게이밍 인터페이스를 제시하는 것은 이차 사용자의 각각과 연관된 게임 타이틀의 라이브러리를 제시하는 것을 포함한다.
일 실시예에 있어서, 하나 이상의 이차 사용자를 결정하는 것은 일차 사용자와 연관된 소셜 그래프에 액세스하는 것을 포함한다. 일 실시예에 있어서, 소셜 그래프에 액세스하는 것은 소셜 네트워크의 API에 액세스하는 것을 포함한다.
일 실시예에 있어서, 일차 사용자의 클라우드 게이밍 인터페이스를 제시하는 것은 우선순위 순서로 이차 사용자의 각각의 목록을 제시하는 것을 포함하고, 우선순위 순서는 현재 상황, 로그인의 최근성, 또는 일차 사용자와의 게임의 공통 소유권 중 하나 이상에 기반한다.
도 11은, 본 발명의 일 실시예에 따라, 현재 사용자의 친구의 라이브 게임플레이 피드를 제시하기 위한 방법을 예시하고 있다. 방법 연산(1100)에서, 현재 사용자는 클라우드 게이밍 시스템에 로그온한다. 방법 연산(1102)에서, 현재의 사용자의 친구가 현재 사용자의 소셜 그래프로부터 식별된다. 언급된 바와 같이, 현재 사용자의 소셜 그래프는 클라우드 게이밍 시스템에 특정한 소셜 네트워크로부터일 수도 있고 클라우드 게이밍 시스템과는 별개로 존재하는 소셜 네트워크로부터일 수도 있다. 방법 연산(1104)에서는, 사용자의 친구의 라이브러리 정보가 검색된다. 사용자의 친구의 라이브러리 정보는 사용자의 친구 라이브러리 내 게임 타이틀을 식별시킬 수 있다. 방법 연산(1106)에서는, 현재 사용자의 친구의 현재 상황이 식별된다. 소정 친구의 현재 상황이 온라인이면, 그때 방법 연산(1108)에서는 그 소정 친구가 클라우드-기반 시스템 상의 비디오게임의 게임플레이에 현재 참여하고 있는지 결정된다. 그렇다면, 그때 방법 연산(1112)에서는, 그 사용자에 대한 라이브 게임플레이 피드가 획득된다. 방법 연산(1110)에서, 현재 사용자의 친구는 다양한 인자 또는 선호도에 기반하여 디스플레이를 위한 우선순위가 결정된다. 방법 연산(1114)에서는, 현재 사용자의 친구 및 그들 상황 정보 및 라이브 게임플레이 피드가 우선순위 순서로 제시된다. 일 실시예에 있어서는, 온라인으로 있는 현재 사용자의 친구가 현재 오프-라인으로 있는 친구에 비해 우선순위로 될 수 있다. 일 실시예에 있어서는, 활동 중 게임플레이에 현재 참여하고 있는 현재 사용자의 친구가 활동 중 게임플레이에 현재 참여하고 있지 않은 친구에 비해 우선순위로 될 수 있다. 일 실시예에 있어서는, 이용가능한 라이브 게임플레이 피드를 갖는 친구가 다른 친구에 비해 우선순위로 될 수 있다. 일 실시예에 있어서, 친구는 클라우드 게이밍 시스템에 로그인한 최근성에 기반하여 우선순위가 결정될 수 있다. 다른 일 실시예에 있어서, 친구는 비디오게임의 공통 소유권에 기반하여 우선순위가 결정될 수 있다. 친구의 우선순위결정의 상기 예들은 단지 예로서 제공될 뿐이고 제한으로서가 아니다. 다른 실시예에서, 현재 사용자의 친구는 어느 다른 관련 있는 인자에 기반하는 우선순위 배치에 따라 우선순위결정 및 제시될 수 있음을 당업자는 인식할 것이다.
도 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를 계속 참조하면, 소셜 네트워크(1216)가 또한 도시되어 있다. 소셜 네트워크(1216)는, 사용자의 소셜 그래프, 게시물, 사진, 비디오, 약력 정보 등과 같은 데이터를 포함하는, 사용자 데이터(1218)를 포함한다. 앱(1220)이 소셜 네트워크 플랫폼 상에서 실행될 수 있다. 그래픽 사용자 인터페이스(GUI)(1222)는 소셜 네트워크와 대화하기 위한 인터페이스를 정의한다. API(1224)는 소셜 네트워크로의 액세스를 용이하게 한다. 통지 모듈(1226)은 소셜 네트워크 사용자에 대한 통지를 그들 선호도에 따라 취급한다. 언급된 바와 같이, 사용자(B)의 뷰(1214)는 다른 사용자의 세션으로부터의 라이브 피드를 포함한다. 일 실시예에 있어서, 사용자(B)의 친구는 사용자(B)의 소셜 그래프의 구성원을 결정하도록 소셜 네트워크(1216)의 API(1224)에 액세스하는 것에 기반하여 결정될 수 있다. 이들 구성원은, 세션(A, C)으로부터의 피드를 포함하는, 사용자(B)의 친구로부터의 라이브 게임플레이 피드를 제공하도록 클라우드 게이밍 시스템의 사용자에 대비하여 상호-참조되었다.
일 실시예에 있어서, 사용자(A)는 그의 게임플레이 세션(A)으로부터 그의 소셜 그래프에 공유하는데 동의한다. 사용자(A)의 세션(A)은 사용자(A)의 소셜 그래프 내 친구에게 적합한 통지를 보내기 위해 소셜 네트워크(1216)의 통지 모듈(1226)을 활성화시키도록 API(1224)를 통하여 통신한다. 사용자(A)의 소셜 그래프 내에 있는 소셜 네트워크 사용자(1230)가 디바이스(1228)를 통하여 소셜 네트워크에 액세스할 때, 그들은 사용자(A)의 세션에 대한 사용자(A)로부터의 메시지 또는 게시물을 볼 수 있다. 설정되면, 사용자는 사용자(A)가 소셜 네트워크 상에 무언가를 공유하였음을 나타내는 이-메일과 같은 통지를 수신할 수 있다. 사용자(A)는, 비디오 게임에서의 업적, 비디오 게임을 플레이하도록 초대, 비디오 게임에 대한 코멘트, 사용자(A)가 생성한 게임 슬라이스를 보거나 플레이하도록 초대, 사용자(A)의 게임플레이의 비디오 클립 등과 같은, 다양한 비디오 게임 관련 활동에 대해 공유할 수 있음을 인식하여야 한다.
도 13은, 본 발명의 실시예에 따라, 시간에 걸친 다양한 게임 상태 변수를 예시하는 그래프이다. 다양한 실시예에 있어서, 특정 비디오 게임에 특정할 여러 다른 종류의 게임 상태 변수가 있을 수 있음을 인식하여야 한다. 도시된 실시예를 참조하여 도시 및 설명되는 것들은 단지 예로서 제공될 뿐이고 제한으로서가 아니다. 게임 상태 변수는 실행 중 비디오 게임에 의해 정의되는 값은 물론 사용자 입력에 의해 정의되는 값도 포함할 수 있다. 도시된 실시예에 있어서는, 캐릭터 또는 차량과 같이 비디오게임의 가상 공간 내 물체의 X, Y 및 Z 위치를 나타내는 위치 변수가 도시되어 있다. 카메라 각도 변수는 비디오게임에서 가상 카메라 또는 가상 뷰의 방향을 나타낸다. 일 실시예에 있어서, 카메라 각도는 방위각 기준에 상대적으로 (예를 들어, 수평 평면을 따라) 측정된 방위각 성분 및 경사각 기준에 상대적으로 (예를 들어, 수직선에 상대적으로) 측정된 경사각 성분에 의해 정의된다. 예시된 액션(A, B)과 같은 액션 변수는 비디오게임 내 다양한 액션의 개시 및 지속을 나타낸다. 소정 비디오게임에 대한 액션이 그 비디오게임의 맥락에 특정할 것임을 인식하여야 한다. 예로서, 액션은 특정 책략의 개시, 스킬의 적용, 그 강도 또는 빈도 레벨을 증가시키는 것 등과 같이 기존 액션을 수정하는 수정 메커니즘의 트리거링, 또는 비디오게임의 코스 동안 사용자 입력에 의해 트리거링될 수 있는 어느 다른 유형의 액션 또는 활동을 포함할 수 있다. 도 13을 계속 참조하면, 무기 변수는 비디오게임에서 무기의 트리거링을 나타낸다. 건강 변수는, 예를 들어, 비디오게임에서 사용자의 캐릭터의 건강 레벨을 나타낸다. 버튼 변수는 컨트롤러 디바이스 상의 버튼의 상태, 예를 들어, 버튼이 눌려진 상태에 있는지 풀린 상태에 있는지를 나타낸다. 도시된 실시예에 있어서 조이스틱 상태 변수는 중립 위치에 상대적인 조이스틱 움직임의 크기를 나타낸다. 도시된 실시예를 참조하여 설명된 상기 게임 상태 변수는 단지 예시일 뿐이며, 여러 다른 유형의 게임 상태 변수가 시간에 걸쳐 추적될 수 있음을 당업자는 인식할 것이다.
도 6의 실시예를 또다시 참조하면, 일 실시예에 있어서, 게임 상태 분석기(614)는 사용자의 레코딩된 게임플레이의 게임 상태 변수를 분석하도록 구성될 수 있다. 사용자의 레코딩된 게임플레이의 분석에 기반하여, 사용자의 레코딩된 게임플레이의 관심 있는 다양한 영역이 정의되고 게임 슬라이스를 발생시킬 가능한 선택으로서 사용자에게 제시될 수 있다. 예를 들어, 특정 게임 상태 변수에 대한 높은 활동 레벨을 특징으로 하는 게임플레이의 영역은 사용자의 레코딩된 게임플레이의 선택을 정의할 수 있다. 소정 게임 상태 변수에 대한 활동 레벨은 강도 레벨, 활성화 빈도, 지속 시간 등과 같은 다양한 인자에 기반할 수 있음을 인식하여야 한다. 일부 실시예에 있어서, 게임 상태 변수의 분석은 2 이상의 다른 게임 상태 변수의 활동 레벨이 미리 정의된 방식으로 상관되는, 예를 들어, 2 이상의 변수가 동시에 높은 활동 레벨을 갖는 게임플레이의 영역을 찾는 것을 수반할 수 있다. 높은 활동 레벨은 미리 정의된 임계치에 기반하여 결정될 수 있다.
다양한 실시예에 있어서, 사용자의 레코딩된 게임플레이의 관심 있는 영역은 이하의 것 중 어느 하나 이상의 임계 검출에 기반하여 자동으로 결정될 수 있다: 하나 이상의 사용자 입력, 사용자의 입력 레이트, 입력 빈도, 입력 유형의 반복, 입력 패턴의 발생, 조합 입력(예를 들어, 콤보 키), 모션 벡터, 컨트롤러 상에 발휘된 압력, (예를 들어, 사용자의 캡처링된 이미지 또는 오디오 데이터에 기반하여 검출되는) 사용자의 흥분.
도 14a는, 본 발명의 일 실시예에 따라, 선형 유형 비디오게임에 대한 게임 슬라이스를 발생시키기 위한 방법을 예시하고 있다. 대체로, 선형 비디오게임은 비디오게임을 통한 플레이어의 진행이 선형 코스를 따르되, 비디오게임을 통해 진행하기 위하여 플레이어는 나중 목적으로 진행하기 전에 앞선 목적을 완료해야 하는 것이다. 그리하여, 모든 플레이어는 비디오게임을 통해 진행하기 위하여 동일 목적을 동일 순서로 완료해야 한다. 선형 비디오게임에서의 목적은 비디오게임의 시공 스토리라인의 맥락 내 지리적은 물론 시간적 위치에도 묶여 있을 수 있다. 방법 연산(1400)에서는, 비디오게임의 장면이 식별된다. 장면은 본질상 공간적이고 또한 시간적이고, 거기 내에 정의된 다양한 목적을 가질 수 있다. 방법 연산(1402)에서는, 장면의 공간적 또는 시간적 길이가 정의된다. 장면의 길이는 사용자 입력에 따라 정의될 수 있고, 또한 장면에 묶여 있는 목적에 기반하여 정의될 수 있다. 방법 연산(1404)에서는, 속성이 배정될 수 있는 장면 내 아이템, 캐릭터 또는 어느 다른 물체의 초기 속성이 정의된다. 방법 연산(1406)에서는, 앞서 정의된 바와 같은 초기 속성을 갖는 장면의 식별된 길이에 대해 게임 슬라이스가 발생된다.
도 14b는, 본 발명의 일 실시예에 따라, 오픈 월드 유형 비디오게임에 대한 게임 슬라이스를 발생시키기 위한 방법을 예시하고 있다. 오픈 월드 비디오게임은 사용자가 어떠한 수의 목적이라도 그들 자신의 선택의 순서로 추구할 자유가 있는 것으로서 특징지어질 수 있다. 전형적으로 오픈 월드 유형 비디오 게임은 또한 사용자가 하나 이상의 가상 공간을 마음대로 항행 가능하게 한다. 비디오게임의 여러 다른 레벨로 진행하거나 비디오게임을 완료하기 위하여, 특정 목적 세트의 완료가 요구될 수 있지만, 그렇지만 사용자는 이들 목적을 여러 다른 순서로 자유롭게 완료할 수 있다. 방법 연산(1410)에서는, 비디오게임의 가상 세계 내 위치가 식별된다. 방법 연산(1412)에서는, 가상 세계의 제한된 부분이 정의된다. 가상 세계의 제한된 부분은 여기에서 설명된 바와 같이 레코딩된 게임플레이의 선택을 정의하는 사용자 입력에 기반하여 정의될 수 있다. 예를 들어, 오픈 월드 비디오게임 내 사용자의 게임플레이는 게임플레이의 코스 동안 매우 다양한 위치에 걸쳐 미칠 수 있다. 그렇지만, 게임 슬라이스를 발생시키려는 목적으로, 사용자는 비디오게임의 가상 세계의 제한된 지리적 영역 내에서 일어나는 게임플레이의 일부를 선택할 수 있다. 이러한 제한된 지리적 영역은 그들 레코딩된 게임플레이의 사용자 선택된 부분의 분석에 기반하여, 예를 들어, 가상 세계 내 사용자 제어되는 캐릭터의 위치를 추적하고 캐릭터가 존재하는 것으로 발견된 모든 위치를 포함하는 경계를 정의하여 결정될 수 있다. 방법 연산(1414)에서는, 사용자의 레코딩된 게임플레이 선택으로부터 앞서 결정된 제한된 지리적 영역 내에서 발견되는 다양한 물체, 캐릭터, 아이템, 차량 또는 어느 다른 물체의 초기 속성이 정의된다. 방법 연산(1416)에서는, 오픈 월드의 제한된 지리적 영역 및 앞서 정의된 속성에 기반하여 게임 슬라이스가 발생된다.
도 14c는, 본 발명의 일 실시예에 따라, 스포츠 비디오게임에 대한 게임 슬라이스를 발생시키기 위한 방법을 예시하고 있다. 게임 슬라이스는 사용자 레코딩된 게임플레이의 사용자 정의된 선택에 기반하여 발생될 수 있다. 방법 연산(1420)에서는, 사용자의 레코딩된 게임플레이의 선택에 기반하여 설정이 식별된다. 예로서, 설정은, 비디오게임의 스포츠 이벤트가 일어날 수 있는 코트, 스타디움, 트랙 또는 어느 다른 장소 설정과 같은, 스포츠 이벤트의 위치를 정의할 수 있다. 방법 연산(1422)에서는, 사용자의 레코딩된 게임플레이의 선택에 기반하여 시간 기간이 식별된다. 시간 기간은 게임 슬라이스가 발생될 시간적 부분을 정의하고, 레코딩된 게임플레이의 사용자 선택에 기반하여 정의될 수 있다. 스포츠 비디오 게임의 시간 기간은, 스포츠 동안 특정 시간 기간에 일어나는 특별 규칙 또는 활동의 포함과 같은, 비디오 게임 슬라이스의 특정 태양을 결정할 수 있다. 방법 연산(1424)에서는, 사용자의 레코딩된 게임플레이 선택에 포함된 플레이어에 기반하여 게임 슬라이스의 플레이어가 결정된다. 플레이어는 사용자에 의해 정의된 하나 이상의 캐릭터와 더불어, 게임플레이 때에 실행 중 비디오 게임의 인공 지능(AI) 캐릭터 제어 로직에 의해 제어된 AI 캐릭터도 포함할 수 있다. 여기 다른 곳에서 설명된 바와 같이, AI 캐릭터의 액션은 일부 경우에서는 근사될 수 있다. 반면 일부 실시예에 있어서, AI 캐릭터 제어 로직은 사용자의 레코딩된 게임플레이 선택에서 정의된 바와 같은 파라미터로 게임 슬라이스에 대해 정의된다. 방법 연산(1426)에서는, 스포츠 비디오 게임 슬라이스의 위치 설정에 대한 장면 속성이 정의된다. 예를 들어, 이들은 날씨, 트랙 또는 코트 조건, 및 스포츠 설정의 다른 속성과 같은 속성을 포함할 수 있다. 방법 연산(1428)에서는, 전술한 파라미터에 기반하여 비디오 게임에 대한 게임 슬라이스가 발생된다.
도 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)을 통해 플레이함으로써 비디오게임의 다수 레벨의 제한된 부분을 체험할 수 있다. 이것은 사용자가 비디오 게임의 하나의 레벨 또는 스테이지로부터의 하나의 부분만을 플레이할 수 있는 관용적 게임 데모보다 비디오 게임의 더 많은 강렬한 미리보기 또는 데모를 제공하는데 유용할 수 있다. 체험은, 전형적으로는, 단지 단일 클립이 아니라, 동일 영화의 여러 다른 부분으로부터의 클립을 제공하는, 영화 미리보기의 그것과 유사하다. 본 발명의 실시예에 의하면, 사용자는 풀 비디오게임의 더 나은 의미의 범위를 제공하는, 그리고 하나의 부분으로부터 다음으로 연속적 방식으로 게임플레이의 특징을 나타낼 수 있는 다수-부분 게임 데모를 즐길 수 있다.
일 실시예에 있어서, 사용자는, 게임 슬라이스 전에 또는 다음에, 사용자 정의된 비디오, 메시지, 이미지 또는 어느 다른 유형의 정보와 같은, 부가적 자료를 삽입할 수 있다. 도시된 실시예에 있어서, 도입부(1512)는 미니게임(1510)에 대한 플레이어를 소개하고 아마도 제1 게임 슬라이스(1514)에 대한 플레이어도 소개하도록 제공된다. 부가적으로, 메시지(1516)는 제1 게임 슬라이스(1514)와 제2 게임 슬라이스(1518)의 사이에 삽입되는 한편, 다른 메시지(1520)는 제2 게임 슬라이스(1518)와 제3 게임 슬라이스(1522)의 사이에 삽입된다. 일 실시예에 있어서, 삽입된 자료는 게임 슬라이스가 발생된 원래 사용자의 레코딩된 게임플레이의 레코딩된 게임플레이 비디오를 포함할 수 있다. 레코딩된 게임플레이가 게임 슬라이스를 플레이하기 전에 보여지면, 게임 슬라이스를 개시하는 플레이어는 게임플레이를 시작하기 전에 게임 슬라이스 및 그 목적을 더 잘 이해할 수 있는 반면, 게임 슬라이스의 게임플레이 후에 보여지면, 플레이어는 게임 슬라이스의 그들의 게임플레이가 원래 사용자의 그것에 얼마나 필적하는지 이해할 수 있다.
도 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)의 사이에 정의된다.
도시된 실시예에 있어서, 게임 슬라이스는 여러 다른 비디오 게임으로부터 취해짐을 인식할 것이다. 이것은 사용자가 여러 다른 게임 타이틀, 장르, 및 또한 콘솔 플랫폼 세대에 걸쳐 그로부터의 게임 슬라이스를 함께 혼합할 수 있는 큰 융통성을 허용한다. 단지 예로서, 사용자는 단수형 비디오 게임 시리즈 내 수개의 게임 타이틀의 각각으로부터의 게임 슬라이스를 갖는 미니게임을 생성할 수 있다. 이러한 방식으로, 미니게임의 플레이어는 비디오 게임 시리즈의 진화를 연속적 게임플레이 체험으로 경험 및 인식할 수 있다.
본 발명의 실시예들은 일반적으로 클라우드-기반 게이밍 시스템을 참조하여 설명되었다. 그렇지만, 여기에서 설명된 바와 유사한 개념 및 원리가 전통적 콘솔-기반 비디오게임 시스템에 적용될 수 있으며, 클라우드-기반 게이밍 시스템과 함께 가능함을 당업자는 인식하여야 한다. 예를 들어, 사용자는 콘솔-기반 비디오게임을 플레이하고 사용자의 게임플레이 입력 데이터 및 게임 체류 메타데이터가 게임플레이 동안 레코딩되게 할 수 있다. 사용자의 게임플레이 입력 데이터 및 게임 상태 메타데이터에 기반하여, 비디오게임의 실제 게임플레이 출력이 추후 시간에 재생될 수 있다. 그래서, 레코딩된 입력 데이터 및 게임 상태 메타데이터는, 설명된 바와 같이, 미니게임을 발생시킬 사용자의 게임플레이의 일부의 선택을 위한 인터페이스를 제공하도록 비디오게임 코드와 함께 이용될 수 있다. 미니게임 코드는 콘솔에서 발생되고 클라우드 시스템에 업로드되어 다른 사용자에 의한 다운로드에 이용가능하게 될 수 있다. 다른 일 실시예에 있어서, 미니게임 코드는 사용자 게임플레이 입력 데이터 및 게임 상태 메타데이터의 선택된 부분을 수신한 후에 클라우드 시스템에 의해 발생된다. 클라우드 시스템은 클라우드 시스템에 저장된 비디오게임 코드에 기반하여 미니게임 코드를 발생시키도록 사용자 게임플레이 입력 데이터 및 게임 상태 메타데이터의 선택된 부분을 프로세싱한다. 발생되고 나면, 미니게임은 미니게임의 실행이 클라우드-기반 시스템에서 일어나는 클라우드-기반 게이밍에 이용가능하게 될 수 있지만, 미니게임의 콘솔-기반 게임플레이를 용이하게 하도록 콘솔 상에서의 실행을 위해 전통적 콘솔-기반 시스템으로의 다운로드에도 이용가능하게 될 수 있다. 이러한 방식으로, 미니게임은 콘솔-기반 비디오 게이밍 시스템의 사용자에 의해서도 그리고 클라우드-기반 비디오 게이밍 시스템의 사용자에 의해서도 생성 및 플레이될 수 있다.
본 발명의 실시예는 일반적으로 비디오 게임의 플레이가능한 사용자-정의된 부분 또는 미니게임을 참조하여 설명되었다. 그렇지만, 여기에서 설명된 원리 중 다수는, 레코딩된 게임플레이 비디오, 스크린샷, 및 활동 게임플레이의 라이브 스트리밍을 공유하는 것을 포함하는, 레코딩된 게임플레이의 발생 및 공유에도 쉽게 적용됨을 당업자는 인식할 것이다. 일부 실시예에 있어서, (예를 들어, 통지를 수신하는 것에 응답하여) 미니게임으로의 액세스를 제공하는 것은 미니게임에 대한 기반을 형성한 원래 사용자의 게임플레이의 레코딩된 비디오의 제시를 포함할 수 있다. 또 다른 실시예에 있어서는, 사용자의 소셜 그래프로의 사용자의 게임플레이의 공유를 용이하게 하기 위한 방법, 시스템 및 인터페이스가 고려된다.
일 실시예에 있어서는, 게임플레이를 저장하기 위한 방법이 고려된다. 게임플레이는, 소망 게임플레이와 연관된 데이터 세트에 관하여 표준 파일 작업의 형태로 올 수 있는, 사용자 요청에 응답하여 게임 콘솔의 운영 체제에 의해 실행될 수 있다. 요청은 게임과 연관된 애플리케이션으로부터 송신될 수 있다. 게임플레이는, 예를 들어, 월페이퍼, 테마, 코드 "애드-온" 컨텐트, 또는 게임과 연관된 어느 다른 유형의 컨텐트를 포함하는, 비디오 컨텐트, 오디오 컨텐트 및/또는 정적 시각적 컨텐트를 포함할 수 있다. 그러한 컨텐트는 사용자- 또는 개발자-생성되거나, 무료 또는 유료이거나, 완전판 또는 체험판이거나, 그리고/또는 판매용 또는 대여용일 수 있는 것으로 고려된다.
게임플레이의 일부는 버퍼링, 즉, 일시적으로 저장될 수 있다. 예를 들어, 게임플레이 내 이전 액션에 대해, 이전 15초, 이전에 완료된 레벨이, 여기에서 더 설명되는 바와 같이, 일시적으로 저장될 수 있다. 여기에서 사용되는 용어 "부분"은 단일 또는 다수 데이터 비트 또는 바이트의 어느 관련 또는 임의 그룹으로 분할가능한 게임플레이의 어느 일부분에 대응할 수 있다. 예를 들어, 게임플레이의 "부분"은 레벨, 챕터, 장면, 단계, 캐릭터, 배경, 텍스처, 코스, 액션, 노래, 테마, 지속시간, 사이즈, 파일, 그 일부분, 및 그 조합에 대응할 수 있다. 더욱, 게임플레이의 부분은 비디오 캡처의 규정된 지속시간 또는 스크린샷을 포함할 수 있다.
일 실시예에 있어서, 게임플레이의 부분은 일시적 또는 영구적 저장소에 게임 콘솔 상에 로컬 저장될 수 있다. 대안으로 또는 부가적으로, 게임플레이의 부분은 네트워크를 통하여 송신되어 원격으로 저장될 수 있다. 예를 들어, 게임플레이의 부분은 무선 또는 유선 네트워크를 통하여 다른 컴퓨팅 디바이스에, 다른 게임 콘솔에, 또는 원격 서버에 송신될 수 있다. 그러한 원격 서버는 소셜 미디어 서버를 포함할 수 있다.
선택사항으로서, 버퍼로부터 검색되지 않는 게임플레이의 부분 또는 특정 게이밍 인터벌(예를 들어, 특정 지속시간, 레벨, 챕터, 코스 등) 밖의 게임플레이의 부분은 버퍼로부터 제거될 수 있다. 이러한 제거 프로세스는 운영 체제 상에서 표준 파일 작업을 사용하여 완료될 수 있다.
게임플레이의 부분은 저장된 게임플레이로의 액세스를 갖는 여러 디스플레이 디바이스 중 어디에라도 디스플레이될 수 있다. 예를 들어, 저장된 게임플레이는 게임플레이가 캡처링된 게임 콘솔에 접속된 텔레비전 세트 상에서 디스플레이될 수 있다. 다른 일례에 있어서, 저장된 게임플레이는 저장된 게임플레이가 송신된 컴퓨터 상에 디스플레이될 수 있다. 저장된 게임플레이는, 소셜 미디어 웹사이트 상에와 같이, 다른 정보와 함께 또는 단독으로 디스플레이될 수 있다.
일 실시예에 있어서, 게임플레이의 부분은 게임플레이를 버퍼링하거나 캡처링한 사용자 이외의 사용자와 연관된 다른 게임 콘솔에 의해 디스플레이된다. 이러한 실시예에 의하면, 게임플레이의 부분은, 제1 사용자의 관점에서, 제1 사용자로부터 제2 사용자에게로 던져지는 공을 보여줄 수 있다. 게임플레이의 부분은 그 후 제2 사용자의 게임 콘솔에 송신될 수 있다. 그리하여, 제2 사용자는 그 후 제1 사용자의 관점에서 게임플레이를 볼 수 있다. 제2 사용자는 또한, 제2 사용자의 관점에서, 제1 사용자에 의해 던져지고 제2 사용자에 의해 잡히는 공을 보여주는 게임플레이의 부분이 저장되게 할 수 있다. 이러한 실시예에 있어서, 제2 사용자는 제1 사용자의 관점에서도 그리고 제2 사용자의 관점에서도 게임플레이를 검토할 수 있다. 더더욱, 제2 사용자에 의해 저장된 게임플레이의 부분은 제1 사용자의 게임 콘솔에 송신될 수 있어서, 제1 사용자는 2개의 관점에서 게임플레이를 검토할 수 있다. 이러한 실시예는 어떠한 수의 관점이라도 갖는 어떠한 수의 사용자에게라도 적용될 수 있고, 그래서 게임플레이는 어떠한 수의 다른 관점에서라도 검토될 수 있다.
여기에서 설명되는 바와 같은 게임플레이의 부분의 저장, 송신 및/또는 디스플레이에 관하여, 게임플레이의 부분은 이미지 또는 비디오 데이터로서 저장, 송신 및 디스플레이될 수 있는 것으로 고려된다. 그렇지만, 다른 일 실시예에 있어서, 게임플레이의 부분은 이미지 또는 비디오 데이터를 표현하는 메타데이터 또는 원격 계측으로서 저장 및 송신될 수 있고, 디스플레이 이전에 게임 콘솔 또는 다른 디바이스에 의해 이미지 또는 비디오로서 재-생성될 수 있다.
일부 실시예에 있어서, 게임플레이의 부분은 실행된 게임플레이와 미리 결정된 관계를 갖는다. 예를 들어, 게임플레이의 부분은, 게임플레이의 이전 10초와 같이, 현재 실행 중 게임플레이 이전 특정량의 게임플레이에 대응할 수 있다. 다른 일 실시예에 있어서, 게임플레이의 제1 부분은 게임플레이의 제2 부분과 미리 결정된 관계를 갖는다. 예를 들어, 게임플레이의 제1 부분은, 캡처 버튼의 선택 이전 10초와 같이, 게임플레이의 제2 부분을 캡처링하는 요청의 수신 이전 특정량의 게임플레이에 대응할 수 있다. 이들 실시예의 각각에 있어서, 현재 게임플레이 또는 요청된 게임플레이 이전에 버퍼링된 게임플레이의 양은 그 또는 그녀의 특정 선호도에 따라 사용자에 의해 구성 및 조절될 수 있다.
다른 실시예에 있어서, 버퍼는, 그것이 시간에 관계 없이 변수에 따라 게임플레이를 캡처링하게 되도록, "스마트" 또는 "탄력적"이다. 일부 실시예에 있어서, 게임플레이의 제1 부분은 게임플레이와 관련된 이벤트와 미리 결정된 관계를 갖는다. 예를 들어, 게임플레이의 제1 부분은, 고득점에 도달, 단시간량에 다수의 포인트 모으기, 컨트롤러 상에서 버튼의 다중 선택, 및 다른 드문 이벤트와 같은, 통계적 이례를 포함하도록 버퍼링될 수 있다. 그러한 통계적 이례는 일반적으로 모든 게임에 대한 또는 특정 게임 또는 장면에 대한 평균 메트릭에 게임플레이 메트릭을 비교함으로써 결정될 수 있다. 그러한 평균 메트릭은 비교를 위해 원격 또는 로컬 저장될 수 있다. 예를 들어, 게임 콘솔은 특정 게임에 대한 세계적 고득점을 추적하고, 그리고 사용자가 그 고득점에 다가가 능가하는 게임플레이를 버퍼링할 수 있다. 다른 일례에 있어서, 원격 서버는 특정 게임에 대한 세계적 고득점을 추적할 수 있고, 그리고 그 정보를 게임 콘솔에 통신할 수 있어서, 사용자가 그 고득점에 다가가 능가하는 게임플레이를 버퍼링한다.
다른 일례에 있어서, 게임플레이의 부분은, 획득되는 트로피 또는 도달되는 다른 랜드마크와 같은, 업적을 포함하도록 버퍼링될 수 있다. 그러한 트로피 또는 랜드마크는, 획득되는 특정 포인트 수, 도달되는 특정 레벨 등과 같은, 어느 목표 또는 게이밍 업적을 기념하였다. 예를 들어, 게임플레이는 레벨 10에 도달하는 것, 100,000 포인트에 도달하는 것 등에 대한 트로피의 수여를 포함하도록 버퍼링될 수 있다.
유사하게, 이벤트에 도달을 향한 진행은, 통계적 이례 또는 트로피의 실제 획득에 부가하여, 게임플레이의 부분에 포함되도록 버퍼링될 수 있다. 예를 들어, 스크린샷은 레벨 일 내지 10의 각각에서 취해져, 레벨 10에 도달한 것에 대한 트로피의 수령을 기념할 포토 앨범을 생성할 수 있다. 다른 일례로서, 제1 내지 제5 회에 대해 레이스에서 사용자가 승리한 것에 대한 비디오가 취해질 수 있고, 여기서 트로피는 5번의 승리에 대해 수여된다.
그리하여, 본 발명의 실시예에 따라, 실행된 게임플레이의 적어도 일부는 작동 중 버퍼에 항상 유지될 수 있다. 환언하면, 게임플레이의 일부를 공유하는 요청이 수신될 때, 이전 게임플레이의 일부는 이미 이전 푸티지(footage)를 포함하도록 캡처링될 수 있다. 예를 들어, 게임플레이를 공유하는 요청이 사용자가 레이싱 게임에서 결승선을 통과한 후에 수신되면, 버퍼링된 게임플레이는 사용자가 결승선을 통과하는 푸티지를 포함할 수 있다. 환언하면, 사용자는 게임플레이를 공유하는 요청이 이루어지기 전에 일어나는 순간을 캡처링할 수 있을 것이다.
도 17은, 본 발명의 일 실시예에 따라, 게임플레이를 공유하기 위한 인터페이스를 예시하고 있다. 도시된 바와 같은 인터페이스(1700)는 사용자의 친구, 예를 들어, 사용자의 소셜 그래프의 구성원에게 공유하는 것을 용이하게 하도록 다양한 선택가능한 아이콘을 포함한다. 일 실시예에 있어서, 인터페이스(1700)는 컨트롤러 디바이스 상의 전용 버튼으로부터 액세스될 수 있다. 버튼이 게임플레이 동안 눌러질 때, 인터페이스(1700)는 사용자가 그들 게임플레이를 공유 가능하게 하도록 제시될 수 있다.
아이콘(1702)은 사용자의 게임플레이로부터의 스크린샷의 업로드를 개시하도록 선택될 수 있다. 일 실시예에 있어서, 아이콘(1702)의 영역(1704)에는 사용자의 최근 게임플레이로부터의 대표적 스크린샷이 거처하고 있고, 그로써 공유될 수 있는 스크린샷의 작은-스케일 미리보기를 제공한다. 일 실시예에 있어서, 아이콘(1702)의 선택은 사용자의 소셜 그래프로의 공유를 위해 사용자의 레코딩된 게임플레이로부터의 특정 스크린샷을 사용자가 선택할 수 있게 하는 부가적 스크린샷 선택 인터페이스로의 액세스를 제공할 수 있다. 이것은, 게임플레이 내 특정 시간 포인트 및 그 대응하는 스크린샷을 식별하도록 항행 또는 횡단될 수 있는, 항행가능한 게임플레이 비디오 타임라인의 형태를 취할 수 있다.
아이콘(1706)은 사용자의 게임플레이의 비디오의 업로드를 개시하도록 선택될 수 있다. 아이콘(1706)의 영역(1708)은 사용자의 최근 게임플레이로부터의 대표적 비디오 클립, 예를 들어, 사용자의 게임플레이의 마지막 5초, 최근 업적 등을 디스플레이하고, 그로써 타인과 공유될 수 있는 사용자의 게임플레이로부터의 비디오 클립의 작은-스케일 미리보기를 디스플레이하도록 구성될 수 있다.
아이콘(1710)은 사용자의 활동 게임플레이의 라이브 비디오 스트리밍을 개시하도록 선택될 수 있다. 일 실시예에 있어서, 아이콘(1710)의 선택은 사용자의 게임플레이의 재개를 트리거링하는 한편 사용자의 게임플레이의 라이브 비디오 스트리밍을 개시할 것이다. 다른 일 실시예에 있어서, 아이콘(1710)의 선택은, 누구와 스트리밍 비디오를 공유할지, 게임플레이 동안 사용자 그녀/그 자신에게 보여주도록 의도된 로컬 이미지 캡처 디바이스로부터의 비디오 스트림을 포함할지, 코멘트를 가능하게 할지 등과 같이, 스트리밍 비디오 브로드캐스트에 대한 설정을 결정하도록 인터페이스로의 액세스를 제공한다.
사용자는 게임플레이(예를 들어, 선택된 스크린샷, 비디오, 또는 라이브 게임플레이 스트림)을 하나 이상의 특별 선택된 친구에게, 그들 소셜 그래프 전체에게, 또는 소셜 네트워크의 어느 사용자에게 공유할 수 있음을 인식할 것이다. 소셜 네트워크는 비디오 게임이 실행되는 플랫폼과 연관된 게이밍 소셜 네트워크이거나, 비디오 게임 또는 그 플랫폼과는 별개로 존재하는 제3자 소셜 네트워크일 수 있다. 소셜 네트워크는 소셜 네트워크와의 인터페이싱을 가능하게 하도록 정의된 API를 통해 액세스될 수 있다. 게임플레이가 공유된 사용자는 공유된 게임플레이에 대해 그들에게 알려주는 통지를 수신할 수 있다. 그러한 통지는 소셜 뉴스 피드로의 게시, 소셜 네트워크를 통한 비밀 메시지, 게임-내 통지, 이-메일, 채팅 통지 등의 형태를 취할 수 있다. 소셜 네트워크에 게임플레이를 공유하는 것은 공유하는 사용자의 소셜 그래프의 일부분일 수도 있고 아닐 수도 있는 소셜 네트워크의 사용자의 다른 부분 집합에 게임플레이를 이용가능하게 하는 것을 수반할 수 있다. 예를 들어, 소정 비디오 게임에 대하여, 게임플레이는 비디오 게임을 또한 소유하고 그래서 비디오 게임의 공유된 게임플레이로의 액세스를 승인받은 소셜 네트워크의 어느 사용자에게 공유 또는 이용가능하게 될 수 있다. 그러한 공유된 게임플레이는 비디오 게임의 플레이어에게만 이용가능한 온라인 포럼, 채팅 방, 또는 다른 온라인 채널을 통해 액세스될 수 있다. 일 실시예에 있어서, 비디오 게임은 소셜 네트워크 상에 전용 페이지 또는 사이트를 가질 수 있다. 공유된 게임플레이는 비디오 게임의 페이지 또는 사이트에 액세스하는 사용자에게 이용가능하게 될 수 있다. 물론, 공유하는 사용자의 관점에서, 사용자가 그들의 게임플레이가 누구에게 그리고 어떤 포럼에 공유될지 특정하고 맞출 수 있게 하는 옵션이 제공될 수 있음을 인식할 것이다.
도 18은, 본 발명의 일 실시예에 따라, 공유를 위해 레코딩된 게임플레이 비디오의 일부를 선택하기 위한 인터페이스(1800)를 예시하고 있다. 인터페이스(1800)는, 사용자의 게임플레이로부터의 비디오의 현재 선택된 부분의 미리보기를 루프로 나타내는, 미리보기 영역(1802)을 포함한다. 스크린샷(1804, 1806, 1808, 1810, 1812)은 게임플레이 비디오의 컨텐트를 나타내는 스크린샷의 타임라인을 정의하도록 연대기 순서로 서로 인접하여 위치결정된다. 다양한 스크린샷(1804, 1806, 1808, 1810, 1812)은 게임플레이 비디오로부터 규칙적 인터벌로 추출된 이미지 프레임일 수 있다. 스크린샷 타임라인은 현재 디스플레이되는 것들에 선행하거나 속행하는 부가적 프레임을 보여주도록 좌측 또는 우측으로 스크롤링될 수 있다. 마커(1814, 1816)는 현재 선택된 비디오 클립(또는 세그먼트 또는 부분)에 대한 시작 및 종료 포인트를 나타낸다. 현재 선택된 비디오 클립은, 언급된 바와 같이, 미리보기 영역(1802)에서 반복적으로 재생될 수 있다.
일 실시예에 있어서, 버튼(1818, 1820)은, 각각, 선택된 비디오 부분의 지속시간을 감축 또는 증가시키도록 선택될 수 있다. 미리보기 옵션(1822)은 현재 선택된 비디오 클립의 풀스크린 미리보기의 재생을 트리거링하도록 선택될 수 있다. 트리밍 옵션(1824)은 부가적 비디오 트리밍 특징에 액세스하도록 선택될 수 있다.
도 19는, 본 발명의 일 실시예에 따라, 사용자의 게임플레이의 라이브 비디오 스트림을 보기 위한 인터페이스(1900)를 예시하고 있다. 참조(1902)에서는, 그들의 게임플레이를 스트리밍하고 있는 사용자의 이름 및/또는 별명이 보여진다. 참조(1904)에서는, 라이브 비디오 스트림을 현재 보고 있는 사용자의 수가 보여진다. 사용자의 게임플레이의 라이브 비디오 스트림은 비디오 디스플레이 영역(1906)에 디스플레이된다. 부가적으로, 게임플레이가 라이브 스트리밍되고 있는 실제 사용자의 라이브 비디오를 보여주는, 라이브 사용자 비디오(1908)가 포함될 수 있다. 보고 있는 사용자가 비디오 게임에 영향을 미치는 커맨드를 발행하거나, 스트리밍 사용자의 게임플레이를 제어할 수도 있게 하는 커맨드 옵션(1910)이 선택될 수 있다. 게임-내 커맨드의 발행 또는 사용자의 게임플레이의 원격 제어는, 보고 있는 사용자가 그러한 액션을 수행 가능하게 하도록 게임을 플레이하는 사용자로부터, 게임플레이 때 요청되든 기정의되든, 허가를 요구할 수 있음을 인식할 것이다.
옵션(1912)은 보고 있는 사용자가 스트리밍 사용자의 게임플레이에 합류 가능하게 한다. 그리고 옵션(1914)은 보고 있는 사용자가 진행-중 비디오 게임을 구입 가능하게 한다.
더욱, 인터페이스는, 라이브 비디오 스트림을 보고 있는 사용자로부터의 코멘트를 디스플레이하여 각각의 코멘트의 시간을 나타내는 코멘트 섹션(1916)을 포함할 수 있다. 코멘트 입력 필드(1918)는 보고 있는 사용자가 게시될 코멘트에 대한 문자를 입력하도록 제공된다. 그리고 보내기 버튼(1920)은 라이브 스트리밍 사용자 및 라이브 비디오 스트림을 보고 있는 타인에 의한 보기를 위해 코멘트를 업로드하도록 눌려진다.
본 발명의 실시예가 전용 버튼 누르기로부터 공유를 위한 다양한 인터페이스에 액세스하는 것을 참조하여 설명되었더라도, 다른 실시예에서는, 이들 인터페이스 중 일부 또는 전부가 사용자 소셜 그래프로의 게임플레이의 공유를 용이하게 하는데 요구되지 않을 수 있음을 인식할 것이다. 예를 들어, 일 실시예에 있어서, 컨트롤러 버튼은 눌려질 때 사용자 게임플레이의 스크린샷을 캡처링하도록 구성될 수 있다. 캡처링된 스크린샷은 그 후 자동으로 업로드되어 사용자 소셜 그래프에 공유될 수 있다.
다른 일 실시예에 있어서, 컨트롤러 상의 특정 버튼을 누르는 것은 게임플레이 비디오의 레코딩을 개시한다. 특정 버튼이 제2 회 눌려질 때, 게임플레이 비디오의 레코딩은 중단되고, 비디오 클립은 업로드되어 사용자 소셜 그래프에 공유될 수 있다. 일 실시예에 있어서, 사용자 소셜 그래프로의 비디오 클립의 업르도 및 공유는 비디오 레코딩 작업의 종료에 뒤이어 자동으로 일어날 수 있다. 그렇지만, 다른 일 실시예에 있어서는, 특정 버튼이 레코딩을 중단하도록 제2 회 눌려질 때, 비디오를 트리밍하는 것, 비디오에 대한 대표적 스크린샷을 선택하는 것, 비디오를 함께 공유할 특정 사용자를 결정하는 것, 캡션 또는 타이틀을 부가하는 것 등과 같은 다양한 옵션을 사용자가 커스터마이징 가능하게 하는 인터페이스가 제시된다. 사용자에 의한 커스터마이징 후에, 비디오는 타인과 공유되거나 아니면 보기에 이용가능하게 될 수 있다.
일 실시예에 있어서, 컨트롤러 상의 특정 버튼은 소셜 네트워크 상에서 게임플레이 비디오의 미리 정의된 지속시간을 공유하도록 구성될 수 있다. 예를 들어, 사용자는 버튼이 눌려질 때 게임플레이 비디오의 이전 10초가 사용자 소셜 그래프에 공유될 것을 특정할 수 있다. 다른 일 실시예에 있어서는, 버튼이 눌려질 때 게임플레이 비디오의 다음 10초가 레코딩되어 소셜 그래프에 공유될 것이 특정될 수 있다. 비디오를 트리밍하고 다른 유형의 커스터마이징을 수행하기 위한 옵션은 레코딩된 게임플레이 비디오에 적용될 수 있음을 인식하여야 한다. 더욱, 버튼 트리거에 뒤이은 미리 정의된 지속시간의 레코딩된 게임플레이 비디오는 설명된 바와 같이 이전에 버퍼링된 게임플레이 비디오와 조합될 수 있다.
또 다른 일 실시예에 있어서, 컨트롤러 디바이스 상의 특정 버튼은 사용자 활동 게임플레이의 라이브 비디오 스트리밍을 개시하도록 구성될 수 있다. 라이브 비디오 스트리밍은 단지 사용자 소셜 그래프의 구성원에게, 또는, 사용자 소셜 그래프의 특정 부분 집합, 동일 비디오 게임을 소유하거나 아니면 그것으로의 액세스를 갖는 모든 사용자, 게이밍 플랫폼의 어느 사용자 등과 같은, 다른 더 작거나 더 큰 사용자 그룹에 이용가능하게 될 뿐이도록 기정의될 수 있다.
레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생 
일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산; 결정된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 및 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 사용자의 레코딩된 게임플레이를 분석하는 것은 사용자 입력 데이터 또는 게임 상태 데이터의 활동 레벨을 결정하는 것을 포함하고, 관심 있는 영역은 미리 정의된 임계치를 초과하는 활동 레벨을 갖는 영역이다.
일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 가상 공간 내 공간적 경계를 정의하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 가상 공간 내 공간적 경계는 가상 공간의 전체보다 작은 가상 공간의 일부를 정의하고, 가상 공간의 일부는 가상 공간의 피처의 부분 집합을 갖는다.
일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 시간적 맥락 내 시간적 경계를 정의하는 것을 포함한다.
일 실시예에 있어서, 경계를 정의하는 것은 스테이지, 레벨 또는 장면 중 하나 이상의 가장 가까운 시작 포인트 또는 가장 가까운 종료 포인트를 식별하는 것을 포함한다.
일 실시예에 있어서, 사용자의 레코딩된 게임플레이를 분석하는 것은 사용자의 레코딩된 게임플레이에 기반하여 사용자 게임 상태 설정들을 결정하는 것을 포함하고, 비디오 게임의 제한된 버전을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 제한된 버전을 정의하는 것을 포함한다.
일 실시예에 있어서, 관심 있는 영역은 하나 이상의 임계치에 대한 대응에 기반하여 자동으로 식별된다. 일 실시예에 있어서, 상기 임계치 중 적어도 하나는 사용자 입력, 사용자 입력의 레이트, 사용자 입력의 빈도, 사용자 입력의 반복들, 입력 패턴, 다른 사용자들과의 게임플레이 맥락의 공유, 소셜 네트워크 상에 게임플레이와 연관된 코멘트들의 게시, 또는 소셜 네트워크 공유 레벨들에 기반하는 비디오 게임의 부분들의 인기 중 하나 이상과 연관된다.
다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산; 선택을 위해 관심 있는 영역의 각각을 제시하는 연산; 선택된 관심 있는 영역을 나타내는 선택 입력을 수신하는 연산; 선택된 관심 있는 영역에 대해, 선택된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 및 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 사용자의 레코딩된 게임플레이를 분석하는 것은 사용자 입력 데이터 또는 게임 상태 데이터의 활동 레벨을 결정하는 것을 포함하고, 각각의 관심 있는 영역은 미리 정의된 임계치를 초과하는 활동 레벨을 갖는 영역이다.
일 실시예에 있어서, 사용자의 레코딩된 게임플레이를 분석하는 것은 사용자의 레코딩된 게임플레이에 기반하여 사용자 게임 상태 설정들을 결정하는 것을 포함하고, 비디오 게임의 제한된 버전을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 제한된 버전을 정의하는 것을 포함한다.
일 실시예에 있어서, 각각의 관심 있는 영역은 하나 이상의 임계치에 대한 대응에 기반하여 자동으로 식별된다.
다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산으로서, 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 연산을 포함하는 사용자의 게임플레이를 레코딩하는 연산; 하나 이상의 관심 있는 영역을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산으로서, 각각의 관심 있는 영역은 하나 이상의 임계치에 대한 대응에 기반하여 자동으로 식별되는 분석하는 연산; 선택을 위해 관심 있는 영역의 각각을 제시하는 연산; 선택된 관심 있는 영역을 나타내는 선택 입력을 수신하는 연산; 선택된 관심 있는 영역에 대해, 선택된 관심 있는 영역에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 연산; 정의된 경계들에 기반하여 비디오 게임의 제한된 버전을 발생시키는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 가상 공간 내 공간적 경계를 정의하는 것을 포함하고, 비디오 게임의 가상 공간 내 공간적 경계는 가상 공간의 전체보다 작은 가상 공간의 일부를 정의하고, 가상 공간의 일부는 가상 공간의 피처의 부분 집합을 갖는다.
일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 시간적 맥락 내 시간적 경계를 정의하는 것을 포함한다.
일 실시예에 있어서, 경계를 정의하는 것은 스테이지, 레벨 또는 장면 중 하나 이상의 가장 가까운 시작 포인트 또는 가장 가까운 종료 포인트를 식별하는 것을 포함한다.
일 실시예에 있어서, 상기 임계치 중 적어도 하나는 사용자 입력, 사용자 입력의 레이트, 사용자 입력의 빈도, 사용자 입력의 반복들, 입력 패턴, 다른 사용자들과의 게임플레이 맥락의 공유, 소셜 네트워크 상에 게임플레이와 연관된 코멘트들의 게시, 또는 소셜 네트워크 공유 레벨들에 기반하는 비디오 게임의 부분들의 인기 중 하나 이상과 연관된다.
레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 멀티-파트 미니-게임의 발생
일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 방법으로서, 이하의 방법 연산: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하는 연산; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하는 연산; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키는 연산; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
일 실시예에 있어서, 사용자의 레코딩된 게임플레이의 각각의 사용자-정의된 부분을 결정하는 것은 사용자의 레코딩된 게임플레이 내 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트를 수신하는 것, 및 수신된 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트에 기반하여 사용자-정의된 부분을 결정하는 것을 포함한다.
일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 코드 엘리먼트(code element)들을 식별하도록 게임 상태 데이터를 분석하는 것, 및 비디오 게임의 플레이가능한 부분을 정의하는 실행가능한 코드를 정의하도록 코드 엘리먼트들을 어셈블링하는 것을 포함한다.
일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 가상 공간 내 공간적 경계를 정의하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 가상 공간 내 공간적 경계는 가상 공간의 전체보다 작은 가상 공간의 일부를 정의하고, 가상 공간의 일부는 가상 공간의 피처의 부분 집합을 갖는다.
일 실시예에 있어서, 비디오 게임의 게임플레이 맥락 내 경계들을 정의하는 것은 비디오 게임의 시간적 맥락 내 시간적 경계를 정의하는 것을 포함한다.
일 실시예에 있어서, 방법은, 각각의 사용자-정의된 부분에 대해, 사용자 게임 상태 설정을 결정하도록 사용자의 레코딩된 게임플레이를 분석하는 연산을 더 포함하되, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 플레이가능한 부분을 정의하는 것을 포함한다.
일 실시예에 있어서, 경계를 정의하는 것은 스테이지, 레벨 또는 장면 중 하나 이상의 가장 가까운 시작 포인트 또는 종료 포인트를 식별하는 것을 포함한다.
일 실시예에 있어서, 방법은 사용자-정의된 비디오를 레코딩하는 연산을 더 포함하되, 비디오 게임의 플레이가능한 부분을 배열하는 것은 비디오 게임의 플레이가능한 부분 중 하나에 선행하는 또는 후행하는 시리즈 내 위치에 사용자-정의된 비디오를 배열하는 것을 포함한다. 일 실시예에 있어서, 사용자-정의된 비디오는 사용자의 레코딩된 게임플레이의 사용자-정의된 부분들 중 적어도 하나로부터의 비디오를 포함한다.
다른 일 실시예에 있어서는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 프로그램 명령어가 구체화되어 있는 유형적 컴퓨터 판독가능한 매체로서, 이하의 명령어: 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하기 위한 프로그램 명령어; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하기 위한 프로그램 명령어; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키기 위한 프로그램 명령어; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하기 위한 프로그램 명령어를 포함하는 매체가 제공된다.
일 실시예에 있어서, 사용자의 레코딩된 게임플레이의 각각의 사용자-정의된 부분을 결정하는 것은 사용자의 레코딩된 게임플레이 내 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트를 수신하는 것, 및 수신된 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트에 기반하여 사용자-정의된 부분을 결정하는 것을 포함한다.
일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 코드 엘리먼트들을 식별하도록 게임 상태 데이터를 분석하는 것, 및 비디오 게임의 플레이가능한 부분을 정의하는 실행가능한 코드를 정의하도록 코드 엘리먼트들을 어셈블링하는 것을 포함한다.
일 실시예에 있어서, 유형적 컴퓨터 판독가능한 매체는, 각각의 사용자-정의된 부분에 대해, 사용자 게임 상태 설정을 결정하도록 사용자의 레코딩된 게임플레이를 분석하기 위한 프로그램 명령어를 더 포함하되, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 플레이가능한 부분을 정의하는 것을 포함한다.
다른 일 실시예에 있어서는, 시스템으로서: 적어도 하나의 서버 컴퓨팅 디바이스를 포함하고, 적어도 하나의 서버 컴퓨팅 디바이스는, 비디오 게임의 풀 버전의 사용자의 게임플레이를 레코딩하기 위한 로직; 사용자의 레코딩된 게임플레이의 복수의 사용자-정의된 부분을 결정하기 위한 로직; 각각의 사용자-정의된 부분에 대해, 사용자-정의된 부분에 기반하여 비디오 게임의 게임플레이 맥락 내 경계들을 정의하고, 정의된 경계들에 기반하여 비디오 게임의 플레이가능한 부분을 발생시키기 위한 로직; 비디오 게임의 제한된 버전을 정의하도록 비디오 게임의 플레이가능한 부분의 각각을 시리즈로 배열하기 위한 로직을 포함하는, 비디오 게임의 플레이가능한 제한된 버전을 발생시키기 위한 로직을 갖는 시스템이 제공된다.
일 실시예에 있어서, 사용자의 레코딩된 게임플레이의 각각의 사용자-정의된 부분을 결정하는 것은 사용자의 레코딩된 게임플레이 내 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트를 수신하는 것, 및 수신된 사용자-정의된 시작 포인트 및 사용자-정의된 종료 포인트에 기반하여 사용자-정의된 부분을 결정하는 것을 포함한다.
일 실시예에 있어서, 사용자의 게임플레이를 레코딩하는 것은 사용자 입력 데이터 또는 게임 상태 데이터 중 하나 이상을 레코딩하는 것을 포함한다. 일 실시예에 있어서, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 코드 엘리먼트들을 식별하도록 게임 상태 데이터를 분석하는 것, 및 비디오 게임의 플레이가능한 부분을 정의하는 실행가능한 코드를 정의하도록 코드 엘리먼트들을 어셈블링하는 것을 포함한다.
일 실시예에 있어서, 상기 로직은, 각각의 사용자-정의된 부분에 대해, 사용자 게임 상태 설정을 결정하도록 사용자의 레코딩된 게임플레이를 분석하기 위한 로직을 더 포함하되, 비디오 게임의 플레이가능한 부분을 발생시키는 것은 결정된 사용자 게임 상태 설정들에 기반하여 초기 게임 상태 설정들을 갖도록 비디오 게임의 플레이가능한 부분을 정의하는 것을 포함한다.
레코딩된 게임플레이를 소셜 그래프에 공유
일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 방법으로서, 이하의 방법 연산: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하는 연산; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하는 연산; 커맨드를 수신하는 것에 응답하여, 게임플레이 세션의 휴지 상태에 들어가고 공유하는 인터페이스를 제시하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 결정하도록 공유하는 인터페이스를 통하여 수신된 입력을 프로세싱하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하는 연산; 게임플레이 세션의 활동 상태를 재개하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
일 실시예에 있어서, 사용자의 게임플레이의 비디오를 레코딩하는 것은 게임플레이 세션의 활동 상태 동안 버퍼에 비디오를 저장하는 것을 포함한다.
일 실시예에 있어서, 공유하는 인터페이스를 제시하는 것은 버퍼로부터 비디오의 하나 이상의 부분을 검색하여 제시하는 것을 포함한다.
일 실시예에 있어서, 공유하는 인터페이스는 사용자-정의된 선택의 지속시간을 정의하기 위한 지속시간 선택기를 포함한다.
일 실시예에 있어서, 선택을 공유하는 것은 사용자의 소셜 그래프를 정의하는 소셜 네트워크 서비스 상에서 이용가능하도록 선택을 업로드하는 것을 포함한다.
일 실시예에 있어서, 선택을 업로드하는 것은 선택을 압축하고 압축된 선택을 업로드하는 것을 포함한다.
일 실시예에 있어서, 선택을 공유하는 것은 사용자의 소셜 그래프의 구성원에게 통지를 발생시키는 것을 포함한다.
일 실시예에 있어서, 통지는 비밀 메시지, 채팅 메시지, 게임-내 통지, 소셜 뉴스 피드로의 게시, 이-메일 중 하나 이상에 의해 정의된다.
일 실시예에 있어서, 선택을 공유하는 것은 사용자의 프로파일 페이지(profile page) 상에 선택을 제시하는 것을 포함한다.
일 실시예에 있어서, 공유하는 연산을 개시하는 커맨드를 수신하는 것은 컨트롤러 디바이스 상의 버튼 누르기로부터 정의된다.
다른 일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 방법으로서, 이하의 방법 연산: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하는 연산; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하는 연산; 커맨드를 수신하는 것에 응답하여, 레코딩된 비디오의 사용자-정의된 선택을 결정하는 연산; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하는 연산을 포함하되, 방법은 프로세서에 의해 실행되는 방법이 제공된다.
일 실시예에 있어서, 사용자의 게임플레이의 비디오를 레코딩하는 것은 게임플레이 세션의 활동 상태 동안 버퍼에 비디오를 저장하는 것을 포함한다.
일 실시예에 있어서, 레코딩된 비디오의 사용자-정의된 선택을 결정하는 것은 버퍼로부터 비디오를 검색하여 제시하는 것, 및 비디오의 일부를 식별하는 사용자 입력을 프로세싱하는 것을 포함한다.
일 실시예에 있어서, 선택을 공유하는 것은 사용자의 소셜 그래프를 정의하는 소셜 네트워크 서비스 상에서 이용가능하도록 선택을 업로드하는 것을 포함한다.
일 실시예에 있어서, 공유하는 연산을 개시하는 커맨드를 수신하는 것은 컨트롤러 디바이스 상의 버튼 누르기로부터 정의된다.
다른 일 실시예에 있어서는, 레코딩된 게임플레이를 소셜 그래프에 공유하기 위한 프로그램 명령어가 정의되어 있는 비-일시적 컴퓨터 판독가능한 매체가 제공된다. 프로그램 명령어는: 게임플레이 세션의 활동 상태 동안 사용자의 게임플레이의 비디오를 레코딩하기 위한 프로그램 명령어; 게임플레이 세션의 활동 상태 동안 공유하는 연산을 개시하는 커맨드를 수신하기 위한 프로그램 명령어; 커맨드를 수신하는 것에 응답하여, 레코딩된 비디오의 사용자-정의된 선택을 결정하기 위한 프로그램 명령어; 레코딩된 비디오의 사용자-정의된 선택을 사용자의 소셜 그래프에 공유하기 위한 프로그램 명령어를 포함한다.
일 실시예에 있어서, 사용자의 게임플레이의 비디오를 레코딩하는 것은 게임플레이 세션의 활동 상태 동안 버퍼에 비디오를 저장하는 것을 포함한다.
일 실시예에 있어서, 레코딩된 비디오의 사용자-정의된 선택을 결정하는 것은 버퍼로부터 비디오를 검색하여 제시하는 것, 및 비디오의 일부를 식별하는 사용자 입력을 프로세싱하는 것을 포함한다.
일 실시예에 있어서, 선택을 공유하는 것은 사용자의 소셜 그래프를 정의하는 소셜 네트워크 서비스 상에서 이용가능하도록 선택을 업로드하는 것을 포함한다.
일 실시예에 있어서, 공유하는 연산을 개시하는 커맨드를 수신하는 것은 컨트롤러 디바이스 상의 버튼 누르기로부터 정의된다.
제2 사용자에 의한 제1 사용자의 게임플레이의 원격 제어
일 실시예에 있어서는, 사용자의 게임플레이의 원격 제어를 제공하기 위한 방법으로서, 이하의 방법 연산: 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 연산; 제1 사용자의 게임플레이의 제어를 제2 사용자에게 이행하는 요청을 프로세싱하는 연산; 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 연산을 포함하되, 방법은 적어도 하나의 프로세서에 의해 실행되는 방법이 제공된다.
일 실시예에 있어서, 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 것은 제1 사용자와 연관된 제1 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어를 비활성화시키는 것, 및 제2 사용자와 연관된 제2 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어를 활성화시키는 것을 포함한다.
일 실시예에 있어서, 제2 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어는 제2 컨트롤러 디바이스로부터 입력 커맨드들을 수신하는 것 및 제1 사용자의 게임플레이를 정의하도록 입력 커맨드들을 적용하는 것을 포함한다.
일 실시예에 있어서, 라이브 비디오 피드는 소셜 인터페이스를 통해 제2 사용자에게 제시되고, 소셜 인터페이스는 제2 사용자의 소셜 그래프로의 액세스를 제공하고, 제1 사용자는 제2 사용자의 소셜 그래프의 구성원으로서 정의된다.
일 실시예에 있어서, 소셜 인터페이스는 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함한다.
일 실시예에 있어서, 제어를 이행하는 요청을 프로세싱하는 것은 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 허용하는 제1 사용자로부터의 확인응답을 수신하는 것을 포함한다.
일 실시예에 있어서, 제1 사용자의 게임플레이의 라이브 비디오 피드를 제2 사용자에게 제시하는 것은 비-풀스크린 포맷으로 라이브 비디오 피드를 제시하는 것을 포함하고, 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 것은 풀스크린 포맷으로 라이브 비디오 피드의 제시를 트리거링하는 것을 포함한다.
다른 일 실시예에 있어서는, 멀티플레이어 게임플레이를 제공하기 위한 방법으로서, 이하의 방법 연산: 제1 사용자의 게임플레이 세션의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 연산; 제2 사용자가 제1 사용자의 게임플레이 세션에 합류하는 요청을 프로세싱하는 연산; 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 개시하는 연산을 포함하되, 방법은 적어도 하나의 프로세서에 의해 실행되는 방법이 제공된다.
일 실시예에 있어서, 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 개시하는 것은 비디오 게임의 멀티플레이어 모드를 개시하는 것을 포함한다.
일 실시예에 있어서, 라이브 비디오 피드는 소셜 인터페이스를 통해 제2 사용자에게 제시되고, 소셜 인터페이스는 제2 사용자의 소셜 그래프로의 액세스를 제공하고, 제1 사용자는 제2 사용자의 소셜 그래프의 구성원으로서 정의된다.
일 실시예에 있어서, 소셜 인터페이스는 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함한다.
일 실시예에 있어서, 제1 사용자의 게임플레이 세션에 합류하는 요청을 프로세싱하는 것은 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 허용하는 제1 사용자로부터의 확인응답을 수신하는 것을 포함한다.
일 실시예에 있어서, 제1 사용자의 게임플레이의 라이브 비디오 피드를 제2 사용자에게 제시하는 것은 비-풀스크린 포맷으로 라이브 비디오 피드를 제시하는 것을 포함하고, 제1 사용자의 게임플레이 세션에서 제2 사용자에 의한 게임플레이를 개시하는 것은 풀스크린 포맷으로 라이브 비디오 피드의 제시를 트리거링하는 것을 포함한다.
다른 일 실시예에 있어서는, 사용자의 게임플레이의 원격 제어를 제공하기 위한 프로그램 명령어가 구체화되어 있는 비-일시적 컴퓨터 판독가능한 매체가 제공되며, 프로그램 명령어는: 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하기 위한 프로그램 명령어; 제1 사용자의 게임플레이의 제어를 제2 사용자에게 이행하는 요청을 프로세싱하기 위한 프로그램 명령어; 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하기 위한 프로그램 명령어를 포함한다.
일 실시예에 있어서, 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 것은 제1 사용자와 연관된 제1 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어를 비활성화시키는 것, 및 제2 사용자와 연관된 제2 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어를 활성화시키는 것을 포함한다.
일 실시예에 있어서, 제2 컨트롤러 디바이스에 의한 제1 사용자의 게임플레이의 제어는 제2 컨트롤러 디바이스로부터 입력 커맨드들을 수신하는 것 및 제1 사용자의 게임플레이를 정의하도록 입력 커맨드들을 적용하는 것을 포함한다.
일 실시예에 있어서, 라이브 비디오 피드는 소셜 인터페이스를 통해 제2 사용자에게 제시되고, 소셜 인터페이스는 제2 사용자의 소셜 그래프로의 액세스를 제공하고, 제1 사용자는 제2 사용자의 소셜 그래프의 구성원으로서 정의된다.
일 실시예에 있어서, 소셜 인터페이스는 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함한다.
일 실시예에 있어서, 제어를 이행하는 요청을 프로세싱하는 것은 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 허용하는 제1 사용자로부터의 확인응답을 수신하는 것을 포함한다.
일 실시예에 있어서, 제1 사용자의 게임플레이의 라이브 비디오 피드를 제2 사용자에게 제시하는 것은 비-풀스크린 포맷으로 라이브 비디오 피드를 제시하는 것을 포함하고, 제2 사용자에 의한 제1 사용자의 게임플레이의 제어를 개시하는 것은 풀스크린 포맷으로 라이브 비디오 피드의 제시를 트리거링하는 것을 포함한다.
도 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(등록상표) 메모리 카드 등을 포함한다.
I/O 브릿지(2034)는 또한 6개의 범용 직렬 버스(USB) 2.0 포트(2024); 기가비트 이더넷 포트(2022); IEEE 802.11 b/g 무선 네트워크(와이-파이) 포트(2020); 및 7개의 블루투스 접속까지 지원할 수 있는 Bluetooth(등록상표) 무선 링크 포트(2018)에 접속된다.
동작에 있어서, I/O 브릿지(2034)는, 하나 이상의 게임 컨트롤러(2002-2003)로부터의 데이터를 포함하여, 모든 무선, USB 및 이더넷 데이터를 취급한다. 예를 들어, 사용자가 게임을 플레이하고 있을 때, I/O 브릿지(2034)는 블루투스 링크를 통하여 게임 컨트롤러(2002-2003)로부터 데이터를 수신하고 그것을 셀 프로세서(2028)로 지향시키며, 그러면 그에 따라 게임의 현재 상태를 업데이트한다.
무선, USB 및 이더넷 포트는 또한: 리모컨(2004); 키보드(2006); 마우스(2008); Sony 플레이스테이션(Playstation) Portable(등록상표)과 같은 포터블 엔터테인먼트 디바이스(2010); EyeToy(등록상표) 비디오 카메라(2012)와 같은 비디오 카메라; 마이크로폰 헤드셋(2014); 및 마이크로폰(2015)과 같이, 게임 컨트롤러(2002-2003)에 부가하여 다른 주변 디바이스에 대한 접속성을 제공한다. 그래서 그러한 주변 디바이스는 원칙적으로는 시스템 유닛(2000)에 무선으로 접속될 수 있다; 예를 들어 포터블 엔터테인먼트 디바이스(2010)는 와이-파이 애드-혹 접속을 통하여 통신할 수 있는 한편, 마이크로폰 헤드셋(2014)은 블루투스 링크를 통하여 통신할 수 있다.
이들 인터페이스의 제공은 플레이스테이션 3 디바이스가 또한 잠재적으로 디지털 비디오 레코더(DVR), 셋-톱 박스, 디지털 카메라, 포터블 미디어 플레이어, VoIP 전화기, 모바일 전화기, 프린터 및 스캐너와 같은 다른 주변 디바이스와 호환가능함을 의미한다.
부가적으로, 구형 메모리 카드 리더(2016)가 USB 포트(2024)를 통하여 시스템 유닛에 접속되어, 플레이스테이션(Playstation)(등록상표) 또는 플레이스테이션(Playstation) 2(등록상표) 디바이스에 의해 사용되는 종류의 메모리 카드(2048)의 판독을 가능하게 할 수 있다.
게임 컨트롤러(2002-2003)는 블루투스 링크를 통하여 시스템 유닛(2000)과 무선으로 통신하도록, 또는 USB 포트에 접속되어, 그로써 또한 게임 컨트롤러(2002-2003)의 배터리를 충전할 전력을 제공하도록 동작가능하다. 게임 컨트롤러(2002-2003)는 또한 메모리, 프로세서, 메모리 카드 리더, 플래시 메모리와 같은 영구적 메모리, 조명 구 섹션, LED 또는 적외선 광과 같은 발광기, 초음파 통신을 위한 마이크로폰 및 스피커, 음향 챔버, 디지털 카메라, 내부 클록, 게임 콘솔에 대향하는 구 섹션과 같은 인지가능한 형상, 및 Bluetooth(등록상표), 와이파이(WiFi)(상표명) 등과 같은 프로토콜을 사용하는 무선 통신을 포함할 수 있다.
게임 컨트롤러(2002)는 2개의 손으로 사용되도록 설계된 컨트롤러이고, 게임 컨트롤러(2003)는 부착물을 갖는 한-손 컨트롤러이다. 하나 이상의 아날로그 조이스틱 및 관용적 제어 버튼에 부가하여, 게임 컨트롤러는 3-차원 위치 결정이 쉽다. 그 결과 게임 컨트롤러의 사용자에 의한 제스처 및 움직임은 관용적 버튼 또는 조이스틱 커맨드에 부가하여 또는 그 대신에 게임으로의 입력으로서 변환될 수 있다. 선택사항으로서, 플레이스테이션(Playstation)(상표명) 포터블 디바이스와 같은 다른 무선 가능 주변 디바이스가 컨트롤러로서 사용될 수 있다. 플레이스테이션(Playstation)(상표명) 포터블 디바이스의 경우에, 부가적 게임 또는 제어 정보(예를 들어, 제어 명령어 또는 생명의 수)가 디바이스의 스크린 상에 제공될 수 있다. 댄스 매트(도시되지 않음), 라이트 건(도시되지 않음), 스티어링 휠 및 페달(도시되지 않음), 또는 신속한-응답 퀴즈 게임을 위한 단일 또는 수개의 큰 버튼(또한 도시되지 않음)과 같은 맞춤형 컨트롤러와 같은, 다른 대안 또는 보충 제어 디바이스가 또한 사용될 수 있다.
리모컨(2004)은 또한 블루투스 링크를 통하여 시스템 유닛(2000)과 무선으로 통신하도록 동작가능하다. 리모컨(704)은 블루 레이(Blu Ray)(상표명) 디스크 BD-ROM 리더(2040)의 조작에 그리고 디스크 컨텐트의 항행에 적합한 컨트롤을 포함한다.
블루 레이(Blu Ray)(상표명) 디스크 BD-ROM 리더(2040)는, 관용적 기-레코딩된 그리고 레코딩가능한 CD, 및 소위 슈퍼 오디오 CD에 부가하여, 플레이스테이션 및 플레이스테이션 2 디바이스와 호환가능한 CD-ROM을 판독하도록 동작가능하다. 리더(2040)는 또한, 관용적 기-레코딩된 그리고 레코딩가능한 DVD에 부가하여, 플레이스테이션 2 및 플레이스테이션 3 디바이스와 호환가능한 DVD-ROM을 판독하도록 동작가능하다. 리더(2040)는, 관용적 기-레코딩된 그리고 레코딩가능한 블루-레이 디스크뿐만 아니라, 플레이스테이션 3 디바이스와 호환가능한 BD-ROM을 판독하도록 더 동작가능하다.
시스템 유닛(2000)은 오디오 및 비디오를, 리얼리티 합성기 그래픽 유닛(2030)을 통하여 플레이스테이션 3 디바이스에 의해 디코딩되든 발생되든, 오디오 및 비디오 커넥터를 통해 디스플레이(2044) 및 하나 이상의 라우드스피커(2046)를 갖는 텔레비전 세트 또는 모니터와 같은 디스플레이 및 사운드 출력 디바이스(2042)에 공급하도록 동작가능하다. 오디오 커넥터(2050)는 관용적 아날로그 및 디지털 출력을 포함할 수 있는 한편, 비디오 커넥터(2052)는 다양하게 컴포넌트 비디오, S-비디오, 콤포지트 비디오 및 하나 이상의 고선명 멀티미디어 인터페이스(HDMI) 출력을 포함할 수 있다. 그 결과, 비디오 출력은 PAL 또는 NTSC와 같은 포맷이거나, 720p, 1080i 또는 1080p 고선명일 수 있다.
오디오 프로세싱(발생, 디코딩 등)은 셀 프로세서(2028)에 의해 수행된다. 플레이스테이션 3 디바이스의 운영 체제는 돌비(Dolby)(등록상표) 5.1 서라운드 사운드, 돌비(Dolby)(등록상표) 씨어터 서라운드(DTS), 및 블루 레이(Blu Ray)(등록상표) 디스크로부터의 7.1 서라운드 사운드의 디코딩을 지원한다.
본 실시예에 있어서, 비디오 카메라(2012)는 단일 전하 결합 디바이스(CCD), LED 인디케이터, 및 압축된 비디오 데이터가 시스템 유닛(2000)에 의한 디코딩을 위해 인트라-이미지 기반 MPEG(motion picture expert group) 표준과 같은 적합한 포맷으로 송신될 수 있도록 하드웨어-기반 실시간 데이터 압축 및 인코딩 장치를 포함한다. 카메라 LED 인디케이터는, 예를 들어, 조명 악조건을 나타내도록 시스템 유닛(2000)으로부터의 적합한 제어 데이터에 응답하여 조명하도록 배열된다. 비디오 카메라(2012)의 실시예는 다양하게 USB, 블루투스 또는 와이-파이 통신 포트를 통하여 시스템 유닛(700)에 접속될 수 있다. 비디오 카메라의 실시예는 하나 이상의 연관된 마이크로폰을 포함할 수 있고 또한 오디오 데이터를 송신 가능할 수 있다. 비디오 카메라의 실시예에 있어서, CCD는 고-선명 비디오 캡처에 적합한 해상도를 가질 수 있다. 사용에 있어서, 비디오 카메라에 의해 캡처링된 이미지는 예를 들어 게임 제어 입력으로서 해석되거나 게임 내 편입될 수 있다. 다른 일 실시예에 있어서, 카메라는 적외선 광을 검출하기에 적합한 적외선 카메라이다.
일반적으로, 시스템 유닛(2000)의 통신 포트 중 하나를 통하여 리모컨 또는 비디오 카메라와 같은 주변 디바이스와 성공적 데이터 통신이 일어나기 위하여, 디바이스 드라이버와 같은 적합한 한 가지의 소프트웨어가 제공되어야 한다. 디바이스 드라이버 기술은 주지되어 있고, 당업자는 디바이스 드라이버 또는 유사한 소프트웨어 인터페이스가 설명된 본 실시예에서 요구될 수 있음을 알고 있을 것이라고 말하는 것 외에는, 여기서 상세히 설명되지 않을 것이다.
도 21은, 본 발명의 일 실시예에 따라, 명령어를 프로세싱하도록 사용될 수 있는 부가적 하드웨어를 예시하고 있다. 셀 프로세서(2028)는 4개의 기본 컴포넌트를 포함하는 아키텍처를 갖는다: 메모리 컨트롤러(2160) 및 듀얼 버스 인터페이스 컨트롤러(2170A, B)를 포함하는 외부 입력 및 출력 구조; 파워 프로세싱 엘리먼트(2150)라고 지칭되는 메인 프로세서; 시너지스틱 프로세싱 엘리먼트(SPE)(2110A-H)라고 지칭되는 8개의 코-프로세서; 및 엘리먼트 상호접속 버스(2180)라고 지칭되는 위 컴포넌트를 접속시키는 순환 데이터 버스. 셀 프로세서의 총 부동 소수점 성능은, 플레이스테이션 2 디바이스의 이모션 엔진의 6.2 GFLOPS에 비해, 218 GFLOPS이다.
파워 프로세싱 엘리먼트(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)와 동기화시키는 것인 커널을 실행한다.
각각의 시너지스틱 프로세싱 엘리먼트(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)에 넘겨진다.
엘리먼트 상호접속 버스(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(초당 기가바이트)의 이론적 피크 대역폭과 같다.
메모리 컨트롤러(2160)는 램버스사에 의해 개발된 XDRAM 인터페이스(2162)를 포함한다. 메모리 컨트롤러는 25.6 GB/s의 이론적 피크 대역폭으로 램버스 XDRAM(2026)과 인터페이싱한다.
듀얼 버스 인터페이스(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 인바운드)의 이론적 피크 대역폭을 제공한다.
셀 프로세서(2128)에 의해 리얼리티 시뮬레이터 그래픽 유닛(2130)에 보내지는 데이터는 전형적으로는, 정점을 그리고, 다각형에 텍스처를 적용하고, 조명 조건을 특정하는 등의 커맨드 시퀀스인, 디스플레이 리스트를 포함할 것이다.
도 22는, 본 발명의 일 실시예에 따라, 인터넷을 통하여 서버 프로세싱에 접속되는 게임 클라이언트(2202)와 각각의 사용자(A) 내지 사용자(E)가 대화하고 있는 장면(A) 내지 장면(E)의 일례를 도시하고 있다. 게임 클라이언트는 사용자가 인터넷을 통하여 서버 애플리케이션 및 프로세싱에 접속할 수 있게 하는 디바이스이다. 게임 클라이언트는 사용자가, 국한되는 것은 아니지만, 게임, 영화, 음악 및 사진과 같은 온라인 엔터테인먼트 컨텐트에 액세스하여 재생할 수 있게 한다. 부가적으로, 게임 클라이언트는 VOIP, 문자 채팅 프로토콜, 및 이메일과 같은 온라인 통신 애플리케이션으로의 액세스를 제공할 수 있다.
사용자는 컨트롤러를 통하여 게임 클라이언트와 대화한다. 일부 실시예에 있어서, 컨트롤러는 게임 클라이언트 특정 컨트롤러인 한편, 다른 실시예에 있어서, 컨트롤러는 키보드와 마우스 조합일 수 있다. 일 실시예에 있어서, 게임 클라이언트는 모니터/텔레비전 및 연관된 오디오 장비를 통해 멀티미디어 환경을 생성하도록 오디오 및 비디오 신호를 출력할 수 있는 자립형 디바이스이다. 예를 들어, 게임 클라이언트는, 국한되는 것은 아니지만, 씬 클라이언트, 내부 PCI-익스프레스 카드, 외부 PCI-익스프레스 디바이스, 익스프레스카드 디바이스, 내부, 외부 또는 무선 USB 디바이스, 또는 파이어와이어 디바이스 등일 수 있다. 다른 실시예에 있어서, 게임 클라이언트는 DVR, 블루-레이 플레이어, DVD 플레이어 또는 멀티-채널 수신기와 같은 다른 멀티미디어 디바이스 또는 텔레비전과 통합된다.
도 22의 장면(A) 내에서, 사용자(A)는 게임 클라이언트(2202A)와 페어링된 컨트롤러(2206A)를 사용하여 모니터(2204A) 상에 디스플레이된 클라이언트 애플리케이션과 대화한다. 유사하게, 장면(B) 내에서, 사용자(B)는 게임 클라이언트(2202B)와 페어링된 컨트롤러(2206B)를 사용하여 모니터(2204B) 상에 디스플레이되는 다른 클라이언트 애플리케이션과 대화한다. 장면(C)는 사용자(C)가 게임 클라이언트(2202C)로부터 게임 및 친구 목록을 디스플레이하는 모니터를 주시하고 있을 때 그 뒤로부터 본 것을 예시하고 있다. 도 22가 단일 서버 프로세싱 모듈을 도시하고 있기는 하지만, 일 실시예에서는, 세계 곳곳의 다수의 서버 프로세싱 모듈이 있다. 각각의 서버 프로세싱 모듈은 사용자 세션 제어, 공유/통신 로직, 사용자 지리적-위치, 및 부하 균형 프로세싱 서비스를 위한 서브-모듈을 포함한다. 더욱, 서버 프로세싱 모듈은 네트워크 프로세싱 및 분산형 저장을 포함한다.
게임 클라이언트(2202)가 서버 프로세싱 모듈에 접속할 때, 사용자 세션 제어는 사용자를 인증하도록 사용될 수 있다. 인증된 사용자는 연관된 가상화된 분산형 저장 및 가상화된 네트워크 프로세싱을 가질 수 있다. 사용자의 가상화된 분산형 저장의 일부분으로서 저장될 수 있는 예시적 아이템은, 국한되는 것은 아니지만, 게임, 비디오 및 음악 등과 같은 구입한 미디어를 포함한다. 부가적으로, 분산형 저장은 다수 게임에 대한 게임 상황, 개개의 게임에 대한 커스터마이징된 설정, 및 게임 클라이언트에 대한 일반적 설정을 저장하도록 사용될 수 있다. 일 실시예에 있어서, 서버 프로세싱의 사용자 지리적-위치 모듈은 사용자 및 그 각각의 게임 클라이언트의 지리적 위치를 결정하도록 사용된다. 사용자의 지리적 위치는 다수의 서버 프로세싱 모듈의 프로세싱 요구 및 지리적 위치에 기반하여 성능을 최적화하도록 부하 균형 프로세싱 서비스에 의해서도 그리고 공유/통신 로직에 의해서도 사용될 수 있다. 네트워크 프로세싱 및 네트워크 저장 중 어느 하나 또는 둘 다를 가상화하는 것은 게임 클라이언트로부터의 프로세싱 태스크가 덜 이용된 서버 프로세싱 모듈(들)로 동적으로 시프트 가능하게 할 것이다. 그리하여, 부하 균형은 저장소로부터의 리콜과도 그리고 서버 프로세싱 모듈과 게임 클라이언트 간 데이터 송신과도 연관된 레이턴시를 최소화하도록 사용될 수 있다.
서버 프로세싱 모듈은 서버 애플리케이션(A) 및 서버 애플리케이션(B)의 인스턴스를 갖는다. 서버 프로세싱 모듈은 서버 애플리케이션(X1) 및 서버 애플리케이션(X2)에 의해 나타낸 바와 같은 다수의 서버 애플리케이션을 지원할 수 있다. 일 실시예에 있어서, 서버 프로세싱은 클러스터 내 다수의 프로세서가 서버 애플리케이션을 프로세싱할 수 있게 하는 클러스터 컴퓨팅 아키텍처에 기반한다. 다른 일 실시예에 있어서는, 다른 유형의 멀티-컴퓨터 프로세싱 기법이 서버 애플리케이션을 프로세싱하도록 적용된다. 이것은 다수의 클라이언트 애플리케이션 및 대응하는 서버 애플리케이션을 실행하는 다수의 게임 클라이언트를 수용하기 위하여 서버 프로세싱이 스케일링될 수 있게 한다. 대안으로, 서버 프로세싱은 그래픽 프로세싱 또는 게임, 비디오 압축, 또는 애플리케이션 복잡도를 더 요구함으로써 필요하게 된 증가된 컴퓨팅 수요를 수용하도록 스케일링될 수 있다. 일 실시예에 있어서, 서버 프로세싱 모듈은 서버 애플리케이션을 통하여 프로세싱의 대다수를 수행한다. 이것은 그래픽 프로세서, RAM 및 범용 프로세서와 같은 비교적 비싼 컴포넌트가 중앙에 위치할 수 있게 하여 게임 클라이언트의 비용을 감축한다. 프로세싱된 서버 애플리케이션 데이터는 인터넷을 통하여 대응하는 게임 클라이언트에 다시 보내져 모니터 상에 디스플레이된다.
장면(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)에 보냄으로써 가능하게 된다.
친구로부터의 비디오를 볼 수 있는 것에 부가하여, 통신 애플리케이션은 친구들 간 실시간 통신을 가능하게 할 수 있다. 앞선 예에 적용된 바와 같이, 이것은 사용자(A)가 사용자(B)의 실시간 비디오를 시청하면서 격려 또는 힌트를 제공 가능하게 한다. 일 실시예에서는, 2-방향 실시간 음성 통신이 클라이언트/서버 애플리케이션을 통해 확립된다. 다른 일 실시예에 있어서, 클라이언트/서버 애플리케이션은 문자 채팅을 가능하게 한다. 또 다른 일 실시예에 있어서, 클라이언트/서버 애플리케이션은 친구의 스크린 상에 디스플레이하기 위해 음성을 문자로 변환한다.
장면(D) 및 장면(E)은 각각 게임 콘솔(2210D, 2210E)과 대화하는 각각의 사용자(D) 및 사용자(E)를 예시하고 있다. 각각의 게임 콘솔(2210D, 2210E)은 서버 프로세싱 모듈에 접속되어 있고 서버 프로세싱 모듈이 게임 콘솔과 게임 클라이언트 양자에 대해 게임 플레이를 조정하는 네트워크를 예시하고 있다.
도 23은 정보 서비스 제공자 아키텍처의 일 실시예를 도시하고 있다. 정보 서비스 제공자(ISP)(2370)는 지리적으로 분산되고 네트워크(2386)를 통하여 접속된 사용자(2382)에게 다수의 정보 서비스를 전달한다. ISP는, 주가 업데이트와 같은 단 하나의 유형의 서비스, 또는 브로드캐스트 미디어, 뉴스, 스포츠, 게이밍 등과 같은 다양한 서비스를 전달할 수 있다. 부가적으로, 각각의 ISP에 의해 제공되는 서비스는 동적이다, 즉, 서비스는 어느 시점에라도 부가되거나 없어질 수 있다. 그리하여, 특정 개인에 특정 유형의 서비스를 제공하는 ISP는 시간에 걸쳐 바뀔 수 있다. 예를 들어, 사용자는 사용자가 그녀의 고향에 있는 동안은 사용자에게 가까운 근처에 있는 ISP에 의해 서비스 제공받을 수 있고, 사용자는 사용자가 다른 도시로 여행할 때는 다른 ISP에 의해 서비스 제공받을 수 있다. 고향 ISP는, 사용자 정보가 새로운 도시로의 사용자를 "따라" 데이터가 사용자에게 더 가깝고 액세스가 더 용이하게 하도록, 요구되는 정보 및 데이터를 새로운 ISP로 이관할 것이다. 다른 일 실시예에 있어서는, 사용자에 대한 정보를 관리하는 마스터 ISP와 마스터 ISP로부터의 제어 하에 사용자와 직접 인터페이싱하는 서버 ISP 간 마스터-서버 관계가 확립될 수 있다. 다른 실시예에 있어서는, 사용자에게 서비스를 제공하기에 더 나은 위치에 있는 ISP가 이들 서비스를 전달하는 것이게 하도록 클라이언트가 세계를 돌아다닐 때 데이터가 하나의 ISP로부터 다른 하나의 ISP로 이관된다.
ISP(2370)는, 컴퓨터-기반 서비스를 네트워크를 통하여 고객에게 제공하는, 애플리케이션 서비스 제공자(ASP)(2372)를 포함한다. ASP 모델을 사용하여 제공된 소프트웨어는 때로는 주문형 소프트웨어 또는 서비스형 소프트웨어(SaaS)라고도 불린다. (고객 관계 관리와 같은) 특정 애플리케이션 프로그램으로의 액세스를 제공하는 단순 형태는 HTTP와 같은 표준 프로토콜을 사용하는 것에 의한다. 애플리케이션 소프트웨어는 벤더의 시스템 상에 상주하고, 벤더에 의해 제공된 특수 목적 클라이언트 소프트웨어, 또는 씬 클라이언트와 같은 다른 원격 인터페이스에 의해, HTML을 사용하는 웹 브라우저를 통해 사용자에 의해 액세스된다.
넓은 지리적 지역을 통하여 전달되는 서비스는 흔히 클라우드 컴퓨팅을 사용한다. 클라우드 컴퓨팅은 동적으로 스케일링가능한 그리고 흔히 가상화된 자원이 인터넷을 통하여 서비스로서 제공되는 컴퓨팅 스타일이다. 사용자는 그들을 지원하는 "클라우드" 내 기술 기반구조에 전문가일 필요가 없다. 클라우드 컴퓨팅은, 서비스형 기반구조(IaaS), 서비스형 플랫폼(PaaS), 및 서비스형 소프트웨어(SaaS)와 같은, 여러 다른 서비스로 나뉠 수 있다. 클라우드 컴퓨팅 서비스는 흔히 웹 브라우저로부터 액세스되는 공통 비즈니스 애플리케이션을 온라인으로 제공하는 한편, 소프트웨어 및 데이터는 서버 상에 저장된다. 용어 클라우드는, 인터넷이 컴퓨터 네트워크 선도에서 어떻게 묘사되는지에 기반하여, 인터넷에 대한 은유로서 사용되고 그것이 은닉하는 복잡한 기반구조에 대한 추상화이다.
더욱, ISP(2370)는 단일 및 멀티플레이어 비디오 게임을 플레이하도록 게임 클라이언트에 의해 사용되는 게임 프로세싱 서버(GPS)(2374)를 포함한다. 인터넷을 통하여 플레이되는 대부분의 비디오 게임은 게임 서버로의 접속을 통하여 동작한다. 전형적으로, 게임은 플레이어로부터 데이터를 수집하는 전용 서버 애플리케이션을 사용하고 그것을 다른 플레이어에게 배포한다. 이것은 피어-투-피어 배열보다 더 효율적이고 효과적이지만, 그것은 서버 애플리케이션을 호스팅할 별개의 서버를 요구한다. 다른 일 실시예에 있어서, GPS는 플레이어 간 통신을 확립하고 그들 각각의 게임-플레이하는 디바이스는 중앙집중형 GPS에 의존하지 않고 정보를 교환한다.
전용 GPS는 클라이언트와 독립적으로 동작하는 서버이다. 그러한 서버는 보통 데이터 센터 내 위치하는 전용 하드웨어 상에서 동작되어, 더 많은 대역폭 및 전용 프로세싱 능력을 제공한다. 전용 서버는 대부분의 PC-기반 멀티플레이어 게임을 위한 게임 서버를 호스팅하는 선호되는 방법이다. 게임 타이틀을 소유하는 소프트웨어 회사에 의해 통상 호스팅되는 전용 서버 상에서 실행되는 멀티플레이어 온라인 게임은 대규모이며, 그들이 컨텐트를 제어 및 업데이트 가능하게 한다.
브로드캐스트 프로세싱 서버(BPS)(2376)는 시청자에게 오디오 또는 비디오 신호를 배포한다. 매우 좁은 범위의 시청자에게 브로드캐스팅하는 것은 때로는 내로우캐스팅이라고 불린다. 브로드캐스트 배포의 최종 여정은 신호가 청취자 또는 관람자에게 어떻게 도달하는가이고, 그것은 라디오 스테이션 또는 TV 스테이션에 대해서와 같이 공중으로 안테나 및 수신기로 올 수도 있고, 네트워크로부터 직접 또는 스테이션을 통하여 케이블 TV 또는 케이블 라디오(또는 "무선 케이블")를 통해 올 수도 있다. 또한 인터넷은, 특히 신호 및 대역폭이 공유될 수 있게 하는 멀티캐스팅으로, 라디오 또는 TV를 수신자에게로 이끌 수 있다. 역사적으로, 브로드캐스트는, 국영 방송 또는 지역 방송과 같이, 지리적 영역에 의해 획정되어 왔다. 그렇지만, 고속 인터넷의 급증으로, 컨텐트가 세계 어느 나라에라도 거의 도달할 수 있으므로 브로드캐스트는 지리에 의해 정의되지 않는다.
저장 서비스 제공자(SSP)(2378)는 컴퓨터 저장 공간 및 관련 관리 서비스를 제공한다. SSP는 또한 주기적 백업 및 아카이빙을 제공한다. 서비스형 저장을 제공함으로써, 사용자는 필요에 따라 더 많은 저장을 주문할 수 있다. 또 다른 주요 이점은 SSP가 백업 서비스를 포함하고 사용자는 그들 컴퓨터의 하드 드라이브가 고장나더라도 모든 그들 데이터를 잃지는 않을 것이라는 것이다. 더욱, 복수의 SSP는 사용자의 데이터의 전체 또는 부분 사본을 갖고 있을 수 있어, 사용자가 위치하고 있는 곳 또는 데이터에 액세스하는데 사용되는 디바이스와는 독립적으로 효율적인 방식으로 사용자가 데이터에 액세스할 수 있게 한다. 예를 들어, 사용자는 집 컴퓨터에서는 물론, 사용자가 이동하고 있는 동안에는 모바일 폰에서도 개인 파일에 액세스할 수 있다.
통신 제공자(380)는 사용자에게 접속성을 제공한다. 통신 제공자의 한 종류는 인터넷으로의 액세스를 제공하는 인터넷 서비스 제공자(ISP)이다. ISP는, 다이얼-업, DSL, 케이블 모뎀, 무선 또는 전용 고속 상호접속과 같이, 인터넷 프로토콜 데이터그램을 전달하기에 적합한 데이터 전송 기술을 사용하여 그 고객을 접속시킨다. 통신 제공자는 또한, 이-메일, 인스턴트 메시징, 및 SMS 문자와 같은, 메시징 서비스를 제공할 수 있다. 다른 유형의 통신 제공자는 인터넷으로의 다이렉트 백본 액세스를 제공함으로써 네트워크 액세스 또는 대역폭을 판매하는 네트워크 서비스 제공자(NSP)이다. 네트워크 서비스 제공자는 원격 통신 회사, 데이터 캐리어, 무선 통신 제공자, 인터넷 서비스 제공자, 고속 인터넷 액세스를 제공하는 케이블 텔레비전 오퍼레이터 등으로 이루어질 수 있다.
데이터 교환(2388)은 ISP(2370) 내부 수개의 모듈을 상호접속하고 이들 모듈을 네트워크(2386)를 통하여 사용자(2382)에 접속시킨다. 데이터 교환(2388)은 ISP(2370)의 모든 모듈이 가까운 근처에 있는 작은 지역을 맡을 수 있거나, 여러 다른 모듈이 지리적으로 분산되어 있을 때에는 큰 지리적 지역을 맡을 수 있다. 예를 들어, 데이터 교환(2388)은 데이터 센터의 캐비넷 내 고속 기가비트 이더넷(또는 더 고속), 또는 대륙간 가상지역망(VLAN)을 포함할 수 있다.
사용자(2382)는, 적어도 CPU, 디스플레이 및 I/O을 포함하는, 클라이언트 디바이스(2384)로 원격 서비스에 액세스한다. 클라이언트 디바이스는 PC, 모바일 폰, 넷북, PDA 등일 수 있다. 일 실시예에 있어서, ISP(2370)는 클라이언트에 의해 사용되는 디바이스의 유형을 인식하고 채용되는 통신 방법을 조절한다. 다른 경우에 있어서, 클라이언트 디바이스는 ISP(2370)에 액세스하도록, html과 같은, 표준 통신 방법을 사용한다.
본 발명의 실시예는 핸드-헬드 디바이스, 마이크로프로세서 시스템, 마이크로프로세서-기반 또는 프로그래밍 가능한 소비자 전자 제품, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 컴퓨터 시스템 구성으로 실시될 수 있다. 본 발명은 또한 유선-기반 또는 무선 네트워크를 통해 링크되어 있는 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산형 컴퓨팅 환경에서 실시될 수 있다.
위 실시예들을 염두에 두고, 본 발명은 컴퓨터 시스템에 저장된 데이터를 관여시키는 다양한 컴퓨터-구현된 연산을 채용할 수 있음을 이해하여야 한다. 이들 연산은 물리적 수량의 물리적 조작을 요구하는 것들이다. 본 발명의 일부분을 형성하는 여기에서 설명된 연산 중 어느 것이라도 유용한 기계 연산이다. 본 발명은 또한 이들 연산을 수행하기 위한 장치 또는 디바이스에 관한 것이다. 장치는 요구되는 목적으로 특수 구성될 수 있거나, 또는 장치는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 구성되는 범용 컴퓨터일 수 있다. 특히, 다양한 범용 기계가 여기에서의 교시에 따라 작성된 컴퓨터 프로그램과 사용될 수 있거나, 또는 요구되는 연산을 수행하도록 더 전문적 장치를 구성하는 것이 더 편리할 수 있다.
본 발명은 또한 컴퓨터 판독가능한 매체 상에 컴퓨터 판독가능한 코드로서 구체화될 수 있다. 컴퓨터 판독가능한 매체는, 이후 컴퓨터 시스템에 의해 판독될 수 있는, 데이터를 저장할 수 있는 어느 데이터 저장 디바이스이다. 컴퓨터 판독가능한 매체의 예는 하드 드라이브, NAS(network attached storage), 롬, 램, CD-ROM, CD-R, CD-RW, 자기 테이프 및 다른 광학 및 비-광학 데이터 저장 디바이스를 포함한다. 컴퓨터 판독가능한 매체는 컴퓨터 판독가능한 코드가 분산형 방식으로 저장 및 실행되도록 네트워크-결합형 컴퓨터 시스템을 통하여 분산된 컴퓨터 판독가능한 유형적 매체를 포함할 수 있다.
방법 연산이 특정 순서로 설명되었기는 하지만, 다른 하우스키핑 연산이 연산들 사이에 수행될 수도 있고, 연산이 조금 다른 시간에 일어나도록 그것이 조절될 수도 있고, 오버레이 연산의 프로세싱이 소망 방식으로 수행되는 한, 프로세싱과 연관된 다양한 인터벌로 프로세싱 연산의 발생을 허용하는 시스템에서 연산이 분산될 수도 있음을 이해하여야 한다.
상기 발명이 이해의 명확성의 목적으로 일부 상세히 설명되었기는 하지만, 첨부 청구범위의 범위 내에서 특정한 변경 및 수정이 실시될 수 있음은 명백할 것이다. 따라서, 본 실시예는 제한이 아니라 예시로서 생각되어야 하며, 본 발명은 여기에서 주어진 상세로 한정되는 것이 아니라, 첨부된 청구범위의 범위 및 균등물 내에서 수정될 수 있다.

Claims (12)

  1. 비디오 게임 사용자의 게임플레이의 원격 제어를 제공하기 위한 방법으로서, 상기 방법은:
    제1 사용자가 상기 비디오 게임의 활동 중인 게임플레이에 참여하는 동안에, 상기 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 단계;
    상기 라이브 비디오 피드를 제시하는 동안에, 상기 제1 사용자의 게임플레이의 제어를 상기 제2 사용자에게 이행하는 요청을 프로세싱하는 단계;
    상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계를 포함하되,
    상기 방법은 적어도 하나의 프로세서에 의해 실행되며,
    상기 라이브 비디오 피드는 인터페이스를 통해 상기 제2 사용자에게 제시되고, 상기 인터페이스는 상기 제1 사용자와 상기 제2 사용자에 의해 액세스될 수 있으며, 상기 인터페이스는 플레이되고 있는 하나 이상의 비디오 게임의 라이브 뷰를 제공하고, 상기 인터페이스는 상기 제1 사용자에 의한 상기 라이브 비디오 피드의 공유를 용이하게 하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  2. 제1항에 있어서, 상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계는 상기 제1 사용자와 연관된 제1 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 제어를 비활성화시키는 단계, 및 상기 제2 사용자와 연관된 제2 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 제어를 활성화시키는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  3. 제2항에 있어서, 상기 제2 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 상기 제어는 상기 제2 컨트롤러 디바이스로부터 입력 커맨드들을 수신하는 단계 및 상기 제1 사용자의 게임플레이를 정의하도록 상기 입력 커맨드들을 적용하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  4. 제1항에 있어서, 상기 인터페이스는 상기 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  5. 제1항에 있어서, 제어를 이행하는 상기 요청을 프로세싱하는 단계는 상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 상기 제어를 허용하기 위해 상기 제1 사용자로부터의 확인응답을 수신하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  6. 제1항에 있어서, 상기 제1 사용자의 게임플레이의 상기 라이브 비디오 피드를 상기 제2 사용자에게 제시하는 단계는 비-풀스크린(non-full screen) 포맷으로 상기 라이브 비디오 피드를 제시하는 단계를 포함하고,
    상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계는 풀스크린 포맷으로 상기 라이브 비디오 피드의 제시를 트리거링(triggering)하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  7. 비디오 게임 사용자의 게임플레이의 원격 제어를 제공하기 위한 방법으로서, 상기 방법은:
    제1 사용자가 상기 비디오 게임의 활동 중인 게임플레이에 참여하는 동안에, 상기 제1 사용자의 게임플레이의 라이브 비디오 피드를 원격의 제2 사용자에게 제시하는 단계;
    상기 라이브 비디오 피드를 제시하는 동안에, 상기 제1 사용자의 게임플레이의 제어를 상기 제2 사용자에게 이행하는 요청을 프로세싱하는 단계;
    상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계를 포함하되,
    상기 방법은 적어도 하나의 프로세서에 의해 실행되며,
    상기 비디오 게임의 상기 라이브 비디오 피드는, 상기 제1 사용자에 의한 상기 라이브 비디오 피드의 공유가 용이해지도록, 인터페이스를 통해 상기 제2 사용자에게 제시되고, 제어를 수용하기 위한 이행이 가능해지는 경우, 상기 라이브 비디오 피드는 상기 제2 사용자가 제어를 보고 수용하기 위한 사용가능성을 식별하는 하나 이상의 이미지 중 하나인 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  8. 제7항에 있어서, 상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계는 상기 제1 사용자와 연관된 제1 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 제어를 비활성화시키는 단계, 및 상기 제2 사용자와 연관된 제2 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 제어를 활성화시키는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  9. 제8항에 있어서, 상기 제2 컨트롤러 디바이스에 의한 상기 제1 사용자의 게임플레이의 상기 제어는 상기 제2 컨트롤러 디바이스로부터 입력 커맨드들을 수신하는 단계 및 상기 제1 사용자의 게임플레이를 정의하도록 상기 입력 커맨드들을 적용하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  10. 제7항에 있어서, 상기 인터페이스는 상기 제1 사용자의 게임플레이 동안 코멘트들을 게시하기 위한 코멘트 인터페이스를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  11. 제7항에 있어서, 제어를 이행하는 상기 요청을 프로세싱하는 단계는 상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 상기 제어를 허용하기 위해 상기 제1 사용자로부터의 확인응답을 수신하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
  12. 제7항에 있어서, 상기 제1 사용자의 게임플레이의 상기 라이브 비디오 피드를 상기 제2 사용자에게 제시하는 단계는 비-풀스크린 포맷으로 상기 라이브 비디오 피드를 제시하는 단계를 포함하고,
    상기 제2 사용자에 의한 상기 제1 사용자의 게임플레이의 제어를 개시하는 단계는 풀스크린 포맷으로 상기 라이브 비디오 피드의 제시를 트리거링하는 단계를 포함하는 것을 특징으로 하는, 게임플레이의 원격 제어를 제공하기 위한 방법.
KR1020197021762A 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생 KR20190090077A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020207018764A KR102292820B1 (ko) 2012-12-21 2013-12-20 게임플레이의 원격 제어

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201261745290P 2012-12-21 2012-12-21
US201261745281P 2012-12-21 2012-12-21
US61/745,281 2012-12-21
US61/745,290 2012-12-21
US13/831,178 2013-03-14
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,190 US9364743B2 (en) 2012-12-21 2013-03-14 Generation of a multi-part mini-game for cloud-gaming based on recorded gameplay
US13/839,382 US9345966B2 (en) 2012-03-13 2013-03-15 Sharing recorded gameplay to a social graph
US13/839,486 2013-03-15
US13/839,382 2013-03-15
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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177014398A Division KR20170061196A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207018764A Division KR102292820B1 (ko) 2012-12-21 2013-12-20 게임플레이의 원격 제어

Publications (1)

Publication Number Publication Date
KR20190090077A true KR20190090077A (ko) 2019-07-31

Family

ID=50979420

Family Applications (7)

Application Number Title Priority Date Filing Date
KR1020217023036A KR20210094149A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
KR1020197014565A KR20190057448A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
KR1020177014398A KR20170061196A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
KR1020207018764A KR102292820B1 (ko) 2012-12-21 2013-12-20 게임플레이의 원격 제어
KR1020197021762A KR20190090077A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
KR1020207018763A KR20200083658A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
KR1020157019834A KR101742662B1 (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생

Family Applications Before (4)

Application Number Title Priority Date Filing Date
KR1020217023036A KR20210094149A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
KR1020197014565A KR20190057448A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
KR1020177014398A KR20170061196A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
KR1020207018764A KR102292820B1 (ko) 2012-12-21 2013-12-20 게임플레이의 원격 제어

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020207018763A KR20200083658A (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생
KR1020157019834A KR101742662B1 (ko) 2012-12-21 2013-12-20 레코딩된 게임플레이에 기반하여 클라우드-게이밍에 대한 제안된 미니-게임의 자동 발생

Country Status (7)

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

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6612019B2 (ja) * 2014-08-19 2019-11-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、制御データ送信方法および情報処理システム
US9919208B2 (en) * 2014-12-11 2018-03-20 Immersion Corporation Video gameplay haptics
JP5770918B1 (ja) * 2014-12-18 2015-08-26 株式会社Cygames 情報処理プログラム、及び情報処理方法
US10207185B2 (en) * 2015-03-07 2019-02-19 Sony Interactive Entertainment America Llc Using connection quality history to optimize user experience
JP6893392B2 (ja) * 2015-08-04 2021-06-23 任天堂株式会社 ゲームシステム、ゲーム装置、制御プログラムおよびゲーム制御方法
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 (zh) * 2016-03-03 2019-08-06 腾讯科技(深圳)有限公司 一种信息交互的方法、设备及系统
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 (zh) * 2018-03-01 2021-01-21 致伸科技股份有限公司 人工智能之輔助操作系統
KR102551254B1 (ko) * 2018-04-06 2023-07-04 주식회사 엔씨소프트 게임 컨텐츠 공유 체험 서비스 제공 방법 및 이를 위한 컴퓨터 프로그램
KR102319298B1 (ko) * 2018-09-21 2021-10-29 주식회사 엔씨소프트 게임 캐릭터 제어 시스템, 서버 및 게임 캐릭터 제어 방법
US11943513B2 (en) 2018-12-21 2024-03-26 Sony Interactive Entertainment Inc. Information processing apparatus for presenting preview screen
JP7222722B2 (ja) * 2019-01-17 2023-02-15 株式会社ソニー・インタラクティブエンタテインメント 情報処理システム、情報処理方法およびコンピュータプログラム
KR102329749B1 (ko) * 2019-08-05 2021-11-22 주식회사 엔씨소프트 게임 캐릭터 제어 서버, 시스템 및 방법
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 (zh) 2020-01-03 2021-04-02 北京字节跳动网络技术有限公司 直播间互动方法、装置、可读介质及电子设备
CN111494965B (zh) * 2020-04-15 2021-09-14 腾讯科技(深圳)有限公司 信息处理方法、装置、设备及存储介质
CN111603764B (zh) * 2020-05-28 2021-05-28 腾讯科技(深圳)有限公司 一种云游戏的处理方法及设备
US20220008824A1 (en) * 2020-07-13 2022-01-13 Nvidia Corporation Game generation using one or more neural networks
CN111917768B (zh) * 2020-07-30 2022-05-13 腾讯科技(深圳)有限公司 虚拟场景的处理方法、装置及计算机可读存储介质
KR102606834B1 (ko) * 2021-05-10 2023-11-29 주식회사 엔씨소프트 클라우드 게임 서비스 제공 시스템 및 클라우드 게임 서비스 제공 방법
TWI790801B (zh) * 2021-11-01 2023-01-21 宏碁股份有限公司 遠端遊戲執行方法與遠端遊戲執行系統
JP7216314B1 (ja) 2022-02-17 2023-02-01 株式会社Mixi プログラム、情報処理装置、及び情報処理方法
WO2023157618A1 (ja) * 2022-02-18 2023-08-24 優太 竹田 リプレイシステム、処理方法及びリプレイプログラム

Family Cites Families (36)

* 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 (ru) * 2002-09-02 2004-09-20 Савин Вадим Георгиевич Способ компьютерной игры
JP3534343B2 (ja) * 2002-09-12 2004-06-07 株式会社コナミコンピュータエンタテインメントジャパン ゲームプログラム及びゲーム装置
JP3703800B2 (ja) * 2002-11-15 2005-10-05 株式会社スクウェア・エニックス 通信ゲームシステム
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 (ja) * 2004-06-29 2010-06-30 株式会社バンダイナムコゲームス プログラム、ゲーム装置、表示制御装置、サーバ及び情報記憶媒体
KR100682455B1 (ko) * 2005-03-17 2007-02-15 엔에이치엔(주) 게임 스크랩 시스템, 게임 스크랩 방법 및 상기 방법을실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한기록매체
JP5001445B2 (ja) * 2005-05-06 2012-08-15 任天堂株式会社 通信ゲームシステム
EP1965876A4 (en) * 2005-12-27 2012-02-01 Massive Inc CONTINUOUS BROADCAST OF MULTIMEDIA PROGRAMS, FOR EXAMPLE IN A VIDEO GAME ENVIRONMENT OR MOBILE DEVICE
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 (ja) * 2007-01-09 2012-11-07 株式会社バンダイナムコゲームス ゲーム装置、プログラム及び情報記憶媒体
KR20090000260A (ko) * 2007-02-09 2009-01-07 주식회사 엠게임 사용자의 흥미 유발을 위하여 단계적으로 공개하는 베타게임 제공 시스템 및 그 베타 게임 제공 방법
JP4203524B2 (ja) * 2007-02-14 2009-01-07 株式会社コナミデジタルエンタテインメント ゲームシステム、及び、これに含まれるゲーム装置
JP5203646B2 (ja) * 2007-07-17 2013-06-05 株式会社ソニー・コンピュータエンタテインメント ゲーム案内システム、ゲーム案内装置、ゲームサーバ、ゲーム案内方法、プログラム、及び情報記憶媒体
US8235817B2 (en) 2009-02-12 2012-08-07 Sony Computer Entertainment America Llc Object based observation
US8515253B2 (en) * 2008-02-15 2013-08-20 Sony Computer Entertainment America Llc System and method for automated creation of video game highlights
JP2010178010A (ja) * 2009-01-29 2010-08-12 Funai Electric Co Ltd 動画編集装置
JP2010220089A (ja) * 2009-03-18 2010-09-30 Sony Corp ダイジェスト再生装置、ダイジェスト再生方法、およびプログラム
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 (ja) * 2009-05-18 2014-03-19 任天堂株式会社 ゲームプログラム,ゲーム装置およびゲームシステム
JP2010284473A (ja) * 2009-06-11 2010-12-24 Gonichi Sasaki ゲームプレイヤー評価システム
JP5417111B2 (ja) * 2009-10-01 2014-02-12 株式会社コナミデジタルエンタテインメント ゲームシステム、ゲームシステムの制御方法、及びプログラム
JP5193242B2 (ja) * 2010-03-11 2013-05-08 株式会社コナミデジタルエンタテインメント ゲームシステム、ゲーム部分実行支援方法及びプログラム
KR101139498B1 (ko) * 2010-04-20 2012-05-02 주식회사 넥슨코리아 온라인 게임에서의 타 유저 게임 플레이 화면 시청 시스템 및 그 방법
JP2010201180A (ja) * 2010-04-30 2010-09-16 Nintendo Co Ltd ゲーム装置およびゲームプログラム
JP5991649B2 (ja) * 2010-08-05 2016-09-14 株式会社ソニー・インタラクティブエンタテインメント ゲーム装置
JP2012038042A (ja) * 2010-08-05 2012-02-23 Sony Computer Entertainment Inc ゲーム装置
JP5271319B2 (ja) * 2010-08-12 2013-08-21 株式会社コナミデジタルエンタテインメント ゲームシステム及びそのプレイ内容の閲覧制御方法
JP5542020B2 (ja) * 2010-09-22 2014-07-09 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、情報処理方法、プログラム及び情報記憶媒体
JP5740972B2 (ja) * 2010-09-30 2015-07-01 ソニー株式会社 情報処理装置および情報処理方法
KR101269411B1 (ko) * 2010-12-31 2013-05-30 (주)네오위즈게임즈 스포츠게임을 제공하는 게임서버, 방법, 및 기록매체
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7461174B2 (ja) 共有インターフェースを介してアクセスされるミニゲーム
US11014012B2 (en) Sharing gameplay in cloud gaming environments
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
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination
A107 Divisional application of patent