KR101993953B1 - 게임을 이주시키는 기법 - Google Patents
게임을 이주시키는 기법 Download PDFInfo
- Publication number
- KR101993953B1 KR101993953B1 KR1020157004695A KR20157004695A KR101993953B1 KR 101993953 B1 KR101993953 B1 KR 101993953B1 KR 1020157004695 A KR1020157004695 A KR 1020157004695A KR 20157004695 A KR20157004695 A KR 20157004695A KR 101993953 B1 KR101993953 B1 KR 101993953B1
- Authority
- KR
- South Korea
- Prior art keywords
- game
- client
- server
- video
- computing system
- Prior art date
Links
- 230000005012 migration Effects 0.000 title claims description 98
- 238000013508 migration Methods 0.000 title claims description 98
- 238000000034 method Methods 0.000 claims description 44
- 230000004044 response Effects 0.000 claims description 28
- 230000008859 change Effects 0.000 claims description 7
- 238000009877 rendering Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 2
- 230000007704 transition Effects 0.000 abstract description 16
- 238000004891 communication Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 15
- 230000004913 activation Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
- A63F13/49—Saving the game status; Pausing or ending the game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/50—Features 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/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/534—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/50—Features 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/53—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
- A63F2300/538—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/50—Features 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/55—Details of game data or player data management
- A63F2300/5526—Game data structure
- A63F2300/554—Game data structure by saving game or status data
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명의 실시예는 서버 실행 비디오 게임과 클라이언트 실행 비디오 게임 사이에서 게임 플레이가 이주될 수 있게 해준다. 예를 들어, 사용자는 서버에서 실행되는 비디오 게임의 플레이를 시작할 수 있고 이후 플레이를 게임 콘솔과 같은 클라이언트 장치로 이주시킬 수 있다. 게임이 서버 상에서 실행되는 경우, 서버는 게임 코드를 실행하고, 비디오 이미지를 렌더링하며 이미지를 클라이언트로 전달한다. 클라이언트는 게임 제어 명령을 서버에 전달할 수 있다. 게임 플레이는 또한 클라이언트에서 시작하여 서버로 전이될 수 있다. 예를 들어, 사용자는 사용자가 게임 파일을 클라이언트에 저장하지 않은 게임 내의 한 지점에 도달할 수 있다.
Description
비디오 게임은 온라인에서 구매되고 플레이를 위해 비디오 게임 콘솔에 다운로드될 수 있다. 플레이어는 게임을 플레이하기 전에 게임 전체가 다운로드될 때까지 기다릴 필요가 있다. 비디오 게임은 또한 실행가능 게임 코드를 클라이언트 장치에 다운로드하지 않고 서버 상에서 플레이될 수 있다.
본 요약부는 이하의 상세한 설명에서 더 설명되는 개념들 중 선택된 것들을 간단하게 소개하고자 하는 것이다. 본 요약부는 청구대상의 핵심적인 요소나 필수적인 특징들을 밝히고자 함이 아니며, 청구대상의 범위를 결정하는 데 있어 도움을 주고자 별개로 사용되고자 함도 아니다.
본 발명의 실시예는 서버 실행 비디오 게임과 클라이언트 실행 비디오 게임 사이에서 게임 플레이가 이주(migrate)될 수 있게 해준다. 예를 들어, 사용자는 서버에서 실행되는 비디오 게임의 플레이를 시작할 수 있고 이후 플레이를 게임 콘솔과 같은 클라이언트 장치로 이주시킬 수 있다. 게임이 서버상에서 실행되는 경우, 서버는 게임 코드를 실행하고, 비디오 이미지를 렌더링하며 이미지를 클라이언트로 전달한다. 클라이언트는 게임 제어 명령을 서버에 전달할 수 있다.
게임 파일은 클라이언트가 게임 실행을 맡기 전에 클라이언트 장치에 액세스될 필요가 있다. 일 실시예에서, 서버는 게임 파일을 게임 플레이 동안 클라이언트 장치에 다운로드한다. 다운로드는 다운로드 속도를 게임 플레이에 사용되지 않는 사용자의 대역폭의 일부로 제한함으로써 진행중인 게임 경험의 방해 또는 저하를 방지하도록 조절될 수 있다. 게임 파일 또는 게임 파일의 제1 블록이 다운로드되었으면, 게임 플레이는 클라이언트로 전환될 수 있다.
게임 플레이는 또한 클라이언트에서 시작하여 서버로 전이될 수 있다. 예를 들어, 사용자는 사용자가 게임 파일을 클라이언트에 저장하지 않은 게임 내의 한 지점에 도달할 수 있다. 예를 들어, 사용자는 제1 게임 블록의 일부인 제1 레벨을 플레이할 수 있고, 이후 아직 다운로드되지 않은 제4 게임 블록의 일부인 제6 레벨로 건너뛰기를 원할 수 있다. 이 경우, 게임 플레이는 제4 게임 블록이 다운로드될 때까지 클라우드로 돌아갈 수 있다. 제4 블록의 다운로드가 완료되면, 사용자는 게임 콘솔 상에서의 플레이로 되돌아갈 수 있다. 일 실시예에서, 사용자는 게임 내에서 지장을 주지 않는 전환점(nondisruptive switching point)에 도달한 경우에 클라이언트와 서버 사이에서 전이된다. 레벨의 끝에 도달하는 것은 지장을 주지 않는 전환점의 일 예이다.
본 발명의 실시예들은 첨부한 도면을 참조하여 이하에서 자세히 설명된다.
도 1은 본 발명의 실시예를 구현하는데 적합한 예시적인 컴퓨팅 환경의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 온라인 게임 환경의 다이아그램이다.
도 3은 본 발명의 일 실시예에 따른 게임 이주 환경의 다이아그램이다.
도 4는 본 발명의 일 실시예에 따라, 게임 서버에서 게임 클라이언트로의 게임 플레이의 이주를 용이하게 하는 게임 환경 내의 통신을 보여주는 순차도이다.
도 5는 본 발명의 일 실시예에 따라, 클라이언트 게임 장치에서 서버에 위치한 게임 서비스로의 게임의 이주 동안 게임 환경 내에서 발생하는 통신을 보여주는 순차도이다.
도 6은 본 발명의 일 실시예에 따라 게임 서버로부터 클라이언트 장치로 게임 플레이를 이주시키는 방법을 나타내는 흐름도이다.
도 7은 본 발명의 일 실시예에 따라 클라이언트 장치로부터 게임 서버로 게임 플레이를 이주시키는 방법을 나타내는 흐름도이다.
도 8은 본 발명의 일 실시예에 따라 클라이언트와 게임 서버 사이에서 비디오 게임의 실행을 이주시키는 방법을 나타내는 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 온라인 게임 환경의 다이아그램이다.
도 3은 본 발명의 일 실시예에 따른 게임 이주 환경의 다이아그램이다.
도 4는 본 발명의 일 실시예에 따라, 게임 서버에서 게임 클라이언트로의 게임 플레이의 이주를 용이하게 하는 게임 환경 내의 통신을 보여주는 순차도이다.
도 5는 본 발명의 일 실시예에 따라, 클라이언트 게임 장치에서 서버에 위치한 게임 서비스로의 게임의 이주 동안 게임 환경 내에서 발생하는 통신을 보여주는 순차도이다.
도 6은 본 발명의 일 실시예에 따라 게임 서버로부터 클라이언트 장치로 게임 플레이를 이주시키는 방법을 나타내는 흐름도이다.
도 7은 본 발명의 일 실시예에 따라 클라이언트 장치로부터 게임 서버로 게임 플레이를 이주시키는 방법을 나타내는 흐름도이다.
도 8은 본 발명의 일 실시예에 따라 클라이언트와 게임 서버 사이에서 비디오 게임의 실행을 이주시키는 방법을 나타내는 흐름도이다.
본 발명의 실시예들에 대한 주제는 본 명세서에서 특히 법에 명시된 요건들을 만족시키도록 설명된다. 그러나, 이러한 설명 그 자체는 본 특허의 범주를 제 한하려 하지는 않는다. 그 보다, 청구 대상은 현재의 또는 미래의 다른 기술들과 연계하여, 본 명세서에서 설명된 것들과 다른 단계들 또는 유사한 단계들의 조합을 포함하여, 다른 방식으로 구현될 수 있다는 것을 본 발명자는 고려하였다. 또한, "단계" 및/또는 "블록"이라는 용어는 이용된 방법들의 상이한 요소들을 함축하는데 사용될 수 있지만, 이들 용어는 개개의 단계들의 순서가 명시적으로 개시되어 있는 경우를 제외하고는 본 명세서에 개시된 다양한 단계들 사이에서 임의의 특정 순서를 암시하는 것으로 해석되어서는 안된다.
본 발명의 실시예는 게임 플레이가 서버 실행 비디오 게임과 클라이언트 실행 비디오 게임 사이에서 이주되게 할 수 있다. 예를 들어, 사용자는 서버에서 실행되는 비디오 게임의 플레이를 시작할 수 있고 이후 플레이를 게임 콘솔과 같은 클라이언트 장치로 이주시킬 수 있다. 게임이 서버상에서 실행되는 경우, 서버는 게임 코드를 실행하고, 비디오 이미지를 렌더링하며 이미지를 클라이언트로 전달한다. 클라이언트는 게임 제어 명령을 서버에 전달할 수 있다.
본 명세서에서 사용되는 바와 같이, 게임을 실행하는 것은 비디오 게임 이미지를 렌더링하는 것을 포함한다. 렌더링은 게임 장면 파일(game scene files)로부터 비디오 게임 이미지를 생성하는 과정이다. 장면 파일은 게임 객체를 설명하는 지오메트리, 조명, 텍스트 및 다른 정보를 포함한다. 예시적인 게임 객체는 배경 및 전경 객체, 게임 캐릭터, 게임 무기, 게임 특수 효과 및 비디오 게임 장면의 다른 특징을 포함한다. 객체들 그 자체는 카메라에 의해 수집된 제스처, 터치 스크린 상의 터치 입력, 게임 제어기 상의 조이스틱 및 버튼 입력, 타자, 음성 명령 및 다른 입력과 같은 사용자 입력에 응답하여 조작될 수 있다. 렌더링은 그래픽 처리 장치(GPU)와 연관된 그래픽 파이프라인을 통해 수행될 수 있다. 렌더링되었으면, 이미지는 디스플레이를 위해 출력될 수 있다.
본 발명의 실시예는 게임이 서버 또는 클라이언트에서 실행되는 것으로 설명할 수 있다. 게임은 하나의 장치가 게임 이미지를 렌더링하는 경우, 비록 다른 장치들이 게임 플레이의 일부인 처리 단계들을 처리할 수 있을지라도, 그 하나의 장치에서 실행된다. 예를 들어, 클라이언트는 제어 입력을 전처리할 수 있고 이들을, 게임 코드를 실행하고 클라이언트로 다시 전달되는 이미지를 렌더링하는 서버로 전달할 수 있다. 또한, 클라이언트 장치는 디스플레이를 위해 렌더링된 이미지를 스케일링할 수 있다. 이 경우, 클라이언트 장치가 소정의 게임 플레이 관련 및 디스플레이 관련 처리를 수행하고 있을지라도, 서버가 게임을 실행하는 것으로 설명된다. 플레이어들이 네트워크를 통해 연결되는 멀티 플레이어 게임에서, 서버는 클라이언트가 렌더링하도록 지오메트리 및 다른 게임 정보를 클라이언트로 전송할 수 있다.
일 실시예에서, 사용자는 서버상에서 게임의 플레이를 시작한다. 언급한 바와 같이, 게임을 서버에서 플레이하는 것으로 설명되지만, 이미지는 서버로부터 그것이 디스플레이되는 클라이언트 장치로 전송될 수 있다. 마찬가지로, 제어 및 게임 입력은 클라이언트로부터 이들이 게임을 조작하고 비디오 게임 이미지를 렌더링하는데 사용되는 서버로 업로드될 수 있다. 소정의 시점에서, 이주 프로세스의 시작을 야기하는 트리거링 이벤트가 발생할 수 있다. 예를 들어, 사용자는 플레이되고 있는 게임의 풀 버전을 구매할 것을 선택할 수 있다. 이 시점에서, 사용자는 서버상에서 게임의 플레이를 계속할 수 있고 그 동안 게임 서비스는 게임 코드의 블록을 클라이언트 장치로 다운로드하는데 얼마의 대역폭이 이용가능하지를 결정한다. 게임 세션이 현재 12 Mbps 연결의 6 Mbps를 이용하고 있는 경우, 게임 이주 컴포넌트는 다른 이용가능한 6 Mbps 내에서 풀 버전의 게임의 다운로드를 시작할 수 있다. 게임 서비스는 게임 경험의 저하를 막기 위해 대역폭 사용량을 지속적으로 모니터링하고 다운로드를 조절할 수 있다. 예를 들어, 게임 세션에 더해, 사용자가 음악 스트리밍 서비스에 액세스하고 이용가능 대역폭이 4 Mbps로 줄어든 경우, 다운로드는 그에 따라 4 Mbps로 조절될 수 있다.
게임 파일은 클라이언트가 게임 실행을 맡기 전에 클라이언트 장치에 액세스될 필요가 있다. 일 실시예에서, 서버는 게임 파일을 게임 플레이 동안 클라이언트 장치에 다운로드한다. 다운로드는 다운로드 속도를 게임 플레이에 사용되지 않는 사용자의 대역폭의 일부로 제한함으로써 진행중인 게임 경험의 방해 또는 저하를 방지하도록 조절될 수 있다. 게임 파일 또는 게임 파일의 제1 블록이 다운로드되었으면, 게임 플레이는 클라이언트로 전환될 수 있다.
게임 플레이는 또한 클라이언트에서 시작하여 서버로 전이될 수 있다. 예를 들어, 사용자는 사용자가 게임 파일을 클라이언트에 저장하지 않은 게임 내의 한 지점에 도달할 수 있다. 예를 들어, 사용자는 제1 게임 블록의 일부인 제1 레벨을 플레이할 수 있고, 이후 아직 다운로드되지 않은 제4 게임 블록의 일부인 제6 레벨로 건너뛰기를 원할 수 있다. 이 경우, 게임 플레이는 제4 게임 블록이 다운로드될 때까지 클라우드로 돌아갈 수 있다. 제4 블록의 다운로드가 완료되면, 사용자는 게임 콘솔 상에서의 플레이로 되돌아갈 수 있다. 일 실시예에서, 사용자는 게임 내에서 지장을 주지 않는 전환점(nondisruptive switching point)에 도달하면 클라이언트와 서버 사이에서 전이된다. 레벨의 끝에 도달하는 것은 지장을 주지 않는 전환점의 일 예이다.
본 발명의 실시예에 대한 개요가 간략히 설명되었으며, 이하에서는 본 발명의 실시예를 구현하는데 적합한 예시적인 동작 환경이 설명된다.
예시적인 동작 환경
전반적으로 도면을 참조하되, 먼저 도 1을 특히 참조하면, 본 발명의 실시예들을 구현하는 예시적인 동작 환경이 도시되어 있으며 일반적으로 컴퓨팅 장치(100)로 표시되어 있다. 컴퓨팅 장치(100)는 적절한 컴퓨팅 환경의 하나의 예일 뿐이며 본 발명의 사용 또는 기능의 범주에 어떠한 제한도 두려하지 않는다. 컴퓨팅 장치(100)는 도시되어 있는 컴포넌트들 중 임의의 하나 또는 이들의 조합에 관련된 임의의 종속성 또는 요건을 갖는 것으로 이해되어서는 안된다.
본 발명은 개인 보조 단말기(PDA) 또는 다른 핸드헬드 장치와 같은 컴퓨터 또는 다른 머신에 의해 실행되는 프로그램 컴포넌트와 같은 컴퓨터 실행가능 명령어들을 포함하는 컴퓨터 코드 또는 머신 사용가능 명령어들의 일반적인 문맥에서 사용될 수 있다. 일반적으로, 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함하는 프로그램 컴포넌트는 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 코드를 지칭한다. 본 발명의 실시예는 핸드헬드 장치, 소비자 전자기기, 범용 컴퓨터, 전용 컴퓨팅 장치 등을 포함하는 다양한 시스템 구성에서 실시될 수 있다. 본 발명의 실시예들은 또한 통신 네트워크를 통해 링크되는 원격 처리 장치들에 의해 작업들이 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다.
도 1을 계속해서 참조하면, 컴퓨팅 장치(100)는 메모리(112), 하나 이상의 프로세서(114), 하나 이상의 프리젠테이션 컴포넌트(116), 입/출력(I/O) 포트(118), I/O 컴포넌트(120) 및 예시적인 전원(122)을 직접적으로 또는 간접적으로 연결시키는 버스(110)를 포함한다. 버스(110)는 하나 이상의 버스(예를 들어, 어드레스 버스, 데이터 버스 또는 이들의 조합)를 나타낼 수 있다. 도 1의 다양한 블록은 명료함을 위해 선들과 함께 도시되어 있지만, 실제로는 다양한 컴포넌트들을 구분하는 것은 그리 명료하지 않으며, 비유하자면, 선들은 보다 정확히는 회색 및 흐릿할 수 있다. 예를 들어, 디스플레이 장치와 같은 프리젠테이션 컴포넌트를 I/O 컴포넌트(120)로 간주할 수 있다. 또한, 프로세서는 메모리를 구비할 수 있다. 본 발명자는 이를 당업계에서는 당연한 것으로 인식하고, 도 1의 다이아그램은 단지 본 발명의 하나 이상의 실시예와 연계하여 사용될 수 있는 예시적인 컴퓨팅 장치를 나타내려 함을 다시 한번 강조한다. "워크스테이션", "서버", "랩탑", "핸드헬드 장치" 등과 같은 카테고리들 간에서는 명확한 구분이 있지 않는데, 그 이유는 이들 모두는 도 1의 범주 내에서 고려되고 "컴퓨터" 또는 "컴퓨팅 장치"를 지칭하기 때문이다.
컴퓨팅 장치(100)는 전형적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨팅 장치(100)에 의해 액세스될 수 있고 휘발성 및 비휘발성 매체, 이동식 및 고정식 매체를 포함하는 임의의 이용가능 매체일 수 있다. 제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어들, 데이터 구조, 프로그램 모듈 또는 그 밖의 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성, 이동식 및 고정식 매체를 포함한다.
컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 디스크 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 장치를 포함한다. 컴퓨터 저장 매체는 전파되는 데이터 신호를 포함하지 않는다.
통신 매체는 전형적으로 반송파 또는 다른 전송 메카니즘과 같은 변조된 데이터 신호 내에 컴퓨터 판독가능 명령어들, 데이터 구조, 프로그램 모듈 또는 그 밖의 다른 데이터를 포함하고 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩할 수 있도록 자신의 특성들 중 하나 이상이 설정 또는 변경된 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직도선 연결과 같은 유선 매체, 및 음향, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함한다. 전술한 것들의 임의의 조합이 또한 컴퓨터 판독가능 매체의 범주 내에 포함될 수 있다.
메모리(112)는 휘발성 및/또는 비휘발성 메모리의 형태를 갖는 컴퓨터 저장 매체를 포함한다. 메모리(112)는 이동식, 고정식, 또는 이들의 조합일 수 있다. 예시적인 메모리는 고체 상태 메모리, 하드드라이브, 광학 디스크 드라이브 등을 포함한다. 컴퓨팅 장치(100)는 버스(110), 메모리(112) 또는 I/O 컴포넌트(120)와 같은 다양한 개체로부터 데이터를 판독하는 하나 이상의 프로세서(114)를 포함한다. 프리젠테이션 컴포넌트(들)(116)는 데이터 표시를 사용자 또는 다른 장치에 제시한다. 예시적인 프리젠테이션 컴포넌트(116)는 디스플레이 장치, 스피커, 프린팅 컴포넌트, 진동 컴포넌트 등을 포함한다. I/O 포트(118)는 컴퓨팅 장치(100)가 I/O 컴포넌트들(120)(이들 중 일부는 내장됨)를 비롯하여 다른 장치에 논리적으로 연결되게 해준다. 예시적인 I/O 컴포넌트(120)는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, 프린터, 무선 장치 등을 포함한다.
예시적인 온라인 게임 환경
이제 도 2를 참조하면, 본 발명의 일 실시예에 따른 온라인 게임 환경(200)이 도시되어 있다. 온라인 게임 환경(200)은 네트워크(200)를 통해 게임 서비스(230)에 연결된 다양한 게임 클라이언트를 포함한다. 예시적인 게임 클라이언트는 게임 콘솔(210), 태블릿(212) 및 개인용 컴퓨터(214)를 포함한다. 스마트폰과 같은 다른 게임 클라이언트도 사용될 수 있다. 게임 콘솔(210)은 자신에게 통신가능하게 연결된 하나 이상의 게임 제어기를 가질 수 있다. 일 실시예에서, 태블릿(212)은 게임 콘솔(210) 또는 개인용 컴퓨터(214)에 대한 입력 장치로서 동작할 수 있다. 또 다른 실시예에서, 태블릿(212)은 독립형 게임 클라이언트이다. 네트워크(220)는 인터넷과 같은 광역 네트워크일 수 있다.
게임 서비스(230)는 서로 통신가능하게 연결된 다수의 컴퓨팅 장치를 포함한다. 일 실시예에서, 게임 서비스(230)는 하나 이상의 서버 팜(farm)을 사용하여 구현된다. 서버 팜은 전세계에 걸쳐 있는 도시를 비롯하여 다양한 지리적 지역에 걸쳐 확산될 수 있다. 이러한 경우, 게임 클라이언트는 가장 가까운 서버 팜에 연결될 수 있다. 본 발명의 실시예는 이러한 구성에 국한되지 않는다.
게임 서비스(230)는 게임 서비스(230)에 의해 제공되는 컴퓨팅 장치 내에서 게임이 실행될 수 있게 한다. 게임 서비스와 게임 클라이언트 간의 통신 세션은 입력 트래픽을 게임 서비스(230)로 전달하고 렌더링된 게임 이미지를 리턴한다. 이 실시예에서, 게임 서비스의 일부인 컴퓨팅 장치는 다양한 게임 클라이언트와 연관된 입력 장치에 의해 생성된 제어 스트림을 사용하여 비디오 게임 코드를 실행한다. 렌더링된 비디오 게임은 네트워크를 통해 게임 클라이언트로 전달되고 이 게임 클라이언트에서 렌더링된 게임은 디스플레이를 위해 출력된다.
게임 이주를 위한 예시적인 게임 클라이언트 및 게임 서비스
이제 도 3을 참조하면, 본 발명의 일 실시예에 따른 예시적인 게임 이주 환경(300)이 도시되어 있다. 게임 이주 환경(300)은 네트워크(330)를 통해 게임 서버(340)에 통신가능하게 연결된 게임 클라이언트(310)를 포함한다. 일 실시예에서, 네트워크는 인터넷일 수 있다. 게임 클라이언트(310)는 제1 게임 입력 장치(312), 제2 게임 입력 장치(314) 및 디스플레이(316)에 연결된다. 예시적인 게임 입력 장치는 게임 제어기, 키보드, 마우스, 터치 패드, 터치 스크린, 음성 입력을 수신하는 마이크로폰, 깊이 카메라, 비디오 카메라, 키보드 및 트랙볼을 포함한다. 본 발명의 실시예는 이들 입력 장치에 국한되지 않는다. 디스플레이 장치(316)는 비디오 게임 콘텐츠를 디스플레이할 수 있다. 예를 들어, 디스플레이(316)는 텔레비전 또는 터치 스크린일 수 있다. 또 다른 실시예에서, 디스플레이(316)는 게임 클라이언트(310)와 통합된 터치 스크린이다.
게임 클라이언트(316)는 비디오 게임을 실행할 수 있는 컴퓨팅 장치이다. 게임 클라이언트(310)는 태블릿 또는 랩탑 컴퓨터일 수 있다. 또 다른 실시예에서, 게임 클라이언트(310)는 게임 콘솔이고 디스플레이스(316)는 게임 콘솔에 통신가능하게 연결된 원격 디스플레이이다. 클라이언트(310)는 동작 환경(320), 게임 이주 컴포넌트(321), 게임 실행 환경(322), 게임 데이터 저장소(324), 게임 서비스 클라이언트(326) 및 플레이어 프로파일 데이터 저장소(328)를 포함한다.
동작 환경(320)은 하드웨어를 관리하고 게임 클라이언트(310)에서 실행되는 에플리케이션에 서비스를 제공하는 운영 체제에 의해 제공될 수 있다. 동작 환경은 게임 이주의 일부로서 클라이언트 리소스를 다른 애플리케이션에 할당할 수 있다. 예를 들어, 동작 환경은 게임 플레이가 게임 클라이언트(310)로 이주되었으면 디스플레이어의 제어를 게임 실행 환경(322)에 제공할 수 있다.
게임 이주 컴포넌트(321)는 클라이언트(310)에 의해 수행되는 게임 이주 기능을 관리한다. 게임 이주 컴포넌트(321)는 클라이언트(310)로부터 게임 서버(340)로의 게임 플레이의 이주를 개시할 수 있다. 게임 이주 컴포넌트(321)는 또한 게임 서버(340)로부터 클라이언트(310)로 게임 플레이를 이주시키는데 참여할 수 있다. 게임 이주 컴포넌트(321)는 게임 서버(340)로의 게임 세션의 이주를 요청하기 위해 게임 서버(340)에서 실행되는 게임 서비스와 통신할 수 있다. 요청은 이 요청과 연관된 특정 게임과, 현재 게임이 게임 실행 환경(322)에서 실행되는 경우 이 현재 게임의 상태를 포함할 수 있다. 서버로부터 수신된 명령어 또는 트리거링 이벤트의 검출에 응답하여 게임 플레이가 이주될 수 있다. 게임 이주 컴포넌트(321)는 트리거링 이벤트를 검출할 수 있다.
몇몇 트리거 이벤트가 가능하다. 부분적으로 다운로드된 게임의 끝에 도달 하는 것이 클라이언트 상에서 게임의 다음 부분이 플레이가능할 때까지 플레이를 서버(340)로 이동시키는 트리거인 몇몇 시나리오가 있다. 하나의 시나리오에서, 사용자는 사용자가 레벨 1 내지 3을 플레이할 수 있게 해주는 블록과 같은 블록으로 게임의 제1 부분을 다운로드한다. 사용자가 레벨 3의 끝에 도달하고, 다음 블록이 다운로드되지 않은 경우, 트리거링 이벤트가 인식될 수 있다. 레벨 3의 끝에 도달한 경우 사용자가 서버에서 레벨 4를 플레이할 수 있게 해주는 게임 이주가 발생할 수 있다.
또 다른 실시예에서, 게임 구매 이벤트가 트리거이다. 게임의 데모 부분이 게임의 나머지 부분을 다운로드하지 않은 채 모두 실행된 경우, 게임 플레이는 게임의 풀 버전을 구매하게 되면 게임 클라이언트(310)에서 서버(340)로 이주될 수 있다. 또 다른 시나리오에서, 게임 콘솔에 완전히 다운로드된 게임도 서버에 의해서만 제공된 게임 경험 또는 레벨을 가질 수 있다. 예를 들어, 게임은 매우 크고 서버에서만 이용가능한 최종 레벨을 가질 수 있다. 예를 들어, 최종 레벨은 사용자가 수천 개의 나쁜 캐릭터 중 하나로서 플레이할 수 있게 해준다.
게임 실행 환경(322)은 게임의 인스턴스를 실행하는데 요구되는 클라이언트(310)의 게임 리소스를 포함한다. 게임 실행 환경(322)은 컴퓨팅 및 비디오 프로세싱과 함께 능동 메모리를 포함한다. 게임 실행 환경(322)은 게임 제어를 수신하여 게임이 그의 프로그래밍에 따라 조작 및 진행되게 한다. 일 실시예에서, 게임 실행 환경(322)은 게임 클라이언트로 전달되는 렌더링되는 비디오 스트림을 출력한다. 다른 실시예에서, 게임 실행 환경(322)은 게임 비디오를 렌더링하기 위해 게임 클라이언트 상의 로컬 객체와 결합될 수 있는 게임 지오메트리 또는 다른 표현을 출력한다.
게임 데이터 저장소(324)는 다운로드된 게임 및 부분적으로 다운로드된 게임을 저장한다. 게임은 플레이가능 블록으로 다운로드될 수 있다. 예를 들어, 제1 플레이가능 블록은 플레이어가 제1 레벨을 플레이할 수 있게 해준다. 일 실시예에서, 블록들은 분할되고, 레벨 변경과 같은 게임 전환 지점에서 시작 및 정지된다. 게임을 플레이하기 위해, 게임은 게임 데이터 저장소(324)로부터 게임 실행 환경(322)과 연관된 능동 메모리로 로딩될 필요가 있을 수 있다.
게임 서비스 클라이언트(326)는 서버(340)에서 실행되는 게임 서비스로부터 수신된 렌더링된 비디오 게임 이미지를 디스플레이하는 클라이언트 애플리케이션이다. 게임 서비스 클라이언트(326)는 또한 게임 입력을 처리하여 그것을 서버(340)에 전달되는 용이하게 업로드가능한 포맷으로 변경할 수 있다. 게임 서비스 클라이언트(326)는 또한 서버(340)로부터 수신된 렌더링된 비디오 게임 이미지를 디스플레이(316)에 대해 최적화된 크기로 스케일링할 수 있다.
플레이어 프로파일 데이터 저장소(328)는 개개의 게임에 대한 플레이어 프로파일 정보를 저장한다. 플레이어 프로파일 정보는 또한 개개의 게임에 대한 톰스톤(tombstones) 또는 게임 저장 데이터를 저장할 수 있다. 이 플레이어 프로파일 데이터 또는 게임 진행 데이터는 게임 이주 프로세스의 일부로서 앞뒤로 전달될 수 있다. 예를 들어, 게임이 서버(340)로부터 게임 클라이언트(310)로 이주되는 경우, 게임 저장 파일 또는 톰스톤은 게임 클라이언트(310)로 전달될 수 있다. 게임 저장 파일 및 톰스톤은 게임 진행을 기록한다. 게임 실행 환경(322)은 게임 저장 데이터를 판독하여 플레이어가 서버에서 중단한 게임을 시작한다. 게임 플레이가 클라이언트로부터 서버로 이주하는 경우 게임 저장 데이터 및 플레이어 프로파일 정보가 게임 클라이언트(310)에서 서버(340)로 업로드되는 반대의 시나리오도 가능하다.
게임 서버(340)는 연결 관리자(342), 플레이어 프로파일 데이터 저장소(344), 게임 이주 관리자(346), 게임 실행 환경(348), 게임 데이터 저장소(350), 게임 관리자(352) 및 게임 프로모션 관리자(354)를 포함한다. 하나의 박스로 도시되어 있지만, 게임 서버(340)는 다수의 머신을 포함하는 서버 팜일 수 있고, 또는 심지어 몇몇 서버 팜들일 수 있다.
연결 관리자(342)는 클라이언트(310)와 서버(340) 간의 연결을 구축한다. 연결 관리자(342)는 또한 사용자가 서버(340)에 의해 제공되는 게임 서비스에 액세스하도록 인증받았는지를 확실히 하기 위한 다양한 인증 메카니즘을 제공할 수 있다. 연결 관리자(342)는 또한 연결 내에서 이용가능한 대역폭을 분석하고 게임 플레이 동안 게임 플레이가 저하되지 않도록 보장하기 위해 게임의 다운로드를 조절할 수 있다.
플레이어 프로파일 데이터 저장소(344)는 플레이어 정보를 구축 및 저장하기 위해 연결 관리자(342)와 협력할 수 있다. 플레이어 프로파일의 일부는 게임 서비스에 의해 제공되는 게임 및 경험에 대해 지불하기 위한 또는 구매하기 위한 플레이어의 이름, 주소 및 신용 카드 정보 또는 다른 메카니즘과 같은 인구 통계 및 금융 정보를 포함할 수 있다.
또한, 플레이어 프로파일 데이터 저장소(344)는 개개의 게임 내에서의 플레이어의 진행을 저장할 수 있다. 플레이어가 게임을 진행하는 경우, 게임 레벨에 대한 플레이어의 점수 및 액세스가 저장될 수 있다. 또한, 플레이어 프로파일 데이터 저장소(344)는 언어 선호와 같은 개개의 플레이어의 선호에 대한 정보를 저장할 수 있다. 플레이어의 게임 클라이언트 및 네트워크 연결의 속도에 대한 정보도 저장되어 게임 경험을 최적화하는데 사용될 수 있다. 예를 들어, 일 실시예에서, 지리적으로 인접한 서버 팜이 사용중인 경우, 레이턴시가 보다 높은 인터넷 연결을 갖는 플레이어는 바람직하게는 인접 서버 팜에 연결될 수 있는 반면 레이턴시가 보다 낮은 인터넷 연결을 갖는 플레이어는 더 멀리 떨어져 있는 서버 팜에 연결될 수 있다. 이러한 식으로, 추가의 레이턴시를 가장 잘 처리할 수 있는 네트워크 연결을 갖는 플레이어가 그들의 위치로 인해 추가의 레이턴시를 생성하는 서버 팜에 연결된다.
플레이어 프로파일 데이터 저장소(344)는 개개의 플레이어에 대한 사용 이력을 저장할 수 있다. 게임을 구매하거나, 게임을 샘플링하거나, 또는 게임의 구매를 요구하지 않는 게임 서비스를 통해 게임을 플레이한 것에 대한 플레이어의 이력이 저장될 수 있다. 사용 정보는 개개의 플레이어에게 관심 게임을 제안하기 위해 분석될 수 있다. 일 실시예에서, 구매 이력은 게임 서비스를 통해 구매되지 않은 게임을 포함할 수 있다. 예를 들어, 구매 이력은 플레이어가 소매점에서 구매한 게임으로부터 키를 입력함으로써 증가될 수 있다. 몇몇 실시예에서, 플레이어는 그들의 게임 클라이언트(310) 상에서 게임에 대한 액세스를 가질 수 있고 또한 그들이 그들의 게임 클라이언트에 더 이상 있지 않은 경우 게임 서비스를 통해 그 게임에 대한 액세스를 가질 수 있다.
게임 이주 관리자(346)는 서버(340)로부터 클라이언트(310)로의 게임 플레이의 이주를 관리하고 클라이언트(310)로부터 서버(340)로의 게임 플레이의 이주를 도울 수 있다. 게임 이주 컴포넌트(321)와 마찬가지로, 게임 이주 관리자(346)는 트리거 이벤트를 검출할 수 있고 그에 응답하여 게임 이주를 개시할 수 있다. 앞서 언급한 트리거링 이벤트 외에, 서버(340) 상에 현재 플레이되고 있는 게임에 대한 코드를 포함하는 게임 블록의 성공적인 다운로드는 서버(340)로부터 클라이언트(310)로의 게임 이주를 개시할 수 있는 트리거링 이벤트이다. 예를 들어, 사용자는 서버에서 실행되는 제1 게임을 플레이할 수 있다. 게임 이주 관리자(346)(또는 다른 컴포넌트)는 게임의 제1 부분을 플레이하는데 필요한 데이터의 블록을 클라이언트로 전달한다. 이 데이터 블록이 성공적으로 다운로드되면, 서버(340)로부터 클라이언트(310)로 게임 플레이를 이주시키는 명령어가 전송될 수 있다. 게임이 성공적으로 이주되면, 서버에서 이전에 게임을 플레이하는데 사용된 대역폭은 게임의 나머지 부분을 클라이언트(310)로 다운로드하는데 전용될 수 있다.
게임 실행 환경(348)은 게임의 인스턴스들을 실행하는데 필요한 게임 리소스를 포함한다. 이들은 게임 관리자(352) 및 다른 컴포넌트에 의해 관리되는 이전에 설명한 리소스들이다. 게임 실행 환경(348)은 컴퓨팅 및 비디오 처리와 함께 능동 메모리를 포함한다. 게임 실행 환경(348)은 I/O 채널을 통해 게임 제어를 수신하고 게임이 그의 프로그램에 따라 조작 및 진행되게 한다. 일 실시예에서, 게임 실행 환경(348)은 게임 클라이언트로 전달되는 렌더링되는 비디오 스트림을 출력한다. 다른 실시예에서, 게임 실행 환경(348)은 게임 비디오를 렌더링하기 위해 게임 클라이언트 상의 로컬 객체와 결합될 수 있는 게임 지오메트리 또는 다른 표현을 출력한다.
게임 데이터 저장소(350)는 이용가능 게임을 저장한다. 게임은 데이터 저장소로부터 검색될 수 있고 능동 메모리를 통해 활성화될 수 있다. 게임 데이터 저장소(350)는 수동 또는 2차 메모리로서 기술될 수 있다. 일반적으로, 게임은 게임 데이터 저장소(350)로부터 플레이되지 않을 수 있다. 그러나, 몇몇 실시예에서, 2차 메모리가 가상 메모리로서 이용될 수 있고, 이 경우 게임 데이터 저장소(350)의 부분들은 또한 능동 메모리로서 동작할 수 있다. 이것은 능동 메모리가 특정 하드웨어 컴포넌트에 의해 반드시 정의될 필요는 없지만, 게임을 실행하기 위해 메모리 내의 객체들을 능동적으로 조작하고 액세스할 수 있는 게임 리소스들의 능력에 의해 정의됨을 보여준다.
게임 관리자(352)는 플레이어가 활성화된 게임에 연결되도록 관리한다. 일 실시예에서, 게임 서비스를 통해 이용가능한 각 게임마다 개개의 게임 관리자가 있다. 하나의 게임을 예로 들면, 게임 관리자는 플레이를 요청된 게임으로 안내할 것이다. 게임 관리자(352)는 또한 활성화된 게임을 관리한다. 일 실시예에서, 플레이어는 게임 관리자(352)를 통해 게임에 연결될 수 있다. 즉, 게임 관리자(352)는 개개의 게임 인스턴스들 간의 통신 및 연결에 대한 게이트 키퍼로서 동작할 수 있다. 플레이어가 게임으로부터 빠져나오는 경우, 플레이어의 진행 상태를 검색하고 플레이어 프로파일 데이터 저장소(344) 내의 플레이어의 프로파일에 저장하게 하는 명령어가 게임 관리자로 전달될 수 있다. 플레이어가 게임으로부터 빠져나왔으면, 그 게임은 게임 관리자(352)에 의해 중단될 수 있다.
게임 프로모션 관리자(354)가 우선적으로 게임 샘플 또는 데모를 제공하는 게임의 블록을 게임 클라이언트(310)에 다운로드할 것이다. 이 게임 블록은 전체 게임의 제1 부분이거나 또는 특별히 설계된 데모일 수 있다. 어느 경우이든, 게임 프로모션 관리자(354)는 플레이어의 있을 법한 게임 관심사를 식별하고 게임 클라이언트(310)로 다운로드할 관련 게임을 선택할 수 있다. 다운로드되었으면, 사용자는 게임 샘플 또는 데모가 플레이될 수 있다는 것을 통보받을 수 있다. 사용자는 트리거 이벤트일 수 있는, 게임 플레이 동안 게임을 구매하기 위한 옵션을 제공받을 수 있다. 구매되었으면, 게임의 나머지가 다운로드될 수 있고 사용자는 필요에 따라 다운로드가 이루어지는 동안 게임의 전체 서버 버전으로 이주할 수 있다.
이제 도 4를 참조하면, 본 발명의 일 실시예에 따라, 게임 플레이를 게임 서버로부터 게임 클라이언트로 이주시키는 것을 용이하게 하는 게임 환경(400) 내에서의 통신을 보여주는 순차도가 도시되어 있다. 게임 환경(400)은 게임 클라이언트(310)와 유사할 수 있는 게임 클라이언트에서 동작하는 컴포넌트들, 및 게임 서버(340)와 유사할 수 있는 게임 서버에서 동작하는 컴포넌트들을 포함한다.
게임 클라이언트에 위치한 컴포넌트들은 게임 제어기(410), 클라이언트 디스플레이(412), 게임 서비스 클라이언트 애플리케이션(414), 클라이언트 이주 컴포넌트(416), 클라이언트 게임 저장소(418) 및 클라이언트 게임 환경(420)을 포함한다. 게임 서비스에 위치한 컴포넌트들은 게임 서비스 게임 환경(422), 게임 서비스 이주 컴포넌트(424), 게임 서비스 데이터 저장소(426) 및 게임 서비스 플레이어 프로파일 데이터 저장소(428)를 포함한다. 클라이언트와 게임 서비스 모두는 단순함을 위해 도 4에는 도시되어 있지 않은 추가의 컴포넌트들을 포함할 수 있다.
먼저, 게임 제어기(410)로부터의 제어 입력(430)이 클라이언트 장치에서 실행되는 게임 서비스 클라이언트 애플리케이션(414)에 전달된다. 이 제어 입력(430)은 게임 서비스 서버에서 실행되는 게임 서비스 게임 환경(422)에 의해 사용가능한 형식으로 사전처리될 수 있다(432). 이러한 사전처리는 원시(raw) 입력 신호가 통신될 수 있는 경우의 몇몇 실시예에서는 요구되지 않는다. 사전처리된 제어 입력(434)은 게임 객체를 조작하는데 사용되는 경우(436) 게임 서비스 클라이언트(414)로부터 게임 서비스 게임 환경(422)으로 전달된다. 제어 입력(434)에 응답하여 새로운 게임 이미지(438)가 렌더링되고 게임 서비스 클라이언트(414)로 전달된다. 렌더링된 게임 이미지(438)는 필요에 따라 클라이언트 디스플레이(412)에 적절한 크기로 스케일링된다(440). 스케일링된 비디오 이미지(442)는 사용자에게 디스플레이하기 위해 클라이언트 디스플레이(412)로 전달된다.
게임 상태 정보(446)가 생성되고(444) 게임 서비스 플레이어 프로파일 데이터 저장소(428)로 전달된다. 게임 상태는 사용자가 게임 내의 한 지점으로 되돌아갈 수 있도록 주기적으로 저장된다. 다른 컴포넌트들 또한 이벤트를 트리거링하기 위해 게임 상태 정보를 모니터링할 수 있다.
이주 트리거와는 구별되는 다운로드 트리거가 단계(450)에서 검출된다. 다운로드 트리거는 진행중인 게임 세션에서 플레이되고 있는 게임의 나머지를 구매하겠다는 사용자 결정일 수 있다. 예를 들어, 사용자는 프로모션 또는 데모의 일부로서 다운로드된 게임의 제1 블록의 플레이를 시작할 수 있다. 또 다른 실시예에서, 사용자는 이전에 게임을 구매하였지만 게임의 다음 블록을 다운로드하는데 이용가능한 대역폭을 가지고 있지 않았다. 다운로드 이벤트(450)는 다운로드 이용가능성을 제공하기 위해 사용자의 대역폭의 변화 또는 대역폭 사용량을 검출하는 것일 수 있다.
다운로드 요청 또는 명령어(452)가 게임 서비스 이주 컴포넌트(424)로부터 게임 데이터 저장소(426)로 전달된다. 게임 데이터 저장소는 다운로드될 게임의 다음 블록을 준비하고(454) 그 게임 블록(456)을 클라이언트 게임 저장소(418)로 다운로드한다. 클라이언트 게임 저장소(418)는 게임 블록(456)을 저장한다. 하나의 메시지로 도시되어 있지만, 순차도에 도시되어 있는 게임 블록(456) 및 다른 메시지는 실제로는 시간을 두고 발생하는 일련의 메시지들일 수 있다. 예를 들어, 몇몇 경우, 사용자의 연결에서 이용가능한 대역폭에 따라서는 게임 블록(456)을 클라이언트 게임 저장소(418)를 다운로드하는데 20분 내지 30분이 소요될 수 있다. 저장되었으면, 게임 블록이 사용할 준비가 되었다는 통보(460)가 클라이언트 이주 컴포넌트(416)에 전송된다. 단계(462)에서, 다운로드 완료 메시지(464)가 생성되고 게임 서비스 이주 컴포넌트(424)로 전달된다.
단계(466)에서, 게임 이주 트리거가 검출된다. 이 경우, 클라이언트 장치로의 게임 블록의 완전한 다운로딩은 트리거링 이벤트를 구성한다. 트리거(466)가 검출되면, 이주에 필요한 정보가 수집된다. 이 경우, 게임 상태 정보(468)에 대한 요청이 발생되고 게임 서비스의 플레이어 프로파일 데이터 저장소(428)로 전달된다. 게임 상태가 검색되고(470), 현재의 플레이어 진행 및 다른 게임 파라미터를 기술하는 게임 상태 메시지(471)는 클라이언트 이주 컴포넌트(416)로 전달된다. 게임 상태 정보를 사용하여, 게임 이주 메시지(473)가 생성되고(472) 클라이언트 장치의 클라이언트 이주 컴포넌트(416) 또는 다른 컴포넌트에 전달된다. 게임 이주 메시지는 서버를 떠나 클라이언트 장치에서 게임 플레이를 시작하는데 필요한 정보를 클라이언트 장치에 제공한다.
상태 정보 및 이주 명령어를 수신하게 되면, 단계(474)에서 클라이언트 이주 컴포넌트(416)는 클라이언트측에서부터 게임 이주 프로세스를 시작한다. 이전에 렌더링된 비디오 게임 이미지를 수신한 게임 서비스 클라이언트(414)에서 활동을 종료하는 메시지(476)가 통신된다. 이 종료는 즉각적이지 않을 수 있다. 클라이언트 게임 환경(420)이 진행중인 게임을 능동 메모리에 로딩하였고 진행할 준비가 되어있다면, 게임 서비스 클라이언트(414)는 종료된다(477). 종료되었다는 것은 게임 서비스 애플리케이션이 중단되거나 또는 그저 최소화된다는 것을 나타낼 수 있다. 어떤 경우든, 게임 서비스 클라이언트(414)는 종료되었으면 게임 서버로부터 수신된 정보에 대한 처리 또는 디스플레이에 능동적으로 관여하지 않는다.
활성화 메시지(478)가 또한 클라이언트측 게임 환경(420)에 전송된다. 게임 활성화(480)는 활성화 메시지(478)에 응답하여 시작된다. 활성화(480)의 일부로서, 클라이언트 게임 환경(420)은 클라이언트 게임 저장소(418)로부터 게임 코드를 요청한다(482). 게임 코드가 준비되고(484) 클라이언트 게임 환경(420)으로 전달된다(486). 게임 데이터가 능동 메모리에 로딩되고(488) 게임 플레이를 위해 준비된다. 이전에 수신된 게임 상태 정보는 사용자가 그것을 요청한 지점에서 게임을 세팅하는데 사용된다. 일 실시예에서, 게임 플레이가 게임 서버에서 계속되고 렌더링된 이미지는 게임 서비스 클라이언트(414)를 통해 디스플레이되는 동안 게임 환경(420)은 게임을 활성화시키고 플레이를 준비하였다. 전환 레벨과 같은, 게임 내에서의 전이 지점에 도달하게 되면, 게임 플레이는 게임 서비스 클라이언트(414)로부터 클라이언트 게임 환경(420)으로 전이된다.
전이되면, 게임 제어 데이터(490)가 클라이언트 게임 환경(420)으로 전달되는데, 이 경우, 게임 객체들이 조작되고(492) 새로운 비디오 게임 이미지가 렌더링된다. 새로운 비디오 게임 이미지(494)는 클라이언트 디스플레이(412)로 전달되어 사용자에게 디스플레이된다.
이제 도 5를 참조하면, 본 발명의 일 실시예에 따라, 게임이 클라이언트 게임 장치로부터 게임 서비스에 위치한 서버로 이주되는 동안 게임 환경(500) 내에서 이루어지는 통신을 보여주는 순차도가 도시되어 있다. 게임 환경(500)은 게임 클라이언트(310)와 유사할 수 있는 게임 클라이언트에서 동작하는 컴포넌트들, 및 게임 서버(340)와 유사할 수 있는 게임 서버에서 동작하는 컴포넌트들을 포함한다. 게임 클라이언트에 위치한 컴포넌트들은 게임 제어기(510), 클라이언트 디스플레이(512), 게임 서비스 클라이언트 애플리케이션(514), 클라이언트 이주 컴포넌트(516), 및 클라이언트 게임 환경(518)을 포함한다. 게임 서비스에 위치한 컴포넌트들은 게임 서비스 게임 환경(520), 게임 서비스 이주 컴포넌트(522) 및 게임 서비스 데이터 저장소(524)를 포함한다. 클라이언트와 게임 서비스 모두는 단순함을 위해 도 4에는 도시되어 있지 않은 추가의 컴포넌트들을 포함할 수 있다.
먼저, 사용자는 클라이언트의 게임 환경(518)에서 실행되는 게임을 플레이하고 있다. 게임 신호(530)가 게임 제어기(510)로부터 클라이언트 게임 환경(518)으로 전달되는데, 이 경우, 신호(530)에 응답하여 게임 객체들이 조작되고 비디오 게임이 렌더링된다(532). 렌더링된 비디오 게임 이미지(534)는 디스플레이 장치(512)로 전달되어 사용자에게 디스플레이된다.
단계(536)에서, 클라이언트 게임 환경(518)은 게임 상태 업데이트 메시지(538)를 클라이언트 이주 컴포넌트(516)로 전달한다. 게임 상태 업데이트 메시지(538)는 게임 내에서의 사용자의 현재 진행 상태 및 사용자가 행한 다른 명령어 또는 요청을 기술할 수 있다. 예를 들어, 사용자는 새로운 레벨에 대한 메뉴 요청을 입력했을 수 있다.
단계(540)에서, 클라이언트 이주 컴포넌트(516)는 게임 상태 메시지(538)를 분석하여 트리거링 이벤트가 발생했는지 판정한다. 예를 들어, 사용자는 새로운 레벨을 요청했거나 또는 아직 게임 클라이언트로 다운로드되지 않은 새로운 레벨이 액세스되는 게임 내의 한 지점에 도달했을 수 있다. 이 지점에서, 클라이언트 이주 컴포넌트(516)는 이주 프로세스를 시작하기 위한 일련의 통신을 생성한다.
트리거가 검출되면, 클라이언트 이주 컴포넌트(516)는 이주 요청(542)을 게임 서비스 이주 컴포넌트(522)로 전달한다. 이것은 먼저 게임 서비스와의 통신 세션이 미리 활성화되어 있지 않다면 이 게임 서비스와의 통신 세션을 설정하는 것을 필요로 할 수 있다. 통신 세션을 설정하는 프로세스는 도 5에 도시되어 있지 않고 또한 게임 서비스가 게임 이주 요청을 받아들이는데 요구될 수 있는 인증 프로세스 또는 그 밖의 다른 프로세스도 아니다.
단계(550)에서 게임 이주 컴포넌트(522)는 단계(542)에서의 이주 요청을 분석한다. 이 요청은 리소스 이용가능성에 대해 분석될 수 있다. 예를 들어, 게임 서비스 이주 컴포넌트(522)는 특정 레벨에서의 게임의 인스턴스가 사용자에게 이용가능한지 또는 이용가능해질 수 있는지를 판정하기 위해 이용가능한 리소스에 질의할 수 있다. 게임 서비스 이주 컴포넌트는 또한 사용자가 요청된 게임 레벨에 대해 적합한 액세스를 가지고 있음을 확실히 하기 위해 다른 컴포넌트들에 질의할 수 있다. 도시되어 있지는 않지만, 게임 서비스 이주 컴포넌트(522)는 필요에 따라 추가의 정보에 대해 클라이언트측 이주 컴포넌트(516)에 질의할 수 있다.
트리거링 이벤트가 검출된 경우 클라이언트 이주 컴포넌트(516)에 의해 발행된 게임 통신들로 되돌아가면, 단계(540)에서, 클라이언트 이주 컴포넌트(516)는 활성화 요청(544)을 게임 서비스 클라이언트 애플리케이션(514)으로 전송할 수 있다. 활성화 요청(544)은 게임 서비스 클라이언트 애플리케이션(514)이 시작되게 해서 렌더링된 비디오 게임을 수신할 준비를 하게 한다. 또한, 클라이언트 이주 컴포넌트(516)는 게임 실행을 종료하고 게임 서비스 서버로의 이주를 대기하라고 지시하는 종료 메시지(546)를 클라이언트 게임 환경(518)으로 전송한다.
이주 요청(542)의 수신에 응답하여, 게임 서비스 이주 컴포넌트(522)는 활성화 메시지(552)를 게임 서비스 게임 환경(520)으로 전달한다. 활성화 메시지(552)에 응답하여, 게임 서비스 게임 환경(520)은 사용자에 의해 요청된 게임 내의 한 지점에서 요청된 게임의 인스턴스를 활성화한다. 게임 서비스 게임 환경(520)은 플레이어의 프로파일 및 게임 상태 정보를 활성화 메시지(552) 내에서 수신할 수 있다. 이 정보는 이주 요청(542) 내에서 통신되거나 또는 도 5의 순차도에 도시되어 있지 않은 별도의 메시지를 통해 통신되었을 수 있다.
활성화(554)의 일부로서, 게임 서비스 게임 환경(520)은 게임 데이터 요청(556)을 게임 데이터 저장소(524)로 전송할 수 있다. 이에 응답하여, 게임 데이터 패키지가 준비되고(558) 게임 서비스 게임 환경(520)으로 전달된다(560). 단계(562)에서, 게임 서비스 게임 환경(520)은 게임 데이터를 능동 메모리에 로딩하고, 게임 클라이언트와 연관된 게임 서비스 클라이언트 애플리케이션(514) 또는 다른 컴포넌트로부터 I/O 연결 및 데이터를 수신할 준비를 한다.
활성화되었으면, 게임 서비스 게임 환경(520)은 비디오 게임의 렌더링된 이미지를 게임 서비스 클라이언트 애플리케이션(514)으로 전송한다. 렌더링된 이미지는 메시지(564)로 도시되어 있다. 수신되면, 게임 서비스 클라이언트 애플리케이션(514)은 이미지를 클라이언트 디스플레이(512)로 전달할 수 있다.
게임 제어기(510)로부터 수신된 게임 제어 데이터는 게임 서비스 클라이언트 애플리케이션(514)으로 전달된다. 제어 데이터(566)는 단계(568)에서 게임 서비스 게임 환경(520)에 의해 처리될 쉽게 업로드가능한 포맷으로 사전처리된다. 사전처리된 게임 제어(570)는 게임 서비스 환경(520)으로 전달된다. 게임 객체들은 단계(572)에서 제어(570)에 응답하여 조작된다. 새로운 렌더링된 게임 이미지(574)는 단계(576)에서 클라이언트 디스플레이(512)에 맞게 스케일링될 수 있는 게임 서비스 클라이언트 애플리케이션(514)으로 전달된다. 적절히 스케일링되었으면, 렌더링된 이미지는 클라이언트 디스플레이(512)로 전달되어(578) 사용자에게 나타난다.
이제 도 6을 참조하면, 본 발명의 일 실시예에 따라, 게임 서버로부터 클라이언트 장치로 게임 플레이를 이주시키는 방법(600)이 도시되어 있다. 게임 서버는 게임을 원격으로 플레이할 수 있게 해주는 게임 서비스와 제휴할 수 있다. 클라이언트 장치는 게임 콘솔, 개인용 컴퓨터, 태블릿, 스마트폰, 또는 그 밖의 다른 적절한 장치일 수 있다.
단계(610)에서, 비디오 게임이 서버에서 원격 게임 세션 내에서 실행된다. 원격 게임 세션의 일부로서, 데이터 연결을 통해 클라이언트 장치로부터 제어 입력이 수신된다. 예를 들어, 조이스틱과 같은 게임 제어기는 제어 입력들을 클라이언트 장치로 전송할 수 있으며 이 클라이언트 장치는 제어 입력들을 인터넷을 통해 이루어지는 데이터 연결을 이용하여 서버로 전달한다. 게임 세션의 일부로서, 게임 객체들은 제어 입력에 응답하여 조작되고 비디오 게임의 렌더링된 이미지는 데이터 연결을 통해 클라이언트로 전달된다. 따라서, 게임 코드는 제어 입력과 결합하여 실행되고 비디오 게임 이미지는 렌더링되고 클라이언트로 전달된다.
단계(620)에서, 비디오 게임에 대한 게임 이주 트리거 이벤트는 게임 서버에서 검출된다. 몇몇 게임 이주 트리거는 앞서 설명되었다. 일 실시예에서, 게임 이주 트리거는 비디오 게임에 대한 게임 블록을 클라이언트 장치로 다운로드하는 프로세스를 완료하는 것이다. 게임 블록은 게임 서버가 비디오 게임 이미지를 렌더링할 필요없이 현재 플레이되는 비디오 게임이 클라이언트 장치상에 플레이되게 할 수 있다. 또 다른 실시예에서, 게임 이주 트리거 이벤트는 또한 사용자가 게임 내에서의 전이 지점에 도달할 것을 요구한다. 전이 지점은 비디오 게임 실행 및 렌더링이 게임 플레이를 방해하지 않고 서버로부터 클라이언트로 이전될 수 있는 게임 내의 지점이다. 예를 들어, 사용자는 게임 메뉴 내에서 레벨의 끝에 도달할 수 있거나, 또는 게임을 일시적으로 중단시킬 수 있다. 따라서, 트리거는 여러 기준의 만족을 요구할 수 있다. 예를 들어, 제1 기준은 현재의 게임 블록의 완전한 다운로드일 수 있고 제2 기준은 게임 플레이가 전이 지점에 도달하는 것일 수 있다. 트리거 이벤트는 다운로드 진행 및 게임 플레이 진행을 모니터링함으로써 검출될 수 있다.
게임 블록은 다운로드 트리거 이벤트의 검출에 응답하여 게임 클라이언트로 다운로드될 수 있다. 다운로드 트리거 이벤트는 게임 전체의 구매일 수 있다. 또 다른 다운로드 트리거 이벤트는 다운로드에 이용가능한 대역폭을 마련하기 위한 현재 사용자의 데이터 연결 내에서의 사용량의 변화이다. 예를 들어, 사용자의 게임 플레이 및 다른 활동은 사용자의 데이터 연결 내의 이용가능 대역폭의 거의 100%를 소비할 수 있다. 예를 들어, 클라이언트 상에서 스트리밍 뮤직 애플리케이션을 닫음으로써 사용량을 변화시키면, 다운로드에 이용가능한 대역폭이 마련될 수 있다. 이용가능해지면, 다음 게임 블록의 다운로드가 트리거될 수 있다.
단계(630)에서, 게임 이주 트리거 이벤트의 검출에 응답하여, 게임 이주 명령어가 클라이언트 장치로 전달된다. 게임 이주 명령어는 게임 실행을 게임 서버로부터 게임 클라이언트로 전환하는 것을 시작하도록 클라이언트에게 요구한다.
게임 실행을 게임 서버로부터 게임 클라이언트로 전환하는 것은 다양한 단계를 요구할 수 있다. 예를 들어, 게임 서버로부터 수신된 게임 이미지는 이주 프로세스의 일부로서 마감된 게임 서비스 클라이언트 장치에서 디스플레이될 수 있다. 원하는 비디오 게임의 게임 코드는 클라이언트의 본래의 게임 실행 환경 내의 능동 메모리에 로딩될 필요가 있을 수 있다. 이것은 게임을 능동 메모리에 로딩하는 것 외에 하나 이상의 애플리케이션의 실행을 요구할 수 있다. 현재 게임에 대한 다양한 게임 선호 또는 설정을 설명하는 플레이어 프로파일 정보가 사용되어 클라이언트에서 실행되는 게임 인스턴스의 설정들을 조정한다. 또한, 서버로부터 수신된 게임 저장 정보는 게임이 서버에서 진행되었던 지점으로 비디오 게임을 로딩하는데 사용될 수 있다.
제어들은 클라이언트 상의 로컬 게임 환경으로 또한 서버로부터 멀리 라우팅된다. 사용자가 로컬로 참여하도록 게임이 완전히 준비되면, 단계(640)에서, 서버 상에서의 비디오 게임의 실행은 종료된다. 서버에 의해 렌더링된 비디오 게임 이미지가 종료되면, 클라이언트 게임 환경에 의해 렌더링된 비디오 게임 이미지가 사용자에게 보여진다. 전이 동안, 대기 화면 또는 게임 요약 화면, 광고 또는 다른 특징이 인터페이스의 전이 동안 사용자에게 간략히 보여질 수 있다. 게임 이주가 완료되면, 확인 메시지가 게임 서버에 의해 수신될 수 있다. 이 메시지에 응답하여, 게임 서버는 게임 인스턴스를 해체하고 또 다른 플레이어에 의해 사용되도록 서버 리소스들을 자유롭게 한다.
몇몇 멀티플레이어 게임에서, 멀티플레이어 게임의 일부인 통신들은 서버 기반 인스턴스로부터 클라이언트로 다시 라우팅될 수 있다. 통신들은 다른 플레이어에 의해 생성된 텍스트 또는 음성을 포함할 수 있다. 통신은 또한 클라이언트가 다른 플레이어에 의해 행해진 게임 변경사항을 렌더링할 수 있게 해주는 게임 제어일 수 있다. 예를 들어, 통신은 다른 게임 캐릭터가 어디로 이동했는지 및 가상 객체를 이동시키는 것과 같은, 가상 게임 세계를 변화시키는 다른 게임 캐릭터의 다른 동작들을 설명할 수 있다.
일 실시예에서, 게임 블록은 게임 세션에 사용되는 대역폭을 침해하지 않으면서 이용가능 대역폭의 대부분을 사용하도록 계산된 속도로 클라이언트 장치로 전달된다. 게임 세션은 대역폭을 사용하여 렌더링된 비디오 게임 이미지를 클라이언트로 다운로드하고 제어 입력을 클라이언트로부터 서버로 업로드한다. 일 실시예에서, 다운로드 속도는 이용가능한 대역폭과, 비디오 게임 경험 동안 사용된 최대 대역폭 비율 간의 차이이다. 또 다른 실시예에서, 비디오 게임 경험 동안 사용된 평균 대역폭은 데이터 연결시의 이용가능 대역폭과 비디오 게임 경험으로 인한 사용량 간의 차이를 계산하는데 사용된다. 게임 세션에 의해 사용된 대역폭은 다른 제어가 사용됨에 따라 변경될 수 있다. 예를 들어, 대역폭 사용량은 조이스틱 제어 신호에 음성 명령이 추가되는 경우 증가할 것이다.
이제 도 7을 참조하면, 본 발명의 일 실시예에 따라 게임 플레이를 클라이언트 장치로부터 게임 서버로 이주시키는 방법(700)을 나타내는 흐름도가 도시되어 있다. 단계(710)에서, 비디오 게임이 게임 클라이언트에서 실행된다. 실행의 일부로서, 게임 클라이언트에 통신가능하게 연결된 로컬 게임 제어기로부터 제어 입력이 수신된다. 예를 들어, 조이스틱 또는 깊이 카메라가 하드웨어 연결 또는 무선 연결을 통해 게임 클라이언트에 연결될 수 있다. 어떤 식으로든, 게임 객체는 제어 입력에 응답하여 조작되고 비디오 게임의 렌더링된 이미지가 클라이언트에 의해 생성되고 게임 클라이언트와 연관된 디스플레이 장치를 통해 클라이언트에 디스플레이된다. 디스플레이 장치는 게임 클라이언트 또는 텔레비전과 같은 별개의 독립형 장치에 통합될 수 있다.
따라서, 단계(710)에서, 비디오 게임은 게임 클라이언트에서 실행된다. 이것은 비디오 게임 코드가 클라이언트의 게임 실행 환경 내의 능동 메모리 내로 로딩되는 것과 게임 코드를 처리하고 그에 따라 비디오 게임 이미지를 렌더링하기 위해 그래픽 처리 장치 및 중앙 처리 장치와 같은 로컬 클라이언트 리소스들의 이용을 수반할 수 있다.
단계(720)에서, 비디오 게임에 대한 게임 이주 트리거 이벤트가 게임 클라이언트에서 검출된다. 게임 이주 트리거 이벤트의 예는 클라이언트 장치로 현재 다운로드되지 않은 코드를 갖는 비디오 게임의 레벨을 플레이하려는 요청을 포함한다. 또 다른 예에서, 게임 이주 트리거 이벤트는 클라이언트 장치상에서 플레이할 비디오 게임의 다음 레벨이 이용가능하지 않을 때 사용자가 비디오 게임 내의 레벨의 끝으로부터 임계 기간에 도달하는 것이다. 이 다음 레벨은 서버에서 플레이되도록 설계되고 클라이언트로 다운로드되지 않은 레벨이기 때문에 이용가능하지 않을 수 있다. 또 다른 실시예에서, 이 다음 레벨은 여러 가지 이유로 클라이언트로 아직 다운로드되지 않았기 때문에 이용가능하지 않다. 예를 들어, 비디오 게임의 다음 레벨은 아직 구매되지 않았다. 또 다른 실시예에서, 비디오 게임의 다음 부분 또는 블록은 게임 플레이 동안이건 또는 게임 플레이를 하지 않는 동안이건 다운로드될 기회를 가지지 못했다.
단계(730)에서, 트리거 이벤트의 검출에 응답하여, 게임 실행을 클라이언트로부터 게임 서버로 전환하는 것을 시작하라는 게임 이주 명령어가 게임 서버로 전달된다. 이 프로세스의 일부로서, 서버 인증 기능이 수행되어 클라이언트 장치 또는 이 클라이언트 장치와 연관된 사용자가 게임 서비스 및 게임의 여러 레벨에 대한 액세스를 가지고 있음을 확인할 수 있다. 사용자가 게임 서비스 및 게임의 다음 레벨에 대한 액세스를 가지고 있지 않은 경우, 사용자는 그 액세스를 구매하기 위한 기회를 제공받거나 또는 인증 정보를 제공할 수 있다. 사용자가 예를 들어 게임의 풀 버전을 구매함으로써 인증 정보를 제공하면, 게임 이주 프로세스는 계속되어 사용자는 서버 상에서 게임을 계속할 수 있게 된다. 일 실시예에서, 서버 상에서 게임 플레이가 즉각 시작되는 동안 비디오 게임의 다음 블록이 이용가능 대역폭 내에서 클라이언트 장치로 다운로드된다. 이 다운로드의 끝에서, 게임 플레이는 클라이언트 장치로 이주될 수 있다.
단계(740)에서, 클라이언트 상에서의 비디오 게임의 실행은 종료된다. 이것은 사용자가 게임 서버 상에서의 게임 플레이로 이전할 준비가 되어 있음을 나타내는 확인 메시지에 응답하여 행해질 수 있다. 단계(750)에서, 로컬 게임 제어기로부터 수신된 추가의 제어 입력이 게임 서버로 전달된다. 일 실시예에서, 이들 제어 입력은 게임 서버로 업로드하기에 용이한 포맷으로 사전처리된다. 일 실시예에서, 게임 서버에서 실행되는 비디오 게임의 코드는 게임 클라이언트에서 실행되는 코드와 동일하다. 이것은 일 실시예에서 제어 입력이 변경없이 게임 서버로 직접 전달될 수 있게 해준다.
단계(760)에서, 비디오 게임의 렌더링된 이미지는 게임 서버로부터 수신된다. 렌더링된 이미지는 클라이언트 장치에서 실행되는 게임 서비스 클라이언트에 의해 디스플레이될 수 있다. 렌더링된 이미지는 추가의 제어 입력에 응답하여 행해진 게임에 대한 변경을 반영한다. 또 다시, 게임 플레이가 진행되는 동안, 비디오 게임의 다음 블록이 수신되고 저장될 수 있다. 비디오 게임의 다음 블록의 다운로드가 완료되면, 게임 실행 및 렌더링은 클라이언트 장치로 이주될 수 있다.
이제 도 8을 참조하면, 본 발명의 일 실시예에 따라, 클라이언트와 게임 서버 사이에서 비디오 게임의 실행을 이주시키는 방법(800)을 나타내는 흐름도가 도시되어 있다. 단계(810)에서, 클라이언트에 저장된 부분적 게임을 플레이하겠다는 사용자로부터의 요청이 수신된다. 일 실시예에서, 게임 서비스는 게임의 부분적 버전일 수 있는 샘플 또는 데모 게임을 우선적으로 게임 클라이언트로 다운로드할 수 있다. 어떤 게임이 샘플링될 수 있는지를 사용자가 알 수 있도록 하는 인터페이스가 클라이언트에 도시될 수 있다. 일 실시예에서, 부분적 게임은 제1 레벨과 같은 비디오 게임의 제1 부분이다. 이 부분적 게임은 게임 기능들에 대해 완전한 액세스 또는 제한된 액세스를 가질 수 있다.
단계(815)에서, 부분적 게임은 클라이언트 상의 게임 실행 환경으로 로딩된다. 이것은 게임을 클라이언트 장치의 능동 메모리에 로딩하는 것과, 플레이어 프로파일 정보를 게임에 추가하는 것과 게임이 클라이언트에서 실행되는데 필요한 다른 작업들을 수행하는 것을 포함할 수 있다.
단계(820)에서, 부분적 게임은 클라이언트에서 실행된다. 게임의 일부로서, 음성 명령을 수신하는 마이크로폰, 제스처를 수신하는 깊이 카메라, 조이스틱, 키보드, 터치 스크린 또는 다른 게임 제어기와 같은 로컬 게임 제어기로부터 제어 입력이 수신된다. 이 입력에 응답하여, 게임 객체들은 조작되고 비디오 게임의 렌더링된 이미지가 클라이언트에 의해 생성된다. 단계(825)에서, 부분적 게임의 풀 버전을 구매하겠다는 요청이 클라이언트에서 수신된다. 단계(830)에서, 부분적 게임의 풀 버전에 대한 구매 요청은 게임 서버로 전달된다. 단계(835)에서, 게임의 풀 버전에 대한 추가의 실행가능 게임 콘텐츠가 게임 서버로부터 수신된다. 단계(840)에서, 부분적 게임에 대한 게임 이주 트리거 이벤트가 게임 클라이언트에서 검출된다. 일 실시예에서, 트리거 이벤트는 다운로드의 완료이다. 게임 플레이가 진행되는 동안 또는 그러는 도중에 수신될 수 있다.
단계(845)에서, 트리거 이벤트의 검출에 응답하여, 게임 실행을 클라이언트에서 게임 서버로 전환하는 것을 시작하라는 게임 이주 명령어가 게임 서버로 전달된다. 이 실시예에서, 게임 트리거 이벤트는 플레이어가 부분적 게임의 끝에 또는 레벨의 끝에 도달하게 되어 그 이후 게임 코드가 게임 클라이언트에서 이용가능하지 않게 되는 것일 수 있다.
단계(850)에서, 부분적 게임의 실행은 클라이언트에서 종료된다. 단계(855)에서, 로컬 게임 제어로부터 수신된 추가의 제어 입력이 게임 서버로 전달되고, 단계(860)에서 비디오 게임의 렌더링된 이미지는 게임 서버로부터 수신된다. 렌더링된 이미지는 이전에 수신 및 전달된 추가의 제어 입력을 반영한다.
일 실시예에서, 복수의 부분적 게임이 게임 서비스로부터 수신된다. 이 부분적 게임은 클라이언트 장치에서 플레이되는 게임의 유형에 기초하여 선택될 수 있다.
본 발명의 실시예들은 제한적이기 보다는 예시적으로 설명되었다. 소정의 특징 및 하위조합은 다른 특징 및 하위조합을 참조하지 않고도 이용 및 채용될 수 있음을 알 수 있을 것이다. 이것은 청구항에 의해 고려되고 첨구항의 범주 내에 있다.
Claims (18)
- 컴퓨팅 장치에 의해 실행될 경우, 게임 플레이를 클라이언트로부터 게임 서버로 이주(migrate)시키는 방법을 수행하는 컴퓨터 실행가능 명령어들이 저장되어 있는 하나 이상의 컴퓨터 저장 매체로서,
상기 방법은
클라이언트에서, 비디오 게임에 대한 게임 코드를 실행하는 단계 - 상기 실행하는 단계에서 제어 입력이 로컬 게임 제어기로부터 수신되고, 게임 객체가 상기 제어 입력에 응답하여 조작되며, 상기 비디오 게임의 렌더링된 이미지가 상기 클라이언트에 의해 생성됨 - 와,
상기 클라이언트에서, 상기 비디오 게임에 대한 게임 이주 트리거 이벤트를 검출하는 단계 - 상기 게임 이주 트리거 이벤트는 사용자가 상기 비디오 게임을 일시 정지(pause)하는 것을 포함함 - 와,
상기 검출에 응답하여, 게임 실행을 상기 클라이언트로부터 상기 게임 서버로 전환하는 것을 시작하라는 게임 이주 명령어를 게임 서버로 전달하는 단계와,
상기 클라이언트 상에서의 상기 비디오 게임의 실행을 종료하는 단계와,
로컬 게임 제어기로부터 수신된 추가적인 제어 입력을 상기 게임 서버로 전달하는 단계와,
상기 클라이언트에 의해 실행된 것과 동일한 비디오 게임 코드를 실행하고 있는 상기 게임 서버로부터 상기 비디오 게임의 렌더링된 이미지를 수신하는 단계와,
상기 게임의 풀 버전에 대한 구매 요청을 상기 게임 서버에 전달하는 단계와,
다운로드 요청을 상기 게임 서버에 전달하는 단계와,
적어도 상기 다운로드 요청에 기초하여, 상기 게임 서버로부터 상기 게임의 풀 버전을 위한 추가적인 실행가능한 게임 콘텐츠를 수신하는 단계를 포함하며,
상기 게임 서버로부터 상기 게임의 풀 버전을 위한 추가적인 실행가능한 게임 콘텐츠를 수신하는 단계는 상기 클라이언트 상에서 진행중인 상기 게임의 부분적 버전의 게임 플레이와 동시에 수행되는
컴퓨터 저장 매체.
- 제1항에 있어서,
상기 방법은 상기 다운로드 요청에 응답하여, 상기 클라이언트에서, 상기 렌더링된 이미지를 수신하는 동안에 상기 비디오 게임에 대한 실행가능한 게임 코드의 블록을 수신하는 단계를 더 포함하며,
상기 블록은 상기 게임 서버에 의해 현재 실행 중인 상기 비디오 게임의 부분을 플레이하도록 실행가능한
컴퓨터 저장 매체.
- 제2항에 있어서,
상기 블록은, 상기 렌더링된 이미지를 수신하고 상기 제어 입력을 상기 게임 서버에 전달하기 위해 현재 사용되고 있지 않은, 상기 클라이언트에게 이용가능한 대역폭을 이용하도록 계산된 레이트로 수신되는
컴퓨터 저장 매체.
- 제1항에 있어서,
상기 게임 이주 트리거 이벤트는 또한 실행에 필요한 게임 코드가 상기 클라이언트 상에서 이용가능하지 않는 게임 레벨을 선택하는 것을 포함하는
컴퓨터 저장 매체.
- 제1항에 있어서,
상기 게임 이주 트리거 이벤트는 또한 사용자가 상기 비디오 게임에서 레벨을 완료하는 것을 포함하는
컴퓨터 저장 매체.
- 제1항에 있어서,
상기 방법은 상기 클라이언트 상에서, 상기 비디오 게임의 상기 렌더링된 이미지를 디스플레이하고 상기 제어 입력을 상기 게임 서버로 전달하는 게임 서비스 클라이언트 애플리케이션을 실행하는 단계를 더 포함하는
컴퓨터 저장 매체.
- 제1항에 있어서,
상기 방법은 상기 제어 입력보다 적은 데이터를 포함하는 업로드 포맷으로 상기 제어 입력을 사전처리하는 단계를 더 포함하는
컴퓨터 저장 매체.
- 클라이언트와 게임 서버 사이에서 비디오 게임의 실행을 이주시키는 방법으로서,
상기 클라이언트 상에 저장된 게임의 부분적 버전을 플레이하라는 요청을 수신하는 단계 - 상기 부분적 버전은 상기 게임의 풀 버전을 플레이하는데 필요한 모든 게임 콘텐츠보다 적은 콘텐츠를 포함함 - 와,
상기 게임의 부분적 버전을 상기 클라이언트 상의 게임 실행 환경으로 로딩하는 단계와,
상기 클라이언트에서, 상기 게임의 상기 부분적 버전을 실행하는 단계 - 상기 실행하는 단계에서 제어 입력이 로컬 게임 제어기로부터 수신되고, 게임 객체가 상기 제어 입력에 응답하여 조작되며, 상기 게임의 상기 부분적 버전의 렌더링된 이미지가 상기 클라이언트에 의해 생성됨 - 와,
상기 클라이언트에서, 상기 게임의 상기 부분적 버전에 대한 게임 이주 트리거 이벤트를 검출하는 단계 - 상기 게임 이주 트리거 이벤트는 사용자가 상기 비디오 게임을 일시 정지하는 것을 포함함 - 와,
상기 검출에 응답하여, 게임 실행을 상기 클라이언트로부터 상기 게임 서버로 전환하는 것을 시작하라는 게임 이주 명령어를 게임 서버로 전달하는 단계와,
상기 클라이언트 상에서의 상기 게임의 상기 부분적 버전의 실행을 종료하는 단계와,
로컬 게임 제어기로부터 수신된 추가적인 제어 입력을 상기 게임 서버로 전달하는 단계와,
상기 클라이언트에 의해 실행된 것과 동일한 비디오 게임 코드를 실행하고 있는 상기 게임 서버로부터 상기 게임의 상기 부분적 버전의 렌더링된 이미지를 수신하는 단계와,
상기 게임의 풀 버전에 대한 구매 요청을 상기 게임 서버에 전달하는 단계와,
다운로드 요청을 상기 게임 서버에 전달하는 단계와,
적어도 상기 다운로드 요청에 기초하여, 상기 게임 서버로부터 상기 게임의 풀 버전을 위한 추가적인 실행가능한 게임 콘텐츠를 수신하는 단계를 포함하며,
상기 게임 서버로부터 상기 게임의 풀 버전을 위한 추가적인 실행가능한 게임 콘텐츠를 수신하는 단계는 상기 클라이언트 상에서 진행중인 상기 게임의 상기 부분적 버전의 게임 플레이와 동시에 수행되는
방법.
- 제8항에 있어서,
게임 서버로부터 복수의 부분적 게임을 수신하는 단계와,
상기 복수의 부분적 게임을 상기 클라이언트에 저장하는 단계를 더 포함하는
방법.
- 제8항에 있어서,
상기 게임 이주 트리거 이벤트는 또한 상기 게임의 상기 부분적 버전에 의해 지원되지 않는 상기 게임의 풀 버전의 부분에 대한 플레이 요청을 포함하는
방법.
- 제8항에 있어서,
상기 게임 서버로부터 상기 게임의 풀 버전을 위한 추가적인 실행가능한 게임 콘텐츠를 수신하는 단계는 상기 게임 서버로부터 상기 게임의 상기 부분적 버전의 상기 렌더링된 이미지를 수신하는 단계와 동시에 수행되는
방법.
- 제8항에 있어서,
상기 클라이언트 상에서의 상기 게임의 상기 부분적 버전의 실행을 종료하는 단계는 게임 플레이 내에서 방해를 야기하지 않는 시점에 수행되는
방법.
- 클라이언트 컴퓨팅 시스템으로서,
프로세서와,
컴퓨터 실행가능 명령어가 저장되어 있는 컴퓨터 저장 메모리를 포함하되,
상기 컴퓨터 실행가능 명령어는 프로세서에 의해 실행될 경우, 상기 클라이언트 컴퓨팅 시스템으로 하여금,
로컬 게임 제어기로부터 수신된 제어 입력을 게임 서버로 전달하고,
상기 게임 서버로부터 비디오 게임의 렌더링된 이미지를 수신하며,
상기 비디오 게임에 대한 게임 이주 트리거 이벤트를 검출하고 - 상기 게임 이주 트리거 이벤트는 사용자가 상기 비디오 게임을 일시 정지하는 것을 포함함 - 와,
상기 게임 이주 트리거 이벤트 검출에 응답하여, 게임 실행을 상기 게임 서버로부터 상기 클라이언트 컴퓨팅 시스템으로 전환하는 것을 시작하라는 게임 이주 명령어를 게임 서버로 전달하며,
상기 클라이언트 컴퓨팅 시스템 상에서 상기 비디오 게임의 실행을 개시하고,
상기 클라이언트 컴퓨팅 시스템에서, 비디오 게임에 대한 게임 코드를 실행하며 - 상기 실행 중에 제어 입력이 상기 로컬 게임 제어기로부터 수신되고, 게임 객체가 상기 제어 입력에 응답하여 조작되며, 상기 비디오 게임의 렌더링된 이미지가 상기 클라이언트 컴퓨팅 시스템에 의해 생성됨 - ,
상기 게임의 풀 버전에 대한 구매 요청을 상기 게임 서버에 전달하고,
다운로드 요청을 상기 게임 서버에 전달하며,
적어도 상기 다운로드 요청에 기초하여, 상기 게임 서버로부터 상기 게임의 풀 버전을 위한 추가적인 실행가능한 게임 콘텐츠를 수신하게 하며,
상기 게임 서버로부터 상기 게임의 풀 버전을 위한 추가적인 실행가능한 게임 콘텐츠를 수신하는 것은 상기 게임 서버 상에서 진행중인 상기 게임의 부분적 버전의 게임 플레이와 동시에 수행되는
클라이언트 컴퓨팅 시스템.
- 제13항에 있어서,
상기 클라이언트 컴퓨팅 시스템은 또한,
상기 게임 서버로부터 상기 비디오의 상기 렌더링된 이미지의 수신을 방해하지 않으면서 추가적인 게임 코드를 상기 클라이언트 컴퓨팅 시스템에 전달하는데 이용가능한 대역폭을 마련하기 위해, 상기 게임 서버와 상기 클라이언트 컴퓨팅 시스템 사이의 이용가능한 대역폭의 변화를 검출하고,
상기 이용가능한 대역폭의 변화를 검출한 것에 응답하여 다운로드 요청을 상기 게임 서버로 전달하며,
상기 클라이언트 컴퓨팅 시스템에서, 상기 렌더링된 이미지를 수신하는 동안 상기 비디오 게임을 위한 실행가능한 게임 코드의 블록을 수신하도록 구성되며,
상기 블록은 상기 게임 서버에 의해 현재 실행 중인 상기 비디오 게임의 부분을 플레이하도록 실행가능한
클라이언트 컴퓨팅 시스템.
- 제14항에 있어서,
상기 블록은, 상기 렌더링된 이미지를 수신하고 상기 제어 입력을 상기 게임 서버로 전달하는데 현재 사용되고 있지 않은, 상기 클라이언트 컴퓨팅 시스템에 이용가능한 대역폭을 이용하도록 계산된 레이트로 수신되는
클라이언트 컴퓨팅 시스템.
- 제13항에 있어서,
상기 게임 이주 트리거 이벤트는 또한 실행에 필요한 게임 코드가 상기 클라이언트 컴퓨팅 시스템 상에서 이용가능하지 않는 게임 레벨을 선택하는 것을 포함하는
클라이언트 컴퓨팅 시스템.
- 제13항에 있어서,
상기 게임 이주 트리거 이벤트는 또한 사용자가 상기 비디오 게임에서 레벨을 완료하는 것을 포함하는
클라이언트 컴퓨팅 시스템.
- 제13항에 있어서,
상기 클라이언트 컴퓨팅 시스템은 또한 상기 제어 입력보다 적은 데이터를 포함하는 업로드 포맷으로 상기 제어 입력을 사전처리하도록 구성되는
클라이언트 컴퓨팅 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/593,843 | 2012-08-24 | ||
US13/593,843 US9381432B2 (en) | 2012-08-24 | 2012-08-24 | Game migration |
PCT/US2013/055234 WO2014031460A1 (en) | 2012-08-24 | 2013-08-16 | Game migration |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150044903A KR20150044903A (ko) | 2015-04-27 |
KR101993953B1 true KR101993953B1 (ko) | 2019-09-30 |
Family
ID=49117938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157004695A KR101993953B1 (ko) | 2012-08-24 | 2013-08-16 | 게임을 이주시키는 기법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9381432B2 (ko) |
EP (1) | EP2888018A1 (ko) |
JP (1) | JP6272864B6 (ko) |
KR (1) | KR101993953B1 (ko) |
CN (1) | CN104582806A (ko) |
WO (1) | WO2014031460A1 (ko) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10456686B2 (en) | 2012-09-05 | 2019-10-29 | Zynga Inc. | Methods and systems for adaptive tuning of game events |
US20140256420A1 (en) * | 2013-03-11 | 2014-09-11 | Microsoft Corporation | Univied game preview |
EP3089113A4 (en) * | 2013-12-26 | 2017-11-15 | Kabushiki Kaisha Square Enix (also trading as "Square Enix Co., Ltd." | Rendering system, control method, program, and recording medium |
JP5878938B2 (ja) * | 2014-01-29 | 2016-03-08 | 株式会社ソニー・コンピュータエンタテインメント | 配信システム、配信方法、配信プログラム |
US9998562B1 (en) | 2014-06-19 | 2018-06-12 | Amazon Technologies, Inc. | Service-oriented system optimization using partial service relocation |
US9998328B1 (en) * | 2014-06-19 | 2018-06-12 | Amazon Technologies, Inc. | Service-oriented system optimization using client device relocation |
US9675889B2 (en) | 2014-09-10 | 2017-06-13 | Zynga Inc. | Systems and methods for determining game level attributes based on player skill level prior to game play in the level |
US10561944B2 (en) | 2014-09-10 | 2020-02-18 | Zynga Inc. | Adjusting object adaptive modification or game level difficulty and physical gestures through level definition files |
US9795879B2 (en) * | 2014-12-31 | 2017-10-24 | Sony Interactive Entertainment America Llc | Game state save, transfer and resume for cloud gaming |
US10315108B2 (en) * | 2015-08-19 | 2019-06-11 | Sony Interactive Entertainment America Llc | Local application quick start with cloud transitioning |
US9993729B2 (en) | 2015-08-19 | 2018-06-12 | Sony Interactive Entertainment America Llc | User save data management in cloud gaming |
EP3393610A1 (de) * | 2015-12-21 | 2018-10-31 | Gorillabox GmbH I. G. | Verfahren zum abspielen von applikationen aus einer cloud sowie telekommunikationsnetz zum streamen und zur wiedergabe von anwendungen (apps) über ein bestimmtes telekommunikationssystem sowie verwendung eines telekommunikationsnetzes zum streamen und zur wiedergabe von anwendungen (apps) |
WO2017116874A1 (en) * | 2015-12-30 | 2017-07-06 | Sony Interactive Entertainment America Llc | User save data management in cloud gaming |
CN105727556B (zh) * | 2016-01-29 | 2019-05-31 | 腾讯科技(深圳)有限公司 | 一种图像绘制的方法、相关设备及系统 |
JP6061115B1 (ja) * | 2016-08-17 | 2017-01-18 | 株式会社セガゲームス | 情報処理装置及びプログラム |
KR101897704B1 (ko) * | 2017-09-25 | 2018-10-29 | 넷마블 주식회사 | 게임 서비스 제공 장치 및 방법 |
WO2019133170A1 (en) * | 2017-12-29 | 2019-07-04 | Cognant Llc | System and method for providing software applications |
US11383164B2 (en) | 2018-02-23 | 2022-07-12 | Rovi Guides, Inc. | Systems and methods for creating a non-curated viewing perspective in a video game platform based on a curated viewing perspective |
CN110989940B (zh) * | 2019-12-17 | 2022-05-31 | 联想(北京)有限公司 | 迁移方法和迁移装置 |
CN111084985B (zh) * | 2019-12-23 | 2023-05-26 | 上海米哈游天命科技有限公司 | 一种输入设备的参数调节方法、装置、终端设备及介质 |
CN115668160A (zh) * | 2020-05-22 | 2023-01-31 | 索尼集团公司 | 信息处理装置、信息处理方法、程序和信息处理系统 |
CN112402979B (zh) * | 2020-12-02 | 2023-11-17 | 网易(杭州)网络有限公司 | 游戏数据处理方法、装置和电子设备 |
CN112619135B (zh) * | 2020-12-22 | 2023-03-17 | 上海米哈游天命科技有限公司 | 一种游戏资源对象控制方法、装置、电子设备和存储介质 |
SG10202100950PA (en) * | 2021-01-28 | 2021-06-29 | Garena Online Private Ltd | A method for implementing multi-player games |
US20230097716A1 (en) * | 2021-09-25 | 2023-03-30 | FiveGen, LLC | Authenticating Individuals Based on Game Decisions and Behaviors |
US20240042313A1 (en) * | 2022-08-02 | 2024-02-08 | Sony Interactive Entertainment Inc. | Multi-user cross-device synchronization of metaverse instantiation |
WO2024202727A1 (ja) * | 2023-03-31 | 2024-10-03 | ソニーグループ株式会社 | 情報処理装置および情報処理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003103059A (ja) | 2001-09-28 | 2003-04-08 | Io:Kk | ゲームサーバ、ゲーム処理方法およびゲームプログラムを記録した記録媒体 |
JP2008513184A (ja) | 2004-09-21 | 2008-05-01 | ティーエイチキュー・ワイヤレス・インコーポレーテッド | ユーザ・デバイスにおけるゲーム使用の制御メカニズム |
US20120004042A1 (en) | 2008-12-15 | 2012-01-05 | David Perry | Intelligent Game Loading |
US20120004041A1 (en) | 2008-12-15 | 2012-01-05 | Rui Filipe Andrade Pereira | Program Mode Transition |
Family Cites Families (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838909A (en) | 1996-05-23 | 1998-11-17 | Sandcastle, Inc. | Reducing latency when synchronizing access to a multi-user database over a network |
US6758755B2 (en) | 1996-11-14 | 2004-07-06 | Arcade Planet, Inc. | Prize redemption system for games executed over a wide area network |
US6038599A (en) | 1997-04-23 | 2000-03-14 | Mpath Interactive, Inc. | Latency server and matchmaker |
US6356288B1 (en) | 1997-12-22 | 2002-03-12 | U.S. Philips Corporation | Diversion agent uses cinematographic techniques to mask latency |
US6415317B1 (en) | 1999-10-01 | 2002-07-02 | Joshua Michael Yelon | Software system for reducing the appearance of latency in a multi-user environment |
US6377257B1 (en) | 1999-10-04 | 2002-04-23 | International Business Machines Corporation | Methods and apparatus for delivering 3D graphics in a networked environment |
AU1593401A (en) | 1999-11-16 | 2001-05-30 | Sony Electronics Inc. | System and method for leveraging data into a game platform |
US6884172B1 (en) | 2000-10-25 | 2005-04-26 | Ngame Limited | Electronic game system |
US6475090B2 (en) | 2001-03-29 | 2002-11-05 | Koninklijke Philips Electronics N.V. | Compensating for network latency in a multi-player game |
US7392390B2 (en) | 2001-12-12 | 2008-06-24 | Valve Corporation | Method and system for binding kerberos-style authenticators to single clients |
US7277946B2 (en) | 2002-06-28 | 2007-10-02 | Microsoft Corporation | Distributed session listing and content discovery |
US7603406B2 (en) * | 2002-07-25 | 2009-10-13 | Sony Corporation | System and method for wireless software download and remote transaction settlement |
US20040030882A1 (en) | 2002-08-08 | 2004-02-12 | Forman George Henry | Managed application pre-launching |
US20040082388A1 (en) | 2002-10-23 | 2004-04-29 | Simsek Burc A. | Apparatus and method for incorporation of external digital or analog information in computer and console gaming environments |
US9032465B2 (en) * | 2002-12-10 | 2015-05-12 | Ol2, Inc. | Method for multicasting views of real-time streaming interactive video |
US20090118019A1 (en) | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US20040135805A1 (en) * | 2003-01-10 | 2004-07-15 | Gottsacker Neal F. | Document composition system and method |
US7076616B2 (en) | 2003-03-24 | 2006-07-11 | Sony Corporation | Application pre-launch to reduce user interface latency |
JP3632963B2 (ja) | 2003-05-29 | 2005-03-30 | コナミ株式会社 | ネットワーク対戦型端末装置、方法及びプログラム |
KR20060121207A (ko) | 2003-12-19 | 2006-11-28 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 인터랙티브 비디오 |
KR100475881B1 (ko) | 2004-04-08 | 2005-03-14 | 엔에이치엔(주) | 사용자별 행태에 따라 게임 채널을 랜덤하게 할당하는인터넷 게임 서비스 시스템 및 그 방법 |
JP4648906B2 (ja) | 2004-08-31 | 2011-03-09 | 一博 椎名 | 通話を伴うプッシュ型情報通信システム |
US20060135258A1 (en) | 2004-12-17 | 2006-06-22 | Nokia Corporation | System, network entity, client and method for facilitating fairness in a multiplayer game |
US20080207322A1 (en) | 2005-03-21 | 2008-08-28 | Yosef Mizrahi | Method, System and Computer-Readable Code For Providing a Computer Gaming Device |
US8038535B2 (en) | 2005-05-17 | 2011-10-18 | Electronic Arts Inc. | Collaborative online gaming system and method |
US9566522B2 (en) | 2005-05-27 | 2017-02-14 | Nokia Technologies Oy | Device, method, and computer program product for customizing game functionality using images |
US20110157196A1 (en) | 2005-08-16 | 2011-06-30 | Exent Technologies, Ltd. | Remote gaming features |
US7889669B2 (en) | 2005-09-26 | 2011-02-15 | Alcatel Lucent | Equalized network latency for multi-player gaming |
US20070093297A1 (en) | 2005-10-26 | 2007-04-26 | Waterleaf Ltd. | On-line, real-time game playing with search facility |
US20070173325A1 (en) | 2006-01-20 | 2007-07-26 | Microsoft Corporation | Join in-progress on-line game session |
WO2007119236A2 (en) | 2006-04-13 | 2007-10-25 | Yosef Mizrachi | Method and apparatus for providing gaming services and for handling video content |
US8087017B1 (en) | 2007-04-09 | 2011-12-27 | Moka5, Inc. | Trace-assisted prefetching of virtual machines in a distributed system |
WO2009039418A1 (en) * | 2007-09-21 | 2009-03-26 | Sony Computer Entertainment Inc. | Network delivery of entertainment software |
US8979647B2 (en) | 2007-10-26 | 2015-03-17 | Microsoft Technology Licensing, Llc | Method of providing player status and ability to join games |
US9142097B2 (en) | 2007-10-26 | 2015-09-22 | Igt | Gaming system and method for providing play of local first game and remote second game |
JP4408929B2 (ja) | 2007-11-22 | 2010-02-03 | 株式会社スクウェア・エニックス | オンラインゲームシステム |
US20090215538A1 (en) | 2008-02-22 | 2009-08-27 | Samuel Jew | Method for dynamically synchronizing computer network latency |
US20090247295A1 (en) | 2008-03-31 | 2009-10-01 | Weldon Marcus K | Network-Based Methods and Apparatus for Rendering Images to an End User |
US8264493B2 (en) | 2008-05-12 | 2012-09-11 | Playcast Media Systems, Ltd. | Method and system for optimized streaming game server |
US8430755B2 (en) | 2008-12-15 | 2013-04-30 | Tetris Online, Inc. | Interactive asynchronous game play architecture |
US8926435B2 (en) | 2008-12-15 | 2015-01-06 | Sony Computer Entertainment America Llc | Dual-mode program execution |
US8444490B2 (en) | 2008-12-15 | 2013-05-21 | Tetris Online, Inc. | Interactive asynchronous game offline play architecture |
US20100199231A1 (en) | 2009-01-30 | 2010-08-05 | Microsoft Corporation | Predictive determination |
US8719336B2 (en) | 2009-02-03 | 2014-05-06 | Microsoft Corporation | Method and apparatus for thwarting traffic analysis in online games |
US8151199B2 (en) | 2009-02-09 | 2012-04-03 | AltEgo, LLC | Computational delivery system for avatar and background game content |
US9723319B1 (en) | 2009-06-01 | 2017-08-01 | Sony Interactive Entertainment America Llc | Differentiation for achieving buffered decoding and bufferless decoding |
US20110025689A1 (en) | 2009-07-29 | 2011-02-03 | Microsoft Corporation | Auto-Generating A Visual Representation |
EP2319597A1 (en) | 2009-10-13 | 2011-05-11 | Crytek GmbH | A system of providing data for entertaining presentations to at least one audience |
US8313377B2 (en) | 2009-10-14 | 2012-11-20 | Sony Computer Entertainment America Llc | Playing browser based games with alternative controls and interfaces |
US8325187B2 (en) | 2009-10-22 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method and device for real time 3D navigation in panoramic images and cylindrical spaces |
US9486701B2 (en) | 2009-12-30 | 2016-11-08 | Crytek Gmbh | Computer-controlled video entertainment system |
US20110162004A1 (en) | 2009-12-30 | 2011-06-30 | Cevat Yerli | Sensor device for a computer-controlled video entertainment system |
US9400695B2 (en) | 2010-02-26 | 2016-07-26 | Microsoft Technology Licensing, Llc | Low latency rendering of objects |
EP2365470A1 (en) * | 2010-03-09 | 2011-09-14 | Crytek GmbH | A multi-user computer-controlled advertisement presentation system and a method of providing user and advertisement related data |
US20110250949A1 (en) | 2010-04-07 | 2011-10-13 | Van Os Marcel | Methods and systems for providing a game center having player specific options and game access |
US8366526B2 (en) | 2010-04-16 | 2013-02-05 | Disney Enterprises, Inc. | Power play game mechanics |
KR102000618B1 (ko) | 2010-09-13 | 2019-10-21 | 소니 인터랙티브 엔터테인먼트 아메리카 엘엘씨 | 부가기능의 관리 |
US8668582B1 (en) | 2010-09-17 | 2014-03-11 | Amazon Technologies, Inc. | Accommodating latency in a server-based application |
US20120079095A1 (en) | 2010-09-24 | 2012-03-29 | Amazon Technologies, Inc. | Cloud-based device synchronization |
GB201102128D0 (en) | 2011-02-08 | 2011-03-23 | Mustafa Bilal I | Method and system for providing video game content |
JP5076132B1 (ja) | 2011-05-25 | 2012-11-21 | 株式会社スクウェア・エニックス・ホールディングス | 描画制御装置、その制御方法、プログラム、記録媒体、描画サーバ、及び描画システム |
US8823745B2 (en) | 2011-06-02 | 2014-09-02 | Yoostar Entertainment Group, Inc. | Image processing based on depth information and color data of a scene |
US8850075B2 (en) | 2011-07-06 | 2014-09-30 | Microsoft Corporation | Predictive, multi-layer caching architectures |
US8176437B1 (en) | 2011-07-18 | 2012-05-08 | Google Inc. | Responsiveness for application launch |
US9250966B2 (en) | 2011-08-11 | 2016-02-02 | Otoy, Inc. | Crowd-sourced video rendering system |
US9864632B2 (en) * | 2011-08-17 | 2018-01-09 | Open Invention Network, Llc | System and method for transfer of an application state between devices |
US20130225287A1 (en) | 2012-02-28 | 2013-08-29 | Zynga Inc. | Synchronous and asynchronous game modes |
US8661491B1 (en) * | 2012-08-02 | 2014-02-25 | Ericsson Television Inc. | Methods using base content and additive content and related client devices and network server devices |
-
2012
- 2012-08-24 US US13/593,843 patent/US9381432B2/en active Active
-
2013
- 2013-08-16 JP JP2015528544A patent/JP6272864B6/ja active Active
- 2013-08-16 WO PCT/US2013/055234 patent/WO2014031460A1/en active Application Filing
- 2013-08-16 CN CN201380044324.9A patent/CN104582806A/zh active Pending
- 2013-08-16 KR KR1020157004695A patent/KR101993953B1/ko active IP Right Grant
- 2013-08-16 EP EP13759044.4A patent/EP2888018A1/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003103059A (ja) | 2001-09-28 | 2003-04-08 | Io:Kk | ゲームサーバ、ゲーム処理方法およびゲームプログラムを記録した記録媒体 |
JP2008513184A (ja) | 2004-09-21 | 2008-05-01 | ティーエイチキュー・ワイヤレス・インコーポレーテッド | ユーザ・デバイスにおけるゲーム使用の制御メカニズム |
US20120004042A1 (en) | 2008-12-15 | 2012-01-05 | David Perry | Intelligent Game Loading |
US20120004041A1 (en) | 2008-12-15 | 2012-01-05 | Rui Filipe Andrade Pereira | Program Mode Transition |
Also Published As
Publication number | Publication date |
---|---|
KR20150044903A (ko) | 2015-04-27 |
EP2888018A1 (en) | 2015-07-01 |
US9381432B2 (en) | 2016-07-05 |
JP6272864B6 (ja) | 2018-02-28 |
CN104582806A (zh) | 2015-04-29 |
JP2015531629A (ja) | 2015-11-05 |
WO2014031460A1 (en) | 2014-02-27 |
JP6272864B2 (ja) | 2018-01-31 |
US20140057722A1 (en) | 2014-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101993953B1 (ko) | 게임을 이주시키는 기법 | |
US11752429B2 (en) | Multi-user demo streaming service for cloud gaming | |
JP2015531629A6 (ja) | ゲーム移動 | |
US12011660B2 (en) | Augmenting video games with add-ons | |
JP6310073B2 (ja) | 描画システム、制御方法、及び記憶媒体 | |
US20210283514A1 (en) | In-game location based game play companion application | |
US9662575B2 (en) | Code execution probability based server-to-client transfer of game code | |
US20140256420A1 (en) | Univied game preview | |
US20140024457A1 (en) | Game browsing | |
US11838453B2 (en) | Systems and methods for efficient management of resources for streaming interactive multimedia content | |
US20240042313A1 (en) | Multi-user cross-device synchronization of metaverse instantiation | |
US20230330522A1 (en) | Systems and methods for efficient management of resources for streaming interactive multimedia content | |
WO2023200917A1 (en) | Systems and methods for efficient management of resources for streaming interactive multimedia content | |
CN113952724A (zh) | 云游戏角色控制方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right |