KR20130121699A - 상호작용 혼성 비동기 컴퓨터 게임 기반구조 - Google Patents
상호작용 혼성 비동기 컴퓨터 게임 기반구조 Download PDFInfo
- Publication number
- KR20130121699A KR20130121699A KR1020127033803A KR20127033803A KR20130121699A KR 20130121699 A KR20130121699 A KR 20130121699A KR 1020127033803 A KR1020127033803 A KR 1020127033803A KR 20127033803 A KR20127033803 A KR 20127033803A KR 20130121699 A KR20130121699 A KR 20130121699A
- Authority
- KR
- South Korea
- Prior art keywords
- game
- live
- participant
- player
- play
- Prior art date
Links
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
- A63F9/00—Games not otherwise provided for
- A63F9/24—Electric games; Games using electronic circuits not otherwise provided for
-
- 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/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/44—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
-
- 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/48—Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
-
- 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
- A63F13/497—Partially or entirely replaying previous game actions
-
- 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/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
- A63F13/795—Game 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
-
- 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/85—Providing additional services to players
- A63F13/87—Communicating with other players during game play, e.g. by e-mail or chat
-
- 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
- A63F13/493—Resuming a game, e.g. after pausing, malfunction or power failure
-
- 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
-
- 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/5546—Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
- A63F2300/556—Player lists, e.g. online players, buddy list, black list
-
- 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/5546—Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
- A63F2300/5566—Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history by matching opponents or finding partners to build a team, e.g. by skill level, geographical area, background, play style
-
- 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/5593—Details of game data or player data management involving scheduling aspects
-
- 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/60—Methods for processing data by generating or executing the game program
- A63F2300/63—Methods for processing data by generating or executing the game program for controlling the execution of the game in time
- A63F2300/634—Methods for processing data by generating or executing the game program for controlling the execution of the game in time for replaying partially or entirely the game actions since the beginning of 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
- 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/60—Methods for processing data by generating or executing the game program
- A63F2300/63—Methods for processing data by generating or executing the game program for controlling the execution of the game in time
- A63F2300/636—Methods for processing data by generating or executing the game program for controlling the execution of the game in time involving process of starting or resuming a game
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명의 실시예들에서 (a) 라이브 개시 참가자로부터 게임 개시 요청을 수신하였을 때, 라이브 개시 참가자가 게임을 플레이하고 적어도 한 추가의 참가자를 게임에 합류하게 초청할 수 있는 컴퓨터 생성 복수-플레이어 게임 환경을 제공하는 단계; (b) 라이브 참가자로부터 제 2 참가자 초청을 수신한 것에 응하여, 게임에 합류할 것을 제 2 라이브 참가자에 요청하는 단계; 및 (c) 제 2 참가자 초청에 이어, 게임을 시작하기에 앞서 게임에 합류하기 위한 제 2 라이브 참가자의 수락을 수신하기 위해 대기 기간을 제공하는 단계로서, 제 2 라이브 플레이어가 대기 기간 내에 수락한다면 두 플레이어들은 라이브로 플레이하고, 그렇지 않다면 상대가 라이브 상대인 것으로 보이게 시뮬레이트 라이브 상대가 게임간 상호작용과 함께 제공되는, 단계를 포함하는 게이밍 방법을 위한 개선된 기능들이 기술된다.
Description
관련출원들에 대한 상호참조
이 출원은 2010년 5월 28일 출원된 미국가특허출원 61/349,746; 2010년 6월 23일에 출원된 미국가특허출원 61/357,711에 대한 우선권을 주장한다.
위에 출원들 각각은 전체를 참조문헌으로서 본원에 포함시킨다.
본 발명은 컴퓨터 게임들에 관한 것으로, 특히 상호작용 비동기 컴퓨터 게임 기반구조에 관한 것이다.
대부분의 현재 멀티플레이어 컴퓨터 게임들은 2가지 일반적인 카테고리들로서, 턴-베이스(turn-based)와 동기(synchronous)로 나눈다. 턴-베이스 컴퓨터 게임들에서, 컴퓨터에 기반하지 않은 '보드 게임'와 매우 비슷하게, 플레이어들은 턴(turn)들을 번갈아 하며, 따라서 상호작용성은 매우 제한적이다. 턴-베이스 게임들의 이들의 본성이 "한 플레이어 그리고 그다음에 다른 플레이어"이기 때문에 이들 게임들을 종종 기본적인 형태의 비동기 게임 플레이라고도 한다.
동기 컴퓨터 게임들에서, 플레이어들은 전형적으로 상호작용적이며, 모두 함께 플레이하며, 복수의 플레이어들의 행동들은 흔히 그래픽 플레이어 인터페이스에 실시간으로 묘사된다. 이들 두 유형들의 컴퓨터 게임 플레이는 모든 플레이어들이 로그인 되어 동시에 게임을 플레이할 때 잘 작동한다. 그러나, 플레이어들이 동시에 로그인될 수 없을 때, 턴-베이스 게임들은 실시간으로보다는 더 긴 기간동안, 이를테면 몇시간, 몇일, 혹은 몇주에 걸쳐 플레이되는 게임들이 되며, 동기 게임들은 플레이하기가 매우 어렵게 된다. 플레이어가 무작위로 쌍을 이룬 이방인과 온라인 게임을 플레이하려고 할 때라도, 플레이어가 적합한 상대, 이를테면 동일 스킬 레벨, 나이, 위치, 등의 상대를 발견할 수 없는 때들이 있을 수 있다. 따라서, 게임이 온라인으로 플레이하는 어떤 레벨의 x명의 플레이어들이 있다면 이 게임이 가장 즐거웠을 수도 있을지라도, 대부분의 게임들은 어떤 서비스 지점에서 이 기준을 충족할 수 없고, 경험의 질은 크게 떨어져 게임의 수명이 단축되게 한다.
또한, 플레이어들은 "라이브"이게 또는 적어도 "라이브"인 것처럼 보이게 다른 사람들 및/또는 친구들과 상호작용하기를 요망한다. 그러므로, 모든 플레이어들이 실제로 동시에 플레이하고 있을 필요성 없이, 플레이어들이 실시간 플레이처럼 보이고 느끼게 하는 것으로부터 서로 쌍이 될 수 있게 하는 컴퓨터 게임 플레이 방법에 대한 필요성이 존재한다. 이에 따라, 모든 플레이어들이 동시에 게임을 활성적으로 플레이하고 있을 필요성에 의해 지워지는 제한없이, "사실상의(true)" 실시간 플레이에 비견되는 즐거움의 수준을 갖게 하는 비동기 게임 플레이의 보다 진보된 방법에 대한 필요성이 있다.
또한, "사실상의" 실시간 멀티플레이어 게임 플레이에서 조차도, 사용자들은 플레이어가 게임에 합류하기를 기다려야 하는 시간을 줄이거나 및/또는 외견상의 사용자 활동량을 증가시키기 위해서 사전에 기록된 게임들에 대해 대조될 수 있다. 이러한 경우들에 있어서, 게임은 전형적으로 게임 플레이 데이터를 얻기 위해 데이터베이스에 요청할 것이다. 사용자들의 수가 증가함에 따라(이를테면, 성공적인 온라인 게임들에 있어서 예를 들면, 수십 내지 수십만의 동시 사용자들), 데이터베이스가 요청들을 처리하는데 걸리는 시간은 지수함수적으로 증가하여 이것은 바람직하지 못한 지체 시간들 및/또는 용량 한계를 초래할 수 있다.
또한, 이들 제약들에 기인하여, 시스템 설계자들은 비교적 작은 샘플 크기만을 사용하여 사전에 기록된 게임 플레이의 서로 다른 레벨들의 버켓들(bucket)을 채울 수도 있고, 매우 다양한 실제 사용자들로부터 샘플 게임 플레이들의 수를 최적화할 수 없을 수도 있고, 대부분의 혹은 심지어 모든, 실제 사용자들에 대한 게임 플레이들을 훨씬 덜 저장할 수 있다.
이러한 과제들을 해결하기 위한 더 확장가능하고(scalable), 효율적이며, 적응성있는 기반구조에 대한 필요성이 존재한다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초하여 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있다. 즉, 본 발명의 온라인 게임은 실시간 '라이브' 플레이어들과 실시간으로 플레이하고 있지 않은 외견상 라이브 플레이어들과의 조합 또는 혼성을 제공할 수 있다. 외견상 라이브 플레이어들의 게임들은 라이브 플레이어들에게 라이브인 것으로 보이게 본 발명에 의해 발생될 수 있고, 실제로 실시간으로 현재 플레이하는데 이용될 수 없는 플레이하기 위해 초청되는 플레이어들의 이전 플레이에 기초하여 본 발명에 의해 생성된다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계. X 라이브 플레이어들은 Y 외견상 라이브 플레이어들에 대항하여 플레이할 수 있다. X가 1보다 크다면, X 라이브 플레이어들은 서로 대항하여 플레이할 수 있고 아울러 이들은 또한 실제로는 비동기 게임 플레이 기록들(이들의 원래의 포맷의 혹은 수정된)인 Y 외견상 라이브 플레이어와도 대항하여 플레이한다. X 및 Y의 크기에 내재하는 제한은 없다. 즉, 이를테면 1 라이브 플레이어 및 2 비동기 플레이어들; 2 라이브 플레이어들 및 2 비동기 플레이어들; 1 라이브 플레이어 및 10 비동기 플레이어들; 5 라이브 플레이어들 및 1 비동기 플레이어, 등과 같이 라이브 플레이어들과 외견상 라이브 비동기 플레이어들과의 임의의 조합이 지원될 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초한 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있고, 게임 기록들은 게임 플레이에 앞서 모든 라이브 플레이어들에 의해 다운로드될 수 있다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 위해 이용될 수 있고 라이브 동기 게임 플레이에 합류하기를 원하는지를 판정하는 단계; 제 1 게스트 참가자가 이용될 수 없거나 합류하기를 원하지 않는다면, 제 1 게스트 참가자를 위해 이전 게임 플레이 데이터가 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 1 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 이전 게임 플레이 데이터에 기초하여 외견상 라이브 제 1 게스트 참가자 둘 다에 대항하여 플레이할 수 있는, 단계; 및 게임 플레이의 시작에 앞서 제 1 게스트 참가자의 이전 게임 플레이 데이터를 활성적 참가자 및 라이브 제 1 게스트 참가자의 클라이언트 계산 시설에 다운로드하는 단계. 실시예들에서, 이어서 제 1 게스트 참가자는 라이브 동기 게임 플레이에 합류하기도 결정하고 활성적 참가자에 통지할 수 있다. 이어서, 활성적 참가자는 비동기 게임 플레이를 중지하고 라이브 동기 게임 플레이를 개시할 수 있다.
실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 및 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계; 및 게임 플레이의 시작에 앞서 제 2 게스트 참가자의 이전 게임 플레이 데이터를 활성적 참가자 및 라이브 제 1 게스트 참가자의 클라이언트 계산 시설에 다운로드하는 단계. 실시예들에서, 게임 서버는 활성적 참가자 및 라이브 제 1 게스트 참가자에게 게임 플레이를 중계할 수 있으며, 중계는 추가의 라이브 게스트 참가자들이 플레이하기 위해 초청될 때 더 짧아진 게임 레이턴시를 제공할 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초하여 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있고, 게임 기록들은 게임 플레이에 앞서 호스트 플레이어에 의해 다운로드될 수 있다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 및 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계; 및 게임 플레이의 시작에 앞서 제 2 게스트 참가자의 이전 게임 플레이 데이터를 활성적 참가자의 클라이언트 계산 시설에 다운로드하는 단계. 실시예들에서, 게임 서버는 활성적 참가자 및 라이브 제 1 게스트 참가자에게 게임 플레이를 중계할 수 있으며, 중계는 네트워크 레이턴시에 기인한 게임 플레이어들 간에 개선된 동기화를 제공할 수 있다. 활성적 참가자에게만 다운로드하는 것은 게임 플레이에 대한 시작 시간을 증가시킬 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초하여 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있고, 게임 기록들은 게임 플레이에 앞서 동기 서버에 의해 다운로드될 수 있다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계; 및 게임 플레이의 시작에 앞서 제 2 게스트 참가자의 이전 게임 플레이 데이터를 동기 서버 계산 시설에 다운로드하는 단계. 실시예들에서, 동기 서버 계산 시설은 게임 플레이를 활성적 참가자 및 라이브 제 1 게스트 참가자에 중계할 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초하여 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있으며, 게임 기록들은 게임 플레이에 앞서 호스트 플레이어에 의해 다운로드될 수 있고, 게임 플레이는 호스트 플레이어로부터 라이브 플레이어들에게 피어-투-피어로 제공될 수 있다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계; 및 게임 플레이의 시작에 앞서 제 2 게스트 참가자의 이전 게임 플레이 데이터를 활성적 참가자의 클라이언트 계산 시설에 다운로드하는 단계로서, 호스트는 게임 플레이를 피어-투-피어로 라이브 제 1 게스트 참가자에게 중계하는, 단계. 실시예들에서, 중계는 네트워크 레이턴시에 기인한 게임 플레이어들 간에 개선된 동기화를 제공할 수 있다.
확장가능하고(scalable), 효율적이며, 적응성 있는 상호작용 혼성 비동기 컴퓨터 게임 기반구조를 제공할 수 있다.
발명 및 이의 어떤 실시예들의 다음의 상세한 설명은 다음 도면들을 참조하여 이해될 수 있다.
도 1은 본 발명의 일실시예를 위한 고-레벨 블록도이다.
도 2는 게임 플레이 데이터를 저장하기 위한 방법을 도시한 것이다.
도 3은 발명의 실시예에 따라 게임 플레이 데이터를 저장하기 위한 방법을 도시한 것이다.
도 4 및 도 4a는 발명의 실시예에서 비동기 게임 시설과의 사용자의 상호작용을 도시한 것이다.
도 5는 테트리스® 게임의 예를 도시한 것으로, 게임의 사용자 인터페이스의 정적 부분 대 동적 부분을 도시한 것이다.
도 6은 발명의 실시예가 적용될 수도 있을 미니 골프 게임의 예를 도시한 것이다.
도 7은 발명의 실시예가 적용될 수도 있을 볼링 게임의 예를 도시한 것이다.
도 8은 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것이다.
도 9는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것이다.
도 9a는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 오프닝 스크린이 도시되었다.
도 9b는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 게임 필드가 도시되었다.
도 9c는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 초청 스크린이 도시되었다.
도 9d는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 한 타일이 선택된다.
도 9e는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 2개의 타일들이 연결되고, 다른 플레이어들은 이들이 플레이할 때 우측에 도시된다.
도 9f는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 힌트가 제공된다.
도 9g는 발명의 실시예가 적용될 수도 있을 랠리 게임의 예를 도시한 것으로, 다수 그룹들의 플레이어들은 서로 대항하거나 서로 협렵하여 플레이할 수 있다.
도 9h는 랠리 게임을 플레이할 때 맵들이 어떻게 이용될 수 있는가의 예를 도시한 것이다.
도 10은 발명의 실시예에 따라 요망되는 상대에 대항한 비동기 게임 플레이의 흐름도이다.
도 11은 발명의 실시예에 따라 이전 게임 플레이 정보에 기초하여 요망되는 상대에 대항한 비동기 게임 플레이의 흐름도이다.
도 12는 발명의 실시예에 따라 친구들에 대항한 비동기 게임 플레이의 흐름도이다.
도 13은 발명의 실시예에 따라 메모리를 사용한 비동기 게임 플레이의 흐름도이다.
도 14는 발명의 실시예에 따라 메모리를 사용한 비동기 게임 플레이에 대한 고 대역폭 게이머의 흐름도이다.
도 15는 발명의 실시예에 따라 메모리에 게임 플레이 시퀀스를 저장하는 흐름도이다.
도 16은 발명의 실시예에 따라 메모리에 저장된 게임 플레이 시퀀스의 오버플로의 흐름도이다.
도 17은 발명의 실시예에 따라 비동기 게임 플레이를 하기 위한 게임 플레이 시퀀스 데이터 객체의 흐름도이다.
도 18은 발명의 실시예에 따라 실시간 게임 플레이를 하기 위한 판단엔진을 사용한 흐름도이다.
도 19는 발명의 실시예에 따라 게임 플레이 시퀀스의 캐시를 최적화하기 위한 흐름도이다.
도 20은 발명의 실시예에 따라 실시간 게임을 시뮬레이트할 수 있게 하기 위한 이벤트 시퀀스 객체의 흐름도이다.
도 21은 발명의 실시예에 따른 흐름도이다.
도 22는 발명의 실시예에 따라 확률적 시뮬레이트 엔진의 흐름도이다.
도 23은 발명의 실시예에 따라 비동기 게임 플레이를 위한 게임 플레이 시퀀스의 저장의 흐름도이다.
도 24는 발명의 실시예에서 퍼즐 게임 매트릭스도이다.
도 25는 발명의 실시예에서 디지털 디스플레이를 가진 비디오 게임 시스템을 도시한 것이다.
도 26은 발명의 실시예에서 디지털 디스플레이를 가진 비디오 게임 시스템을 도시한 것이다.
도 27은 발명의 실시예에서 디지털 디스플레이를 가진 비디오 게임 시스템을 도시한 것이다.
도 28은 발명의 실시예에서 디지털 디스플레이를 가진 비디오 게임 시스템을 도시한 것이다.
도 29는 본 발명의 일실시예를 위한 고-레벨 블록도이다.
도 30은 혼성 비동기 및 동기 게임 흐름의 흐름도이다.
도 30a는 혼성 비동기 및 동기 게임 흐름의 흐름도이다.
도 31은 혼성 비동기 및 동기 게임 방법의 일실시예에 대한 서버-클라이언트 모델을 도시한 것이다.
도 32는 혼성 비동기 및 동기 게임 방법의 일실시예에 대한 서버-클라이언트 모델을 도시한 것이다.
도 33은 혼성 비동기 및 동기 게임 방법의 일실시예에 대한 서버-클라이언트 모델을 도시한 것이다.
도 34은 혼성 비동기 및 동기 게임 방법의 일실시예에 대한 서버-클라이언트 모델을 도시한 것이다.
도 35는 클라이언트의 친구 바를 도시한 것이다.
도 36은 클라이언트의 초청 대화 박스를 도시한 것이다.
도 37은 클라이언트의 게임 스크린을 도시한 것이다.
도 37a는 게임 테트리스의 버전에 적용되는 도시된 바와 같이 맵들이라고도 하는 4개의 서로 다른 기정의된 패턴들을 도시한 것이다.
도 38은 본 발명의 일실시예에 대한 고-레벨 블록도이다.
도 39는 본 발명의 일실시예에 대한 고-레벨 블록도이다.
발명이 어떤 바람직한 실시예들에 관련하여 기술되었지만, 다른 실시예들이 당업자에 의해 이해될 것이며 본원에 포함된다.
본원에서 참조되는 모든 문헌들은 참조문헌으로서 본원에 포함시킨다.
도 1은 본 발명의 일실시예를 위한 고-레벨 블록도이다.
도 2는 게임 플레이 데이터를 저장하기 위한 방법을 도시한 것이다.
도 3은 발명의 실시예에 따라 게임 플레이 데이터를 저장하기 위한 방법을 도시한 것이다.
도 4 및 도 4a는 발명의 실시예에서 비동기 게임 시설과의 사용자의 상호작용을 도시한 것이다.
도 5는 테트리스® 게임의 예를 도시한 것으로, 게임의 사용자 인터페이스의 정적 부분 대 동적 부분을 도시한 것이다.
도 6은 발명의 실시예가 적용될 수도 있을 미니 골프 게임의 예를 도시한 것이다.
도 7은 발명의 실시예가 적용될 수도 있을 볼링 게임의 예를 도시한 것이다.
도 8은 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것이다.
도 9는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것이다.
도 9a는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 오프닝 스크린이 도시되었다.
도 9b는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 게임 필드가 도시되었다.
도 9c는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 초청 스크린이 도시되었다.
도 9d는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 한 타일이 선택된다.
도 9e는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 2개의 타일들이 연결되고, 다른 플레이어들은 이들이 플레이할 때 우측에 도시된다.
도 9f는 발명의 실시예가 적용될 수도 있을 퍼즐 게임의 예를 도시한 것으로, 힌트가 제공된다.
도 9g는 발명의 실시예가 적용될 수도 있을 랠리 게임의 예를 도시한 것으로, 다수 그룹들의 플레이어들은 서로 대항하거나 서로 협렵하여 플레이할 수 있다.
도 9h는 랠리 게임을 플레이할 때 맵들이 어떻게 이용될 수 있는가의 예를 도시한 것이다.
도 10은 발명의 실시예에 따라 요망되는 상대에 대항한 비동기 게임 플레이의 흐름도이다.
도 11은 발명의 실시예에 따라 이전 게임 플레이 정보에 기초하여 요망되는 상대에 대항한 비동기 게임 플레이의 흐름도이다.
도 12는 발명의 실시예에 따라 친구들에 대항한 비동기 게임 플레이의 흐름도이다.
도 13은 발명의 실시예에 따라 메모리를 사용한 비동기 게임 플레이의 흐름도이다.
도 14는 발명의 실시예에 따라 메모리를 사용한 비동기 게임 플레이에 대한 고 대역폭 게이머의 흐름도이다.
도 15는 발명의 실시예에 따라 메모리에 게임 플레이 시퀀스를 저장하는 흐름도이다.
도 16은 발명의 실시예에 따라 메모리에 저장된 게임 플레이 시퀀스의 오버플로의 흐름도이다.
도 17은 발명의 실시예에 따라 비동기 게임 플레이를 하기 위한 게임 플레이 시퀀스 데이터 객체의 흐름도이다.
도 18은 발명의 실시예에 따라 실시간 게임 플레이를 하기 위한 판단엔진을 사용한 흐름도이다.
도 19는 발명의 실시예에 따라 게임 플레이 시퀀스의 캐시를 최적화하기 위한 흐름도이다.
도 20은 발명의 실시예에 따라 실시간 게임을 시뮬레이트할 수 있게 하기 위한 이벤트 시퀀스 객체의 흐름도이다.
도 21은 발명의 실시예에 따른 흐름도이다.
도 22는 발명의 실시예에 따라 확률적 시뮬레이트 엔진의 흐름도이다.
도 23은 발명의 실시예에 따라 비동기 게임 플레이를 위한 게임 플레이 시퀀스의 저장의 흐름도이다.
도 24는 발명의 실시예에서 퍼즐 게임 매트릭스도이다.
도 25는 발명의 실시예에서 디지털 디스플레이를 가진 비디오 게임 시스템을 도시한 것이다.
도 26은 발명의 실시예에서 디지털 디스플레이를 가진 비디오 게임 시스템을 도시한 것이다.
도 27은 발명의 실시예에서 디지털 디스플레이를 가진 비디오 게임 시스템을 도시한 것이다.
도 28은 발명의 실시예에서 디지털 디스플레이를 가진 비디오 게임 시스템을 도시한 것이다.
도 29는 본 발명의 일실시예를 위한 고-레벨 블록도이다.
도 30은 혼성 비동기 및 동기 게임 흐름의 흐름도이다.
도 30a는 혼성 비동기 및 동기 게임 흐름의 흐름도이다.
도 31은 혼성 비동기 및 동기 게임 방법의 일실시예에 대한 서버-클라이언트 모델을 도시한 것이다.
도 32는 혼성 비동기 및 동기 게임 방법의 일실시예에 대한 서버-클라이언트 모델을 도시한 것이다.
도 33은 혼성 비동기 및 동기 게임 방법의 일실시예에 대한 서버-클라이언트 모델을 도시한 것이다.
도 34은 혼성 비동기 및 동기 게임 방법의 일실시예에 대한 서버-클라이언트 모델을 도시한 것이다.
도 35는 클라이언트의 친구 바를 도시한 것이다.
도 36은 클라이언트의 초청 대화 박스를 도시한 것이다.
도 37은 클라이언트의 게임 스크린을 도시한 것이다.
도 37a는 게임 테트리스의 버전에 적용되는 도시된 바와 같이 맵들이라고도 하는 4개의 서로 다른 기정의된 패턴들을 도시한 것이다.
도 38은 본 발명의 일실시예에 대한 고-레벨 블록도이다.
도 39는 본 발명의 일실시예에 대한 고-레벨 블록도이다.
발명이 어떤 바람직한 실시예들에 관련하여 기술되었지만, 다른 실시예들이 당업자에 의해 이해될 것이며 본원에 포함된다.
본원에서 참조되는 모든 문헌들은 참조문헌으로서 본원에 포함시킨다.
실시예들에서, 본 발명은 컴퓨터 게임 플레이어 상대가 컴퓨터 게임 플레이어와 동시에 온라인에 있을 필요성이 없이 컴퓨터 게임 플레이어가 컴퓨터 게임 플레이어 상대와의 상호작용 게임 플레이 경험을 가질 수 있게 할 수 있다. 실시예들에서, 컴퓨터 게임 플레이어 상대는 기지의 컴퓨터 게임 플레이어 상대, 미지의 게임 플레이어 상대, 본 발명에 의해 선택되거나 부합하는 컴퓨터 게임 플레이어 상대, 컴퓨터 게임 플레이어에 의해 선택된 컴퓨터 게임 플레이어 상대, 등일 수 있다. 즉, 본 발명은 다른 플레이어가 동시에 게임을 활성적으로 플레이하고 있을 필요성이 없이 실시간 유사 플레이로 다른 플레이어와 플레이하는 즐거움 및 흥분을 제공할 수 있다. 예를 들면, 한 조의 3명의 플레이어들이 서로 알고 있는 실시예에서, 플레이어 1은 오전에 플레이어 2와 플레이할 수 있다. 플레이어 3은 오후에 플레이어 1과 플레이하기를 원할 수 있지만, 플레이어 1은 더 이상 로그인 하지 않는다. 실시예들에서, 이제 플레이어 3은 본 발명의 비동기 게임 시설을 통해 오후에 플레이어 1과 함께 게임을 플레이할 수 있고, 비동기 게임 시설은 현재 온라인에 없는 플레이어 3과의 게임에서 플레이어 1의 게임 플레이를 시뮬레이트하기 위해 오전에 플레이된 게임 동안 수집된 데이터를 사용할 수 있다. 이러한 방식으로, 본 발명은 모든 플레이어들이 동시에 로그인 될 필요성이 없이, 마치 동기 플레이에 있는 것처럼, 복수의 플레이어들이 상호작용적으로 서로 플레이할 수 있게, 비동기 게임 플레이의 진보된 방법을 구현하는 것으로서 보여질 수 있다.
실시예들에서, 본 발명은 활성적 플레이어가 알고 있거나 모르는 복수의 플레이어들에 의해 플레이된 복수의 저장된 게임 데이터를 이용할 수 있다. 실시예들에서, 플레이어는 '자신들', 유명인들, 혹은 이전에 게임을 플레이하였고 게임 데이터가 비동기 게임 시설에 의해 수집된 그외 어떤 다른 개인과 대항하여 플레이할 수도 있다. 실시예들에서, 플레이어는 비동기 게임 시설을 통해 다른 플레이어와 플레이하기 위해 현재 온라인에 있을 필요조차 없을 수도 있는데, 이를테면 이전 게임들이 비동기 게임 시설의 버전, 등과 더불어 클라이언트 상에 저장된 클라이언트 상에서 오프라인으로 플레이할 수도 있다.
도 1은 발명의 실시예를 도시한 것으로, 비동기 게임 서버(102), 복수의 클라이언트들(104) 중 하나, 온라인 게임들이 클라이언트 사용자(130)에 의해 발견될 수 있는 제3자 환경(108), 및 상호연결 매체와 같은 인터넷(124)을 도시한 것이다. 서버-측에 집중하면, 본 발명은 이전 게임 사용자들로부터 수집된 게임 데이터로부터 사용자에 대한 실시간 게임 경험을 생성하기 위한 비동기 알고리즘을 구현하는 서버-측 비동기 게임 시설(110A)을 가진 비동기 게임 서버(102)를 포함할 수 있다. 그러면, 이 게임 데이터는 이를테면 비동기 게임 데이터베이스(114A), 게임 보관 데이터베이스(118A), 등에 저장될 수 있다. 실시예들에서, 게임 데이터는 비동기 게임 시설(110A)의 게임 시간 요건에 더 잘 맞추기 위해서 그리고 개선된 확장성(scalability)을 위해서 클라이언트(104)와의 직접적인 상호작용을 위한 더 빠른 액세스 시간을 가진 메모리(112A)에 전송될 수 있다. 즉, 사용자(130)와의 게임 인터페이스는 데이터베이스(118A)로부터만이 아니라 메모리(112A)로부터 행해질 것이다.
이 아키텍처는 컴퓨터 게임들이 종래에 사용자들(130)에게 제공되었던 방식과는 다르다. 비동기 게임 서버(102)는 비동기 멀티플레이어 게임들에서 게임이 친구들에게든 아니면 이방인들에게든지 간에 적어도 효과적으로 "실시간" 게임으로서 서비스될 수 있게 하는 새로운 아키텍처이다. '실시간'이라는 단어는 외견상 실시간 환경을 생성하게 이전 게임 플레이 데이터로부터 게임들을 관리하고 서비스하기 때문에 서버(102)(또는 본원에 기술된 바와 같이 실시예들에선 클라이언트)의 유효성을 강조하기 위해 사용된다.
바람직한 실시예에서, 서버(102)는, 도 1에 도시된 바와 같이, 대체로 데이터베이스에 액세스하기 위한 서비스를 요구하지 않고, 메모리(112A)로부터 이전 게임 플레이 데이터에 액세스한다. 이에 따라, 게임들을 서비스하는 것은 이것이 시스템에게 게임들에 기초하지 않고 '사람들' 별로 대조하는 능력을 부여함을 의미한다. 이 점을 밝히는데 도움을 주는 예로서, 도 2 및 도 3에 제시된 도면들을 고찰한다. 도 2의 대안적 실시예에서, 게임들은 서로 다른 게임 플레이 스킬 레벨들, 예를 들면, 레벨들 1 내지 20의 게임 '버켓들'(132)에 넣어지는데, 각 버켓(132)은 일반적으로 고정된 크기(예를 들면 특정 레벨의 플레이에서 플레이된 1000 게임들)을 갖는다. 일반적으로 버켓들이라 언급되는 것은 플레이어들을 게임들 또는 사람들과 대조하는 것을 쉽게 하기 위해서 다수 세트들의 게임 기록들 또는 사용자 프로파일들을 수집하는 장소이다. 버켓들은 선택적으로, 이전 게임 플레이 데이터에 연관된 메타데이터를 통해 추적될 수 있다. 예를 들면, 일실시예에서, 게임이 플레이된 후에, 사용자에 의해 플레이된 각 게임은 시스템에 의해 평가되고 서로 다른 랭크 버켓들에 넣어진다. 난이도에 따라 기록들을 분리하기 위해 랭크 버켓들이 사용된다. 예를 들면, 배틀 스타일 게임에서, 더 높은 점수, 더 많은 가비지 라인들이 보내지거나 더 많은 라인들이 클리어된 기록은 더 높은 랭크 버켓들에 넣어질 것이며, 반면 더 쉬운 게임들(낮은 점수, 적은 가비지 라인들이 보내지고, 라인 클리어들이 적은)은 낮은 랭크 버켓에 넣어질 것이다. 절대 값(점수의 범위, 보내진 가비지 라인들의 범위, 클리어된 라인들의 범위, 등)에 의해 선택된 버켓들은 "절대" 버켓 시스템으로서 알려질 수 있다. 이 시스템은 명시된 기준의 범위 내 값을 이 기록이 가질 것임을 보증한다. 설계에서 행운 인자들(luck fator) 때문에 사용자의 스킬을 평가하기가 어려운 경우에, 게임의 난이도(또는 게임이 넣어질 버켓)를 사용자의 경험의 레벨별로 판정하는 '상대 버켓 시스템'을 사용하는 것도 가능할 수 있다. 상대 버켓 시스템에서, 어떤 한 범위의 어떤 기준에 대해 게임을 저장하지 않는 필터가 시스템을 보충하기 위해 사용될 수 있다. 절대 대 상대 버켓 시스템들의 예들은 다음과 같다:
절대 버켓 시스템의 예:
시나리오 A: 가비지 라인들 또는 아이템들을 상대들에 보내는 배틀 스타일 게임
40 가비지 라인들이 보내지는 플레이어 A의 게임 ===> 게임은 버켓 10에 넣어진다.
20 가비지 라인들이 보내지는 플레이어 B의 게임 ===> 게임은 버켓 5에 넣어진다.
이 경우에 더 많은 가비지 라인들이 보내진 게임은 더 상위의 버켓에 넣어지는 것에 유의한다.
시나리오 B: 스트린트 스타일 게임
2:00에 40 라인들을 클리어한 플레이어 A의 게임 ===> 게임은 버켓 5에 넣어진다.
1:00에 40 라인들을 클리어한 플레이어 B의 게임 ===> 게임은 버켓 10에 넣어진다.
이 경우에 더 짧은 시간을 가진 게임은 더 상위의 버켓에 넣어지는 것에 유의한다.
상대 버켓 시스템의 예:
시나리오 C: 게임당 점수의 편차가 큰 비쥬얼드(BEJEWELED) 스타일 게임
사용자가 게임을 플레이한 그 때에 플레이어 A가 랭크 15이었다 ===> 게임은 버켓 15에 넣어진다.
사용자가 게임을 플레이한 그 때에 플레이어 B가 랭크 5이었다 ===> 게임은 버켓 5에 넣어진다.
사용자가 게임을 플레이할 때, 게임은 플레이어의 적합한 레벨에 부합할 수 있는 버켓으로부터 인출된다. 예를 들면, 플레이어가 랭크 5이면, 일반적으로 시스템은 버켓 5로부터 게임을 선택할 것이다. 그러나, 시스템이 고의로 더 상위 혹은 더 하위의 버켓으로부터 선택할 수도 있을 어떤 경우들도 있다. 예를 들면, 사용자가 일진이 안 좋고, 계속해서 지고 있다면, 시스템은 동적으로 사용자에게 더 쉬운 게임을 제공하여 이들에게 보통보다 낮은 버켓으로부터 게임을 제공할 수 있다. 어떤 상황들을 더 극적이게 하거나, 도전적이게 하기 위해서, 게임 시스템은 플레이어의 랭크보다 높은 버켓으로부터 게임을 선택할 수도 있을 것이다. 무작위 목적으로, 이를테면 행운의 인자를 추가하기 위해서, 시스템은 플레이어 랭크에 부합하였을 것보다 약간 더 상위 또는 하위의 게임들을 혼합할 수도 있을 것이다. 2-플레이어 게임에서 단일 게임이 인출될 수도 있지만 플레이어들의 수가 증가함에 따라, 인출할 필요가 있는 게임들의 수도 증가할 수도 있음에 유의한다. 예를 들면, 테트리스® 배틀 2P과 같은 게임에서, 상대는 하나로서 하나의 게임이 인출될 수 있지만, 상대들이 5인 테트리스® 배틀 6P와 같은 게임에서는 게임 시스템은 5 기록들을 인출할 것이다.
실시예들에서, 사람의 게임 플레이 기록이 저장되는 버켓은 절대 시스템에서는 게임 시간의 평균값, 보내진 가비지의 량, 클리어된 라인들, 등에 의해서 결정될 수 있고, 상대 버켓 시스템에선 게임이 기록된 되었던 순간에 플레이어가 어떤 랭크를 가졌는가에 의해서, 등등에 의해 결정될 수 있다.
실시예들에서, 모든 버켓들은 게임 시스템이 라이브 사용자들에 의해 게임을 플레이를 하기 위해 시작 또는 오픈될 땐 비어있을 수 있다. 가능한 한 빠르게 버켓들을 채우기 위해서, 시스템은 게임이 플레이될 때마다, 등등에 적어도 한번의 판독 액세스 및 한번의 기입 액세스를 야기하게, 특정 레벨의 사용자에 의해 플레이된 각 게임을 데이터베이스 테이블과 같은 데이터베이스(140)에 즉시 저장한다. 이에 따라, 게임에서 대항하여 플레이되는 플레이어들의 수가 2보다 많다면 판독 액세스들의 횟수는 증가할 것이다. 이것이 버켓들의 크기가 전형적으로 고정되는 이유이며, 시스템이 일반적으로 각 사용자에 의해 플레이되는 어떤 수의 게임들을 저장하려고 시도하지 않을 수도 있을 이유이다. 대신에, 특정 레벨의 사용자가 조기에 플레이한다면, 그리고 종종 시스템이 버켓들을 채울려고 시도하고 있을 때, 이들의 게임 플레이들은 이들의 레벨에 대해 버켓 내에 불균형적으로 나타나게 될 것이다. 실제로, 추후에 사용자들은 이들의 레벨에 대한 버켓이 이미 채워져 있다면 이들의 게임 플레이들 중 저장된 어느 것도 전혀 갖고 있지 않을 수 있다. 이러한 구성에서, 사용자가 대항하여 플레이하기 위해 선택된 사람에 의해 플레이된 게임의 재연(replay)을 시스템이 제공하는 것은 어렵다. 그러므로, 특정 사람의 게임들을 플레이어에게 제공하기는 매우 어렵다.
클라이언트-기반이든, 서버-기반이든, 혼성-기반이든 아니면 이외 다른 구성이든 간에, 본 발명의 원리에 따른 게임 시스템은 사용자가 달리 이용하지 못할 수 있는 상대와 플레이할 수 있을 뿐만 아니라 사용자가 상대와 유의한 상호작용을 하면서 게임을 플레이하여 실시간 게이밍 스타일 경험을 생성하는 향상된 사용자 경험을 제공한다.
발명의 실시예가 도 3에 도시되었다. 발명의 실시예에서 버켓들은 개인용 버켓들(134)일 수 있는데, 각 버켓은 이를테면 나이, 성별, 지역(예를 들면 국가, 주, 도시), 랭크, 플레이 통계(예를 들면 얼마나 빠르며, 얼마나 많이 승리하였나), 등을 포함해서, 각 버켓에 연관된 게임 플레이어의 프로파일 정보를 갖는다. 예를 들면, 버켓 "A"는 플레이어 "A"용이 될 것이며, 버켓 "B"은 플레이어 "B"용이 될 것이며, 등등이 될 것이다. 각 사용자의 버켓에 대해, 사전에-기록된 게임들, 게임 특징들, 게임들의 부분들, 등은 필요할 때 데이터베이스(118A)로부터 메모리(112A)에 로드될 수 있고(판독 캐시라고도 함), 하나 이상의 사전에 기록된 게임 데이터에 대항하여 현재 활성적 온라인 사용자에 의해 플레이되는 게임들은 이를테면 주기적으로 데이터베이스(118A)에 백업되고, 큐잉 시스템에 의해 기록(logged) 되는, 등등이 행해진다(기입 캐시라고도 함). 개인용 버켓들(134)은 특정 사용자에 대해 최근의 게임들을 x개까지, 그리고 최상의 게임들을 y개까지 유지할 수 있다. 수 x 및 y는 가변될 수 있고, 따라서 필요시 조절될 수 있다. 플레이되는 게임들은 사용자 데이터에 기초하여 저장 및 관리될 수 있기 때문에, 이 정보는 이 사람에 대해 최상의 매치를 고르거나, 이 사람이 플레이하기를 바라고 있는 최적의 종류의 상대들을 걸러내기 위해 이용될 수 있다. 판독 및 기입은 캐시 시스템과 유사한 방식으로 행해질 수 있는데, 이것은 매 게임마다 행해지는 것이 아니라 필요에 따라 효율적으로 행해진다. 이것은 플레이되는 게임들이 전형적으로 중대한 데이터가 아니며 플레이된 몇몇 게임들을 놓치는 것은 대부분들의 경우들에 있어 사용자 경험에 문제가 되지 않기 때문이다.
도 4는 이 구성의 잇점들 중 일부를 강조하는데 도움을 줄 수 있는 본 발명의 몇몇 측면들에 중점을 둔다. 여기에서, 메모리(112)와 상호작용하는 복수의 사용자들(130A ~ 130C)이 도시되었다. 메모리(112)는 RAM, SRAM, DRAM, 플래시 메모리, 하드 디스크(이를테면 플래시 메모리를 사용하여 제작된), 트랜잭션 메모리와 같은 고속 액세스 메모리, 혹은 이 기술에 공지된 바람직하게 그외 어떤 다른 비교적 고속의 액세스 컴퓨터 메모리일 수 있다. 메모리(112)는 더 긴(deeper) 메모리 저장들을 위해 요구될 때만 데이터베이스(118)에 액세스할 수 있다.메모리(112)는 비동기식 게임 서버(102)가 임시 저장 수단으로서 갖춘 메모리의 형태일 수 있다. 메모리(112)를 사용하는 목적은 데이터베이스(118A)에 액세스하기 위한 것이 아니라, 서비스하는 클라이언트(104)에 직접적으로 링크되는 메모리 저장소에 게임 데이터를 저장하기 위한 것이다. 이것은 데이터베이스에 연결하는 단계, 게임 데이터를 인출하는 단계, 및 사용을 위해 정보를 내보내는 단계를 제거한다(또는 적어도 감소시킨다). 실시예들에서, 서버가 로드 업(load up)할 때, 이것은 어레이 또는 링크된 목록을 통해 메모리 내에 버켓들을 재구성한다. 버켓(134)은, 선택적으로, 게임에의 포인터만을 유지할 수도 있고, 또는 플레이된 전체 게임을 저장할 수도 있으며, 게임은 메모리에, 혹은 시스템 상에 하드 드라이브 상에 파일에 의해, 혹은 서버 시스템 밖에(별도의 저장 서버를 사용할 때), 혹은 데이터베이스, 등에 저장될 수도 있을 것이다. 실시예들에서, 버켓들(134)은 정의된 기준으로 구성될 수 있다. 메모리는 상당히 자유롭게 사용될 수 있는 형태이기 때문에, 버켓들(134)의 구성은 이것이 데이터베이스 상에 있었다면 필요하였을 테이블 또는 구조 변경을 요구하지 않으므로, 상당히 쉽게 변경될 수 있다. 실시예들에서, 데이터베이스는, 선택적으로, 원(raw) 데이터의 소스(source)로서만 작용할 수 있고, 게임 서버는 부하에 따라 재구성할 수 있고, 따라서 시스템의 적응성을 증가시킬 수 있다. 온라인 게임은 이의 첫번째 서비스 시작 이후에 일반적으로 매일 서비스되므로, 장기간의 시간 소비적인 유지관리의 필요성 없이, 현재 사용자들이 원하는 것에 더 정확하게 맞추게 이들 구성들을 변경할 수 있는 것은 큰 잇점이다. 장기간 유지관리 시간들은 게임 시스템이 작동되고 있지 않는 동안에 수익의 손실로 나타날 수 있다. 그러므로, 버켓의 빠른 재구성이 바람직하다. 일단 게임이 사용자에게 서비스되면, 게임 ID가 클라이언트에 전달되는 것과 같은 몇가지 일들이 일어날 수 있다. 그러면, 클라이언트는 다시 서버로부터 실제 게임 기록(재연) 데이터를 요청할 수 있다. 게임 대신 사람이 부합되는 경우에, 이 사람으로부터 게임들의 목록이 클라이언트에 보내질 수 있고, 이어 클라이언트는 게임을 요청할 수 있다.
계속하여 도 4를 설명하면, 도시된 데이터 흐름은, 온전함을 보존하기 위해 게임 서버가 데이터베이스(140)로부터 직접 게임을 제공하는 도 2에 제공된 바와 같은 대안적 실시예들에서 발견되는 데이터와는 근본적으로 다르다. 본 발명에서, 비동기 게임 서버(102)는 메모리(112)로부터 게임을 제공한다. 메모리(112)가 충만하여 있다면, 비동기 게임 서버(102)는 일부 데이터를 데이터베이스(118)에 떠넘기고 이를 백그라운드에서 멀티스레드 프로세스에서 큐잉할 수 있다. 메모리(112)에 없는 데이터가 요청될 때, 비동기 게임 시설(110)은 이 데이터를 데이터베이스(118)로부터 자동으로 요청할 수 있다. 실시예들에서, 서버(102)가 시작되었을 때, 메모리(112)는 비어있을 수도 있을 것으므로, 비동기 게임 서버(102)는 조절된 흐름에서와 같이, 데이터베이스(118)로부터 데이터를 비동기 게임 서버 메모리(112)에 로드할 수 있고, 따라서 비동기 게임 서버(102)는 과잉으로 로드되지 않게 된다. 이것은 서비스에 안정성을 제공하면서도, 백그라운드층 상에서 데이터베이스(118)를 이용함으로써 어떤 형태의 보안을 갖게 할 수 있다. 메모리(112)에 의해 이용되지 않는 데이터는 데이터 관리를 효율적이게 하기 위해 주기적으로 덜어낼 수 있다(예를 들면 삭제). 메모리(112)의 형태는 고정될 필요는 없다. 대신, 형태는 코드를 변경하고 필요시 다시 데이터를 다시 로드함으로써 쉽게 변경될 수 있다. 이것은 로드하는 동안 데이터 흐름이 조절될 수 있으므로, 더 효율적일 수 있다.
여기에서, 메모리(112)는 데이터베이스(140)에의 직접적인 액세스를 사용하는 대안적 실시예들보다 사용자(130)에게 더 빠른 액세스 시간들을 갖게 한다. 예를 들면, 실시예에 대한 한 생(raw) 수행 테스트는 다음의 결과들을 가져왔다:
BattleGameRecord Request/Send
Read/Write on DB by Java23ms/44ms
Read/Write on DB by C++21ms/14ms
Read/Write on Memory by C++8ms/14ms
생(raw) 수행에서 적어도 3 배 더 낫다.
그러나, 본 발명의 실시예들에서, 데이터베이스(118)는 얼마간의 기간 내에 사용되지 않았던 데이터, 현재 시간에 사용되고 있지 않은 데이터, 나중 사용을 위해 보관된 데이터, 등과 같은 데이터에 대해, 메모리(112)로부터 오버플로 공간으로서만 사용될 수 있다. 본 발명에서 메모리(112)의 직접적인 사용은 많은 잇점들이 있으며, 본 발명이 사용자(실생활에서, 이들과 활성적으로 플레이하지 않은 다른 플레이어와 대항하여)에게 실시간 유사 게임 플레이 환경을 생성할 수 있게 할 뿐만 아니라, 본 발명이 상당수의 사용자들로 더 쉽게 확장할 수 있게 한다. 즉, 메모리(112)를 이용하는 것은 데이터베이스 액세스가 연결 시간면에서 비교적 비용이 들기 때문에 확장성을 도울 수 있다. 또한, 많은 서비스들이 동일 자원들을 얻기 위해 경쟁하기 때문에, 데이터베이스의 사용은 액세스 시간에 관련해서 메모리보다는 덜 신뢰된다. 메모리(112)를 사용하는 것은 (1) 서버 CPU들이 여전히 비교적 비용이 드는 반면 메모리가 추세로서 매우 저렴해지고 있으며; (2) 재연 데이터는 비교적 확대될 수 있는데, 이것은 시스템이 얼마간의 재연 데이터를 유실할지라도, 일반적으로 사용자의 경험에 영향을 미치지 않을 것임을 의미하며; (3) 서버(102)가 조절된 레이트로 데이터베이스(118)를 업데이트하는 백그라운드 스레드를 가질 수 있고, 따라서 데이터베이스(118)에 부하를 감소시키면서도 게임 데이터가 백업되며; (4) 메모리(112)는 확장하기가 비교적 쉽다는 잇점을 제공할 수 있고(데이터베이스에 연관된 처리능력을 증가시키는 것에 비해) 액세스 속도가 비교적 빠르기 때문에 서버(102)에 고 부하는 데이터베이스(118)에 고 부하에 따라 지수함수적으로 수행을 증가시키지 않을 수 있는, 등등이기 때문에 다수의 잇점들을 가질 수 있다. 그러므로, 메모리(112)로부터 게임들을 서비스하는 것은 더 높은 액세스가능성(데이터베이스(118)에 액세스 시간을 감소시킴으로써), 확대가능성(확대하기가 더 쉽고 더 비용효율적이다), 효율(수행이 데이터베이스 액세스에 관하여 지수함수적인 레이트로 악화하지 않기 때문에 더 나은 확장성 및 안정성을 제공한다), 적응성, 등을 제공할 수 있다. 또한, 필터링의 범위, 등과 같은 어떤 설정들을 변경하기 위해 테이블들 및 이 내에 데이터를 변경시킬 필요성을 요구할 수 있는 반면, 데이터의 관리 및 조작은 코드를 변경함으로써 데이터의 구조화가 조작될 수 있으므로 데이터베이스(140)의 직접적인 사용도 비교적 더 쉬워질 수 있다.
도 4a를 참조하면, 사용자(130)는 활성적 참가자(130AP) 또는 과거 참가자(130PP)일 수 있는데, 활성적 참가자(130AP)는 비동기 게임 시설(110)를 통해 게임을 활성적으로 플레이하는 사용자(130)이고, 과거 참가자(130PP)는 얼마간 지난 시간, 이를테면 하루, 일주, 일년, 등에서 조기에 비동기 게임 시설(110)을 통해 이전 게임(152)을 플레이했던 사용자(130)이다. 활성적 참가자(130AP)는 비동기 게임 시설(110)에 게임 플레이(150)에 대한 요청을 할 수 있고, 비동기 게임 시설(110)은 이를테면 상대 정보, 상대 정보의 카테고리들, 게임 플레이 데이터, 게임 플레이 데이터를 어떤 기준에 관계시킨 버켓들, 등을 포함하여, 본원에 기술된 바와 같이 비동기 게임 시설(110)에 연관하여 저장장치(112, 118)로부터 제공되는 외견상 라이브 참가자(158)로서 활성적 참가자(130AP)에게 대항 플레이어 게임을 제공할 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이(152)에 기초하여 시뮬레이트 라이브 게임 플레이를 제공할 수 있다. 예를 들면, 개인은 '컴퓨터'에 대항하는 것이 아니라 다른 플레이어와 대항하여 플레이할 수도 있지만, 개인은 플레이어에게 이들이 라이브로 다른 플레이어에 대항하여 플레이하고 있는 것처럼 보이게, 조기의 시간, 이를테면 하루, 일주일, 등에서 조기에 시간으로부터 이 다른 플레이어로부터의 게임에 대항하여 플레이할 것이다. 실시예들에서, 이 다른 사람은 플레이어가 알고 있는 어떤 사람이거나, 이들이 과거에 대항하여 플레이하였던 어떤 사람이거나, 친구, 등일 수도 있다. 이러한 유형의 시뮬레이트 라이브 플레이의 잇점은 증가된 플레이어들, 이용가능성, 플레이어를 선택할 때 또는 플레이어에 대조되고 있을 때 감소된 대기 시간, 개인이 다른 개인에 대해 신속하게 대조되고 있다는 느낌, 등을 포함할 수 있다. 실시예들에서, 본 발명은 하나 이상의 컴퓨터들에서 실행될 때 다음의 단계들을 수행하는 컴퓨터 판독가능 매체에 실현되는 컴퓨터 프로그램 제품을 제공할 수 있다: (1) 게임 플레이를 위한 요청을 수신하는 단계, (2) 요청에 응하여, 이전 게임 플레이 데이터가 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 다른 사용자의 이전 게임 플레이에 응하여 저장되었던 것인, 단계, 및 (3) 요청에 더욱 응하여, 요청하였던 활성적 참가자가 게임 플레이의 활성적 기간 동안 적어도 1회 이상, 이전 게임 플레이 데이터에 기초하여 외견상 라이브 참가자에 대항하여 플레이하고 이와 상호작용할 수 있는 비동기 게임 플레이 환경을 제공하는 단계. 또 다른 실시예에서, 본 발명은 (1) 요망되는 상대에 관계된 요망되는 상대 정보를 포함하는, 게임 플레이를 위한 요청(150)을 수신하고, (2) 요청에 응하여, 요망되는 상대 정보에 의해 확인된 요건들을 충족하는 게임 플레이어의 이전 게임 플레이(152)에 응하여 저장되었던 게임 플레이 데이터가 인출되게 하며, (3) 요청에 더욱 응하여, 요청하였던 활성적 참가자(130AP)가 게임 플레이의 활성적 기간 동안 적어도 1회 이상, 게임 플레이 데이터에 기초하여 외견상 라이브 참가자(158)에 대항하여 플레이하고 이와 상호작용할 수 있는 비동기 게임 플레이 환경을 제공할 수 있다. 또 다른 실시예에서, 본 발명은 (1) 요망되는 상대에 관계된 요망되는 상대 정보를 포함하는, 게임 플레이를 위한 요청(150)을 수신하고, (2) 요청에 응하여 게임 플레이 데이터가 인출되게 하며, 게임 상호작용 데이터는 요망되는 상대 정보에 의해 확인된 요건들을 충족하는 게임 플레이어의 이전 게임 플레이(152)에 응하여 저장되어 있으며, (3) 요청에 더욱 응하여, 요청하였던 활성적 참가자(130AP)가 게임 플레이 데이터에 기초하여 외견상 라이브 참가자(158)에 대항하여 플레이하고 이와 상호작용할 수 있고 비동기 게임 플레이 환경에서 제공된 게임의 끝 전에 상호작용이 외견상 라이브 참가자(158)의 진행에 변화를 1회 이상 야기하는 비동기 게임 플레이 환경을 제공할 수 있다. 또 다른 실시예에서, 본 발명은 (1) 요망되는 상대에 관계된 요망되는 상대 정보를 포함하는, 게임 플레이를 위한 요청(150)을 수신하고, (2) 요청에 응하여, 게임 플레이 데이터가 인출되게 하며, 게임 상호작용 데이터는 요망되는 상대 정보에 의해 확인된 요건들을 충족하는 게임 플레이어의 이전 게임 플레이(152)에 응하여 저장되어 있으며, (3) 요청에 더욱 응하여, 요청하였던 활성적 참가자(130AP)가 게임 플레이 데이터에 기초하여 외견상 라이브 참가자(158)에 대항하여 플레이하고 이와 상호작용할 수 있고 비동기 게임 플레이 환경에서 제공된 게임이 시작 기간, 활성적 게임중 기간, 및 끝을 포함하며 적어도 활성적 게임중 기간 동안 상호작용이 일어나는 비동기 게임 플레이 환경을 제공할 수 있다. 또 다른 실시예에서, 본 발명은 (1) 요망되는 상대에 관계된 요망되는 상대 정보를 포함하는, 게임 플레이를 위한 요청(150)을 수신하고, (2) 요청에 응하여 게임 플레이 데이터가 인출되게 하며, 게임 플레이 데이터는 요망되는 상대 정보에 의해 확인된 요건들을 충족하는 게임 플레이어의 이전 게임 플레이(152)에 응하여 저장되어 있으며, (3) 요청에 더욱 응하여, 요청하였던 활성적 참가자(130AP)가 게임 플레이 데이터에 기초하여 외견상 라이브 참가자(158)에 대항하여 플레이하고 이와 상호작용할 수 있고 활성적 참가자(130AP)가 다른 라이브 참가자와 대항하여 플레이하고 있다는 인상을 생성하기 위해서 게임 플레이 동안 상호작용이 제공되는 비동기 게임 플레이 환경을 제공한다.
실시예들에서, 본 발명은 이를테면 사용자의 시뮬레이트 실시간 게임 경험을 향상시키기 위해서, 비동기 게임 플레이 아키텍처를 제공할 수 있다. 예를 들면, 이전 게임 플레이를 저장하는 메모리는 느린 데이터베이스 상호작용을 요구하지 않게 하고 데이터베이스를 덜 빈번하게 액세스되거나 더 오랜 기간 저장할 이전에 플레이된 게임들을 저장하는데 사용하고, 빠르게 액세스할 수 있게 메모리에 직접 액세스할 수 있는, 등등을 하게 비구조화되고 탐색가능한 포맷으로 구성될 수 있다. 실시예들에서, 본 발명은 하나 이상의 컴퓨터들에서 실행될 때 다음의 단계들을 수행하는 컴퓨터 판독가능 매체에 실현되는 컴퓨터 프로그램 제품을 제공할 수 있다: (1) 요망되는 상대에 관계된 요망되는 상대 정보를 포함하는, 게임 플레이를 위한 요청(150)을 수신하는 단계, (2) 요청에 응하여 게임 플레이 데이터가 인출되게 하는 단계로서, 게임 플레이 데이터는 요망되는 상대 정보에 의해 확인된 요건들을 충족하는 게임 플레이어의 이전 게임 플레이(152)에 응하여 저장되어 있는, 단계, (3) 액세스 속도를 용이하게 하기 위해서 데이터베이스 상호작용을 요구하지 않게 비구조화되고 탐색가능한 포맷으로 이전 게임 플레이(152) 데이터를 저장하게 메모리를 구성하는 단계, 및 (4) 요청에 더욱 응하여, 요청하였던 활성적 참가자(130AP)가 게임 상호작용 데이터에 기초하여 외견상 라이브 참가자(158)에 대항하여 플레이할 수 있는 비동기 게임 플레이 환경을 제공하는 단계. 또 다른 실시예에서, 본 발명은 (1) 요망되는 상대에 관계된 요망되는 상대 정보를 포함하는, 게임 플레이를 위한 요청(150)을 수신하고, (2) 요청에 응하여 게임 플레이 데이터가 인출되게 하며, 게임 플레이 데이터는 요망되는 상대 정보에 의해 확인된 요건들을 충족하는 게임 플레이어의 이전 게임 플레이(152)에 응하여 저장되어 있으며, (3) 게임 플레이 데이터가 메모리에서 발견되지 않은 경우에, 게임 플레이 데이터에 대해 데이터베이스를 탐색하고, 데이터베이스로부터 게임 상호작용 데이터를 추출하고 이를 메모리에 로딩하며, (4) 요청에 더욱 응하여, 요청하였던 활성적 참가자(130AP)가 게임 상호작용 데이터에 기초하여 외견상 라이브 참가자(158)에 대항하여 플레이할 수 있는 비동기 게임 플레이 환경을 제공할 수 있다. 또 다른 실시예에서, 본 발명은 (1) 요망되는 상대에 관계된 요망되는 상대 정보를 포함하는, 게임 플레이를 위한 요청(150)을 수신하고, (2) 요청에 응하여 게임 플레이 데이터가 인출되게 하며, 게임 플레이 데이터는 요망되는 상대 정보에 의해 확인된 요건들을 충족하는 게임 플레이어의 이전 게임 플레이(152)에 응하여 저장되어 있으며, (3) 메모리는 고 대역폭 및 빠른 액세스를 용이하게 하기 위해 비동기 게임 처리 시설에 직접적으로 액세스될 수 있으며, (4) 요청에 더욱 응하여, 요청하였던 활성적 참가자(130AP)가 게임 상호작용 데이터에 기초하여 외견상 라이브 참가자(158)에 대항하여 플레이할 수 있는 비동기 게임 플레이 환경을 제공할 수 있다.
실시예들에서, 본 발명은 이를테면 사용자의 시뮬레이트 실시간 게임 경험을 향상시키기 위해서, 비동기 게임 플레이 아키텍처를 제공할 수 있다. 예를 들면, 게임 플레이 데이터는 로컬 플레이, 기준에 부합하는 게임 플레이 데이터, 기준에 부합하는 복수의 플레이어들로부터의 게임 플레이 데이터, 등에 대해 클라이언트 장치에 전달될 수 있다. 실시예들에서, 본 발명 하나 이상의 컴퓨터들에서 실행될 때 다음의 단계들을 수행하는 컴퓨터 판독가능 매체에 실현되는 컴퓨터 프로그램 제품을 제공할 수 있다: (1) 기준에 부합하는 사람들에 의해 플레이된 적어도 한 이전 게임을 나타내는 게임 플레이(150) 데이터에 대한 요청을 클라이언트로부터 서버에 수신하는 단계; (2) 요청에 응하여, 비동기 게임 플레이 데이터를 탐색하여 인출하고 게임 플레이 데이터를 클라이언트에 전달하는 단계, 및 (3) 비동기 게임에서 상대와 플레이하기 위한 요청에 응하여 클라이언트가 게임 플레이 데이터를 인출할 수 있게 게임 플레이 데이터가 클라이언트 상에 국부적으로 저장되게 하는 단계를 포함한다. 또 다른 실시예에서, 본 발명은 (1) 기준에 부합하는 사람에 의해 플레이된 적어도 한 이전 게임을 나타내는 게임 플레이(150) 데이터에 대한 요청을 클라이언트로부터 서버에 수신하며, (2) 요청에 응하여, 비동기 게임 플레이 데이터를 탐색하여 인출하고 게임 플레이 데이터를 클라이언트에 전달하며, (3) 비동기 게임에서 상대와 플레이하기 위한 요청에 응하여 클라이언트가 복수의 이전 게임들 중 적어도 하나를 나타내는 데이터를 인출할 수 있게 게임 플레이 데이터가 클라이언트 상에 국부적으로 저장되게 할 수 있다. 또 다른 실시예에서, 본 발명은 (1) 기준에 부합하는 복수의 사람들 각자에 의해 플레이된 적어도 한 이전 게임을 나타내는 게임 플레이(150) 데이터에 대한 요청을 클라이언트로부터 서버에 수신하며, (2) 요청에 응하여, 비동기 게임 플레이 데이터를 탐색하여 인출하고 게임 플레이 데이터를 클라이언트에 전달하며, (3) 비동기 게임에서 상대와 플레이하기 위한 요청에 응하여 클라이언트가 복수의 이전의 사람들 중 적어도 한 사람에 의해 플레이된 복수의 이전 게임들 중 적어도 하나를 나타내는 데이터를 인출할 수 있게 게임 플레이 데이터가 클라이언트 상에 국부적으로 저장되게 할 수 있다.
실시예들에서, 본 발명은 '버켓팅' 구조라고도 할 수 있는 비동기 게임 저장 구조를 제공할 수 있다. 예를 들면, 카테고리 정보는 태그를 가진 게임 플레이 데이터를 메타데이터와 함께 저장함으로써, 또는 게임 플레이 데이터를 복수의 카테고리들에 저장함으로써, 등등에 의해서, 이를테면 게임 플레이 데이터의 감정을 통해, 메모리 내 게임 플레이 데이터에 연관지울 수 있다. 기준은 성별, 나이, 위치, 난이도 레벨, 점수, 게임 특징, 친구 목록, 등일 수 있다. 실시예들에서, 본 발명 하나 이상의 컴퓨터들에서 실행될 때 다음의 단계들을 수행하는 컴퓨터 판독가능 매체에 실현되는 컴퓨터 프로그램 제품을 제공할 수 있다: (1) 비동기 게임 플레이 데이터를 수신한 것에 응하여, 비동기 게임 플레이 데이터에 연관된 정보의 감정을 통해 비동기 게임 플레이 데이터가 속하는 카테고리를 확인하는 단계; (2) 카테고리의 속성들에 부합하는 상대와 함께 비동기 게임 플레이에 대한 요청에 기초하여 비동기 게임 플레이 데이터가 인출될 수 있게 비동기 게임 플레이 데이터를 카테고리와의 연관과 함께 메모리에 저장하는 단계. 또 다른 실시예에서, 본 발명은 (1) 비동기 게임 플레이 데이터를 수신한 것에 응하여, 비동기 게임 플레이 데이터의 감정을 통해 비동기 게임 플레이 데이터가 속하는 카테고리를 확인하고, (2) 카테고리의 속성들에 부합하는 상대와 함께 비동기 게임 플레이에 대한 요청에 기초하여 비동기 게임 플레이 데이터가 인출될 수 있게 비동기 게임 플레이 데이터를 카테고리와의 연관과 함께 메모리에 저장할 수 있다. 또 다른 실시예에서, 본 발명은 (1) 비동기 게임 플레이 데이터를 수신한 것에 응하여, 비동기 게임 플레이 데이터에 연관된 정보의 감정을 통해 비동기 게임 플레이 데이터가 속하는 카테고리를 확인하고, 카테고리의 속성들에 부합하는 상대와 함께 비동기 게임 플레이에 대한 요청에 기초하여 비동기 게임 플레이 데이터가 인출될 수 있게 비동기 게임 플레이 데이터를 카테고리 태그와 연관과 함께 메모리에 저장할 수 있다. 또 다른 실시예에서, 본 발명은 (1) 비동기 게임 플레이 데이터를 수신한 것에 응하여, 비동기 게임 플레이 데이터에 연관된 메타데이터의 감정을 통해 비동기 게임 플레이 데이터가 속하는 카테고리를 확인하고, (2) 복수의 카테고리들 중 어느 하나의 속성들에 부합하는 상대와 함께 비동기 게임 플레이에 대한 요청에 기초하여 비동기 게임 플레이 데이터가 인출될 수 있게 비동기 게임 플레이 데이터를 복수의 카테고리들과의 연관과 함께 메모리에 저장할 수 있다.
실시예들에서, 본 발명은 사용자가 지루해지거나(게임이 너무 쉽다면) 또는 좌절되는 것(게임이 너무 어렵다면)을 피하기 위해서, 플레이어의 능력에 기초하여, 이를테면 실시간으로, 파라미터들, 시나리오들 및/또는 게임에서의 행동을 자동으로 변경하는 프로세스인, 동적 게임 난이도 균형 또는 동적 게임 균형(DGB)이라고도 하는, 동적 난이도 조절(DDA)을 제공할 수 있다. 실시예들에서, DDA는 단일 사용자(단독으로 플레이하는)에, 혹은 그룹 게임으로 플레이하는 하나 이상의 사용자들에게 적용될 수 있다. 예를 들면, 그룹 게임 설정에서 사용되는 DDA는 DDA가 단일 플레이어에만 적용될지라도, 게임이 더 균등하게 매치될 수 있게, 모든 참가자들에 대해 게임의 경험을 개선할 수 있다. 동적 난이도 균형의 목적은 사용자(들)이 시작부터 끝까지 계속 흥미있게 하며 도전의 적절한 레벨을 제공하는 것일 수 있다. 라이브 사용자들이 실시간으로 서로 플레이하고 있을 때, 하나 이상의 플레이어들에 의해 인지됨이 없이 DDA를 사용하는 것은 어렵다. DDA는 비동기 게임 플레이 시스템에서 더 최적인 방식으로 사용될 수 있다. 예를 들면, 라이브 플레이어가 외견상 라이브 플레이어(실제로 기록된 게임 플레이)를 플레이하고 있다면, DDA는 기록된 게임 플레이에 기여하였던 원래의 플레이어는 수정된 것들을 인지하지 않을 것이기 때문에 덜 자명한 방식으로 라이브 플레이어의 게임 및/또는 비동기 기록에 적용될 수 있다. 이를테면 플레이어의 게임 경험을 개선하기 위해서, 변경될 수도 있는 파라미터들은 플레이어의 수행, 등으로부터 도출되는 것들로서, 난이도 레벨에 대한 조절, 과거 플레이 경험, 최근 승리 대 패배, 만족 점수, 적들의 속도, 적들의 건강, 적들의 빈도, 파워-업의 빈도, 플레이어의 파워, 적들의 파워, 게임-플레이 경험의 기간, 성공적 숏트들 또는 히트들의 레이트, 승리 및 패한 피스들의 수, 생명 포인트들, 진화/공진화(이를테면 플레이어와 상대 간에 능력 레벨들을 대조할 때), 어떤 타스크를 완료하기 위한 시간, 무기들의 수, 생명 포인트들의 회복, 상대들의 수, 상대의 능력들, 등을 포함한다. 실시예들에서, 게임 파라미터는 사용자의 이전 게임 플레이에 기초하여 조절될 수 있으며, 이 파라미터는 사용자의 게임 내 파라미터에 영향을 미칠뿐만 아니라, 대항하여 플레이하기 위해 어느 플레이어들이 선택되는지, 비동기 플레이어들(즉, 가상 플레이어들)이 선택되는지, 혼성 플레이어 참가자들(예를 들면 라이브 참가자들, 및 가상 참가자들)이 선택되는지 여부에 영향을 미칠 수 있다. 또한, DDA는 주어진 게임 내 모든 참가자들, 혹은 주어진 게임 내 참가자들 중 일부에 걸쳐 조절되는 파라미터에 관계될 수 있다. 실시예들에서, 본 발명 하나 이상의 컴퓨터들에서 실행될 때 다음의 단계들을 수행하는 컴퓨터 판독가능 매체에 실현되는 컴퓨터 프로그램 제품을 제공할 수 있다: (1) 요망되는 상대에 관계된 요망되는 상대 정보를 포함하는, 게임 플레이를 위한 요청(150)을 수신하는 단계, (2) 요청에 응하여 게이밍에서 요청자의 최근 성공을 감정하기 위해 요청의 요청자에 연관된 이전 게임 플레이(152)를 평가하여 만족 점수를 형성하는 단계, 요청에 더욱 응하여 게임 플레이 데이터가 선택되어 인출되게 하는 단계로서, 게임 플레이 데이터의 선택은 요망되는 상대 정보에 의해 확인된 요건들을 충족하는 게임 플레이어의 이전 게임 플레이(152)에 대한 응답에 기초하며 게임 플레이 데이터의 난이도 레벨은 만족 점수, 등에 기초하여 선택되는, 단계, 및 (3) 요청에 더욱 응하여 비동기 게임 플레이 환경을 제공하는 단계로서, 요청하였던 활성적 참가자(130AP)가 게임 플레이 데이터에 기초하여, 게임 플레이의 활성적 기간 동안 적어도 1회 이상, 외견상 라이브 참가자(158)에 대항하여 플레이하고 이와 상호작용할 수 있는 것인, 단계.
실시예들에서, 버켓팅 및 DDA은 이를테면 유사한 게임 플레이 스타일 및 플레이의 레벨을 가진 누군가와 대항하여 사용자가 플레이할 수 있게 하기 위해, 게임 플레이의 균형을 제공하기 위해 함께 사용될 수 있다. 실제로, 버켓팅은 이 균형을 확립하기 위해 제 1 레벨인 것으로 간주될 수 있다. 예를 들면, 대항하여 플레이할 친구로부터 사용자 게임 플레이를 제공하는 것을 더 쉬워지게 하기 위해 개인용 버켓들(즉, 특정 사용자를 위해 게임 플레이 기록들을 저장한 것)이 사용될 수 있다. 버켓들은 특정 레벨의 게임 플레이를 위해 사용될 수도 있다. 버켓들의 크기는 동적으로 크기가 변경될 수 있는데, 이를테면 인공지능(AI) 게임 기록을 사용하기 위해 버켓 크기 0의 크기부터 시작하고 이어 버켓의 크기를 동적으로 변경하여 크기 1(예를 들면 적어도 한 기록된 실제 게임 사용자 플레이를 갖는)부터 시작할 수 있다. 예에서, 본원에 기술된 바와 같이, 특정 맵들을 위한 버켓들이 있을 수 있다. 동적 크기조절 없이는, 새로운 버켓들은 비어있을 것이기 때문에, 새로운 게임 맵을 주기적으로 도입하는 것은 극히 어려울 수 있다. 실시예들에서는 버켓 인덱싱이 있을 수도 있다.
실시예들에서, 비동기 멀티플레이어 게임들은 DDA 기술들을 사용하기 위해 더 큰 범위가 가능하게 한다. 예를 들면, 버켓팅이 균형을 확립하기 위한 제 1 레벨이라면, DDA는 미조정을 위한 메커니즘으로서 작용할 수 있다. 버켓팅을 사용하여 사용자는 플레이할 친구 또는 플레이할 레벨을 선택할 수 있고, 이어서 본 발명은 플레이의 레벨 내에서 어울리는 난이도를 진행 중에 확인하기 위해 버켓팅의 사용 후에 DDA를 사용할 수 있다. 예를 들면, 시스템은 활성적 사용자가 레벨 3 게임 플레이어이기 때문에 레벨 3으로부터 비동기 게임 기록을 선택할 필요성이 있음을 안다. 그러나, 시스템은 실제로는 레벨 3 버켓 내에 여러 개로부터 특정 게임 기록을 선택하기 위해 DDA을 사용할 수 있다. 또 다른 예에서, 고 레벨 3 기록이 있고 활성적 사용자가 저 레벨 3 플레이어이라면, 시스템은 고 레벨 3 기록을 사용하기를 원하지 않을 수도 있을 것이다. 또는, 활성적 사용자가 결코 T-스핀과 같은 어떤 진보된 이동들을 결코 하지 않는다면, 시스템은 게임 플레이 스타일이 균형이 맞지 않을 것이기 때문에 많은 T-스핀을 사용하는 레벨 3 게임 플레이 기록을 선택하기를 원하지 않을 수도 있을 것이다.
실시예들에서, DDA는 '활성적 DDA'로서 구현될 수도 있는데, 이 경우 목적은 활성적 사용자가 단일의 전체 게임 플레이를 완료하지 았았을지라도 진행 중에 DDA를 사용하는 것이다. 예를 들면, 새로운 사용자가 비동기 게임을 플레이하기 위해 왔지만 시스템이 이들의 플레이 레벨을 아직 판정하지 않았음을 상상한다. 시스템이 무작위로 이들을 평균 레벨의 플레이와 맞춘다면, 이것은 어림짐작을 제공할 수 있지만, 그러나 사용자는 안 좋은 경험을 가질 수도 있어, 초기에 안 좋은 경험(불균형 게임)을 가진 사용자는 결코 되돌아오지 않을 수도 있다. 이 가능성을 최소화하기 위해 활성적 DDA가 사용될 수 있다. 활성적 DDA는 플레이의 레벨을 더 정확히 감정하기 위해 진행 중에(예를 들면, 사용자가 제 1 피스를 바닥 위에 놓는데 얼마나 오래 걸리는가를 보는 것) 게임 플레이를 활성적으로 분석하고 이에 따라 비동기 기록 플레이를 조절하는 것을 포함할 수도 있을 것이다.
도 1은 게임 데이터가 어떻게 구성되고 전송될 수 있는가의 일실시예를 도시한 것으로, 비동기 게임 시설(110A)는 고속 액세스 메모리(112A)로부터 게임 데이터를 인출하며, 메모리(112A)는 게임 데이터를 인출하여 더 느린 액세스 게임 보관 데이터베이스(118A)와 교환한다. 실시예들에서, 메모리는 이전에 플레이된 게임들로부터 게임 데이터, 이를테면 게임 플레이에 대한 전체 게임 데이터, 게임 플레이에 대한 게임 데이터의 부분들, 차후에 게임 플레이를 위해 단지 동적인 부분들, 이전 게임 플레이의 특징들, 이전 게임 메타데이터, 이전 게임 상호작용 데이터, 등을 내포할 수 있다. 또한, 비동기 게임 시설(110A)은 클라이언트들(104)이 비동기 게임 서버(102)에 연결되었을 때 이들로부터 수집된 게임 데이터를 저장하기 위한 메모리 공간을 제공할 뿐만 아니라 이전 플레이어 게임들이 클라이언트(104)에 전송할 준비가 되어 있는, 비동기 게임 데이터베이스(114A)와 같은 전송 메모리를 구비할 수 있다. 클라이언트가 비동기 게임 서버(102)에 연결되었을 때, 클라이언트(104)는 비동기 게임 데이터베이스(114A)로부터 새로운 이전 플레이어 게임들을 다운로드하고, 사용자에 의해 최근에 플레이된 새로운 게임 데이터를 비동기 게임 데이터베이스(114A)에 업로드하고, 이를테면 메모리(112A) 내 혹은 게임 보관 데이터베이스(118A)의 장기(longer term) 메모리 내 가용한 특정 플레이어들과 플레이할 새로운 게임들을 요청할 수 있게 된다. 어떤 실시예들에서, 클라이언트(들)(104)은 클라이언트(104)가 더 이상 비동기 게임 서버(102)에 액세스할 수 없을 때라도 본원에 개시된 원리에 따라 클라이언트(들)(104)이 게임들을 플레이할 수 있게, 비동기 게임 서버(102)로부터 정보를 다운로드 할 수 있다. 다른 실시예들에서, 클라이언트(104)는 게임 플레이 동안 비동기 게임 서버(102)에 연결된 채로 있을 수 있으며, 클라이언트(104)는 서버측 상에 비동기 게임 시설(110A), 및 다른 관계된 시설들을 사용할 수도 있다.
실시예들에서, 비동기 게임 서버(102)는 단일 프로세서 서버, 멀티프로세서 서버, 또는 이 기술에 공지된 그외 어떤 다른 유형의 서버일 수 있다. 서버는 인터넷을 통해 다른 서버들에 연결될 수 있다. 또한, 서버(102)는 이를테면 웹 서버, 데이터베이스 서버, 파일 서버, 네트워크 서버, 등과 같은 다른 서버들을 포함할 수 있고, 모든 이들 서버들은 함께 하여 통합된 서버로서 작용할 수 있다. 또한, 서버(102)는 하나 이상의 계산 클라이언트들(104)에 의해 비동기 게임의 플레이를 할 수 있게 하는 소프트웨어 및 하드웨어를 포함할 수 있다.
실시예들에서, 클라이언트(104)는 친구와 같은 특정 플레이어와 견주기를 원할 수 있고, 매칭 엔진(120)을 통해 그와 같이 할 수 있게 된다. 실시예들에서, 클라이언트(104)는 재경기를 위해 견주어 지고, 한 차례의 경기들을 가지며, 동시에 복수의 다른 플레이어들과 대항하는, 등등을 하기를 원할 수 있다. 매칭 엔진(120)은 메모리(112A)뿐만 아니라 서버-측 비동기 게임 시설(110A)과 상호작용할 수 있는데, 메모리(112A)는 클라이언트의 요청을 수용하기 위해서 게임 보관 데이터베이스(118A)로부터 추가의 게임 데이터를 인출할 필요가 있을 수 있다. 실시예들에서, 매칭 엔진(120)은 제3자 환경(108) 상에 저장되거나, 매칭 엔진(120)에서 유지되는 등등, 이를테면 사용자의 클라이언트(104) 상에, 사용자의 친구 목록(122)을 이용할 수도 있다. 또한, 매칭 엔진(120)은 이를테면 과거 선택들, 행동, 스킬 레벨, 등과 같은 사용자의 이력에 기초하여 사용자를 상대에 맞출 수 있다. 실시예들에서, 매칭 엔진(120)은 이를테면 사용자가 상대를 명시적으로 선택하지 않을 때와 같이, 상대에 사용자를 맞추는데 도움이 되게 하기 위해 사용자 플레이 프로파일을 유지할 수 있다.
실시예들에서, 사용자들은 웹사이트로부터 이들의 클라이언트 장치(104) 상에 다운로드하거나, 게임을 구입하여 이를 이들의 클라이언트 장치(104) 상에 로딩하거나, 비동기 게임 서버(102)을 통해 게임에 액세스하거나, 제3자 환경(108)(예를 들면 소셜 네트워킹 사이트들, 게이밍 웹사이트들, 전자상거래 사이트들)을 통해 게임에 액세스하는, 등을 포함한, 다양한 방법들로 비동기 게임들에 액세스할 수 있다. 또한, 이들 비동기 게이밍 사이트들의 어느 것이든 사용자가 누구와 대항하여 게임을 플레이하기를 원할 수 있는가를 나타내고, 이들의 클라이언트 장치(104) 상에 이전 게임들을 유지하는, 등을 할 수 있는 친구 목록(122)을 가질 수 있다.
이제 클라이언트측으로 가면, 사용자는 이들이 비동기 게임들을 플레이할 수도 있는 클라이언트 장치(104), 이를테면 휴대 클라이언트 장치, 게이밍 클라이언트 장치, 컴퓨터 클라이언트 장치, 내비게이션 클라이언트 장치, 등을 갖고 있을 수 있다. 도 1은 클라이언트 장치(104)의 일실시예를 도시한 것으로, 클라이언트(104)는 이를테면 클라이언트-측 비동기 게임 시설(11OB), 메모리(112B), 게임 보관 데이터베이스(114B), 및 비동기 게임 데이터베이스(118B)를 포함하여, 비동기 게임 서버측(102) 상에 기능들과 유사한 기능들을 수행할 수 있다. 이들 기능 성분들은 비동기 게임 서버(102) 측에서 기술된 바와 같이, 이전 게임 사용자들로부터 수집된 게임 데이터로부터 사용자를 위해 실시간 게임 경험을 생성하기 위한 알고리즘을 실행하고, 클라이언트-측 메모리(112B)로부터 게임 데이터를 가져오고, 클라이언트-측 게임 보관 데이터베이스(118B)에 더 긴(deeper) 메모리 저장을 제공하는, 등을 하게 동작할 수 있다. 또한, 비동기 게임 서버(102)에서와 같이, 비동기 게임 서버(102)로부터 게임 다운로드을 위한 전송 메모리로서 작동하며 클라이언트(104)가 연결되었을 때 비동기 게임 서버(102)에 업로드될 수도 있는 사용자들에 의해 플레이된 게임들을 클라이언트(104) 상에 저장하게 작동하는 클라이언트(104) 상에 비동기 게임 데이터베이스(118B)가 있을 수 있다. 또한, 클라이언트(104)는 클라이언트 장치와 인터페이스하기 위한 사용자 인터페이스, 및 라이브 게임 사용자 인터페이스 -이를 통해 비동기 게임을 플레이한다- 를 구비할 수 있다. 클라이언트 장치(104)와 관련하여, 사용자는 클라이언트(104) 상에 적어도 한 친구 목록(122B)을 유지할 수도 있는데, 친구 목록(122B)은 사용자가 어느 플레이어들과 플레이하기를 원할 수 있는가를 명시적으로 또는 암묵적으로 판정하기 위해 사용될 수 있다. 예를 들면, 클라이언트는 플레이할 특정 친구를, 이를테면 이들을 이름, 필명, 플레이어 태그, 사용자명, 등에 의해 명시하여 명시적으로 선택할 수도 있다. 그러나, 사용자가 이들의 상대를 명시적으로 선택하기를 원하지 않는다면, 비동기 게임 시설(110)은 친구 목록, 클라이언트(104)에 의해 저장된 선호도들, 사용자의 게임 플레이를 통해 도출된 선호도들 및 과거 명시적 선택들, 등에 기초하여 상대를 '암묵적으로' 선택하거나, 비동기 게임 서버(102) 상에 매칭 엔진(120)이 선택하게 할 수도 있다. 실시예들에서, 클라이언트는 위에 기술된 모든 클라이언트 기능들이 서버에 의해 구현되는, 도 39에 도시된 바와 같이, 씬 클라이언트(3902)일 수 있다.
특정한 예는 본 발명에 따라 동작하는 시스템을 통해 게임 플레이 동안 게임 경험이 어떻게 인지될 수 있는가를 예시할 수 있다. 예는 단지 한 게임 플레이 상황을 예시하고자 한 것이며, 따라서 이 예는 발명의 범위를 제한하려는 것이 아니다. 사용자는 이들의 FACEBOOK.COM 계정에 로그온하고 이들이 친구와 게임을 플레이하고 싶음을 판단할 수 있다. 그러면, 사용자는 FACEBOOK.COM 인터페이스 내에서 게임 및 함께 플레이할 친구를 선택할 수 있다. 사용자는 즉시 플레이할 의도를 갖고, 선택된 친구가 온라인 상에 있어 함께 플레이할 수 있기는 희망하고 게임을 선택하였을 수도 있다. 이 예에서, 친구는 사용될 수 없다. 이 예에서, 사용자의 클라이언트(104)가 비동기 게임 서버(102)에 연결된 것으로 가정하여, 클라이언트(104)는 서버에 게임 요청을 할 수 있다. 게임 요청은 선택된 게임 및 선택된 상대를 확인하는 정보를 포함할 수 있다. 게임 요청은 매칭 엔진(120)에 제시될 수 있고 따라서 요청은 적합한 사용자 정보 및 게임 정보와 대조될 수 있다. 매칭 엔진(120)는 메모리(112)로부터 이전 게임 상호작용 데이터를 선택할 수 있다. 이전 게임 상호작용 데이터는 사용자, 사용자 특징들, 이전 게임 확인 정보, 등을 확인하는 메타데이터를 포함할 수 있다. 매칭 엔진(120)은, 이 예에서, 사용자를 맞추기 위해 주로 메타데이터에 의존할 수 있다. 일단 이전 게임 상호작용 데이터가 확인되면, 이전 게임 플레이 정보는 사용자와의 게임 플레이 동안 비동기 게임 시설(110)에 의해 사용될 수 있다. 비동기 게임 시설(110)(클라이언트측(11OB) 상에 있든 아니면 서버측(110A) 상에 있든 간에)는 사용자에게 적합한 게임 및 적합한 상대를 제시한다. 이제, 사용자는 이들이 선택한 게임을 이들이 플레이하고 있고, 외견상 실시간으로, 선택된 상대와 플레이하고 있는 게이밍 상황을 인지할 수 있다. 선택적으로, 시스템은 이것이 사실은 실시간 게임이 아님을 사용자에게 확인시킬 수도 있다. 사용자는 이 외견상 실시간 환경에서 선택된 상대와 대항하여 게임을 플레이하기를 시작할 수 있다. 상대의 이동들 및 게임에서 제시되고 있는 것에 대한 반응들은 규정될 필요는 없는데(이들의 한 부분, 또는 전부는 어떤 실시예들에선 규정될 수도 있다), 이들은 상대의 이전 게임 상호작용 데이터에 기초할 수 있다. 상대가 이전 게임들을 어떻게 플레이하였는지에 기초하여 상대에 대한 반응들 및 행동들을 예측하고 제시함과 아울러 플레이하고 있는 새로운 게임과의 사용자의 상호작용들을 조정하는 비동기 게임 시설(110)에서 행해지는 한 세트의 프로세스들이 있을 수 있다.
또 다른 예에서, 사용자는 본원에 기술된 바와 같이 비동기 게이밍 환경에서 친구들과 대항하여 게임들을 플레이하기를 원할 수 있지만 이들이 오프라인이거나 아니면 비동기 게임 서버(102)에 연결되지 않았을 때 이들 게임들을 플레이하기를 원할 수도 있다. 이 상황에서는 어떤 사전에 대비가 필요할 수도 있다. 클라이언트(104)가 비동기 게임 서버(102)에 연결되었을 때, 클라이언트(104)는 단일 게임 요청 또는 복수의 게임 요청들을 할 수 있고, 비동기 게임 서버(102)는 적합한 부합하는 이전 게임 데이터를 클라이언트(104)에 다운로드하여 나중에 사용하기 위해 클라이언트(104) 상에 저장될 수 있게 할 수 있다. 이제, 어떤 실시예들에서, 클라이언트(104)로부터의 요청은 명시된 요청일 수 있고 다른 상황들에서 요청은 암묵적 요청일 수 있다. 예를 들면, 사용자는 이들이 누구와 플레이하기를 원하는가와 이들이 어떤 게임들을 플레이하기를 원하는가를 알며 대응하는 이전 게임 플레이 데이터를 확인하여 다운로드하기 위한 요청을 발생할 수 있다. 이것을 사용자가 요청을 발생하였기 때문에 명시적 요청이라고 할 것이다. 다른 상황들에서, 클라이언트(104) 측 상에서든, 비동기 서버 측(103) 상에서든, 아니면 둘 다에서든, 아니면 다른 어떤 곳에서든, 사용자에 관한 충분한 정보가 알려질 수 있어 사용자가 어떤 게임들 및 어떤 다른 사용자들과 플레이하고자 하는가의 예측이 행해질 수 있다. 그러면, 예측에 기초한 요청은 자동으로 발생되어 매칭 엔진(120)에 보내질 수 있다. 이것은 암묵적 요청일 것이다. 일단 이전 게임 플레이 정보가 클라이언트(104)에 다운로드되었으면, 클라이언트(104)는 오프라인으로 갈 수 있고 여전히 본원에 개시된 원리에 따라 게임들을 플레이할 수 있다. 이들이 플레이하는데 관심이 있는 상대들에 관계된 이전 게임 플레이 정보를 사전에 다운로드함으로써, 이들은 게임 및 상대를 선택하고 이어서 이들이 온라인에 있든 아니면 오프라인이든 간에 언제든 상대의 이전 게임 상호작용 데이터에 기초하여 게임을 플레이할 수 있다. 오프라인 모드에서, 클라이언트는 일반적으로 로컬 비동기 게임 시설(11OB)을 통해 게임을 실행할 수 있다. 또한, 혼성 실시간/비동기 시스템들이 사용될 수도 있고 발명의 실시예의 사용으로부터 이익을 얻을 수 있다.
실시예들에서, 본 발명은 서버-측 비동기 게임 시설(110A), 클라이언트-측 비동기 게임 시설(11OB), 또는 이들 둘의 조합을 통해 비동기 게임 제어를 제공할 수 있다. 예를 들면, 서버-측(102)은 선택하기 위해 사용자 게임 데이터의 현저하게 더 큰 데이터베이스를 제공할 수 있고, 따라서 클라이언트는 고속 인터넷 연결에 연결되었을 때 서버-측(102)을 이용할 수 있다. 한편, 클라이언트(104)가 인터넷(124)에 연결되지 않았거나 혹 저속 인터넷 연결에 연결되었다면, 혹은 서버-측(102)이 과중한 사용 때문에 제한된 대역폭을 제공하고 있을 때, 클라이언트(104)는 클라이언트의 비동기 게임을 실행하기 위해 클라이언트-측 비동기 게임 시설(110B)을 이용할 수 있다. 실시예들에서, 비동기 게임 시설(110) 기능의 부분들은 서버-측(102)에 의해 수행될 수 있고, 다른 부분들은 클라이언트-측(104)에 의해 수행될 수 있으며, 기능의 분할은 수행 기준 및 연결품질에 의해 결정될 수 있다.
실시예들에서, 본 발명의 비동기 게임은 클라이언트측(104)과 서버측(102) 간에 데이터가 전송될 것을 요구할 수 있다. 일반적으로 게임-플레이는 전체 게임이 플레이될 때까지 클라이언트측 메모리에 저장될 수 있고, 이어서 서버에 업로드될 수 있다. 실시예들에서, 게임-데이터의 다운로드 및 업로드는 게임 전 및 후에만 일어날 수 있고 게임 동안엔 일어나지 않을 수 있다. 본 발명의 비동기 상황에서, 게임은 무상태(stateless)일 수 있는데, 이것은 클라이언트(104)와 서버(102) 간에 고정적인 연결이 없음을 의미한다. 이것은 시스템이 융통성있게 할 수 있어, 연결이 될 수 있을 때 편리한 시간에 시스템이 게임들을 업로드 및 다운로드할 수 있게 한다.
실시예들에서, 게임에 관해 저장된 정보는 게임 설정값들, 일반 입력 이벤트들, 일반 마일스톤(milestone) 이벤트들, 게임 이벤트들, 시그내처, 등일 수 있다. 게임 설정값은 이를테면 게임에 연관된 장식(예를 들면 테트리미노 모습들, 고스트 모습들, 사운드 이펙트들, 음성), 게임의 기능(예를 들면 좌-우 이동, 속도, 라인 클리어 지연들, 사용되는 맵들, 랜덤 시드(random seeding), 등에 관련하여, 정확하게 이들 설정들로 게임이 재생성될 수 있게 할 수 있다. 예에서, 유형은 설정일 수도 있을 것이며, 테트리미노 '모습'은 디폴트로 설정될 수도 있을 것이며, 고스트는 유형 A일 수 있고, 사운드 이펙트는 유형 B일 수 있고, 좌-우 이동은 고속으로 설정될 수 있고, 맵은 유형 G일 수 있고, 랜덤 시드는 20202032일 수 있다, 등등. 맵들은 기정의된 패턴들, 블록들, 장애물들, 혹은 게임 플레이의 셋업들이다. 일단 선택되었으면, 맵은 모든 플레이어들에 혹은 선택된 플레이어들에만 적용될 수 있다. 도 37a는 4개의 예로서의 맵들(3720, 3722, 3724, 3728)과, 게임 테트리스 버전에서 맵들이 어떻게 구현될 수 있는가를 도시한 것이다. 각 예의 맵(3720, 3722, 3724, 3728)을 가진 서로 다른 패턴들 각각은 게임의 시작에서 증가된 난이도 레벨을 플레이어를 게임에 나타낼 수 있거나, 이들은 이를테면, 예로서 그리고 제한함이 없이, 테트리스 게임에서 T-스핀 또는 콤보들과 같이 어떤 고-득점 이동들을 용이하게 할 수 있음에 유의한다. 패턴들은 사용자에게 관심을 끌 수 있는 미적인 모습을 제공할 수도 있다. 일반 입력 이벤트는 키보드, 마우스, 터치 스크린, 게임 플레이 인터페이스, 등을 명시할 수도 있다. 예를 들면, 도 5에 도시된 바와 같이, 테트리스® 게임에서, 일반 설정들은 일반적으로 모든 키보드 이벤트들(또는 콘설 제어기 또는 휴대 시스템 제어 패드들 또는 다른 키들에서 촉발된 이벤트들)에 설정될 수 있으나, 또 다른 게임에서는 마우스(또는 터치 스크린) 이벤트들도 포함할 수 있다. 테트리스® 게임에 관한 더 상세한 배경이 본원에서 제공된다. 실시예들에서, 일반 입력들에 연관된 시간 스탬프들이 있을 수 있다. 예를 들면, 다음 시간 스탬프들은 한 세트의 테트리스 게임 입력들로서, 00:00:10 좌, 00:00:35 우, 00:00:55 회전-우, 00:01:25 하드-낙하, 등에 연관될 수 있다. 여기에서 실시예들은 임의의 한 게임으로 제한되지 않음에 유의한다. 많은 현존의 게임들/게임 유형들은 이를테면 미니 골프(도 6에 도시된 바와 같은), 볼링(도 7에 도시된 바와 같은), COLLAPSE 게임(도 8에 도시된 바와 같은), 비쥬얼드 게임(도 9에 도시된 바와 같은), 아처리, 트랙, 스위밍, 스키잉, 호스 레이싱, 스케이트 보드, 퍼즐들, ALCHEMY 게임, 솔리테르 게임들, SHANGHAI-유형 매칭 게임들(예를 들면 이스케이프, 사파리), SUDOKU, 크로스워드 퍼즐들, 포토헌트, POPPIT 게임, TAP TAP REVENGE 게임, 스키-볼, 모바일 전화 애플리케이션들(이를테면 FLING, BACKBREAKER FOOTBALL, FROGGER, TETRIS POP, TETRIS BATTLE), FACEBOOK 게임들(이를테면 MINDJOLT, PACMAN, YOV, PET SOCIETY, (LIL) GREEN PATCH, FARMVILLE, MAFIA WARS), 등과 같은, 본 발명의 실시예들에서 비동기 버전을 취하여 이익을 얻을 수 있다. 이를테면 레이싱, 쇼트 트랙 레이싱, 등과 같은 그외 다른 게임들이 본 발명의 비동기 실시예들에 부분적으로 맞게 개작될 수 있다. 그외 다른 게임들은 비동기 버전으로부터 직접적으로 이익을 얻지 않을 수 있지만 본 발명은 이들 조합들을 저장함으로써 학습하는 AI를 생성하기 위해 사용될 수도 있다. 도 9a ~ 도 9f는 샘플 퍼즐 게임을 더 상세히, 그리고 이것이 발명의 실시예에서 어떻게 플레이될 수 있는가를 도시한 것이다. 이 예에서, 퍼즐 게임은 이를테면 3마디 라인 경로만을 구성하는 클리어 루트를 통해, 유사한 타일들을 맞추는 목적을 가질 수 있다. 이 예의 퍼즐 게임에서, 타일들이 맞추어졌을 때, 타일들은 게임 플레이로부터 사라진다. 플레이어가 단독으로 플레이하고 있었다면, 이들은 타이머와 대항하여 플레이하고 있을 수도 있다. 이 예에서, 다른 플레이어 게임 보드들(920, 922, 924)이 우측에 보여질 수 있고, 승자는 이들의 게임 보드를 맨 먼저 클리어하는 플레이어이다. 이 예의 일련의 도면들에서, 도 9a는 플레이어가 게임을 오픈할 때 오프닝 스크린(900A)을 도시한 것이며, 도 9b는 모든 패터드(pattered) 타일들을 가진 게임 필드(900B)를 도시한 것이며(이 예에서, 당업자에게 의해 이해되는 바와 같이, 게임에 많은 가능한 추가들 중 하나로서, 보드는 섞여질 수도 있고, 폭탄이 사용될 수도 있으며, 힌트들이 제공될 수도 있으며, 등등이 될 수 있음에 유의한다), 도 9c는 플레이어가 합류할 또 다른 플레이어를 초청하고 있는 초청 스크린(910)을 도시한 것이며, 도 9d는 선택되는 타일(912)을 도시한 것이며, 도 9e는 선택된 2개의 타일들을 도시한 것으로 타일들을 연결하는 3마디 라인(914)이 도시되었으며, 도 9f는 플레이어가 어떤 2개의 타이들이 선택될 수 있는가에 관한 힌트를 받을 수 있는 힌트 기능(918)을 도시한 것이다. 실시예들에서, 이들 게임들의 어느 것이든 본원에 기술된 바와 같은 비동기 또는 혼성 비동기 게임으로서 구현될 수 있다. 예를 들면, 도 9d에 도시된 바와 같은 다른 플레이어들(920, 922, 924)이 플레이하기 위해 초청될 수 있는데, 다른 플레이어들(920, 922, 924)은 라이브 플레이어들(즉, 네트워크를 통해 실시간으로 플레이할 수 있는 다른 플레이어들) 및 외견상 라이브 플레이어들(즉, 실시간으로 플레이할 수 없는 플레이어들이지만, 본 발명은 본원에 기술된 바와 같이, 이 플레이어의 이전의 게임 플레이를 통해 외견상 라이브 플레이를 제공한다)과의 조합일 수도 있다. 실시예들에서, 모든 다른 플레이어들(920, 922, 924)은 비동기로 플레이하고 있을 수 있으며, 모든 다른 플레이어들(920, 922, 924)은 동기되어 플레이하고 있을 수 있으며, 혹은 다른 플레이어들(920, 922, 924)은 동기 및 비동기 플레이어들의 조합 또는 혼성 게임이다. 본 발명으로 구현될 수 있는 게임의 또 다른 예에서, 도 9g는 다수 그룹들의 플레이어들(900G2)이 서로 대항하여 혹은 서로 협력하여 플레이할 수 있는 랠리 게임을 위한 게임 필드를 도시한 것이다. 도 9h는 랠리 게임의 플레이에서 맵들이 어떻게 이용될 수 있는가의 예들을 도시한 것이다. 랠리를 일 그룹의 다른 플레이어들과 협력적으로 플레이하는 것은 본 발명의 비동기 및 혼성 게임 플레이가 라이브 및 외견상 라이브 플레이어들의 조합에 어떻게 적용될 수 있는가의 예를 제공한다. 이에 따라, 본 발명은 본 발명의 시설들에 의해 표현되는 라이브 플레이어들 및 플레이어들이 단일 게임에서 함께 상호작용적으로 플레이할 수 있는 플레이의 모드들을 제공할 수 있다. 실시예들에서, 이 유형의 비동기, 동기, 또는 혼성 게임 플레이는 이를테면 다른 플레이어들을 라이브 플레이를 위해 이용가능할 때의 기능과 같이 게임마다 동기(즉, 라이브) 및 비동기(즉, 외견상 라이브) 플레이어들의 서로 다른 조합들이 플레이하고 있을 수 있게 게임에 적용될 수 있다.
실시예들에서, 게임이 어떤 상황들에서 동기에서 벗어나지 않게 하기 위해 일반 마일스톤 이벤트가 포함될 수도 있다. 예를 들면:
시간 스탬프 유형 파라미터
00:00:10 발생된 피스 T
00:00:40 록다운 2x21
00:01:35 T-스핀 성공
실시예들에서, 게임 이벤트는 이를테면 테트리스 게임에서와 같이 게임의 동적 부분들, 얼마나 많은 가비지가 보내졌는가, 보내진 가비지의 유형, 사용된 아이템 유형, 누가 사용하였는가, 최종결과, 녹아웃("KO"), 등과 같은 그외 다른 이벤트들을 시뮬레이트할 수 있다. 예를 들면:
시간 스탬프 유형 파라미터 1 파라미터2
00:01:25 가비지 유형1 Size4
00:02:25 아이템 유형4 TargetType2
02:00:00 EndPosition 6th
02:00:00 ExpAcquired 경험 +15
실시예들에서, 시그내처는 게임의 정적 및 동적 부분에 연관될 수 있다. 시그내처는 선택적으로 그 자체가 프로세스가 아니라, 그 플레이어의 시그내처로서 작용하는 사용자 입력이 기록 상에 저장될 수 있다. 예를 들면, 사용자는 누군가와 같은 게임을 플레이할 수도 있을 것이지만, 이 특정한 사용자가 게임을 플레이하는 방법, 이들의 반응 속도, 이동, 등은 이 특정 사용자를 명확히 정의하는 인자들일 수 있고 이것은 시그내처로서 작용할 것이다(예를 들면 타이거 우드의 골프 스윙은 다른 플레이어의 골프 스윙과는 다를 것이다). 이에 따라, 모든 입력들을 상세히 기록하고 이들을 재현하는 것은 이를테면 임의의 다른 플레이어에 의해 정확하게 복제되지 않을 수 있게, 사용자가 이 특정의 사람에 대항하여 플레이하고 있다는 느낌을 생성하는데 도움을 줄 수 있다. 실시예들에서, 이것은 게임의 정적 부분을 나타낼 수 있고, 재연들은 실제로 일어나는 것에 가능한 한 가깝게 되게 행해진다. 한편, 게임의 동적 부분은 이 플레이어의 플레이의 정의된 부분이 아닌 게임 규칙의 결과들에 연관될 수 있다. 예를 들면, 다른 게임들에서 "가비지들" - 또는 원하지 않는 게임 아이템들- 은 플레이어의 행동들의 결과일 수 있다. 게임 규칙들이 바뀌거나 상황들이 바뀐다면, 보내진 가비지 량은 게임에서 동적으로 변경될 수 있고, 이 변경은 플레이 정상적인 결과로서 볼 수 있다.
게임 플레이의 정적 대 동적 부분들에 관하여, 202 부분들이 게임의 정적 부분이고 록 다운 위치, 이동, 등이 실제로 발생하는 방법에 가능한 한 가깝게 복제될 수 있는, 도 5에 도시된 바와 같은 배틀 게임 예를 고찰한다. 이것은 'Sally'가 이 게임을 플레이한다는 감을 주는 게임의 시그내처 느낌을 생성하려는 것이다. 204 부분들은 실제 이벤트에 이를테면 약 95% 또는 더 가깝게, 낮은 퍼센티지로 복제될 수 있다. 이 예에서, 204 부분들은 얼마나 많은 가비지 라인들이 보내졌는지를 포함하며, KO는 게임마다 달라질 것이다. 폭탄 트리거들은 이 플레이어의 플레이의 느낌을 향상시키기 위해 어떤 상황들에선 복제될 수도 있는데, 그러나 변경될 수도 있다. 204 부분들은 종종 실제 이벤트에 가깝게 복제될 수도 있는데, 그러나 대부분은 상이할 것이며, 따라서 게임의 동적 부분인 것으로 간주된다.
본 발명의 또 다른 실시예에서, 라이브 플레이와 과거 플레이와의 혼성이 구현될 수 있다. 예를 들면, 사용자는 본 발명의 시뮬레이트 '실시간' 게임에서 다른 플레이어들과 대항하여 플레이하고 있을 수 있으며, 이들의 친구들 중 하나는 불현듯 온라인에 있어 사실상의 실시간 게임을 플레임하기 위해 이용될 수 있음을 의식할 수 있다. 본 발명은 친구가 온라인에 있어 사실상의 실시간 게임을 플레임하기 위해 이용될 수 있음을 나타내기 위한 메커니즘을 제공할 수 있다. 이 경우에, 친구는 이제 사실상의 실시간 게임을 플레이하기 위해 초청될 수 있다. 이후에, 사용자는 시뮬레이트 '실시간' 게임들을 플레이하는 것으로 되돌아갈 수 있고, 심지어는 이들의 친구가 로그오프된 후에, 시뮬레이트 플레이를 통해 이들의 친구와 대항하여 계속하여 플레이할 수 있다. 따라서, 본 발명은 현재 온라인에 없는 플레이어들과 시뮬레이트된 실시간 플레이하는 것과 현재 온라인에 있는 플레이어들과의 사실상의 실시간 게임들을 사용자가 혼합할 수 있게 하는 '혼성' 시스템을 구현할 수 있다.
실시예들에서, 본 발명은 시스템에 로그인된 사용자들의 모든 상태들을 관리하는 혼성 플레이를 구현하는데 도움을 주기 위한 '상태 서버', 패킷들을 실시간으로 브로드캐스트하기 위한 메신저로서 작용하는 중계-채팅 서버, 등을 사용할 수 있다. 시스템은 이를테면 활성적 상태(예를 들면 비동기 게임을 활성적으로 플레이하는), 아이들 상태(예를 들면, 연결되었지만 응답하고 있지 않은), 플레이(예를 들면 누군가와 실시간으로 플레이하는 것으로 따라서 초청될 상태에 있지 않다), 오프라인, 등과 같은, 다수의 상태들을 관리할 수 있다. 서버(102)에 요청들을 하는 클라이언트(104)는 이들 상태들에 변경들을 트리거할 수 있다. 요청들이 서버(102)에 행해질 때, 이들은 활성적가 될 수 있다(이를테면 OFFLINE으로부터 전환될 수 있다). 사용자가 로그인 하였지만(활성적 상태에 있었다면) x분 이내에 요청하지 않았다면, 이들은 IDLE에 있을 수 있다. 플레이어가 실시간 게임을, 혹은 누군가와 혼성 게임을 플레이하기를 시작한다면, 이들은 활성적에서 PLAYING(실시간)으로 전환할 수 있다. 플레이어가 로그오프하거나 x분 이상 동안 IDLE에 머물러 있다면, 이들은 오프라인일 수 있다. 실시예들에서, 모든 사용자들은 OFFLINE에서 시작할 수 있다. 플레이어가 활성적의 상태에 있을 때, 이것은 HYBRID 게임에 합류하기 위해 플레이어들로부터 INVITES를 수신하는 것이 가능할 수 있다. 이것은 비동기 게임들이 결과들 없이 중단될 수 있기 때문에 가능할 수 있다.
혼성 플레이를 계속하여 설명하면, 실시예들에서, 플레이어 A가 게임을 생성한다면, 이들은 사전에 기록된 게임들과 대조될 수 있다. 그러나, 이들이 누군가와 또는 함께 라이브로, 동시에 비동기 게임을 플레이하고 있는 친구과 플레이하기를 원한다면, 이들은 이들의 게임에 이 사람을 초청할 수도 있다. 실시예들에서, 초청은 초청된 플레이어의 게임이 중단되게 하고 이들이 이 게임에 합류하고 싶은지를 이들에게 묻는 팝업이 나타나게 할 수 있다. 사용자가 누군가가 플레이하기 위해 이들을 초청할 때까지 기다리기를 원하지 않거나, 사용자가 특정하게 누군가를 초청하기를 원하지 않고 누군가를 초청하기를 원한다면, "PLAY LIVE!" 버튼을 누르는 것이 가능할 수 있고 사용자는 슬롯들을 라이브로 합류하는데 사용될 수 있게 라이브 게임에 합류될 수도 있을 것이다. 시스템은 비동기 게임들이 고정된 시간을 가져 이 프로세스를 예측하고 맞추는 것을 용이하게 한다면 더 효율적일 수 있다. 사용자가 HYBRID 게임에 합류할 때, 게임 플레이가 시작되기 전에 비동기 게임 데이터가 다운로드될 수 있다. 라이브 플레이어들 간에, 게임 플레이의 패킷들은 '중계 서버'를 통해 즉시 플레이어들에 브로드캐스트될 수 있다. '중계 서버'는 채팅 패킷들을 라이브 플레이어들에게도 보내는 '채팅 서버'로서 작용할 수도 있다. 보내지는 패킷들은 게임이 끝날 때까지 기다리는 대신, 즉시, 부분들로 보내질 수도 있는 것을 제외하고, 재연 데이터를 형성하기 위해 저장된 정보를 포함한다. 게임의 끝에서, 라이브 플레이어들은 저장되고 이어 이어 다른 게임들을 위해 사용되게 하기 위해 게임 데이터를 다시 서버에 보낼 수 있도 있다. 대안적으로, 서버는 이들 패킷들을 수집하는 것을 시작하고 이를 게임의 끝에서 함께 저장할 수도 있다.
실시예들에서, 이 시스템의 잇점들은 누군가와 라이브로 플레이하기 위한 대기가 최소화되어 전체 시스템의 액세스가느성을 향상하키는 것일 수 있다. 경험의 "완전한" 라이브-게임 퀄리티가 사용자들의 수에 따라 변할 수 있지만, 본 발명의 비동기 게임들은 대기를 최소화하면서도, 플레이어가 퀄리티 경험, 균등하게 맞추어진 게임-플레이, 등을 가질 것임을 보증하는데 도움을 줄 수 있다. 단일로 또는 비동기 게임들을 플레이하는 플레이어들을 초청할 수 있는 것은 적어도 가상으로, 대부분의 플레이어들이 초청될 수도 있기 때문에 이들 게임들이 발생할 가능성을 증가시킬 수 있다. 또한, 일반적으로 라이브 플레이에 연관된 모든 제약들 및 제한들 없이 토너먼트가 일어날 수 있는 비동기 토너먼트 시스템으로 확대하기 위해 사용될 수도 있다. 실시예들에서, 본 발명은 라이브 및 이전에 플레이된 게임들이 한 게임 안에 혼재되는 것을 제공하며 상태-관리를 제공하며, 동적 초청들을 제공하며, 대기를 최소화하거나 제거하며, 사용자가 아는 다른 플레이어들과 플레이하는 것을 용이하게 하며, 협력적인 게임들을 플레이하며 더 큰 확대가능성을 제공하는, 등등을 할 수 있게 한다.
실시예들에서, 본 발명은 이를테면 정규의 비동기 상황, 합성된 게임 플레이, 등등에서, 복수의 층들이 있을 수 있는 샘플링 합성 이론을 이용할 수도 있다. 정규의 비동기 상황에서, 게임 재연은 사용자의 플레이의 "샘플링" 결과이다. 그러나, 게임 "경험"은 새로운 합성된 경험을 생성하기 위해 '샘플링된' 게임 플레이가 사용되는 합성된 경험이다. 예를 들면, 시스템은 게임을 기록하고, 게임 데이터를 사용하여 재연 게임을 생성하며, 혹은 심지어 단일 게임으로부터 이를 '샘플링된' 게임 플레이로서 사용하여 새로운 합성된 멀티플레이어 게임 경험을 생성할 수도 있을 것이다. 비유로, 이것은 각각의 개개의 악기가 개별적으로 기록되지만 새로운 곡이 되게 샘플링된 트랙들을 조합함으로써 하나의 음악/곡으로 함께 플레이되는 오케스트라와 유사한 것으로서 간주될 수 있다. 실시예들에서, 다른 플레이어들이 기록된 게임으로부터 플레이되고 있는 동안 사용자가 음악을 플레이하거나 라이브로 노래할 오케스트라 게임을 생성하는 것이 기술적으로 가능하다. 예를 들면, ROCK BAND 또는 GUITAR HERO 게임도 합성될 수도 있을 것이다. 사용자는 예를 들면, 친구들, 또는 다른 사용자들, 또는 컴퓨터 또는 이들의 어떤 조합을 가진 밴드에서, 활성적으로 드럼들을 플레이하고, 이러한 다른 플레이어들 중 하나 이상의 사전에 기록된 활동들에 기초하여 다른 악기들(혹은 보컬들을 제공하는)을 플레이할 수도 있을 것이다. 이들은 밴드로서 함께 플레이하는 경험을 갖기 위해서 모두가 동시에 게임을 실제로 플레이할 필요는 없다. 활성적 사용자의 세션은 기록되고 이 사용자에 의해서 또는 각자가 서로 다를 수 있는 다른 사용자들에 의해 차후의 세션들에서 사용될 수도 있을 것이다. 이에 따라, 이러한 실시예들은 상호작용성의 반복적인 레벨 및 확대되는 레벨 모두를 제공할 것이다.
전형적인 상황들에서, 본 발명은 가능한 상당히 게임 플레이의 중대한 부분들을 시뮬레이트하려고 한다. 그러나, 시스템이 비동기화를 피하는 것이 불가능한 상황에 놓여질 수 있는 상황들이 있을 수 있다. 예를 들면, 게임 플레이에 영항을 미치는 "아이템들"이 있는 상황들이 있을 수 있다. 여기에서, 도전은 시스템이 사용되는 아이템을 가질 수 있지만 이것을 비동기화함이 없이는 재연의 결과를 변경하지 못할 수도 있다는 것이다. 예를 들면, 이를테면 게임 테트리스®에서와 같이 게임에서 사용되고 있는 "BLIND"라고 하는 아이템이 있을 수 있다. "BLIND" 아이템을 사용하는 자와 대항하는 플레이어는 이들이 이들의 플레이를 볼 수 없기 때문에 이에 의해 영향을 받을 것이다. 그러나, 재연은 이미 플레이되었던 게임이기 때문에 반응할 수 없다. 대신에, 발명의 실시예에서, 시스템은 "BLIND" 아이템의 사용의 결과를 합성(시뮬레이트)할 수도 있을 것이다. 실시예들에서, 이 경우에, 결과는 게임 플레이가 느려지는 것일 수 있다. 여기에서, 시스템은 "BLIND" 아이템의 사용이 어떻게 게임 플레이에 영향을 미칠 것인가를 판정하기 위해 사용할 데이터를 수집할 수 있다. 예를 들면, 아이템 "BLIND"가 특정 플레이어에 사용된다면, 시스템은 이것이 이들의 특정 게임 플레이에 얼마나 많이 영향을 미칠 것인가를 판정할 수도 있을 것이다. 예를 들면, BLIND(스크린을 가리는 것)는 평균으로 플레이를 30% 느려지게 할 수 있고, "LOCK"(회전을 제약하는 것)은 평균으로 시스템을 20% 느려지게 할 수 있고, "TWIST"(매트릭스를 비트는 것)는 평균으로 시스템을 50% 느려지게 할 수 있고, "PUZZLED"(회복하기 위해 시퀀스를 완료해야 한다)은 평균으로 4초 걸릴 수 있다, 등등. 이 데이터에 의해서, 예를 들면 플레이어 또는 시스템이 다른 특정 플레이어에 아이템 BLIND를 사용하였다면 이 플레이어는 30% 느려질 것으로 판정될 수 있다. 플레이어가 다른 플레이어의 재연되는 게임에 BLIND를 사용할 때, 다른 플레이어의 재연되는 게임은 30% 느려지게 될 것이다(70%의 속도로 플레이한다). 플레이어가 플레이어 A, B, C에 아이템 "PUZZLE"을 사용하고 플레이어 A가 회복하는데 평균 3초가 걸린다면, 시스템은 3초 동안 플레이어 A의 재연을 중지할 수 있다. 플레이어 B가 회복하는데 평균 5초가 걸리면 시스템은 5초 동안 플레이어 B의 재연을 중지할 수 있다. 플레이어 C가 회복하는데 평균 7초가 걸리면 시스템은 7초 동안 플레이어 B의 재연을 중지할 수 있다. 그러므로, 동일 아이템이 다수의 사람들에게 사용될 수 있지만, 이의 결과는 시스템이 이들의 회복을 시뮬레이트하고 있기 때문에 각 플레이어마다 다를 수도 있을 것이다.
또 다른 예에서, 본 발명의 방법에서 비동기화된 게임, 예를 들면 NINTENDO로부터 MARIO KART의 게임을 고찰한다. MARIO KART 게임은 또 다른 플레이어에 사용될 수도 있을 '바나나(Banana)'라고 하는 아이템을 갖고 있을 수도 있을 것이다. 라이브 플레이어 A가 '바나나' 아이템을 놓아두고, 비-라이브(기록된) 플레이어 B가 바나나 아이템을 히트할 때, 시스템은 플레이어 B가 이들의 정상적인 상태로 되돌아갈 때까지 x초 동안 플레이어 B를 이상한 방식으로 스핀 또는 이동하게 할 수 있다. 평균 x초 시간은 플레이어 B가 라이브로 플레이하고 "바나나" 아이템에 히트되었을 때부터 데이터를 사용하여 측정될 수 있으며, 시스템은 x초 동안 느려지게 하거나 재연을 중지하여 이 아이템의 결과를 시뮬레이트할 수 있다.
실시예들에서, 다른 선호도들, 이를테면 표적화, 헬프, 아이템 사용, 트리거 히트 비(ratio), 등에 관해서도 합성하는 것이 가능할 수 있다. 예를 들면, 표적화에 있어서, 사람이 가장 약한 플레이어 혹은 가장 강한 플레이어를 표적하기를 좋아하는가? 이들이 응답을 제공하고 공격, 등에 복수하나? 헬프에 있어서, 이들이 팀 게임들에서 이들의 팀-동료들을 돕는 것을 좋아하는가? 아니면 이들이 상대를 녹아웃하기를 선호하는가? 아이템 사용에 있어서, 얼마나 자주 이들이 아이템들을 사용하는가? 트리거 히트 비에 있어서, 얼마나 자주 이들이 트리거 포인트들을 히트하는가?
본 발명의 실시예들을 사용하였으며, 이제는 본 발명이 어떻게 실시간 유사 상호작용 비동기 게이밍 경험을 가능하게 할 수 있는가에 연관된 여러 측면들을 예시하는 다수의 프로세스 흐름도들로 간다.
본 발명의 일실시예에서, 비동기 게임 플레이는 이전 게임 플레이어에 대항하여 플레이될 수도 있다. 도 10을 참조하면, 게임을 플레이하기 위한 방법들 및 시스템들이 제공될 수 있다. 프로세스(300)는 단계(302)에서 시작할 수 있고 즉시 단계(304)로 이동한다. 단계(304)에서, 비동기 게임을 플레이하기 위한 요청이 개시될 수 있다. 비동기 게임은 하나 이상의 플레이어들이 오프라인 모드에서 게임을 플레이할 수 있게 하여 실제 게임의 환상을 생성할 수 있다. 플레이어는 게임이 온라인으로 플레이되고 있음을 인지할 수 있다. 플레이어들은 이들이 온라인에 있을 때는 언제나, 언제든 게임 내에서 이동할 수 있다.
요청은 플레이어에 의해 요망되는 상대들의 유형에 대한 메타데이터를 포함할 수 있다. 실시예들에서, 메타데이터는 이를테면 난이도의 요망되는 레벨, 스테이지들의 수, 경쟁자들의 수, 등과 같은 비동기 게임에 관계된 그외 다른 정보를 포함할 수 있다. 게임을 플레이하기 위한 요청에 응하여, 단계(308)에서, 프로세스(300)는 메모리에 저장될 수 있는 이전 게임들 데이터에 대응하는 게임 상호작용 데이터를 인출할 수 있다. 소프트웨어로 구현되는 매칭 시설은 플레이어에 의해 요망되는 상대의 유형에 대해 적합한 호적수들을 확인할 수 있다. 상대들의 유형들에 대응하는 가용한 정보는 게임을 플레이하기 위한 환경을 초기화하기 위한 단계(310)에서 이용될 수 있다. 환경은 요청된 요망되는 상대에 대항하여 라이브 게임을 플레이어에 제공할 수 있다.
프로세스(300)는 단계(312)에서 종료할 수 있다.
본 발명의 일실시예에서, 비동기 게임 플레이어 상대는 이전 플레이 정보로부터 선택될 수 있다. 도 11을 참조하면, 이전 게임 정보로부터 비동기 게임 플레이어 상대를 선택하기 위한 시스템들 및 방법들이 제공될 수 있다. 프로세스(400)는 402에서 시작하고 즉시 단계(404)로 이동할 수 있다. 단계(404)에서, 비동기 게임을 플레이하기 위한 요청이 수신될 수 있다. 요청은 상대들의 유형을 기술하는 기준을 포함할 수 있다. 예를 들면, 플레이어는 온라인 전투 게임에서 큰 무기를 가진 상대와는 반대로 보통의 무기를 갖춘 상대를 선택하는데 관심이 있을 수 있다. 단계(408)에서, 하나 이상의 상대들에 대한 정보가 인출되고 단계(404)에서 제공된 기준과 맞추기 위해 검토될 수 있다. 정보는 이전에 게임을 플레이한 하나 이상의 상대들을 포함할 수 있다.
단계(410)에서, 상대들 중 하나가 플레이어에 의해 제공된 기준을 만족하는 하나 이상의 상대들의 목록에서 선택될 수 있다. 선택된 상대는 플레이어에 대항하는 적수 또는 상대로서 행동할 수 있다.
단계(412)에서, 프로세스(400)가 종료할 수 있다.
본 발명의 일실시예에서, 비동기 게임은 가용하지 않은 친구들과 플레이될 수 있다. 도 12를 참조하면, 특정 시각에 가용하지 않은 친구들과 비동기 게임을 플레이하기 위한 시스템들 및 방법들이 제공될 수 있다. 프로세스(500)는 단계(502)에 시작할 수 있고, 즉시 단계(504)로 갈 수 있다. 단계(504)에서, 프로세스(500)는 플레이어에게 소셜 네트워크 인터페이스를 제공할 수 있다. 소셜 네트워크 인터페이스는 직접적으로 또는 간접적으로 플레이어에 연관된 모든 연고들을 포함하여 소셜 네트워크에 등록된 모든 사람들을 리스트할 수 있다. 또한, 소셜 네트워크 사용자 인터페이스에 연관된 추적 소프트웨어 성분은 플레이어에 링크된 친구들, 동료들 및 그외 다른 유형들의 연고들의 추적을 제공할 수 있다. 인터페이스는 사용자가 친구들, 동료들, 전문가들 및 다른 직접적인 연고들과 용이하게 상호작용 할 수 있게 한다. 예를 들면, 플레이어는 이전 상호작용 및 이들의 취미들에 기초하여 친구들을 다양한 카테고리들로 분류할 수 있다. 이 시나리오에서, 플레이어와 링크되고 온라인 게이밍을 이들의 취미로서 갖는 모든 친구들이 추적될 수 있다.
단계(508)에서, 사용자는 게임을 플레이하기 위해 친구들 중 하나를 초청할 수 있다. 예를 들면, 사용자는 자신의 취미로서 온라인 게이밍 하에 추적 및 카테고리화된 친구들의 목록으로부터 친구 X를 확인할 수 있다.
단계(510)에서, 하나 이상의 친구들이 게임을 플레이하는데 이용될 수 있는지 확인하기 위한 판정이 행해질 수 있다. 친구들 중 어느 한 친구도 사용될 수 없다면, 하나 이상의 이전 게임들의 게임내 수행 정보가 인출될 수 있다. 이 정보는 앞서 게임을 플레이하였던 하나 이상의 친구들에 관계될 수 있다. 기간은 한 시간, 하루, 일주일, 등일 수 있다.
단계(512)에서, 플레이어에 게이밍 환경이 제공될 수 있다. 게임내 수행으로부터 인출된 정보는 가상 플레이어로서 나타날 수 있다. 가상 플레이어는 소셜 네트워크 인터페이스에서 친구들 중 하나로서 나타날 수 있다. 플레이어는 이 가상 플레이어를 게임에서 자신의 친구로서 간주할 수 있다.
단계(514)에서, 프로세스(500)가 종료할 수 있다.
실시예들에서, 게임은 멀티플레이어 게임일 수 있고, 복수의 플레이어들에 대응하는 정보는 복수의 가상 플레이어들로서 사용자에게 제공될 수 있다. 이것은 가상 멀티플레이어 환경을 생성할 수 있고 각 플레이어의 이동은 친구들 각자에 연관된 이전에 저장된 게임 정보로부터 얻어질 수 있고, 이것은 온라인으로 게임을 플레이하는 다수의 친구들을 인지할 수 있는 사용자에게 실시간 온라인 멀티플레이어 게임의 환상을 제공할 수 있다.
본 발명의 일실시예에서 비동기 게임 플레이가 메모리를 사용할 수 있다. 도 13을 참조하면, 메모리를 사용하여 비동기 게임을 플레이하기 위한 시스템들 및 방법들이 제공될 수 있다. 프로세스(600)는 단계(602)에서 시작할 수 있고, 즉시 단계(604)로 이동할 수 있다. 단계(604)에서, 비동기 게임을 플레이하기 위한 요청이 수신될 수 있다. 요청은 플레이어가 관심이 있을 수 있는 상대의 유형에 관한 정보를 포함할 수 있다. 상대의 유형에 관한 정보 외에, 플레이어는 크기, 화력, 무기, 등과 같은 상대에 관한 정보를 나타내는 다양한 파라미터들을 제공할 수 있다. 예를 들면, 사용자는 전투 게임에서 빠른 이동성을 가진 작은 적수를 선택하는데 관심이 있을 수 있다.
단계(608)에서, 플레이어로부터 요청에 응하여, 게임 상호작용 데이터가 메모리로부터 인출될 수 있다. 이 게임 상호작용 데이터는 제 2 또는 제 3 플레이어와 같은 다른 플레이어들에 의해 플레이된 이전 게임들에 대응할 수 있다. 또한, 인출된 데이터는 플레이어에 의해 요망되는 상대의 유형을 포함할 수 있다. 매칭 소프트웨어 성분은 사용자에 의해 설정된 기준에 부합하는 게임 상호작용 데이터를 인출할 수 있다.
단계(610)에서, 플레이어에 게이밍 환경이 제공될 수 있다. 그러면, 플레이어는 메모리에 저장된 게임내 수행 정보 데이터에 기초하여 개시될 수 있는 상대에 대항하여 게임을 플레이할 수 있다. 상대는 실시간 게이밍의 플레이어에 인식을 제공할 수 있다.
단계(612)에서, 프로세스(600)가 종료할 수 있다.
본 발명의 일실시예에서, 메모리를 사용하여 비동기 게임 플레이에 대해 고 대역폭 게이머 매칭이 사용될 수 있다. 도 14를 참조하면, 메모리를 사용하여 고 대역폭으로 구성된 또 다른 플레이어와 비동기 게임을 플레이하기 위한 시스템들 및 방법들이 제공될 수 있다. 프로세스(700)는 단계(702)에서 시작할 수 있고, 즉시 단계(704)로 이동할 수 있다. 단계(704)에서, 비동기 게임을 플레이하기 위한 요청이 수신될 수 있다. 요청은 플레이어가 관심이 있는 상대의 유형에 관한 정보를 포함할 수 있다. 상대의 유형에 관한 정보 외에, 플레이어는 크기, 화력, 무기, 등과 같은 상대에 관한 정보를 나타내는 다양한 파라미터들을 제공할 수 있다. 예를 들면, 플레이어는 전투 게임에서 높은 화력을 갖고 있지만 특정 위치에 고정된 적수를 선택하는데 관심이 있을 수 있다.
단계(708)에서, 요청된 데이터에 기초하여 상대에 대해 탐색이 메모리에서 행해질 수 있다. 메모리는 이전에 게임들을 플레이하였고 상대 정보가 플레이어에 의해 요망되는 것과 유사하였던 복수의 플레이어들에 관한 정보를 유지할 수 있다. 매칭 소프트웨어 성분은 플레이어에 의해 요망되는 상대의 유형에 대한 기준에 부합하는 게임들에 대해 탐색할 수 있다.
단계(710)에서, 요망되는 상대가 있는 게이밍 환경이 사용자에게 제공될 수 있다. 게임에서 상대의 이동들을 조절하기 위해 매칭 소프트웨어 성분으로부터 얻어진 게이밍 정보가 사용될 수 있다. 예를 들면, 최근에 유사한 상대와 게임을 플레이하였던 플레이어의 이동들이 캡처되고, 메모리에 저장되고, 사용자의 게이밍 환경에서 이동들을 조절하기 위해 나중에 복제될 수 있다.
실시예들에서, 상대는 플레이어에 의해 행해진 이동에 응하여 신속하게 이동을 행할 수 있다. 이것은 선택된 상대가 고 대역폭 연결로 구성될 수 있기 때문에 용이해질 수 있고, 계산장치는 연결의 고 대역폭에 기인하여 동시에 플레이어의 이동을 수신할 수 있다.
단계(712)에서, 프로세스(700)가 종료할 수 있다.
본 발명의 일실시예에서, 메모리에 저장은 비동기 게임 플레이 후에 행해질 수 있다. 도 15를 참조하면, 비동기 게임이 플레이된 후에 메모리에 게임내 수행 정보를 저장하기 위한 시스템들 및 방법들이 제공될 수 있다. 프로세스(800)는 단계(802)에서 시작할 수 있고, 즉시 단계(804)로 이동할 수 있다. 단계(804)에서, 게임내 수행 정보의 추적이 개시될 수 있다. 추적은 적대적 상황들에서 행해진 이동들, 기회들에 대한 응답, 및 특정 상황들에서 행해진 이동들에 관한 정보를 포함한 하나 이상의 파라미터들에 기초하여 수행될 수 있다. 예를 들면, 플레이어 X는 게임에서 자신에게 제공된 모든 기회들을 활용할 수 있다. 또한, 플레이어 X는 불리한 상황에서 상대에게 일련의 플랜지(flanging) 공격들을 개시함으로써 응답할 수 있고 승자으로서 나타날 수 있다.
단계(808)에서, 게임내 수행 정보가 메모리에 저장될 수 있다. 메모리는 서버에 그래픽스 시설(214)에 결합될 수 있고 이 기술에 공지된 바와 같은 소프트웨어 및 하드웨어를 사용하여 액세스될 수 있다. 메모리는 서버(102) 내에 혹은 계산장치 내에 고 대역폭 버스로 구성될 수 있다. 이러한 구성으로 메모리로부터 데이터가 고속으로 액세스될 수 있다. 예를 들면, 게이밍 시설은 고속의 버스를 통해 메모리에 결합될 수 있는 프로세서, 마이크로프로세서, 등과 같은 처리 시설을 포함할 수 있다. 고속의 버스는 처리 시설과 메모리 간에 데이터의 고속 전송을 용이하게 할 수 있다.
마지막으로, 시스템 프로세스(800)은 게임내 수행 데이터를 메모리에 전송한 후에 812에서 종료할 수 있다.
실시예들에서, 메모리는 버퍼, 플립-플롭, 플래시 메모리, ROM, RAM, CD-ROM, DVD, EEPROM, PROM, 등일 수 있다. 또한, 메모리는 하나 이상의 서버들 내 회로에 연관될 수 있고, 메모리 관리는 발명의 범위 및 정신 내에서 이 기술에 공지된 바와 같은 공지된 알고리즘들을 사용하여 수행될 수 있다.
본 발명의 일실시예에서, 게임 데이터의 오버플로는 메모리로부터 데이터베이스에 전송될 수 있다. 도 16을 참조하면, 데이터베이스에 게이밍 수행을 저장하기 위한 시스템 및 방법들은 메모리가 추가의 데이터를 수용할 수 없게 된 후에 제공될 수 있다. 프로세스(900)는 단계(902)에서 시작할 수 있고, 즉시 단계(904)로 이동할 수 있다. 단계(904)에서, 게임 수행 데이터는 메모리에 저장될 수 있다. 예를 들면, 플레이어 X에 대응하는 게임 수행 데이터는 메모리에 저장될 수 있다. 유사하게, 플레이어 Y의 수행도 메모리에 저장될 수 있다. 이에 따라, 메모리에 데이터의 축적에 기인하여 메모리가 충만될 수 있다. 메모리는 고속으로 메모리에 및 이로부터 데이터의 전송을 용이하게 할 수 있는 다른 소프트웨어 및 하드웨어에 결합될 수 있다. 또한, 하드웨어 및 소프트웨어는 게임을 플레이하는 사용자들을 위한 고 대역폭을 용이하게 하기 위해 구성될 수 있다.
단계(908)에서, 프로세스(900)는 메모리 내 가용한 공간에 연관된 수행 인자를 모니터할 수 있다. 예를 들면, 메모리는 용량이 제한되어 있을 수 있고 복수의 게임내 수행 정보가 저장될 때, 메모리의 상당 부분이 점유될 수 있어 메모리의 열화를 초래할 수 있다.
단계(910)에서, 메모리의 열화 인자가 감정될 수 있다. 이어서, 메모리의 이용을 감소시키고 일부 공간을 비우기 위해서, 장시간 동안 비활성적이 되었던 하나 이상의 게임들이 확인될 수 있다. 하나 이상의 확인된 게임들은 이어 구조형 데이터베이스에 보관될 수 있다.
실시예들에서, 하나 이상의 게임들은 선입선출, 후입선출, 가장 최근에 사용된 것, 등등을 포함한 복수의 인자들에 기초하여 확인될 수 있다. 메모리 페이징을 위한 이들 및 다른 알고리즘들은 이 기술에 공지되어 있다.
단계(912)에서, 프로세스(900)가 종료할 수 있다.
본 발명의 일실시예에서, 게임 플레이 시퀀스 데이터 객체는 비동기 게임 플레이를 할 수 있게 개조될 수 있다. 도 17을 참조하면, 비동기 게임을 플레이하기 위한 게임 플레이 시퀀스 데이터 객체를 묘사하는 프로세스(1000)가 제공될 수 있다. 프로세스(1000)는 단계(1002)에서 시작하고 즉시 단계(1004)로 이동할 수 있다.
단계(1004)에서, 버퍼, 링크-목록, 그래프, 등과 같은 데이터 객체는 컴퓨터 게임을 플레아하는 사용자(제 1 플레이어)에 대한 하나 이상의 속성들을 저장하기 위해 이용될 수 있다. 하나 이상의 속성들은 시간의 고정된 간격들로 저장되거나 데이터 객체가 가용해지게 되는 대로 연속적으로 저장될 수 있다.
단계(1008)에서, 데이터 객체는 이에 저장된 데이터를 제 2 플레이어와 공유하기 위해 공유된 록(lock) 또는 이외 어떤 다른 메커니즘에 의해 프로세스(1000)에 의해 액세스될 수 있다. 프로세스(1000)는 사용자(제 1 플레이어)가 시간 T1에서 게임을 이미 플레이하였을 때, 게임을 플레이하기 위해 시간 T2(T1 < T2)에서 제 2 플레이어에 게임 플레이 시퀀스 데이터 객체에의 액세스를 제공할 수 있다. 또한, 시간 T2에서 제 2 플레이어에 의해 플레이된 게임의 하나 이상의 속성들 및/또는 이벤트들은 시간 T1에 제 1 플레이어에 의해 플레이된 게임의 하나 이상의 속성들에 기초할 수 있다. 예를 들면, 게임을 플레이하는 제 1 사용자 X는 이동들을 시간 T1에 데이터 객체에 저장할 수 있다. 이어서, 또 다른 시각 T2에서, 제 2 플레이어는 게임을 플레이할 수 있고, 게임에 연관된 이동들은 데이터 객체로부터 액세스될 수 있다. 이것은 제 1 플레이어에 의해 플레이된 게임의 하나 이상의 속성들 및 이벤트들에 기초하여 제 2 플레이어가 게임을 플레이할 수 있게 할 것이다.
단계(5010)에서, 프로세스(1000)가 종료할 수 있다.
실시예들에서, 데이터 객체는 특정 시각에 하나 이상의 플레이어들에 의해 플레이된 하나 이상의 게임 시퀀스들에 기초할 수 있다.
실시예들에서, 데이터 객체는 복수의 게임 플레이 시퀀스들에 기초하여 경향들을 반영하게 개조될 수 있다.
실시예들에서, 데이터 객체는 과거 게임 플레이 시퀀스들에 기초하여 게임 플레이의 예측에 기초하게 개조될 수 있다.
실시예들에서, 데이터 객체는 과거 게임 플레이 시퀀스들에 기초하여 게임 플레이의 시퀀스들을 시뮬레이트하기 위한 시설을 포함할 수 있다.
본 발명의 일실시예는 또 다른 플레이어 또는 다른 플레이어들의 저장된 게임들에 기초하여 플레이어에 대항하여 실시간 게임 플레이를 할 수 있게 하기 위한 판단엔진을 제공할 수 있다. 도 18을 참조하면, 프로세스(1100)는 다른 플레이어들에 의해 플레이된 저장된 게임들에 기초하여 제 1 플레이어에 대항하여 실시간 게임을 플레이하기 위한 판단엔진을 제공할 수 있다. 프로세스(1100)는 단계(1102)에서 시작할 수 있고 즉시 단계(1104)로 이동할 수 있다. 단계(1104)에서, 시간 T1에서 하나 이상의 플레이어들에 의해 플레이된 게임의 하나 이상의 시퀀스들이 액세스될 수 있다.
단계(1108)에서, 제 2 플레이어는 어떤 다른 시간 T2에서 게임을 플레이할 수 있는데, 여기에서 시간 T1 < T2 이거나 이벤트 T1은 T2 전에 일어났다. 단계(1108)에 프로세스(1100)는 제 2 플레이어에 의해 플레이된 게임에 연관된 하나 이상의 속성들 및/또는 하나 이상의 이벤트들을 판정하기 위해 판단엔진을 이용할 수 있다. 판단엔진은 시간 T2에 제 2 플레이어에 의해 플레이된 게임에서 이동들의 시퀀스를 조절할 수 있다. 또한, 판단엔진은 시간 T1에 저장된 게임 정보에 기초하여 제 2 플레이어를 위한 실시간 플레이의 인식을 생성할 수 있다.
실시예들에서, 복수의 플레이어들에 연관된 하나 이상의 시퀀스들은 새로운 이동을 생성하기 위해 판단엔진에 의해 조합될 수 있고, 이에 따라 더 높은 난이도 레벨을 생성할 수 있다. 이 기술에 공지된 바와 같이 하나 이상의 플레이어들에 연관된 이동들의 시퀀스로부터 새로운 이동을 생성하기 위해 인공지능 분야에서 공지된 여러 알고리즘들이 이용될 수 있다.
단계(5110)에서, 프로세스(1100)는 종료할 수 있다.
본 발명의 일실시예는 게임 플레이 시퀀스들을 캐시하는 것을 최적화할 수 있다. 도 19를 참조하면, 게임 플레이 시퀀스들의 최적화된 캐시를 위한 방법들 및 시스템들이 제공될 수 있다. 프로세스(1200)는 단계(1202)에서 시작할 수 있고, 즉시 단계(1204)로 이동할 수 있다. 단계(1204)에서, 프로세스(1200)는 비동기 게임을 플레이하는 동안, 하나 이상의 플레이어들에 의해 수행된 하나 이상의 게임 플레이 시퀀스들을 판정하고 및/또는 저장할 수 있다. 예를 들면, 플레이어 X는 게임을 플레이할 수 있고, 게임 플레이 시퀀스의 이동들은 메모리 또는 그외 어떤 다른 유형의 메모리에 캐시될 수 있다. 마찬가지로, 다른 플레이어 Y에 의해 행해진 이동들은 메모리에 또는 그외 어떤 다른 유형의 캐시 메커니즘에 저장될 수 있다.
단계(1208)에서, 제 1 플레이어에 연관된 저장된 게임 플레이 시퀀스는 메모리에 캐시될 수 있다. 이 캐시된 한 시퀀스의 게임들은 비동기 게이밍 환경에서 게임의 시뮬레이트를 용이하게 할 수 있다. 또한, 게임의 캐시 시퀀스는 이 기술에 공지된 다양한 알고리즘들을 사용하여 빠른 인출을 위해 최적화될 수 있다. 예를 들면, 프로세스(1200)는 게임 시퀀스의 빠른 인출을 위해 POJO 캐시, HTTP 응답 캐시, JSP 캐시, ORM 데이터 액세스 캐시, 등을 사용하여 플레이어 X의 게임 플레이 시퀀스를 메모리에 캐시할 수 있다. 또한, 플레이어의 게임 플레이 시퀀스의 캐시는 게임이 온라인으로 플레이되고 있다는 환상을 줄 수 있다.
단계(5010)에서, 프로세스(1000)가 종료할 수 있다.
실시예들에서, 캐시의 최적화는 한 집단의 플레이어들 각자에 대해 저장된 게임 시퀀스들의 이용가능성을 보증하며, 하나 이상의 게임 유형들, 각각에 대해 저장된 게임 시퀀스들의 이용가능성을 보증하며, 복수의 플레이어들에 의해 플레이된 하나 이상의 게임 유형들에 대한 저장된 게임 시퀀스들의 이용가능성을 보증하며, 게임 플레이어에 의해 상대의 이력 선택에 기초하며, 게임 플레이어의 게임 유형의 이력 선택에 기초하며, 상대 및 게임 유형의 플레이어 중 하나 이상에 의한 선택의 예측에 기초하는, 등등일 수 있다.
본 발명의 일실시예에서, 이벤트 시퀀스 객체들은 실제 플레이어 스타일, 능력, 이력, 및 유사 플레이를 에뮬레이트하게 개조된 실시간 게임 플레이를 시뮬레이트할 수 있게 한다. 도 20을 참조하면, 게임의 실시간 시뮬레이트를 위한 것이며 실제 플레이어를 에뮬레이트하게 개조된 이벤트 시퀀스 객체를 위한 방법들 및 시스템들이 제공될 수 있다. 프로세스(1300)는 단계(1302)에서 시작할 수 있고, 즉시 단계(1304)로 이동할 수 있다. 단계(1304)에서, 프로세스(1300)는 T1과 같은 특정 시각에 게임 플레이 시퀀스에 연관된 하나 이상의 속성들을 저장하기 위해 데이터 객체을 판정할 수 있다. 예를 들면, 플레이어 X는 게임을 플레이할 수 있고 게임 플레이 시퀀스의 이동들은 시간 T1에 메모리 또는 그외 어떤 다른 메모리에 저장될 수 있다.
단계(1308)에서, 제 1 플레이어에 연관된 저장된 게임 플레이 시퀀스는 시간 T2에 제 2 플레이어에 의해 게임 플레이를 용이하게 하기 위해 액세스 및/또는 공유될 수 있고, T1은 T2 전에 일어난다. 또한, 제 2 게임의 하나 이상의 속성들 및/또는 이벤트들은 제 1 게임에 기초할 수 있다. 제 1 플레이어의 게임 플레이 시퀀스에 기초한 게임의 실시간 시뮬레이트는 게임의 비동기 플레이를 위해 시간 T2에서 제 2 플레이어에 제공될 수 있다.
단계(1310)에서, 프로세스(1300)가 종료할 수 있다.
실시예들에서, 게임 플레이 시퀀스를 저장하는 객체는 플레이의 이력 시퀀스들의 반복을 용이하게 하고, 플레이의 능력의 레벨을 시뮬레이트하고, 플레이의 스타일을 시뮬레이트하는, 등등을 하게 개조될 수 있다.
본 발명의 일실시예에서, 게임 플레이 시퀀스 객체들을 강화하기 위해 확률적 시뮬레이트 엔진이 사용될 수 있다. 도 21을 참조하면, 게임 플레이 시퀀스 객체를 강화하기 위한 확률적 시뮬레이트 엔진을 위한 방법들 및 시스템들이 제공될 수 있다. 프로세스(1400)는 단계(1402)에서 시작할 수 있고 즉시 단계(1404)로 이동할 수 있다. 단계(1404)에서, 프로세스(1400)는 컴퓨터 게임들의 하나 이상의 이력 시퀀스들을 저장하기 위해 메모리 내 생성된 데이터 객체을 판정할 수 있다. 프로세스(1400)는 제 2 플레이어에 의해 비동기 게임을 플레이하기 위해 이용될 게임 플레이의 저장된 시퀀스에의 액세스를 제공할 수 있다. 예를 들면, 플레이어 X는 게임을 플레이할 수 있고 게임 플레이 시퀀스의 이동들은 컴퓨터 게임 플레이의 하나 이상의 이력 시퀀스들에 기초하여 메모리에 저장될 수 있다.
단계(1408)에서, 시뮬레이트 엔진은 데이터 객체들을 사용해서, 하나 이상의 확률적 인자들에 기초하여 제 2 플레이어를 위한 컴퓨터 게임을 예시할 수 있다. 시뮬레이트는 하나 이상의 이력 게임 플레이 시퀀스들을 추가할 수 있게 하거나 하지 않을 수 있다.
단계(1410)에서, 프로세스(1400)가 종료할 수 있다.
본 발명의 일실시예에서, 게임 플레이 시퀀스 객체들의 저장을 가진 비동기 게임 플레이 방법들 및 시스템들이 게임 유형 "x"을 위해 개조될 수 있다. 도 22를 참조하면, 하나 이상의 유형의 게임들에 개조된 게임 플레이 시퀀스 객체의 저장을 위한 방법들 및 시스템들이 제공될 수 있다. 프로세스(1500)는 단계(1502)에서 시작하고 즉시 단계(1504)로 이동할 수 있다. 단계(1504)에서, 프로세스(1500)는 특정 시각에서 하나 이상의 플레이어들에 연관된 하나 이상의 게임 플레이 시퀀스들을 저장할 수 있다.
단계(1508)에서, 제 2 플레이어가 게임을 플레이할 수 있다. 프로세스(1500)는 코드를 제공하여 제 1 플레이어의 게임 플레이 시퀀스를 예시할 수 있다. 제 1 플레이어에 대항하는 제 2 플레이어를 위한 실시간 플레이의 시뮬레이트는 게임 플레이 시퀀스에 기초하여 제공될 수 있다. 시퀀스는 특정 유형의 컴퓨터 게임에 연관될 수 있다.
단계(1510)에서, 프로세스(1500)가 종료할 수 있다.
실시예들에서, 게임의 유형은 장르/이벤트 유형일 수 있다. 장르/이벤트 유형은 액션, 메이즈, 플랫폼/레벨 호러, 슈터, 어드벤처, 레이싱, 전략, 등을 포함할 수 있다. 게임의 유형은 게임의 정황에 기초할 수 있다. 게임의 정황은 환타지/매직, 호러, 캐릭터/라이센스, 역사, 공상과학/미래파, 등을 포함할 수 있다. 플레이의 유형은 협력, 경쟁, 일인칭, 대규모 멀티플레이어, 등을 포함할 수 있다. 게임의 유형은, 콘솔(예를 들면, NINTENDO WII, PLAYSTATION 3, XBOX 360 또는 이들의 온라인 연결 채널들로서 이를테면 WIIWARE 또는 XBOX LIVE ARCADE), 웹/온라인, 모바일(예를 들면, IPHONE, PDA들, 등을 포함한), 휴대 전유 시스템들(예를 들면, NINTENDO DS/DSI 및 PSP를 포함한), 소셜 네트워크, 클라우드 게이밍, 등을 포함하는 플랫폼에 연관될 수 있다.
본 발명의 일실시예에서, 게임 플레이 경향들을 포함하는 사용자 프로파일은 비동기 게임 플레이를 위해 사용될 수 있다. 도 23을 참조하면, 사용자 프로파일에 연관된 게임 플레이 선호들을 위한 방법들 및 시스템들이 제공될 수 있다. 프로세스(1600)는 단계(1602)에서 시작하고 즉시 단계(1604)로 이동할 수 있다. 단계(1604)에서, 데이터 객체가 생성될 수 있다. 데이터 객체는 컴퓨터 게임의 하나 이상의 이력 시퀀스들을 저장할 수 있다. 프로세스(1600)는 비동기 게임의 플레이를 용이하게 하기 위해 데이터 객체에 저장된 게임 플레이 시퀀스에 액세스할 수 있다.
단계(1608)에서, 사용자에 대해 사용자 프로파일이 생성될 수 있다. 사용자 프로파일은 컴퓨터 게임 플레이의 하나 이상의 이력 시퀀스들에 기초하여 생성될 수 있다. 사용자 프로파일은 프로세스(1600)이 게임 동안, 경향들/이동들/전략들에 관하여 예측들을 할 수 있게 한다.
단계(1610)에서, 게이밍 시설은 사용자의 프로파일에 연관된 경향들을 확인하기 위해 프로세스(1600)에 의해 액세스될 수 있다. 이들 확인된 경향들은 사용자가 가상으로 존재일 때, 게임의 면들을 제어하기 위해 사용될 수 있다.
단계(1610)에서, 프로세스(1600)가 종료될 수 있다.
실시예들에서, 사용자는 라이브 사용자에게 가상으로 제시될 수 있다. 또 다른 실시예에서, 사용자는 다른 사용자에게 가상으로 제시될 수 있다. 다른 사용자는 가상 사용자일 수 있다.
다수의 프로세스 흐름도들로 본 발명이 어떻게 실시간 유사 상호작용 비동기 게이밍 경험을 할 수 있게 하는가에 연관된 여러 측면들을 예시하였으며, 이제 상호작용 비동기 복수-플레이어(이하 "멀티플레이어") 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들에 관계된 본 발명의 실시예들을 기술한다. 구체적으로, 본 발명은 이전 플레이어의 적어도 한 기록된 사전에 플레이된 게임(이하 "기록된 게임")을 통해 라이브로 현재 플레이어(이하 "현재 플레이어")와 적어도 한 이전 플레이어(이하 "이전 플레이어") 간에 라이브 상호작용 비동기 멀티플레이어 게임 플레이를 제공하기 위한 퍼즐 비디오 게임 시스템들 및 방법들에 관계될 수 있다. 비디오 게임 시스템들 및 방법들은 현재 플레이어의 라이브 게임 플레이를 위한 기간 및/또는 스킬 레벨에 대응할 수 있는 기간 및/또는 스킬 레벨을 갖는 이전 플레이어의 기록된 게임을 무작위로 선택할 수 있다.
예를 들면, 라이브 게임 플레이 동안, 퍼즐 비디오 게임 시스템들 및/또는 방법들은 현재 플레이어 및/또는 기록된 게임의 이전 플레이어가 디지털 매트릭스(이하 "매트릭스")로부터 완전한 디지털 수평 라인들(이하 "완전한 라인들")을 형성하고 클리어기 위해 디지털 블록들(이하 "블록들")을 조작, 구성 및/또는 낙하시킬 수 있는 디지털 매트릭스 내 디지털 블록들의 모임들을 제공할 수 있다. 매트릭스로부터 하나 이상의 완전한 라인들을 클리어하였을 때, 현재 플레이어 및/또는 기록된 게임의 이전 플레이어는 하나 이상의 완전한 디지털 가비지 라인들(이하 "가비지 라인들")을 다른 플레이어의 매트릭스의 바닥으로 이동 또는 보낼 수 있다. 하나 이상의 가비지 라인들에 인접하에 위치된 하나 이상의 완전한 라인들을 클리어하는 것은 매트릭스로부터 가비지 라인들을 제거하고 및/또는 다른 플레이어의 매트릭스에 하나 이상의 가비지 라인들을 추가할 수 있다. 비디오 게임 시스템들 및/또는 방법들은 현재 플레이어 및/또는 기록된 게임의 이전 플레이어가 라이브 게임 플레이 동안 더 많은 가비지 라인들을 수신하였는지 아니면 보냈는지를 나타내기 위해 디지털 슬라이딩 스케일을 제공할 수 있다.
매트릭스의 바닥에 가비지 라인들의 추가는 매트릭스 내에 하나 이상의 블록들을 매트릭스의 스카이라인 위에 위치로 밀거나 또는 이동시킬 수 있다. 하나 이상의 블록들이 스카이라인 위에 위치로 이동되었을 때, 녹아웃과 같은 제 1 게임-끝 조건이 일어날 수 있다. 매트릭스 내에 도입된 새로이 발생된 블록들의 하강 속도와 같거나 이보다 큰 속도로 매트릭스로부터 완전한 라인들이 형성되고 클리어되지 않았다면, 매트릭스 내에 록-다운된 하나 이상의 블록들이 스카이라인 위로 확대될 수 있고, 록-아웃 또는 블록-아웃과 같은 제 2 게임-끝 조건이 일어날 수 있다. 현재 플레이어와 기록된 게임의 이전 플레이어 간에 라이브 게임 플레이의 승자 및 패자를 판정하기 위해 디지털 증분 미터가 게임 끝 조건들의 하나 이상의 발생들을 기록할 수 있다.
이전 플레이어에 의해 기록된 퍼즐 비디오 게임의 기록 동안에, 하나 이상의 가비지 라인들은 이전 플레이어의 매트릭스에 보내지고 및/또는 이로부터 제거될 수 있다. 가비지 라인들을 보내는 것 및/또는 제거하는 것 및/또는 게임-끝 조건들의 발생들은 이전 플레이어의 라이브 게임 플레이에서 지연 시간량만큼 하나 이상의 지연들을 야기할 수 있다. 비디오 게임 시스템들 및/또는 방법들은 시간(이하 "총 기간")의 고정되거나 프로그램가능한 총 기간의 만료 후에 이전 플레이어의 게임 플레이를 종료하기 위한 타이머를 제공할 수 있다. 비디오 게임 시스템들 및/또는 방법들은 현재 플레이어의 라이브 게임 플레이를 위한 고정된 총 기간과 같거나 동일 수 있는 조절된 기간에 이전 플레이어의 기록된 게임이 만료하도록 지연 시간량을 보상하기 위해 타이머를 정지 또는 지연시킬 수 있다. 결국, 현재 플레이어 및 이전 플레이어의 기록된 게임의 게임 플레이는 가비지 라인들에 관계없이 및/또는 게임-끝 조건들이 이전 플레이어에 대한 기록 게임의 기록 동안 발생한다면 동일 기간 후에 만료할 수 있다.
실시예들에서, 예를 들면, 테트리스®와 같은 퍼즐 비디오 게임은 하나 이상의 플레이어들 및/또는 상대들에 의해 게이밍 장치 상에서 플레이될 수 있다. 도 24에 도시된 바와 같이, 비디오 게임의 게임 플레이 동안, 현재 플레이어는 수평 라인들 내에 어떠한 빈자리들(5022)도 없이, 하나 이상의 완전한 수평 라인들(5012)(이하 "완전한 라인들(5012)")로 블록들(5014a ~ 5014g)을 배열 및 구성하기 위해 디지털 매트릭스(5010)(이하 "매트릭스(5010)") 내에 서로 다른 하강하는 디지털 테트리미노 블록들(5014a ~ 5014g)(이하 "블록들(5014a ~ 5014g))을 회전, 이동 및 낙하할 수 있다. 하나 이상의 빈자리들(5022)을 갖는 수평 라인은 불완전한 수평 라인(5013)(이하 "불완전한 라인(5013)")으로서 확인될 수 있다. 블록들(5014a ~ 5014g)은 가능한 모양들은 7개로, 4개의 연결된 스퀘어들 또는 미노들로 구성되는 블록들이다. 일단 현재 플레이어가 테트리미노 블록을 최종 안착 위치에 놓았으면, 테트리미노 블록은 록 다운되고 이에 이어 이동 및/또는 회전될 수 없다. 또한, 현재 플레이어는 특별한 행동들, 이를테면 블록 스핀, 블록 슬롯들, 블록 트위스트들, 플로어 킥들(floor kicks) 및/또는 매트릭스(5010) 내에 위치들로 하나 이상의 테트리미노 블록들이 위치되게 하는 월 킥들(wall kicks)을 실행할 수 있다. 각 완전한 라인(5012)은 매트릭스(5010)로부터 제거 또는 클리어된다. 결국, 남은 블록들(5014a ~ 5014g)은 매트릭스(5010)의 바닥(5020) 쪽으로 하강 또는 밑으로 이동한다. 블록들(5014a ~ 5014g), 미노들 및/또는 매트릭스(5010)은 2차원 또는 3차원일 수 있다.
게이밍 장치는 디지털 디스플레이 및 입력 장치를 포함할 수 있다. 게이밍 장치는 예를 들면, 개인용 컴퓨터(이하 "PC"), 비디오 게이밍 콘솔, 휴대 게이밍 장치, 아케이트 게이밍 장치, 혼성 게이밍 장치, 등일 수 있다. 대안적으로, 게이밍 장치는 타블렛 PC, 울라트-모바일 PC, 모바일-기반 포켓 PC, 전자북 컴퓨터, 랩탑 컴퓨터, 미디어 플레이어, 휴대 미디어 장치, PDA, EDA(enterprise digital assistant), 디지털 케이블 수신기, 그래픽 계산기, GPS(Global positioning System) 수신기, 디지털 오디오 플레이어, 디지털 카메라, 손목 시계, 등일 수 있다. 또한, 게이밍 장치는 모바일 전화, 4G 모바일 장치, 3G 모바일 장치, ALL-IP 전자 장치, 정보 기기, 개인용 통신기, 등일 수도 있다.
게이밍 장치는 온라인 모드 또는 비-온라인 모드에서 비디오 게임을 플레이할 수 있는 능력을 현재 플레이어에 제공할 수 있다. 온라인 모드에서, 게이밍 장치는 현재 플레이어가 고정된 또는 무선 통신 네트워크를 통해 하나 이상의 원격 상대들에 대항하여 비디오 게임 및/또는 플레이에 연관된 정보에 액세스할 수 있도록 고정된 통신 네트워크 또는 무선 통신 네트워크에 연결될 수 있다. 비-온라인 모드에서, 게이밍 장치는 유선 또는 무선 통신 네트워크에 연결되지 않을 수도 있다. 결국, 현재 플레이어는 원격 상대들에 대항하여 플레이하지 않고, 현재 플레이어는 로컬 상대들 및/또는 비디오 게임 시스템의 인공지능에 대항하여 플레이할 수 있다.
게이밍 장치는 예를 들면, Wi-Fi 네트워크 장치, 무선 ZIGBEE 장치, ENOCEAN 장치, 울트라-광대역 장치, 무선 BLUETOOTH 장치, 무선 근거리 네트워크(이하 LAN) 액세스 장치, 무선 IrDA 장치 및/또는 등등과 같은 무선 연결 장치를 구비할 수 있다. 무선 연결 장치는 무선 통신 네트워크를 통해 하나 이상의 상대들에 대항하여 무선 게임 플레이를 용이하게 할 수 있다.
고정된 또는 무선 통신 네트워크는 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 캠퍼스 영역 네트워크(CAN), 대도시 네트워크(MAN), 광역 네트워크(WAN), 등을 포함할 수 있다. 대안적으로, 고정된 네트워크는 WWW(world wide web)을 포함할 수도 있는, 광섬유 네트워크, 이더넷, 케이블 네트워크, 영속 네트워크, 전력선 통신 네트워크, 인트라넷, 익스트라넷, 인터넷, 등을 포함할 수 있다. 또한, 무선 네트워크는 무선 MAN, 무선 LAN, 무선 PAN, Wi-Fi 네트워크, WiMAX 네트워크, 글러벌 표준 네트워크, 개인용 통신 시스템 네트워크, 페이지-기반 서비스 네트워크, 일반 패킷 라디오 서비스, 유니버설 모바일 전기전화 서비스 네트워크, 위성 서비스 네트워크, 라디오 액세스 네트워크, 등을 포함할 수 있다.
게이밍 장치는 현재 플레이어 또는 상대(들)이 매트릭스(5010) 내에 블록들(5014a ~ 5014g)의 이동들, 회전들 및 낙하들을 제어할 수 있게 하기 위해 입력 장치을 구비할 수 있다. 입력 장치는 게이밍 장치를 위한 그래픽 사용자 인터페이스를 포함할 수 있다. 대안적으로, 입력 장치는 터치 스크린, 스타일러스, 조이스틱, 키보드, 케이블 리모트, 모바일 전화, 등을 포함할 수 있다.
이 예에서, 퍼즐 비디오 게임의 일반적인 목적은 (a) 매트릭스(5010) 바로 위에 위치된 버퍼 존(도면들에 도시되지 않음) 위로 블록들(5014a ~ 5014g)이 밀리거나 이동되기 전에, 혹은 (b) 블록들(5014a ~ 5014g)이 버퍼 존 내에 위치되어 버퍼 존의 맨 위로부터 새로운 블록이 발생되지 못하게 되기 전에, 혹은 (c) 시한의 만료 전에, 많은 블록들(5014a ~ 5014g)을 제거하고 라인들(5012)을 완료하는 것이다. 상대는 하나 이상의 불완전한 라인들(5013)을 현재 플레이어의 매트릭스(5010)에 보낼 수 있고, 이것은 현재 플레이어의 매트릭스(5010)의 바닥(5020)에 추가될 수 있다. 결국, 매트릭스(5010) 또는 버퍼 존 내에 하나 이상의 블록들(5014a ~ 5014g)은 매트릭스(5010)의 맨 위로 밀려질 수 있다.
퍼즐 비디오 게임의 대안적 목적들은 (a) 소정의 시한의 만료 전에, 혹은 상대가 소정 수의 완전한 라인들(5012)을 완료하기 전에 최대 수의 완전한 라인들(5012)을 제거하는 것과, (b) 매트릭스(5010)로부터 모든 블록들(5014a ~ 5014g)을 클리어하는 것과, (c) 매트릭스(5010)로부터 바닥에 불완전한 라인(5013)을 클리어하는 것과, (d) 매트릭스(10)로부터 블록들(5014a ~ 5014g)의 소정의 량 및/또는 모임을 클리어하는 것과, (e) 디지털방식으로 애니메이트되는 캐릭터 또는 아바타가 매트릭스(5010)의 바닥(5020)에 도달할 수 있게 블록들(5014a ~ 5014g) 및/또는 미노들을 클리어하는 것과, (f) 예를 들면, 피라미드와 같은 디자인 또는 물체를 형성하기 위해 블록들(5014a ~ 5014g)을 구성하는 것과, (g) 매트릭스의 중앙 내에 코어를 드러내기 위해 구형 매트릭스(도면들에 도시되지 않음)으로부터 블록들(5014a ~ 5014g)을 클리어하는 것을 포함할 수 있다. 상대(들)은 예를 들면, 퍼즐 비디오 게임에 연관된 하나 이상의 다른 플레이어들 및/또는 인공지능일 수 있다.
매트릭스(5010)는 예를 들면, 폭 10 컬럼 x 높이 20 행, 8 컬럼 x 20 행, 8 컬럼 x 12 행, 5 컬럼 x 10 행, 혹은 4 컬럼 x 10 행의 크기들을 갖는 디지털 격자이다. 매트릭스(5010)는 매트릭스(5010)의 맨 위에 위치된 수평 스카이라인(5018)(이하 "스카이라인(18)") 및 매트릭스(5010)의 스카이라인(18)에 반대편에 위치된 바닥(5020)을 갖는다. 버퍼 존은 매트릭스(5010)로부터 분리되고 스카이라인(5018) 바로 위에 위치된다. 버퍼 존은 매트릭스(5010)와 블록 발생 및 게임-끝 조건들이 발생하는 곳 사이에 위치된다. 버퍼 존은 매트릭스(5010)의 크기들과 동일하거나 유사한 크기들을 갖는다. 버퍼 존 및/또는 버퍼 존 내에 위치된 블록들(5014a ~ 5014g)은 플레이어에 보일 수도 있고 보이지 않을 수도 있다.
새로운 발생되어 도입된 블록들(5014a ~ 5014g)은 매트릭스(5010)의 폭 내에 지점에 버퍼 존의 맨 위으로부터 하강한다. 버퍼 존 및/또는 매트릭스(10)에 도입되었을 때, 현재 하강하는 테트리미노 블록은 하강 국면 중에 있으며 이에 의해 현재 플레이어는 매트릭스(5010) 내에 현재 하강하는 테트리미노 블록을 이동, 회전 또는 낙하한다. 새로이 도입된 테트리미노 블록들(5014a ~ 5014g)은 버퍼 존 및/또는 스카이라인(18)으로부터 매트릭스(5010)의 바닥(5020)에 이를테면 라인당 3초 미만, 또는 라인당 2초 미만 혹은 라인당 1초 미만의 하강 속도로 하강 또는 밑으로 이동할 수 있다.
블록들(5014a ~ 5014g)은 도 24에 도시된 바와 같은 7개의 서로 다른 기하학적 모양들 중 하나이다. 각 테트리미노 블록은 예를 들면, I-모양 블록(5014a), T-모양 블록(5014b), L-모양 블록(5014c), J-모양 블록(5014d), S-모양 블록(5014e), Z-모양 블록(5014f) 또는 0-모양 블록(14g)과 같은 기하학적 모양의 블록이다. 선택적으로, 각 테트리미노 블록은 블록들(5014a ~ 5014g)의 기하학적 모양에 기초하여 특정 색일 수도 있다. 서로 다른 기하학적 모양들을 갖는 테트리미노 블록들(5014a ~ 5014g)은 다르게 채색될 수도 있고 및/또는 이에 디스플레이된 서로 다른 그래픽적 패턴들을 가질 수도 있다.
하나 이상의 블록들(5014a ~ 5014g)은 함께 융합되거나 및/또는 분리될 수 없는 몬스터 블록(도면들에 도시되지 않음)을 형성하기 위해 서로에 인접하여 위치될 수도 있다. 예를 들면, 블록들(5014a ~ 5014g)은 동일 색을 가질 수 있고 이들 테트리미노 블록들(5014a ~ 5014g)이 서로 인접하여 록 다운 후에 함께 융합될 수도 있다. 또한, 블록들(5014a ~ 5014g)이 같은 색을 가진 완전한 라인(5012)을 형성하는 것은 매트릭스(5010) 내에 이 색의 모든 블록들(5014a ~ 5014g)을 파괴할 수 있다.
이 예의 퍼즐 비디오 게임의 일반적인 목적에 관련하여, 현재 플레이어는 매트릭스(5010)의 폭에 걸쳐 확대되는 완전한 라인(5012)으로 블록들(5014a ~ 5014g)을 배열, 구성 및 록 다운함으로써 라인 클리어를 달성한다. 현재 플레이어는 매트릭스(5010) 내에 블록들을 록 다운하기 전에 비디오 게임의 현재 난이도 레벨에 연관된 하강 속도로 블록들(5014a ~ 5014g)이 하강하게 할 수 있다. 대안적으로, 현재 플레이어는 매트릭스(5010) 내에 하나 이상의 블록들(5014a ~ 5014g)의 하드 낙하 또는 소프트 낙하를 수행할 수 있다. 하드 낙하들에 있어서는, 블록들(5014a ~ 5014g)은 매트릭스(5010)의 바닥(5020)까지 즉시 곧바로 아래로 낙하하며 매트릭스(5010)의 바닥(5020) 상에 혹은 밑에 그리고 매트릭스(5010)의 바닥(5020) 인접하여 위치된 하나 이상의 블록들(5014a ~ 5014g)의 표면 상에 록 다운한다.
실시예들에서, 소프트 낙하들에 있어서는, 블록들(5014a ~ 5014g)은 현재 난이도 레벨에 연관된 하강 속도보다 최대 약 20배 더 빠르게 낙하하며, 바닥(5020) 및/또는 밑에 위치된 블록들(5014a ~ 5014g)의 표면 상에 자동으로 록 다운하지 않는다. 현재 플레이어에게는 블록들(5014a ~ 5014g)이 록 다운되기 전에 소프트 낙하들을 실행한 후에 블록들(5014a ~ 5014g)을 이동 및/또는 회전하기 위해 이를테면 약 0.5초 동안인 소정의 시간량이 주어질 수 있다. 비디오 게임 시스템 및/또는 방법은 테트리미노 블록이 또 다른 테트리미노 블록의 표면 또는 매트릭스(5010)의 바닥(5020) 상에 하강한 후에 현재 플레이어가 테트리미노 블록의 15 회전들까지를 수행할 수 있게 하는 무한 스핀을 제공할 수도 있다.
플레이어는 하나 이상의 블록들이 매트릭스(5010)의 스카이라인(5018) 내로 확대하기 전에 예를 들면, 약 10 또는 15 라인 클리어들과 같은 특정 수의 완전한 라인들(5012)을 클리어함으로써 더 높은 레벨을 달성할 수 있다. 비디오 게임은 하나 이상의 라인 클리어들, 하나 이상의 특별한 행동들 혹은 백-투-백(back-to-back) 라인 클리어들로 클리어된 완전한 라인들(5012)의 수에 대해 득점 및/또는 다른 보너스들을 지급할 수 있다. 비디오 게임은 현재 플레이어에 의해 달성된 득점을 보충하는 애니메이션을 제공할 수도 있다.
라인 클리어가 달성된 후에, 매트릭스(5010)로부터 클리어된 완전한 라인(5012) 위에 위치된 불완전한 라인들(5013) 및/또는 블록들(5014a ~ 5014g)은 매트릭스(5010)의 바닥(5020)을 향하여 하강하여 붕괴한다. 비디오 게임의 중력 또는 캐스케이드 특징은 블록들(5014a ~ 5014g)의 하나 이상의 미노들이 분리되게 하여 느슨한 미노들로서 하강하여 하나 이상의 빈자리들(5022)을 채워 이 밑에 하나 이상의 새로운 완전한 라인들(5012)을 형성할 수 있게 한다. 결국, 새로이 형성된 완전한 라인들(5012)은 매트릭스(5010)로부터 추가로 클리어될 수 있다. 대안적으로, 테트리미노 블록의 하나 이상의 미노들은 이 내에 미노들이 서로 분리될 수 없는 점성 미노들이기 때문에 분리될 수 없다.
게임 플레이의 난이도 레벨이 증가함에 따라, 블록들(5014a ~ 5014g)의 하강 속도는 소정의 속력들만큼 증가할 수 있다. 결국, 예를 들면, 레벨 4에 블록들(5014a ~ 5014g)의 하강 속도는 레벨 1에 블록들(5014a ~ 5014g)의 2배의 하강 속도만큼 빠를 수 있다. 이에 따라, 현재 플레이어는 하강 속도가 낮은 레벨 1에 블록들(5014a ~ 5014g)의 하강 속도에 2배만큼 빠르기 때문에 높은 레벨 4에서 블록들(5014a ~ 5014g)을 배열 및 구성하는데 더 적은 시간이 들 수 있다.
현재 플레이어가 새로이 도입된 블록들(5014a ~ 5014g)의 하강 속도와 실질적으로 동일하거나 더 큰 속도로 라인 클리어들을 달성하지 못한다면, 현재 플레이어의 게임 플레이는 게임-끝 조건이 발생하게 될 수 있다. 블록-아웃과 같은 게임-끝 조건은 매트릭스(5010) 및/또는 버퍼 존 내에 현존하는 블록들이 새로운 테트리미노 블록이 생성되거나 및/또는 매트릭스(5010) 또는 버퍼 존 안으로 도입되지 못하게 하거나 금지할 때 발생할 수 있다. 또 다른 게임 끝 조건은 테트리미노 블록의 부분이 버퍼 존 위에 록 다운되었을 때 일어나는 록-아웃을 포함한다. 또 다른 게임 끝 조건은 테트리미노 블록의 부분이 상대에 의해 매트릭스(5010)의 바닥(5020)에 추가될 수 있는 하나 이상의 불완전한 라인들(13)에 의해 위로 밀리거나 강제되었을 때 일어날 수 있는 탑-아웃(top-out)을 포함한다.
실시예들에서, 비디오 게임은 몇몇 플레이 모드 변형들을 포함할 수 있다. 예를 들면, 마라톤 모드에서, 플레이어는 게임 플레이의 예를 들면, 약 15개의 점점 더 어려워지는 레벨들에 의해 도전된다. 도전 또는 울트라 모드에서, 플레이어는 예를 들면, 10분, 3분 또는 2분과 같은 특정 기간 내에 많이 득점하거나 많은 완전한 라인들(5012)을 클리어하기 위해 도전된다. 스프린트 모드에서, 플레이어는 플레이어에 의해 가능한 가장 짧은 기간 내에 예를 들면, 40 라인들과 같은 특정 수의 라인들을 클리어하기 위해 도전된다. 협동 모드에서, 2 이상의 플레이어들은 동일 매트릭스(5010) 내에 라인 클리어들을 달성하기 위해 함께 함께 작업한다. 표적 모드에서, 플레이어는 소정의 시간량 내에 매트릭스(5010)로부터 소정의 수의 표적 블록들 또는 미노들을 클리어 해야 한다. 미션 모드에서, 플레이어는 높은 레벨을 달성하기 위해 예를 들면, J-모양의 블록으로 2개의 라인들을 클리어하는 것과 같은 미션을 완료해야 한다.
도 25 ~ 도 28에 도시된 바와 같이, 비디오 게임은 플레이어 및/또는 상대에 디스플레이될 수 있는 하나 이상의 다음 큐잉 박스들(5050a ~ 5050e)(이하 "큐잉 박스들(5050a ~ 5050e)")을 포함할 수 있다. 하나 이상의 큐잉 박스들(5050a ~ 5050e)은 생성되어 버퍼 존을 통해 매트릭스(5010) 내에 도입되는 하나 이상의 다음, 도래할 블록들(5052a ~ 5052e)(이하 "도래할 블록들(5052a ~ 5052e)")을 디스플레이한다. 큐잉 박스들(5050a ~ 5050e)는 생성되어 버퍼 존을 통해 매트릭스(10) 내에 도입될 임의의 수의 도래할 블록들을 디스플레이할 수도 있다. 큐잉 박스들(5050a ~ 5050e)는 모든 플레이어 또는 상대가 이들의 매트릭스 내에 하강하는 현재의 블록을 먼저 록 다운해야 하는 맨 위에 큐잉 박스(5050) 내 디스플레이된 다음 도래할 블록(5052a)이 매트릭스(5010) 내에 도입되도록 플레이어 및 하나 이상의 상대들에 의해 공유될 수 있다.
퍼즐 비디오 게임은 플레이어가 새로이 발생된 블록(도면들에 도시되지 않음)을 버퍼 존을 통해 매트릭스(10) 내에 도입되는 것으로부터 유지하고 저장할 수 있게 하는 유지 박스(5054)를 포함할 수 있다. 플레이어는 유지 박스(5054) 내에 유지되었던 저장된 블록을 버퍼 존을 통해 매트릭스(5010) 내에 도입하기 위해, 유지 박스(54) 내에 유지된 저장된 블록을 새로이 발생된 블록과 교환할 수 있다. 대안적으로, 플레이어는, 언제든, 유지 박스(5054) 내에 유지되었던 저장된 블록을 버퍼 존을 통해 매트릭스(5010) 내에 내놓을 수 있다.
퍼즐 비디오 게임은 매트릭스(5010) 또는 버퍼 존 내에 현재 하강하는 테트리미노 블록의 카피인, 매트릭스(5010) 내에 위치된 고스트 피스(5058)를 포함할 수 있다. 고스트 피스(5058)는 현재 하강하는 테트리미노 블록이 이의 현재 위치로부터 낙하되었다면 이것이 매트릭스(5010) 내에 놓여지게 될 곳을 플레이어에게 나타낸다. 고스트 피스(5058)는 블록 윤곽으로서 혹은 현재 하강하는 테트리미노 블록의 반투명 "고스트" 이미지로서 매트릭스(5010) 내에 나타난다. 고스트 피스(5058)는 매트릭스(5010) 또는 버퍼 존 내에 현재 하강하는 테트리미노 블록과 동일한 기하학적 모양을 갖는다.
비디오 게임의 게임 플레이를 시작하기 전에, 플레이어는 예를 들면, 다수의 플레이어들, 출발 난이도 레벨 및/또는 게임 플레이의 모드를 선택한다. 비디오 게임은 하나 이상의 난이도 레벨을 포함할 수 있다. 예를 들면, 비디오 게임은 1 내지 15 범위의 난이도 레벨들을 포함할 수 있고, 이에 의해서 난이도 레벨 1은 최소로 어려우며 난이도 레벨 15은 가장 어렵다. 임의의 수의 플레이어들 및/또는 상대들은 동시에, 개별적으로, 경쟁으로 혹은 협동하여, 비디오 게임을 플레이할 수도 있다. 큐잉 박스들(5050a ~ 5050e), 유지 박스(5054) 및 고스트 피스(5058) 특징들은 언제든 플레이어 및/또는 상대들에 의해 선택가능하거나 선택해제될 수 있다.
게임 플레이 동안에, 비디오 게임은 게이밍 장치의 디지털 디스플레이(5060)를 통해 현재 플레이어에 의해 플레이되는 현재 게임에 관한 정보를 디스플레이할 수 있다. 정보는 게임 모드, 달성된 다수의 라인 클리어들(5062), 클리어할 남은 다수의 라인들, 현재 난이도 레벨(5064), 경과된 시간, 남은 시간, 현재 점수, 높은 점수, 플레이어 이름(5068), 플레이어 랭크(5070), 등을 포함할 수 있다.
도 24에 도시된 바와 같이, 플레이어는 매트릭스(10) 또는 버퍼 존 내에 현재 하강하는 테트리미노 블록을 좌, 우 및 밑으로 이동하거나 및/또는 매트릭스(5010) 내에 현재 하강하는 테트리미노 블록을 위치시키기 위해 현재 블록을 시계방향 또는 반시계방향으로 회전시킬 수 있다. 블록의 각각의 회전은 90°간격들로 행해진다. 현재 하강하는 블록은 블록의 5 회전 포인트들을 사용하여 가능한 회전들을 우선순위화하는 디지털 회전 시스템을 통해 회전한다. 매트릭스(5010)의 벽들 및/또는 매트릭스(5010) 내 록 다운 블록들이 현재 하강하는 테트리미노 블록의 모든 5번의 회전들을 하지 못하게 한다면, 현재 하강하는 테트리미노 블록은 회전될 수 없다.
현재 하강하는 테트리미노 블록은 현재 하강하는 테트리미노 블록이 또 다른 테트리미노 블록의 표면 상에 혹은 매트릭스(5010)의 바닥(5020) 상에 놓여지게 된 후에 변경불가한 위치 내에 록 다운 될 수 있다. 플레이어는 예를 들면, 15번의 회전들과 같은 소정 량의 이동들로, 혹은 예를 들면, 블록이 록 다운된 후에 약 0.5초와 같은 소정의 시간량 동안 현재 테트리미노 블록을 회전 및/또는 이동할 수 있다.
현재 테트리미노 블록이 록 다운된 후에, 비디오 게임은 하나 이상의 완전한 라인들(12)이 매트릭스(5010) 내에 있는지 여부를 판정할 수 있다. 그러하다면, 비디오 게임 시스템은 매트릭스로부터 하나 이상의 완전한 라인들(12)을 클리어하며, 남은 블록들(5014a ~ 5014g) 및 불완전한 라인들(5013)을 밑으로 옮기며, 캐스케이드 특징으로부터 임의의 분리된 미노들을 조절하며, 추가의 새로운 완전한 라인들(5012)에 대해 매트릭스(5010)를 재검토하며, 매트릭스(5010)로부터 임의의 추가의 새로운 완전한 라인들(5012)을 클리어한다. 완전한 라인(5012)이 현재 테트리미노 블록을 록 다운함으로써 형성되지 않는다면, 비디오 게임은 새로운 블록을 생성하여 버퍼 존을 통해 매트릭스(5010) 내에 도입한다.
실시예들에서, 비디오 게임은 게임 플레이가 게임-끝 조건의 발생을 초래하였을 때 플레이어를 위한 게임 플레이를 종료할 수 있다. 게임-끝 조건은 (a) 불완전한 라인들(5013)이 매트릭스(5010)의 바닥(5020)에 추가됨으로써(탑-아웃) 블록들이 디지털 매트릭스(5010)의 버퍼 존 위로 밀리거나 강제되었을 때, (b) 전체 블록 또는 블록의 부분이 스카이라인(5018) 또는 버퍼 존 위에 록 다운되었을 때(록-아웃), (c) 새로운 블록의 포트가 발생하게 되는 위치에 록 다운된 현존의 블록에 의해 새로운 블록이 발생되지 못하게 되는(블록-아웃), 등등일 때 일 때, 일어날 수 있다. 현재 플레이어를 위한 게임 플레이의 종료시, 비디오 게임은 종료된 게임에 관계된 정보를 플레이어에 디스플레이할 수 있다.
실시예들에서, 비디오 게임의 현재 플레이어는 라이브 게임 플레이에서 비디오 게임 시스템의 상대 또는 인공지능과 대항하여 경쟁할 수 있다. 라이브 게임 플레이 동안, 현재 플레이어, 상대 및/또는 인공지능은 매트릭스(5010)로부터 완전한 라인들(5012) 및/또는 블록들(5014a ~ 5014g)을 클리어하기 위해 하나 이상의 완전한 라인들(5012)을 실시간으로 형성하기 위해서 하나 이상의 블록들(5014a ~ 5014g)을 배열, 구성 및 록 다운할 수 있다. 현재 플레이어, 상대 및/또는 인공지능은 완전한 라인들(5012)을 형성하기 위해 현재 하강하는 블록들(5014a ~ 5014g)을 이동하기 위한 실시간 또는 라이브로 판단할 수 있다. 종종, 라이브 상대는 라이브 게임 플레이에서 현재 플레이어에 대항하여 경쟁하기 위해 이용되지 못할 수도 있다. 결국, 현재 플레이어는 라이브 게임 플레이에 참여하기 위해서, 현재 플레이어보다는 열등할 수 있는 인공지능과 대항하여 경쟁해야 할 수도 있다. 그러나, 현재 플레이어는 비디오 게임 시스템의 열등한 인공지능에 대항하여 게임 플레이를 행하는 대신 상대와 대항하여 게임 플레이를 행하기를 원할 수 있다. 결국, 현재 플레이어는 인공지능 대신 라이브 상대에 대항한 게임 플레이가 가용하지 않을 수 있기 때문에 비디오 게임 시스템의 게임 플레이로부터 단념하게 될 수 있다.
실시예들에서, 본 발명은 현재 플레이어가 이전 플레이어의 기록된 게임에 대항하여 라이브 게임 플레이를 행할 수 있게 할 수 있는 비동기 멀티플레이어 게임 플레이를 제공할 수 있다. 또한, 본 발명은 이전 플레이어의 무작위로 선택된 기록된 게임에 대항한 라이브 게임 플레이에 현재 플레이어가 도전할 수 있는 비동기 멀티플레이어 게임 플레이를 제공하며, 이전 플레이어의 무작위로 선택된 기록된 게임에 대항하여 라이브 게임 플레이에 현재 플레이어가 도전할 수 있는 비동기 멀티플레이어 게임 플레이를 제공할 수 있고, 동일하거나 실질적으로 유사한 스킬 레벨에 기록된 게임에 대항한, 그리고 고정된 기간 동안 게임 플레이를 현재 플레이어에게 제공할 수 있는 비동기 멀티플레이어 게임 플레이를 제공하며, 현재 플레이어의 게임 플레이 또는 기록된 게임의 이전 플레이어에 기초하여 디지털 매트릭스 내에 하나 이상의 완전한 가비지 라인들을 추가하거나 제거할 수 있는 비동기 멀티플레이어 게임 플레이를 제공하며, 고정된 기간 후에 만료할 수 있는 기록된 게임을 생성하기 위해 게임 플레이의 기록 동안 게임 플레이에 대한 타이머를 정지 또는 지연시킬 수 있는 비동기 복수-플레이어 게임 플레이를 제공하는, 등등을 제공할 수 있다.
실시예들에서, 본 발명은 라이브 비동기 복수-플레이어 게임 플레이를 제공할 수 있다. 실시예들에서, 본 발명은 현재 플레이어와 기록된 게임의 이전 플레이어 간에 라이브 비동기 복수-플레이어 게임 플레이를 제공할 수 있다. 현재 플레이어의 게임 플레이는 스킬 레벨에 있을 수 있고 총 기간이 경과한 후에 종료할 수 있다. 현재 플레이어는 현재 플레이어의 라이브 게임 플레이에 연관된 스킬 레벨 및 총 기간에 대응할 수 있는 이전 플레이어의 기록된 게임으로부터 기록된 게임 플레이에 대항하여 경쟁할 수 있다.
퍼즐 비디오 게임의 예를 계속하면, 현재 플레이어 또는 기록된 게임의 이전 플레이어는 매트릭스로부터 완전한 라인들을 형성하여 클리어하고 및/또는 매트릭스의 바닥에 도달하기 위해 블록들을 조작, 구성 및/또는 낙하할 수 있다. 완전한 라인들을 클리어하고 및/또는 매트릭스의 바닥에 도달하였을 때, 현재 플레이어 또는 기록된 게임의 이전 플레이어는 다른 플레이어의 매트릭스의 바닥에 하나 이상의 가비지 라인들을 보내거나 추가할 수 있다. 가비지 라인들이 매트릭스의 바닥에 추가되었을 때, 현재 매트릭스 내에 블록들은 매트릭스의 스카이라인을 향하여 위쪽으로 이동 또는 밀릴 수 있다. 녹아웃, 제 1 게임-끝 조건은 가비지 라인들이 매트릭스 내의 블록들을 매트릭스의 스카이라인 위로 민다면 일어날 수 있다. 제 2 게임-끝 조건은 새로이 발생된 블록들이 매트릭스에 추가되어 스카이라인 위에서 록 다운되거나 매트릭스 내에 현존의 블록들에 의해 매트릭스 내로 진입이 차단된다면 일어날 수 있다. 가비지 라인들은 하나 이상의 완전한 라인들이 매트릭스로부터 클리어되거나, 가비지 라인들에 인접하여 위치된 하나 이상의 완전한 라인들이 현재 플레이어의 라이브 게임 플레이 또는 이전 플레이어의 기록된 게임 플레이에 의해 매트릭스로부터 클리어된다면 매트릭스로부터 제거될 수 있다.
비디오 게임 시스템 및/또는 방법들은 현재 플레이어와 라이브 비동기 게임 플레이 동안에 사용하기 위한 기록된 게임을 만들거나 또는 생성하기 위해 이전 플레이어의 라이브 게임 플레이를 기록할 수 있다. 이전 플레이어의 라이브 게임 플레이의 기록 동안에, 하나 이상의 가비지 라인들을 추가 또는 제거하는 것이 일어날 수 있고 및/또는 하나 이상의 게임-끝 조건들이 일어날 수 있다. 가비지 라인들 및/또는 게임-끝 조건들의 발생들을 추가 및/또는 제거하는 것은 지연 시간량만큼 이전 플레이어의 라이브 게임 플레이를 지연시킬 수 있다. 결국, 기록되고 있는 이전 플레이어의 라이브 게임 플레이는 지연 시간량만큼 증가될 수 있다. 비디오 게임 시스템들 및/또는 방법들은 총 기간의 만료 후에 게임 플레이를 종료하기 위한 타이머를 제공할 수 있다. 비디오 게임 시스템들 및/또는 방법들은 이전 플레이어의 기록된 게임이 조절된 기간에 만료하도록 이전 플레이어의 라이브 게임 플레이에 대한 타이머를 정지 또는 지연시킴으로써 지연 시간량을 보상할 수 있다. 이전 플레이어의 기록된 게임의 조절된 기간은 현재 플레이어의 라이브 비동기 게임 플레이에 대한 총 기간과 동일하거나 같을 수 있다.
본 발명의 잇점은 이전 플레이어의 기록된 게임에 대항한 라이브 게임 플레이에 현재 플레이어를 도전시킬 수 있는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
본 발명의 또 다른 잇점은 하나 이상의 이전 플레이어들의 하나 이상의 기록된 게임에 대해 무작위로 선택된 기록된 게임에 대항하여 현재 플레이어이 라이브 게임 플레이를 행할 수 있게 하는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
본 발명의 또 다른 잇점은 현재 플레이어가 비디오 게임 시스템의 인공지능에 대항하여 라이브 게임 플레이를 행해야 하는 것을 방지할 수 있는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
본 발명의 또 다른 잇점은 동일 스킬 레벨에서 및/또는 동일 기간 동안 기록된 게임에 대항한 라이브 게임 플레이에 현재 플레이어를 도전시킬 수 있는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
또한, 본 발명의 잇점은 현재 플레이어의 라이브 게임 플레이 또는 이전 플레이어의 기록 게임 플레이에 기초하여 하나 이상의 완전한 수평 디지털 가비지 라인들을 디지털 매트릭스의 바닥에 추가 또는 전송할 수 있는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
본 발명의 또 다른 잇점은 하나 이상의 완전한 라인들 또는 매트릭스로부터 가비지 라인들에 인접한 적어도 한 완전한 라인을 클리어함으로써 디지털 매트릭스의 바닥으로부터 하나 이상의 완전한 수평 디지털 가비지 라인들을 제거할 수 있는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
본 발명의 또 다른 잇점은 현재 플레이어 또는 이전 플레이어가 라이브 게임 플레이 동안 더 많은 디지털 가비지 라인들을 받았는지 여부를 나타내기 위한 디지털 슬라이딩 미터를 제공할 수 있는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
본 발명의 또 다른 잇점은 디지털 매트릭스 내에 디지털 블록들을 디지털 매트릭스의 스카이라인 위로 밀기 위해 디지털 가비지 라인들을 추가함으로써 녹아웃 게임-끝 조건을 범할 수 있는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
본 발명의 또 다른 잇점은 기록된 게임 플레이가 고정된 및/또는 프로그램가능한 총 기간에 종료하도록 이전 플레이어에 의해 라이브 게임 플레이에 연관된 타이머를 조절할 수 있는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
본 발명의 또 다른 잇점은 하나 이상의 디지털 가비지 라인들을 추가하거나 제거하는 것 또는 게임-끝 조건의 하나 이상의 발생들에 연관된 지연 시간량을 보상하기 위해 이전 플레이어의 라이브 게임 플레이에 대한 타이머를 정지 또는 지연시킬 수 있는 비동기 멀티플레이어 게임 플레이를 제공하기 위한 비디오 게임 시스템들 및 방법들을 제공하는 것일 수 있다.
본 발명은 이전 플레이어의 기록된 게임에 대항하여 현재 플레이어가 라이브 게임 플레이를 행할 수 있게 하는 라이브 비동기 복수-플레이어 게임 플레이를 제공할 수 있다. 비디오 게임 시스템들 및 방법들은 하나 이상의 이전 플레이어들의 일군의 기록된 게임들로부터 이전 플레이어의 기록된 게임을 무작위로 선택할 수 있다. 무작위로 선택된 기록된 게임은 현재 플레이어의 스킬 레벨과 동일하거나 실질적으로 유사한 스킬 레벨에 있을 수 있다. 또한, 무작위로 선택된 기록된 게임은 현재 플레이어의 라이브 비동기 게임 플레이를 위한 총 기간과 동일하거나 같은 조절된 기간에 종료할 수 있다.
실시예들에서, 이전 플레이어에 의한 게임 플레이는 기록된 게임에 대한 총 기간에 영향을 미칠 수 있는 라이브 게임 플레이 내 하나 이상의 지연들을 야기할 수 있다. 이전 플레이어의 게임 플레이에 의해 야기되는 하나 이상의 지연들은 지연 시간량만큼 기록된 게임에 대한 총 기간을 증가시킬 수 있다. 이전 플레이어의 게임 플레이에 연관된 타이머는 하나 이상의 지연들 및/또는 지연 시간량을 보상하기 위해 이전 플레이어의 라이브 게임 플레이의 기록 동안 지연되거나 정지될 수 있다. 하나 이상의 지연들 및/또는 지연 시간량에 대해 타이머를 보상한 후에, 기록된 게임의 조절된 기간은 현재 플레이어의 라이브 비동기 게임 플레이에 대한 총 기간과 동일하거나 같을 수 있다. 하나 이상의 미터들은 현재 플레이어와 기록된 게임의 이전 플레이어 간에 라이브 게임 플레이의 승자를 나타내기 위해 제공될 수 있다.
비디오 게임 시스템은 현재 플레이어에 의한 라이브 비동기 게임 플레이 동안 이용될 하나 이상의 이전 플레이어들의 하나 이상의 기록된 게임들을 수집 및/또는 저장할 수 있다. 비디오 게임 시스템은 상대에 대항하여 경쟁하는 이전 플레이어에 의한 라이브 게임 플레이를 기록 및/또는 저장함으로써 이전 플레이어의 기록된 게임을 생성 또는 만들 수 있다. 이전 플레이어에 대항하여 경쟁하는 상대는 라이브 플레이어, 비디오 게임 시스템의 인공지능 혹은 또 다른 이전 플레이어의 기록된 게임일 수 있다. 후자의 경우에, 본 이전 플레이어는 현재 플레이어로서 확인되거나 알려질 수 있다.
퍼즐 비디오 게임 예를 계속하면, 이전 플레이어와 상대 간에 라이브 게임 플레이 동안에, 하강하는 블록들(5014a ~ 5014g)은 비디오 게임 시스템의 입력 장치를 통해 도 24에 도시된 바와 같이 이전 플레이어 및 상대의 매트릭스 내에 조작되거나, 구성 및/또는 배열될 수 있다. 이전 플레이어 또는 상대는 매트릭스(5010)로부터 클리어되는 완전한 라인들(5012)을 형성하기 위해 하강하는 블록들(5014a ~ 5014g)을 조작, 구성 및/또는 낙하할 수 있다.
이전 플레이어와 상대 간에 라이브 게임 플레이는 이전 플레이어의 라이브 게임 플레이에 연관된 총 기간의 만료 후에 종료할 수 있다. 예를 들면, 라이브 게임 플레이에 대한 총 기간은 10분보다 크거나, 10분, 5분, 2분이거나 혹은 2분 미만일 수 있다. 이전 플레이어와 상대 간에 라이브 게임 플레이의 승자는 도 25 ~ 도 28에 도시된 바와 같이 총 기간의 만료에서 이전 플레이어 및 상대에 의해 달성된 라인 클리어들의 수에 의해 결정될 수 있다(5062). 현재 플레이어의 라이브 비동기 게임 플레이에 대한 총 기간은 이전 플레이어의 라이브 게임 플레이에 대한 총 기간과 같거나 동일할 수 있다. 본 발명은 이전 플레이어와 상대 간에 게임 플레이를 위한 기간의 특정 실시예로 제한되는 것으로 간주되지 않아야 한다.
이전 플레이어에 의한 라이브 게임 플레이 동안에, 이전 플레이어 또는 상대는 매트릭스(5010)로부터 하나 이상의 완전한 라인들(5012)을 동시에 클리어할 수 있고 및/또는 매트릭스의 바닥(5020)에 인접한 하나 이상의 완전한 라인들(5012)을 클리어함으로써 매트릭스(5010)의 바닥(5020)에 도달할 수 있다. 결국, 도 26 및 도 27에 도시된 바와 같이 하나 이상의 가비지 라인들(72)이 다른 플레이어의 매트릭스(5010)의 바닥(5020)에 추가될 수 있다. 하나 이상의 가비지 라인(5072)은 매트릭스(5010)의 폭에 걸쳐 확대하는 완전한 수평 라인일 수 있다. 하나 이상의 가비지 라인(5072)은 매트릭스(5010)의 폭에 걸쳐 어떠한 빈자리들(5022)도 갖고 있지 않을 수 있다. 매트릭스(5010)의 폭에 걸쳐 어떠한 빈자리들(5022)도 없이, 현재 하강하는 블록들(5014a ~ 5014g)은 매트릭스(5010)로부터 하나 이상의 가비지 라인들(5072)을 완전한 또는 클리어하게 배열되지 않을 수 있다. 즉, 하나 이상의 가비지 라인들(5072)은 하나 이상의 가비지 라인(5072)이 어떠한 빈자리들(5022)도 갖고 있지 않기 때문에 현재 하강하는 블록들(5014a ~ 5014g)의 하나 이상의 미노들을 하나 이상의 가비지 라인들(5072) 에 추가함으로써 매트릭스(5010)로부터 제거될 수 없다.
가비지 라인(5072)은 매트릭스(5010)의 폭에 걸쳐 확대하는 단일 수평 라인의 미노들에 의해 형성될 수 있다. 가비지 라인(5072)의 미노들은 서로 다르게 채색될 수 있고 및/또는 이 위에 디스플레이된 그래픽적인 패턴들은 블록들(5014a ~ 5014g) 상에 디스플레이된 색들 및/또는 그래픽적인 패턴들과 비교했을 때 다를 수 있다. 예를 들면, 가비지 라인(5072)의 미노들은 그레이로 채색될 수 있고, 및/또는 그 위에는 아무 그래픽적 패턴들도 디스플레이되지 않을 수 있다. 실시예들에서, 전체 가비지 라인(5072)은 매트릭스의 폭에 걸쳐 확대하는 연속된 라인일 수 있고 이에 의해 어떠한 개개의 미노들도 확인 및/또는 디스플레이되지 않는다.
현재 매트릭스(5010) 내에 블록들(5014a ~ 5014g)은 매트릭스(5010)의 바닥(5020)에 추가된 하나 이상의 가비지 라인들(5072)에 의해 매트릭스(5010)의 스카이라인(18)을 향하여 위쪽으로 이동 또는 밀릴 수 있다. 가비지 라인들(5072)은 현재 매트릭스(5010) 내에 블록들(5014a ~ 5014g)을 매트릭스(5010)의 스카이라인(5018) 위에 위치까지 밀 수 있다. 녹아웃으로서 알려진 제 1 게임-끝 조건은 매트릭스(5010) 내에 하나 이상의 블록들(5014a ~ 5014g)의 하나 이상의 미노들이 하나 이상의 가비지 라인들(5072)의 추가에 의해 매트릭스(5010)의 스카이라인(5018)위로 밀릴 수 있다면 일어날 수 있다. 결국, 제 1 게임-끝 조건은 매트릭스(5010)에 하나 이상의 가비지 라인들(5072)의 추가에 의해 범해질 수 있다. 제 1 게임-끝 조건이 일어난 후에, 제 1 게임-끝 조건이 발생하였음을 나타내기 위해 비디오 게임 시스템에 의해 디스플레이된 하나 이상의 미터들에 포인트가 추가될 수 있다. 이어서, 하나 이상의 가비지 라인들(5072)이 비디오 게임 시스템에 의해 매트릭스(5010)로부터 제거될 수 있고 이전 플레이어 또는 상대의 게임 플레이가 계속될 수 있다.
예를 들면, 상대는 도 24에 도시된 바와 같이 매트릭스(5010)로부터 2개의 완전한 라인들(5012)을 동시에 클리어할 수 있다. 대안적으로, 상대는 상대의 매트릭스(5010)의 바닥(5020)에 도달하기 위해 매트릭스(5010)의 바닥(5020)에 인접한 하나의 완전한 라인(5012)을 클리어할 수 있다. 결국, 상대는 이전 플레이어의 매트릭스에 가비지 라인(5072)을 보낼 수 있고, 매트릭스(5010)의 바닥(5020)에서 가비지 라인(5072)을 받을 수 있다. 이전 플레이어의 매트릭스(5010)의 바닥(5020)에 추가된 가비지 라인(5072)은 현재 매트릭스(5010) 내에 블록들(5014a ~ 5014g)을 이전 플레이어의 매트릭스의 스카이라인(5018)을 향하여 밀 수 있다. 매트릭스(10) 내에 하나 이상의 블록들(5014a ~ 5014g)은 가비지 라인(5072)에 의해 매트릭스(5010)의 스카이라인(5018) 위로 밀릴 수 있다. 결국, 제 1 게임-끝 조건이 가비지 라인(5072)의 추가로부터 발생할 수 있고 포인트가 상대에 대한 하나 이상의 미터들에 추가될 수 있다. 선택적으로, 비디오 게임 시스템은 이전 플레이어의 매트릭스(5010)로부터 하나 이상의 가비지 라인들(5072)을 클리어할 수 있고 이전 플레이어의 라이브 게임 플레이은 계속될 수 있다.
대안적으로, 하나 이상의 가비지 라인들(5072)은 제 1 게임-끝 조건의 발생 없이 매트릭스의 스카이라인(5018)을 향하여 블록들(5014a ~ 5014g)을 밀 수 있다. 결국, 이전 플레이어와 상대 간에 라이브 게임 플레이는 계속될 수 있고, 새로이 발생된 블록들(5014a ~ 5014g)은 매트릭스(5010)의 스카이라인(5018)으로부터 매트릭스(5010) 내에 계속하여 도입될 수 있다. 새로운 완전한 라인들(12)이 새로이 발생된 블록들(5014a ~ 5014g) 및 현재 매트릭스 내에 블록들(5014a ~ 5014g)과 함께 형성되지 않고 및/또는 매트릭스(10)로부터 클리어된다면, 매트릭스(5010) 내에 블록들(5014a ~ 5014g)은 매트릭스(5010)의 스카이라인(5018)에 도달하고 그 위에 확대할 수 있다. 결국, 록-아웃 또는 블록 아웃과 같은, 제 2 게임-끝 조건은 이전 플레이어와 상대 간에 라이브 게임 플레이 동안에 발생할 수 있다. 제 2 게임-끝 조건이 일어난 후에, 제 2 게임-끝 조건이 발생하였음을 나타내기 위해 비디오 게임 시스템에 의해 디스플레이된 하나 이상의 미터들에 포인트가 추가될 수 있다. 이어서, 하나 이상의 가비지 라인들(5072)이 비디오 게임 시스템에 의해 매트릭스(5010)로부터 제거될 수 있고 이전 플레이어 또는 상대의 게임 플레이는 계속될 수 있다.
실시예들에서, 매트릭스(5010)로부터 동시에 2 이상의 완전한 라인들(5012)을 클리어하거나 매트릭스(5010) 내에 하나 이상의 가비지 라인들(5072)에 인접한 하나 이상의 완전한 라인들(5012)을 동시에 클리어하는 것은 매트릭스(5010)로부터 하나 이상의 가비지 라인들(5072)을 제거할 수 있고 및/또는 다른 플레이어의 매트릭스에 하나 이상의 가비지 라인들(5072)을 추가할 수 있다. 결국, 이전 플레이어 및 상대는 게임 플레이 동안 하나 이상의 가비지 라인들(5072)을 보내고, 받고 및/또는 제거할 수 있다.
예를 들면, 이전 플레이어는 매트릭스(5010)로부터 3개의 완전한 라인들(5012)을 동시에 클리어할 수 있다. 결국, 이전 플레이어의 매트릭스(5010)의 바닥(5020)에 위치된 단일 가비지 라인(5072)이 매트릭스(5010)로부터 제거될 수 있다. 또 다른 예에서, 이전 플레이어는 이전 플레이어의 매트릭스(5010) 내에 2개의 가비지 라인들(5072)에 인접한 2개의 완전한 라인들(5012)을 동시에 클리어할 수 있다. 결국, 2개의 가비지 라인들(5072)이 매트릭스(5010)로부터 제거될 수 있다. 또 다른 예에서, 이전 플레이어는 현재 플레이어의 매트릭스(10)의 바닥(20)에 위치된 2개의 가비지 라인들(5072)에 인접한 3개의 완전한 라인들(5012)을 동시에 클리어할 수 있다. 결국, 2개의 가비지 라인들(5072)이 현재 플레이어의 매트릭스(5010)로부터 제거될 수 있고 하나 이상의 가비지 라인들(5072)이 상대의 매트릭스(5010)의 바닥(5020)에 추가될 수 있다.
실시예들에서, 이전 플레이어 및/또는 상대에 의한 서투른 게임 플레이는 매트릭스(5010)의 바닥(5020)에 하나 이상의 가비지 라인들(5072)이 있는 중에 제 2 게임-끝 조건이 일어나게 될 수 있다. 결국, 비디오 게임 시스템은 매트릭스(5010)로부터 하나 이상의 가비지 라인들(5072)을 클리어할 수 있고, 이전 플레이어와 상대 간에 라이브 게임 플레이는 계속될 수 있다.
이전 플레이어 및/또는 상대에 의한 서투른 게임 플레이는 매트릭스(5010) 내에 가비지 라인들(5072) 없이 제 2 게임-끝 조건이 일어나게 될 수 있다. 결국, 비디오 게임 시스템은 매트릭스(5010)로부터 하나 이상의 불완전한 라인들(5013)을 클리어할 수 있고, 이전 플레이어 및/또는 상대에 의한 라이브 게임 플레이는 계속될 수 있다. 대안적으로, 이전 플레이어 및/또는 상대에 의한 라이브 게임 플레이는 매트릭스(5010) 내에 가비지 라인들(5072) 없이 제 2 게임-끝 조건이 일어났을 때 즉시 종료될 수 있다. 결국, 이전 플레이어 및/또는 상대에 의한 라이브 게임 플레이는 비디오 게임 시스템에 의해 저장되지 않을 수 있고, 이전 플레이어 및/또는 상대에 의한 어떠한 기록된 게임 플레이이든 비디오 게임 시스템에 의해 무시될 수 있다.
비디오 게임 시스템은 도 25 ~ 도 28에 도시된 바와 같이 이전 플레이어 및/또는 상대의 라이브 게임 플레이에 연관된 적어도 한 타이머(5066)를 제공할 수 있다. 타이머(5066)는 라이브 게임 플레이 동안 경과된 시간량 또는 라이브 게임 플레이에서 남은 량을 디스플레이할 수 있다. 타이머(5066)는 이전 플레이어와 상대 간에 라이브 게임 플레이에 대한 총 기간을 디스플레이할 수 있다. 예를 들면, 타이머(5066)는 도 25에 도시된 바와 같이 라이브 게임 플레이에 대한 총 기간, 이를테면 2분을 디스플레이할 수 있다.
매트릭스(5010)에 관하여 하나 이상의 가비지 라인들(5072)을 추가 또는 제거하는 각각의 발생은 이전 플레이어 및/또는 상대의 라이브 게임 플레이를 지연 시간량만큼 지연시킬 수 있다. 또한, 제 1 또는 제 2 게임-끝 조건들의 각각의 발생 후에 하나 이상의 가비지 라인들(5072) 및/또는 불완전한 라인들(5013)을 클리어 또는 제거하는 것은 지연 시간량 만큼 라이브 게임 플레이를 지연시킬 수 있다. 지연 시간량은 추가된 혹은 매트릭스(5010)로부터 제거된 가비지 라인들(5072)의 수 또는 매트릭스(5010)로부터 클리어된 불완전한 라인들(5013)의 수에 따를 수 있다. 지연 시간량은 예를 들면, 1초미만, 혹은 1초 혹은 1 이상일 수 있다.
지연 시간량은 이전 플레이어 및 상대의 라이브 게임 플레이에 대한 실제 기간을 조절된 기간까지 증가시킬 수 있다. 결국, 조절된 기간은 라이브 게임 플레이에 대한 총 기간보다 클 수 있다. 그러나, 이전 플레이어아 상대 간에 라이브 게임 플레이가 현재 플레이어와의 라이브 비동기 게임 플레이를 위한 기록된 게임을 생성하기 위해 기록 및/또는 저장된다면, 이전 플레이어의 라이브 게임 플레이어 동안 이용된 하나 이상의 가비지 라인들(5072)은 포함되지 않을 수 있고 혹은 이전 플레이어 및/또는 상대의 기록된 게임으로부터 삭제될 수 있다. 현재 플레이어와 이전 플레이어의 기록된 게임 간에 라이브 비동기 게임 플레이는 이전 플레이어의 기록된 게임에 대한 조절된 기간이 현재 플레이어의 비동기 게임 플레이에 대한 총 기간과 같거나 동일할 것을 요구할 수 있다. 그렇지 않다면, 이전 플레이어의 기록된 게임은 현재 플레이어의 라이브 비동기 게임 플레이에 대한 총 기간의 만료 후에 끝나거나 종료할 수 있다.
지연 시간량들을 포함하지 않거나 라이브 비동기 게임 플레이에 대한 총 기간보다 큰 조절된 기간을 갖는 기록된 게임을 생성하기 위해서, 이전 플레이어의 라이브 게임 플레이에 대한 타이머(5066)는 정지 또는 지연될 수 있다. 또한, 타이머(5066)는 이전 플레이어의 게임 플레이 동안 지연들에 연관된 지연 시간량을 보상하기 위한 시간량 동안 정지 또는 지연될 수 있다. 타이머(5066)는 이전 플레이어의 라이브 게임 플레이 동안 일어는 지연들에 대한 지연 시간량과 같은 또는 동일할 수 있는 시간량동안 정지 또는 지연될 수 있다. 결국, 이전 플레이어의 라이브 게임 플레이를 위한 조절된 기간은 이전 플레이어의 라이브 게임 플레이에 대한 총 기간과 같거나 동일할 수 있다. 또한, 이전 플레이어의 기록된 게임을 위한 조절된 기간은 현재 플레이어의 라이브 비동기 게임 플레이를 위한 총 기간과 같거나 동일할 수 있다.
도 25 ~ 도 28는 본 발명에 따른 비디오 게임 시스템의 게임 장치(도면들에 도시되지 않음)를 위한 디지털 디스플레이(5060)을 도시한 것이다. 디지털 디스플레이(5060)는 현재 플레이어를 위한 제 1 매트릭스(5110a) 및 이전 플레이어의 기록된 게임을 위한 제 2 매트릭스(5110a)을 렌더링 또는 디스플레이한다. 각 제 1 매트릭스(5110a) 및 제 2 매트릭스(5110b)(이하 "매트릭스들(5110a, 5110b"))은 스카이라인(5112) 및 스카이라인(5112)에 반대측에 위치된 바닥(5114)을 갖는다. 또한, 매트릭스들(5110a, 5110b)은 큐잉 박스들(5050a ~ 5050e) 및/또는 유지 박스(5054)를 포함할 수 있다. 또한, 디지털 디스플레이(5060)는 매트릭스들(5110a, 5110b) 사이에 위치에 적어도 한 타이머(5066)를 렌더링 및/또는 디스플레이할 수 있다.
디지털 디스플레이(5060)는 제 1 우측 반분(5116a)(이하 "제 1 반분(5116a)") 및 제 2 좌측 반분(5116b)(이하 "제 2 반분(5116b)")으로 분할될 수 있다. 제 1 반분(5116a)은 현재 플레이어의 제 1 매트릭스(5110a) 및 제 1 매트릭스(5110a) 및/또는 현재 플레이어에 연관된 정보를 포함할 수 있다. 제 2 반분(5116b)은 이전 플레이어의 제 2 매트릭스(5110b) 및 제 2 매트릭스(5110b) 및/또는 이전 플레이어에 연관된 정보를 포함할 수 있다. 매트릭스들(5110a, 5110b), 현재 플레이어 및/또는 이전 플레이어에 연관된 정보는 달성된 라인 클리어들의 수(5062), 현재 난이도 레벨(5064), 플레이어 이름(5068) 및/또는 플레이어 랭크(5070) 및/또는 디지털 이미지 또는 아바타(5072)를 포함할 수 있다. 또한, 디지털 디스플레이(5060)는 현재 플레이어와 하나 이상의 이전 플레이어들의 하나 이상의 기록된 게임들 간에 비동기 게임 플레이를 나타날 수 있는 제 1 디지털 미터(5118)(이하 "제 1 미터(5118)") 및 제 2 디지털 미터(5120)(이하 "제 2 미터(5120)")를 렌더링 또는 디스플레이할 수 있다.
도 25는 현재 플레이어와 이전 플레이어 간에 라이브 비동기 게임 플레이의 시작에서 현재 플레이어의 제 1 매트릭스(5110a) 및 이전 플레이어의 제 2 매트릭스(5110b)를 도시한 것이다. 매트릭스들(5110a, 5110b), 유지 박스(5052) 및/또는 큐잉 박스들(5050a ~ 5050e)은 라이브 비동기 게임 플레이의 시작에서 비어있을 수 있다. 현재 플레이어와 이전 플레이어에 대해 달성된 완전한 라인 클리어들(5062)은 라이브 비동기 게임 플레이의 시작에서 "제로"를 나타낼 수 있다. 또한, 타이머(5066)는 현재 플레이어와 이전 플레이어 간에 라이브 비동기 게임 플레이에 대한 총 기간을 나타낼 수 있다. 예를 들면, 타이머(5066)는 라이브 비동기 게임 플레이에 대한 총 기간이 2분일 수 있음을 나타낼 수 있다.
라이브 비동기 게임 플레이를 시작하기 위해서, 비디오 게임 시스템은 데이터베이스(도면들에 도시되지 않음)로부터 이전 플레이어의 기록된 게임을 무작위로 선택하고, 인출하여 오픈할 수 있다. 비디오 게임 시스템은 기록된 게임의 이전 플레이어의 스킬 레벨 및/또는 기록된 게임의 총 기간에 기초하여 기록된 게임을 무작위로 선택할 수 있다. 선택된 기록된 게임의 이전 플레이어는 현재 플레이어의 스킬 레벨과 동일하거나 같은 스킬 레벨에서 플레이하고 있을 수 있다. 또한, 선택된 기록된 게임의 총 기간은 현재 플레이어의 라이브 비동기 게임 플레이의 총 기간과 동일하거나 같을 수 있다.
일단 라이브 비동기 게임 플레이가 개시되면, 큐잉 박스들(5050a ~ 5050e)는 도 26에 도시된 바와 같이 후속하여 매트릭스들(5110a, 5110b)에 도입될 수 있는 블록들(5014a ~ 5014g)로 채워질 수 있다. 새로이 발생된 블록들(5014a ~ 5014g)은 매트릭스(5110a)에 도입될 수 있고, 현재 플레이어는 비디오 게임 시스템의 입력 장치를 통해 매트릭스 내에 블록들(5014a ~ 5014g)을 조작, 구성 및/또는 배열할 수 있다. 동시에, 비디오 게임 시스템은 현재 플레이어의 라이브 게임 플레이에 대항하여 실시간으로 이전 플레이어의 기록된 게임을 플레이 또는 수행한다. 고스트 피스들(5058)은 현재 플레이어에 의해 선택되어진 것일 수 있고 매트릭스들(5110a, 5110b)에 디스플레이될 수 있다.
현재 플레이어 및 기록된 게임의 이전 플레이어는 매트릭스들(5110a, 5110b) 내에 블록들(5014a ~ 5014g)로 완전한 라인들(5012)을 형성하여 이를 클리어할 수 있다. 현재 및 이전 플레이어들은 하나 이상의 가비지 라인들(5072)을 보내고, 받고 및/또는 제거할 수 있다. 예를 들면, 기록된 게임의 이전 플레이어는 도 26에 도시된 바와 같이 3개의 완전한 라인들(5012)을 클리어하고 현재 플레이어의 제 1 매트릭스(5110a)에 가비지 라인(5072)을 보냈을 수 있다. 또 다른 예에서, 도 27에 도시된 바와 같이 현재 플레이어는 12개의 완전한 라인들(5012)을 클리어하고, 제 1 매트릭스(5110a)로부터 임의의 가비지 라인들을 제거하고, 및/또는 이전 플레이어의 제 2 매트릭스(5110b)에 적어도 2개의 가비지 라인들을 보냈을 수 있다.
제 1 미터(5118)는 도 25 ~ 도 28에 도시된 바와 같이 현재 플레이어의 제 1 매트릭스(5110a)에 인접한 제 1 끝(5122) 및 이전 플레이어의 제 2 매트릭스(5110b)에 인접한 제 2 끝(5124)을 가진 수평 슬라이딩 미터일 수 있다. 제 1 미터(5118)는 도 25에 도시된 바와 같이 현재 플레이어의 제 1 매트릭스(5110a)와 이전 플레이어의 기록된 게임의 제 2 매트릭스(5110b) 간에 비동기 게임 플레이의 시작에서 중립 위치(5128)에 위치될 수 있는 마커(5126)를 가질 수 있다. 중립 위치(5128)는 제 1 끝(5122)과 제 2 끝(5124) 사이에 똑같이 위치될 수 있다. 현재 플레이어와 이전 플레이어 간에 라이브 비동기 게임 플레이 동안, 하나 이상의 가비지 라인들(5072)이 각각 현재 플레이어 및 이전 플레이어의 매트릭스들(5110a, 5110b)에 의해 수신될 수 있다. 매트릭스들(5110a, 5110b) 중 하나에 의해 수신된 각 가비지 라인(5072)에 대해, 마커(5126)는 제 1 끝(5122) 또는 가비지 라인(5072)을 수신하는 매트릭스에 인접한 제 2 끝(5124) 쪽으로 증분을 이동 또는 슬라이드할 수 있다.
제 1 미터(5118)는 중립 위치와 제 1 끝(5122) 또는 제 2 끝(5124) 사이에 다수의 증분들을 가질 수 있다. 증분들의 수는 예를 들면, 5 또는 그 미만의 증분들, 10 증분들, 15 증분들, 혹은 그 이상의 증분들일 수 있다. 그러나, 제 1 미터의 증분들의 수는 매트릭스들(5110a, 5110b) 내에 행들의 수보다 클 수 없다. 본 발명은 제 1 미터(5118)에 대한 증분들의 수의 특정 실시예로 제한되는 것으로 간주되지 않아야 한다.
예를 들면, 한 가비지 라인들(5072)이 현재 플레이어의 제 1 매트릭스(5110a) 내에 있을 수 있다. 결국, 도 26에 도시된 바와 같이 제 1 미터(5118)의 마커(5126)는 제 1 미터(5118)의 제 1 끝(5122)에 한 증분 더 가깝게 위치될 수 있다. 또 다른 예에서, 2개의 가비지 라인들(5072)이 이전 플레이어의 제 2 매트릭스(5110b) 내에 있을 수 있다. 결국, 도 27에 도시된 바와 같이 제 1 미터(5118)의 마커(5126)는 제 1 미터(5118)의 제 2 끝(5124)에 2개의 증분 더 가깝게 위치될 수 있다.
현재 플레이어와 이전 플레이어 간에 라이브 비동기 게임 플레이는 현재 사용자의 라이브 게임 플레이에 연관된 총 기간이 경과되었거나 만료될 때까지 계속될 수 있다. 매트릭스들(5110a, 5110b)에서, 현재 플레이어 및/또는 이전 플레이어 각각은 (a) 하나 이상의 완전한 라인들(5012)을 형성하여 클리어하고, (b) 하나 이상의 가비지 라인들(5072)을 수신하고, 및/또는 (c) 하나 이상의 가비지 라인들(5072)을 제거할 수 있다. 결국, 달성된 완전한 라인 클리어들(5062)은 증가할 수 있고, 제 1 미터(5118)의 마커(5126)는 제 1 끝(5122) 및/또는 제 2 끝(5124) 쪽으로 혹은 이로부터 멀리 하나 이상의 증분들을 이동할 수 있다. 제 3 게임-끝 조건는 라이브 비동기 게임 플레이 동안 제 1 미터의 마커(5126)가 제 1 끝(5122)에 또는 제 1 미터(5118)의 제 2 끝(5124)에 도달한다면 일어날 수 있다. 제 3 게임-끝 조건이 일어난 후에, 제 3 게임-끝 조건이 일어났음을 나타내기 위해 비디오 게임 시스템에 의해 디스플레이된 하나 이상의 미터들에 포인트가 추가될 수 있다. 이어서, 하나 이상의 가비지 라인들(5072)이 비디오 게임 시스템에 의해 매트릭스(5010)로부터 제거될 수 있고, 현재 플레이어와 이전 플레이어의 기록된 게임 플레이 간에 라이브 게임 플레이는 계속될 수 있다.
총 기간의 만료에서, 현재 플레이어와 이전 플레이어 간에 라이브 비동기 게임 플레이가 종료된다. 비디오 게임 시스템은 현재 플레이어와 이전 플레이어에 의한 라이브 게임 플레이의 결과들을 분석할 수 있다. 비디오 게임 시스템은 현재 플레이어와 이전 플레이어에 대해 달성된 클리어된 라인들(5062)을 비교할 수 있다. 또한, 비디오 게임 시스템은 제 1 미터의 제 1 끝(5122) 및 제 2 끝(5124)에 관하여 마커(5126)의 최종 위치를 분석할 수 있다.
비디오 게임 시스템은 현재 플레이어와 이전 플레이어에 대해 달성된 클리어된 라인들(5062)의 비교에 기초하여 라이브 비동기 게임 플레이의 승자를 판정할 수 있다. 대안적으로, 비디오 게임 시스템은 제 1 미터(5118)의 마커(5126)의 최종 위치에 기초하여 승자를 판정할 수 있다. 승자가 판정된 후에, 비디오 게임 시스템은 도 28에 도시된 바와 같이 매트릭스들(5110a, 5110b) 내에 및/또는 디지털 디스플레이(5060) 상에 라이브 비동기 게임 플레이의 결과들에 연관된 하나 이상의 인디케이터들을 디스플레이할 수 있다.
예를 들면, 현재 플레이어는 도 28에 도시된 바와 같이 제 1 매트릭스(5110a) 내에 어떠한 가비지 라인들(5072)도 없이 14개의 완전한 라인들(5012)을 클리어하였을 수 있으며, 이전 플레이어는 제 2 매트릭스(5110b) 내에 하나의 가비지 라인(5072)을 가진 16 완전한 라인들(5012)을 클리어하였을 수 있다. 그러나, 제 1 미터(5118)의 마커(5126)는 제 2 끝(5124)에 가까이 있는 최종 위치에 위치된다. 비디오 게임 시스템은 제 1 미터(5118)의 마커(5126)의 최종 위치에 기초하여 현재 플레이어가 승자이고 이전 플레이어 가 패자인 것으로 판정할 수 있다. 또한, 비디오 게임 시스템은 제 1 매트릭스(5110a) 내 승자 인디케이터(5130)("YOU WIN!"을 디스플레이할 수 있다)를 디스플레이할 수 있고, 제 2 매트릭스 내에 패자 인디케이터(5132)("YOU LOSE!"을 디스플레이할 수 있다)을 디스플레이하고 및/또는 마커(5126)가 승자 및 패자의 판정에서 주요 인자일 수 있음을 나타내기 위해 마커(5126) 주위에 하일라이터(5134)를 디스플레이할 수도 있다.
대안적으로, 비디오 게임 시스템은 달성된 완전한 라인 클리어들의 수(5062)에 기초하고 제 1 미터(5118)의 마커(5126)의 최종 위치에는 기초하지 않고 이전 플레이어를 승자로서 판정할 수 있다. 결국, 하일라이터(5134)는 클리어된 완전한 라인들(5012)의 수가 승자의 판정에서 인자일 수 있음을 나타내기 위해 달성된 16 완전한 라인 클리어들(62) 주위에 위치될 수도 있다.
제 2 미터(5120)는 비디오 게임 시스템의 디지털 디스플레이(5060) 상에 디스플레이될 수 있다. 제 2 미터(5120)는 최대 증분 수를 갖는 증분 미터일 수 있다. 제 2 미터에 대한 최대 증분 수는 예를 들면, 3, 5 또는 5 이상의 임의의 수일 수 있다. 본 발명은 제 2 미터(5120)에 대한 증분 수에 대한 특정 실시예로 제한되는 것으로서 간주되지 않아야 한다.
현재 플레이어에 의한 라이브 비동기 게임 플레이의 시작에서, 제 2 미터(5120)는 비어있거나 채워진 증분들의 어느 것도 갖고 있지 않을 수 있다. 현재 플레이어가 이전 플레이어의 기록된 게임에 대항한 라이브 비동기 게임 플레이의 승자일 때 제 2 미터(5120)의 한 증분이 추가되거나 채워질 수 있다. 또한, 기록된 게임의 이전 플레이어가 제 1 게임-끝 조건, 제 2 게임-끝 조건 또는 제 3 게임-끝 조건(이하 "제 1, 제 2 또는 제 3 게임-끝 조건")를 범하였을 때 제 2 미터(5120)의 1 증분가 추가되거나 채워질 수 있다. 현재 플레이어의 스킬 레벨은 제 2 미터(5120)의 모든 증분들이 채워진 후에 1 스킬 레벨을 증가된 스킬 레벨로 증가시킬 수 있다. 또한, 이어 현재 플레이어에 의한 라이브 비동기 게임 플레이는 증가된 스킬 레벨로 계속할 수 있다.
예를 들면, 제 2 미터(5120)는 도 26 ~ 도 28에 도시된 바와 같이 5 증분들을 가질 수 있고 5 증분들 중 4개가 채워질 수 있다. 현재 플레이어의 현재 스킬 레벨은 예를 들면, 스킬 레벨 5일 수 있고, 이전 플레이어들의 기록된 게임들의 스킬 레벨은 스킬 레벨 5일 수 있다. 현재 플레이어는 이전 플레이어의 기록된 게임에 대항하여 또 다른 라이브 비동기 게임 플레이를 승리할 수 있고, 제 2 미터(5120)가 완전히 채워질 수 있다. 결국, 현재 플레이어의 스킬 레벨은 스킬 레벨 5에서 스킬 레벨 6로 증가될 수 있고 이어서 현재 플레이어에 의한 라이브 비동기 게임 플레이는 스킬 레벨 6에서 계속될 수 있다. 따라서, 현재 플레이어에 의한 라이브 비동기 게임 플레이는 스킬 레벨 6에서 하나 이상의 이전 플레이어들의 하나 이상의 기록된 게임들에 대항하여 행해질 수 있다.
한편, 제 2 미터(5120)의 1 증분은 현재 플레이어가 이전 플레이어와 대항하여 라이브 비동기 게임 플레이에서 패하거나 이전 플레이어와의 라이브 비동기 게임 플레이 동안 제 1, 제 2 또는 제 3 게임-끝 조건을 범하였을 때 제거되거나 비워질 수 있다. 제 2 미터(5120)가 비어있고 현재 플레이어가 이전 플레이어와 대항하여 라이브 비동기 게임 플레이에서 패하거나 제 1, 제 2 또는 제 3 게임-끝 조건을 범한다면, 현재 플레이어의 스킬 레벨은 하나 이상의 스킬 레벨들을 감소된 스킬 레벨로 감소할 수 있다. 이어서, 현재 플레이어의 라이브 비동기 게임 플레이는 감소된 스킬 레벨에서 계속될 수 있다.
예를 들면, 현재 플레이어의 현재 스킬 레벨은 스킬 레벨 5일 수 있고, 제 2 미터(5120)는 완전히 비어 있을 수 있다. 현재 플레이어는 스킬 레벨 5에 이전 플레이어의 기록된 게임과 대항한 라이브 비동기 게임 플레이에서 패할 수 있다. 결국, 현재 플레이어의 스킬 레벨은 스킬 레벨 4로 감소될 수 있고 이어 현재 플레이어에 의한 라이브 비동기 게임 플레이는 스킬 레벨 4에 이전 플레이어들의 기록된 게임들과 대항하여 계속할 수 있다. 이어, 현재 플레이어는 제 2 미터(5120)를 채우고 스킬 레벨 4에서 스킬 레벨 5로 증가할 수 있고 이어 이에 의해 현재 플레이어에 의한 라이브 비동기 게임 플레이는 스킬 레벨 5에 이전 플레이어들의 기록된 게임들에 대항하여 계속할 수 있다.
동기 유형 게이밍의 몇가지 잇점들은 게임 경험이 풍부해질 수 있고 즉각적인 피드백에 의해 가능해지므로, 소셜화가 더 쉬울 수 있다는 것일 수 있다. 결점은 모든 플레이어가 대조되어야 하고, 플레이어들이 균형이 맞아야 하고, 네트워킹 문제들이 전혀 없어야 하고 어느 누구도 게임 중간에 나가지 않아야 하는, 등등 때문에 동기 게임 플레이를 구성하는 것이 어렵다는 것일 수 있다. 혼성 비동기/동기 게임 플레이 아키텍처는 플레이어들이 다른 사람들과 대항하여 동기 및 비동기로, 즉 이들이 오프라인이든 온라인이든, 플레이할 수 있게 한다. 예를 들면, 플레이어는 다른 라이브 또는 비-라이브 상대들 모두와 대항하여 자신의 라이브 친구들과 플레이 할 수 있다. 혼성 게임은 하나 이상의 라이브 플레이어들과 함께 오프라인 모드에서 하나 이상의 플레이어들이 게임을 플레이할 수 있게 하며, 이에 따라 게임이 라이브 플레이어들만이 연루되어 온라인으로 플레이되고 있다는 환상을 생성할 수 있다.
이제 도 29를 참조하면, 본 발명의 어떤 실시예들에서, 게임 플레이는 비동기 및 동기 플레이 둘 다의 혼성일 수 있다. 이하 혼성 게임 플레이라고 하는, 혼성 비동기 및 동기 게임 플레이는 비동기 게임 서버(102) 및 동기 게임 서버(132)를 포함하는 아키텍처에 의해 가능해질 수 있다. 도 1에서와 같이, 혼성 게임 플레이 아키텍처(2900)는 클라이언트(104), 비동기 게임 서버(102), 인터넷(124), 제3자 환경(108), 및 사용자를 포함한다. 또한, 혼성 아키텍처는 동기 게임 서버(132)를 포함한다. 비동기 게임 서버(102)는 이전 게임 사용자들(예를 들면본원에 다른 어떤 곳에 기술된 바와 같은)로부터 수집된 게임 데이터로부터 사용자를 위한 실시간 게임 경험을 생성하기 위한 비동기 알고리즘을 구현하는 서버-측 비동기 게임 시설(110A)을 포함한다. 이 실시예에서, 동기 게임 서버(132)는 혼성 게임 플레이를 제공하기 위해 비동기 게임 서버(102)와 조합하여 동작한다. 동기 게임 서버(132)에 집중하면, 서버(132)는, 1) 게임 동안 다른 라이브 플레이어에 라이브 플레이어들의 게임 플레이를 중계하며, 2) 이전 게임 사용자들로부터 수집된 게임 데이터를 비동기 게임 서버(102)에서 동기 게임 데이터베이스(138) 혹은 메모리(140)에 다운로드하고 이 데이터를 라이브 플레이어들에 제공하며; 3) 이전 게임 데이터를 유효화하는 것과 게임 플레이의 동기성 중 하나 이상에 의해 사용자를 위한 실시간 게임 경험을 생성하기 위한 동기 알고리즘을 구현하는 서버-측 동기 게임 시설(134)을 포함할 수 있다. 어떤 실시예들에서, 혼성 게임 플레이는 동기 게임 서버(132) 없이도 가능할 수 있다. 이들 실시예들에서, 라이브 및 비-라이브 플레이어의 게임 플레이는 예를 들면 이하 더 상세히 논의될 피어-투-피어(P2P) 연결 또는 '중계' 서버를 수반한 다른 네트워크 구성을 통해 중계될 수 있다. 어떤 실시예들에서, 클라이언트는 도 38에 도시된 바와 같이 씬 클라이언트(3802)일 수 있다. 혼성 게임 플레이 방법들이 여기에서 더욱 기술될 것이다. 실시예들에서, 혼성 게임 플레이는 이를테면 셀 전화, 스마트 전화, PDA, 휴대 게임 및/또는 애플리케이션 플램폼(예를 들면 iPod Touch, iPad, iPhone, Android, HP Tablet, DS, 3DS, PSP, PSP2, 등), 등과 같은 휴대 컴퓨터 시설들 상에 구현될 수 있고, 플레이어는 재연을 인터넷에 연결된 동안 클라이언트에 다운로드하고, 다른 플레이어와 대항하여 플레이할 때 이를테면 또 다른 휴대 계산 시설에의 P2P 무선 연결을 통해 혼성 모드에서 플레이할 수 있다. 즉, 실시예들에서, 혼성 게임 플레이는 휴대 P2P일 수 있기 때문에 서버에, 또는 전혀 인터넷에 연결없이 휴대 계산 시설 상에서 이행될 수 있다. 서버로부터 게임들을 다운로드하는 대신 클라이언트로부터 이전에 다운로드된 데이터 보관으로부터 게임들을 가져올 것이기 때문에 인터넷에의 어떠한 연결도 요구되지지 않을 수 있다.
도 30을 참조하면, 혼성 게임 플레이를 위한 프로세스 흐름이 제공된다. 프로세스(3000)는 이전-게임 메뉴가 참조될 수 있는 단계(3002)에서 시작할 수 있다. 처리 흐름은 온라인 친구가 라이브 사용자에 의해 초청되었는지를 테스트가 판정하는 논리 블록(3022)으로 계속될 수 있다. 테스트 결과가 긍정이면, 처리 흐름은 친구가 초청을 수락하였는지를 또 다른 테스트가 판정할 수 있는 논리 블록(3024)으로 계속될 수 있다. 블록(3024)에서 테스트 결과가 긍정이거나, 논리 블록(3022)에서 테스트 결과가 부정이고 이전 게임 데이터 또는 비동기 기록의 사용이 표시된다면(3004), 처리 흐름은 추가의 친구들이 초청되었는지를 또 다른 테스트가 판정할 수 있는 논리 블록(3008)으로 계속된다. 결과가 긍정이거나 논리 블록(3024)에서 테스트 결과가 부정이면, 처리 흐름은 논리 블록(3002)에서 제 1 단계로 되돌아간다. 논리 블록(3008)에서 테스트의 결과가 부정이고 라이브 사용자에 의해 어떠한 더 이상의 친구들도 초청되지 않았다면, 혼성 게임 플레이가 논리 블록(3010)에서 개시되거나 맵이 논리 블록(3012)에서 설정될 수 있다. 맵이 논리 블록(3012)에서 설정되면, 처리 흐름은 친구가 공유된 맵 또는 이들의 자신의 맵을 업데이트할 수 있는 논리 블록(3014)으로 계속될 수 있다. 논리 블록들(3010 또는 3012)로부터, 처리 흐름은 혼성 게임 플레이가 시작할 수 있는 논리 블록(3018)으로 계속될 수 있다. 이어서, 처리 흐름은 게임이 종료하는 논리 블록(3020)으로 계속되고, 이어서 처리 흐름은 논리 블록(3002)으로 되돌아간다.
도 30a를 참조하여, 혼성 게임 플레이를 위한 프로세스 흐름이 제공된다. 프로세스(3030)는 이전-게임 메뉴가 참조될 수 있는 단계(3032)에서 시작할 수 있다. 처리 흐름은 테스트가 온라인 친구가 라이브 사용자에 의해 초청되었는지를 판정할 수 있는 논리 블록(3034)로 계속될 수 있다. 테스트 결과가 긍정이면, 처리 흐름은 대기 기간가 개시될 수 있는 논리 블록(3038)으로 계속될 수 있다. 테스트 결과가 부정이면, 처리 흐름은 논리 블록(3042)으로 진행하여 비동기 게임 플레이 기록이 인출되어 초청한 사용자와 대항하여 상대로서 플레이하기 위해 사용될 수 있다. 논리 블록(3038)의 대기 기간부터 논리 블록(3040)으로 계속하여, 테스트는 초청된 친구가 합류되었는를 판정할 수 있다. 테스트가 부정이면, 프로세스 흐름은 논리 블록(3042)으로 진행하여 비동기 게임 플레이 기록이 초청한 플레이어와 대항한 플레이에서 사용된다. 테스트가 긍정이면, 처리 흐름은 논리 블록(3044)으로 가서 또 다른 온라인 친구가 초청될 것인지를 판정하기 위해 테스트가 행해진다. 이 동일한 논리 블록으로의 흐름은 논리 블록(3042)으로부터 행해지는 것에 유의한다. 테스트가 긍정이면, 또 다른 온라인 친구가 초청된 경우로서, 처리 흐름은 새로이 초청된 게스트에 대한 대기 기간이 개시되는 논리 블록(3038)으로 루프 백 한다. 테스트가 부정이면, 프로세스 흐름은 게임 플레이가 실행되는 논리 블록(3048)으로 진행한다. 게임의 완료시, 프로세스 흐름은 이전-게임 메뉴가 다시 제공되는 논리 블록(3032)으로 간한다.
도 31을 참조하면, 게임 플레이의 실시예(3100)는 혼성 방법 A(3102)을 설명한다. 혼성 방법 A(3102)는 게임 플레이가 시작하기 전에 라이브 플레이어 클라이언트(104A) 및 임의의 라이브 플레이어 클라이언트들(104B, 104C, 104D, 104E 및/또는 104F)에 의해 비동기 게임 서버(102)로부터 비-라이브 플레이어들을 위한 이전 게임 데이터가 다운로드되는 서버-클라이언트 모델을 수반한다. 도 31에서, 104A는 라이브 플레이어 클라이언트이며, 104B, 104C, 104D, 104E 및 104F 중 어느 하나 또는 모두는 라이브 플레이어 클라이언트들일 수도 있다. 대안적으로, 104B, 104C, 104D, 104E 및 104F 중 어느 하나 또는 모두는 클라이언트(104A)의 라이브 플레이어 사용자에 의해 외견상 라이브인 것으로서 인지되는 비동기 게임 플레이 기록들일 수도 있을 것이다. 동기 게임 서버(132)는 게임 동안 모든 라이브 플레이어들의 게임 플레이를 다른 라이브 플레이어들에 중계한다. 각 라이브 플레이어 클라이언트는 게임에서 가상 플레이어(들)(게임 플레이 기록들)을 표현하기 위해 사용될 이전 게임 플레이 데이터를 소유한다. 이 실시예에서, 각 라이브 플레이어 클라이언트는 비동기 기록들에 저장된 이전 게임 플레이 데이터를 처리하고 게이밍 인터페이스에서 가상 플레이어를 나타내는 능력을 갖는다. 즉, 이 실시예에서, 각 클라이언트는 게임에서 외견상 라이브 참가자를 나타내기 위해 이전 게임 플레이 데이터를 처리할 수 있다. 일단 게임이 시작되면, 동기 서버는 라이브 참가자들이 서로 플레이할 수 있게 동기화된 게임 데이터로 라이브 게이밍 참가자들에 서비스하고 조정할 수 있다. 동시에, 클라이언트들은 각 클라이언트가 보고 있고 라이브 참가자들 뿐만 아니라 가상 참가자들과 대항하여 플레이하고 있게 가상 참가자들의 이전 게임 플레이 데이터를 처리하고 있다. 동기 게임 서버(132)는 임의의 라이브 플레이어 클라이언트들(104) 및 104B, 104C, 104D, 104E 및/또는 104F 중 어느 것이 올바른 게임을 다운로드함을 확실히 한다. 이 방법(3102)에서, 라이브 플레이어들보다 더 많은 비-라이브 플레이어들이 있을 때 레이턴시 문제들이 감소될 수 있다. 대안적 실시예로서, 피어-투-피어 네트워크는 동기 서버가 라이브 게임 플레이 데이터를 서비스하고 있을 때에도 라이브 게임 플레이어들 간에 라이브 게임 플레이를 용이하게 하기 위해 사용될 수 있다. 예를 들면, 동기 서버는 한 라이브 참가자(예를 들면 호스트)와 상호작용할 수 있고, 호스트는 피어-투-피어 네트워크를 통해 라이브 게임 플레이 데이터를 다른 참가자들에 보낼 수 있다.
도 32를 참조하면, 게임 플레이의 실시예(3200)는 혼성 방법 B(3202)를 설명한다. 혼성 방법 B(3202)는 호스트(3210)만이 모든 비-라이브 플레이어들을 위한 비동기 게임 서버(102)로부터 이전 게임 데이터를 다운로드하는 서버-클라이언트 모델을 수반한다. 실시예들에서, 게임에서는 단지 한 호스트만이 있을 수 있다. 동기 게임 서버(132)는 게임 동안 라이브 플레이어들의 게임 플레이를 다른 라이브 플레이어 클라이언트들(104A ~ 104E)에 중계할 수 있다. 실시예들에서, 동기 게임 서버(132)는 호스트(3210)가 이전 게임 데이터를 임의의라이브 플레이어 클라이언트들(104A ~ 104F)과 공유할 수 있게 한다. 이전 게임 데이터는 동시에 공유되거나, 혹은 이를테면 시간 순서로, 게임 플레이의 순서에 의해, 등등과 같이 필요로 될 때마다 공유될 수 있다. 동기 서버는 어떤 실시예들에서, 라이브 참가자들 간에 라이브 플레이를 서비스하고 조정하거나 중계할 수 있다. 동기 서버가 라이브 게임을 서비스하고 조정하고 있는 동안, 호스트는 클라이언트들이 데이터를 처리하여 게이밍 사용자 인터페이스에서 가상 참가자의 표현을 형성할 수 있게 클라이언트들에 이전 게임 플레이 정보를 보내고 있을 수 있다. 호스트는 이전 게임 플레이 데이터(버켓들로부터의 비동기 게임 플레이 기록들)을 다른 클라이언트들에 피어-투-피어 네트워크를 통해서, 동기 서버(프로세스의 이 부분에서 서버가 라우팅 및 검증 책무들 갖고 있지만 데이터를 처리할 책무는 갖고 있지 않은 '패스스루(pass through) 서버'로서 취급될 수 있는)을 통해서, 또는 그외 어떤 다른 서버를 통해서, 등등을 통해 보낼 수 있다. 다른 실시예에서, 호스트는 라이브 및 가상 게임들을 서비스하고 조정하기 위한 책무를 맡을 수 있다. 이 경우에, 호스트는 라이브 플레이어들을 위한 새로운 게임을 실행할 능력을 가질 것이다. 라이브 및 가상 표현들을 위한 데이터는 위에 기술된 바와 같이 네트워크들을 통할 수도 있을 것이다(즉, 피어-투-피어, 패스스루 서버, 등). 이 방법(3202)에서, 네트워크 레이턴시 문제들에 의해 야기될 수 있는 게임 플레이의 비동기(mis-syncing)는 최소화될 수 있다. 또한, 시작 프로세스는 호스트(3210)만이 이전 게임 데이터를 다운로드할 필요가 있기 때문에 더 빠를 수 있다.
도 33을 참조하면, 게임 플레이의 실시예(3300)은 혼성 방법 C(3302)을 설명한다. 혼성 방법 C(3302)은 동기 게임 서버(132)가 게임 플레이가 시작하기 전에 비동기 게임 서버(102)로부터 이전 게임 데이터를 수신하는 서버-클라이언트 모델을 수반한다. 동기 게임 서버(132)는 게임 동안 라이브 플레이어들의 게임 플레이를 어떤 다른 라이브 플레이어 클라이언트들(104A, 104B, 104C, 104D, 104E 및/또는 104F)에 중계할 수 있다. 또한, 동기 게임 서버(132)는 이전 게임 데이터를 직접 라이브 플레이어 클라이언트들(104A, 104B, 104C, 104D, 104E 및/또는 104F)에 전달할 수도 있다. 이 방법(3302)에서, 동기 게임 서버(132)는 패킷들의 흐름에 대해 더 제어할 수 있지만 서버측에 더 많은 처리 및 메모리 로드를 요구할 수 있다.
도 34를 참조하면, 게임 플레이의 실시예(3400)는 혼성 방법 D(3402)을 설명한다. 혼성 방법 D(3402)은 호스트 라이브 플레이어(3410)가 게임 플레이의 시작에 앞서 비동기 게임 서버(102)로부터 비-라이브 플레이어들의 이전 게임 데이터를 다운로드하는 서버-클라이언트 모델을 수반한다. 호스트는 가상 참가자들(비동기 게임 플레이 기록들)을 형성하기 위해 이전 게임 플레이 데이터 뿐만 아니라 라이브 참가자들에 라이브 게임 플레이를 처리하고, 서비스하고 제어하게 개조될 수 있다. 라이브 및 비-라이브 플레이어의 게임 플레이는 호스트(3410)와의 피어-투-피어 또는 다른 네트워크 토폴로지를 통해 임의의 라이브 플레이어 클라이언트들(104A, 104B, 104C, 104D 및/또는 104E)에 중계될 수 있다. 실시예들에서, 단지 한 호스트만이 있을 수 있다. 이 방법(3402)에서, 네트워크 레이턴시 문제들에 의해 야기될 수 있는 게임 플레이의 비동기(mis-syncing)는 최소화될 수 있다.
이제 도 35를 참조하면, 혼성 게임 플레이 사용자 인터페이스(3500)의 실시예가 도시되었다. 사용자 인터페이스(3500)에서, 다른 게임 참가자들(3508, 3510, 3512)에 관계된 정보와 함께, 사용자의 게임 스크린(3504)이 도시되었다. 사용자들의 정황은 정황 바(3502)에 보여질 수 있다. 보여진 정황은 온라인, 오프라인, 비지, 아이들, 등일 수 있다. 실시예들에서, 사용자가 실시간 게임에 참가할 수 있는 상태에 있다면, 초청 버튼이 이들의 프로파일 화상의 맨 위에 나타날 수 있다. 초청 버튼을 누르는 것은 도 36에서처럼 하나 이상의 초청 스크린들이 팝업하게 할 수 있다. 예를 들면, 초청을 하였던 사용자는 이들이 초청된 사용자로부터 응답을 기다리고 있음을 나타내는 초청 스크린(3602) 팝업을 가질 수 있다. 초청 스크린(3602)은 초청자가 응답을 얼마나 오래동안 기다리고 있었는지를 나타내는 타이머를 포함할 수 있다. 초청된 사용자는 초청이 누구로부터 온 것인가의 표시, 초청이 얼마나 오래 동안 계류되고 있었는지의 표시, 초청을 수락 또는 거절하기 위한 버튼 또는 그외 어떤 다른 수단, 등 중 하나 이상을 포함하여 팝업하는 초청 스크린(3604)을 가질 수 있다. 사용자가 초청을 수락한다면, 게임은 혼성 게임 플레이 모드로 천이할 수 있다.
이제 도 37을 참조하면, 혼성 게임 플레이 사용자 인터페이스(3700)의 실시예가 도시되었다. 일단 혼성 모드에 있으면, 도 35의 정황 바(3502)는 채탱 영역(3702)을 갖게 전환할 수 있다. 실시예들에서, 라이브 마크는 초청된 라이브 플레이어들을 나타내는 아이콘들의 맨 위에 나타날 수 있다. 실시예들에서, 호스트 마크는 호스트를 나타내는 아이콘 상에 나타날 수 있다. 실시예들에서, 호스트는 게임 플레이 설정들을 변경하고 또한 게임을 시작하는 권한을 가질 수 있다. 이스케이프(escape) 또는 'p'를 누르는 것은 게임을 일시정지시키거나 사용자가 제어들을 검토/편집할 수 있게 한다. 중지 버튼을 누르는 것은 혼성 모드에서 나오게 할 수 있다. 실시예에서, 라이브 플레이어들은 모든 플레이어들이 라이브 플레이어들이 될 때까지 계속하여 룸 내에 초청될 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초하여 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있다. 즉, 본 발명의 온라인 게임은 실시간 '라이브' 플레이어들과 실시간으로 플레이하고 있지 않은 외견상 라이브 플레이어들과의 조합 또는 혼성을 제공할 수 있다. 외견상 라이브 플레이어들의 게임들은 라이브 플레이어들에게 라이브인 것으로 보이게 본 발명에 의해 발생될 수 있고, 실제로 실시간으로 현재 플레이하는데 이용될 수 없는 플레이하기 위해 초청되는 플레이어들의 이전 플레이에 기초하여 본 발명에 의해 생성된다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계. X 라이브 플레이어들은 Y 외견상 라이브 플레이어들에 대항하여 플레이할 수 있다. X가 1보다 크다면, X 라이브 플레이어들은 서로 대항하여 플레이할 수 있고 아울러 이들은 또한 실제로는 비동기 게임 플레이 기록들(이들의 원래의 포맷의 혹은 수정된)인 Y 외견상 라이브 플레이어와도 대항하여 플레이한다. X 및 Y의 크기에 내재하는 제한은 없다. 즉, 이를테면 1 라이브 플레이어 및 2 비동기 플레이어들; 2 라이브 플레이어들 및 2 비동기 플레이어들; 1 라이브 플레이어 및 10 비동기 플레이어들; 5 라이브 플레이어들 및 1 비동기 플레이어, 등과 같이 라이브 플레이어들과 외견상 라이브 비동기 플레이어들과의 임의의 조합이 지원될 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초한 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있고, 게임 기록들은 게임 플레이에 앞서 모든 라이브 플레이어들에 의해 다운로드될 수 있다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 위해 이용될 수 있고 라이브 동기 게임 플레이에 합류하기를 원하는지를 판정하는 단계; 제 1 게스트 참가자가 이용될 수 없거나 합류하기를 원하지 않는다면, 제 1 게스트 참가자를 위해 이전 게임 플레이 데이터가 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 1 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 이전 게임 플레이 데이터에 기초하여 외견상 라이브 제 1 게스트 참가자 둘 다에 대항하여 플레이할 수 있는, 단계; 및 게임 플레이의 시작에 앞서 제 1 게스트 참가자의 이전 게임 플레이 데이터를 활성적 참가자 및 라이브 제 1 게스트 참가자의 클라이언트 계산 시설에 다운로드하는 단계. 실시예들에서, 이어서 제 1 게스트 참가자는 라이브 동기 게임 플레이에 합류하기도 결정하고 활성적 참가자에 통지할 수 있다. 이어서, 활성적 참가자는 비동기 게임 플레이를 중지하고 라이브 동기 게임 플레이를 개시할 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초하여 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있고, 게임 기록들은 게임 플레이에 앞서 모든 라이브 플레이어들에 의해 다운로드될 수 있다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 및 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계; 및 게임 플레이의 시작에 앞서 제 2 게스트 참가자의 이전 게임 플레이 데이터를 활성적 참가자 및 라이브 제 1 게스트 참가자의 클라이언트 계산 시설에 다운로드하는 단계. 실시예들에서, 게임 서버는 활성적 참가자 및 라이브 제 1 게스트 참가자에게 게임 플레이를 중계할 수 있으며, 중계는 추가의 라이브 게스트 참가자들이 플레이하기 위해 초청될 때 더 짧아진 게임 레이턴시를 제공할 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초하여 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있고, 게임 기록들은 게임 플레이에 앞서 호스트 플레이어에 의해 다운로드될 수 있다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 및 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계; 및 게임 플레이의 시작에 앞서 제 2 게스트 참가자의 이전 게임 플레이 데이터를 활성적 참가자의 클라이언트 계산 시설에 다운로드하는 단계. 실시예들에서, 게임 서버는 활성적 참가자 및 라이브 제 1 게스트 참가자에게 게임 플레이를 중계할 수 있으며, 중계는 네트워크 레이턴시에 기인한 게임 플레이어들 간에 개선된 동기화를 제공할 수 있다. 활성적 참가자에게만 다운로드하는 것은 게임 플레이에 대한 시작 시간을 증가시킬 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초하여 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있고, 게임 기록들은 게임 플레이에 앞서 동기 서버에 의해 다운로드될 수 있다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계; 및 게임 플레이의 시작에 앞서 제 2 게스트 참가자의 이전 게임 플레이 데이터를 동기 서버 계산 시설에 다운로드하는 단계. 실시예들에서, 동기 서버 계산 시설은 게임 플레이를 활성적 참가자 및 라이브 제 1 게스트 참가자에 중계할 수 있다.
실시예들에서, 본 발명은 부분적으로 이전 게임 플레이에 기초하여 혼성 동기(즉, 라이브)-비동기(즉, 시뮬레이트 라이브, 또는 외견상 라이브) 게임 플레이를 제공할 수 있으며, 게임 기록들은 게임 플레이에 앞서 호스트 플레이어에 의해 다운로드될 수 있고, 게임 플레이는 호스트 플레이어로부터 라이브 플레이어들에게 피어-투-피어로 제공될 수 있다. 실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 적어도 제 1 게스트 참가자 및 제 2 게스트 참가자에게의 초청을 포함하는, 단계; 요청에 응하여, 제 1 게스트 참가자가 라이브 동기 게임 플레이를 하기 위해 이용될 수 있다는 표시를 수신하는 단계; 요청에 응하여, 이전 게임 플레이 데이터가 제 2 게스트 참가자를 위해 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 제 2 게스트 참가자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; 요청에 더욱 응하여, 혼성 동기-비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 라이브 제 1 게스트 참가자 및 이전 게임 플레이 데이터에 기초한 외견상 라이브 제 2 게스트 참가자 둘 다에 대항하여 동시에 플레이할 수 있는 것인, 단계; 및 게임 플레이의 시작에 앞서 제 2 게스트 참가자의 이전 게임 플레이 데이터를 활성적 참가자의 클라이언트 계산 시설에 다운로드하는 단계로서, 호스트는 게임 플레이를 피어-투-피어로 라이브 제 1 게스트 참가자에게 중계하는, 단계. 실시예들에서, 중계는 네트워크 레이턴시에 기인한 게임 플레이어들 간에 개선된 동기화를 제공할 수 있다.
실시예들에서, 본 발명은 이를테면 본원에 기술된 바와 같은 비동기 게이밍을 위해 사전에 기록된 게임 플레이의 스트리밍을 제공할 수 있다. 스트리밍은 스트리밍이 없으면 플레이어는 이들이 게임을 시작할 수 있기 전에 다운로드할 사전에 기록된 게임 플레이를 기다려야 할 수 있기 때문에, 게임을 개시할 때 플레이어에 대한 대기 시간을 감소시킬 수 있다. 예를 들면, 플레이어가 룸에 합류할 때, 본원에 기술된 바와 같이, 이를테면 혼성 플레이에서, 호스트가 게임을 시작할 수 있기 전에 몇초가 있다. 그러나, 재연들이 스트리밍된다면, 대기 요건은 최소화될 것이며, 이에 따라 혼성 게임과 같은 게임의 액세스가능성을 증가시킬 것이다. 실시예들에서, 스트리밍된 데이터는 캡슐레이트(capsulate)될 수 있고, 이 캡슐레이트는 이를테면 보안을 위해서, 혹은 대역폭을 저장하거나, 트래픽을 감소시키는 등을 위해 압축되거나, 엔코딩되거나, 암호화되는, 등이 될 수 있다.
실시예들에서, 다음의 단계들을 포함하는 게이밍 방법이 제공될 수 있다: (a) 게임 개시 요청을 수신하였을 때, 컴퓨터 생성 게임 환경을 복수-플레이어 게임 외양에 제공하는 단계; (b) 적어도 부분적으로 라이브 플레이어와 시뮬레이트 플레이어 간에 게임간 양방향 상호작용에 기인하여, 라이브 플레이어의 관점에서, 시뮬레이트 상대가 라이브 상대인 것으로 보이게, 다른 사용자의 이전 게임 플레이 데이터에 기초하여 시뮬레이트 상대를, 컴퓨터 생성 환경 내에서, 제공하는 단계. 실시예들에서, 게임 개시 요청은 라이브 개시 참가자에 의해 행해질 수 있고, 시뮬레이트 상대는 라이브 개시 참가자에 의해 명시된 제 2 사용자에 기초한다. 제 2 사용자는 이용가능성 인디케이터에 기초하여 라이브 플레이어로서 합류하지 못할 수도 있다. 이용가능성 인디케이터는 친구 목록과 연관지어 제공될 수도 있다. 친구 목록은 제3자 웹사이트 상에 있을 수 있다. 친구 목록은 제3자 게임 웹사이트 상에 있을 수 있다. 친구 목록은 제3자 소셜 네트워킹 웹사이트로부터 도출될 수도 있다. 친구 목록은 제3자 소셜 네트워킹 애플리케이션으로부터 도출될 수도 있다. 게임 개시 요청은 라이브 개시 참가자에 의해서, 그리고 라이브 개시 참가자에 의해 게임에 합류하라고 요청받았지만 타임아웃 기간에 기초하여 이용될 수 없는 것으로 판정된 제 2 사용자에 기초하여 시뮬레이트 상대에 의해 행해질 수 있다. 타임아웃 기간은 합류하라고 요청받은 제 2 사용자와 관련이 있을 수 있다.
실시예들에서, 게임 개시 요청을 수신하였을 때, 컴퓨터 생성 게임 환경을 복수-플레이어 게임 외양에 제공하며, 적어도 부분적으로 라이브 플레이어와 시뮬레이트 플레이어 간에 게임간 양방향 상호작용에 기인하여, 라이브 플레이어의 관점에서, 시뮬레이트 상대가 라이브 상대인 것으로 보이게, 다른 사용자의 이전 게임 플레이 데이터에 기초하여 시뮬레이트 상대를 컴퓨터 생성 환경 내에서 제공하는 컴퓨터 게임 시설을 포함하는, 게이밍 시스템이 제공될 수 있다. 게임 개시 요청은 라이브 개시 참가자에 의해 행해질 수 있고, 시뮬레이트 상대는 라이브 개시 참가자에 의해 명시된 제 2 사용자에 기초한다. 제 2 사용자는 이용가능성 인디케이터에 기초하여 라이브 플레이어로서 합류하지 못할 수도 있다. 이용가능성 인디케이터는 친구 목록과 연관지어 제공될 수도 있다. 친구 목록은 제3자 웹사이트, 제3자 애플리케이션, 및 제3자 게임 웹-사이트 중 적어도 하나 상에 있을 수 있다. 친구 목록은 제3자 소셜 네트워킹 웹사이트 및 제3자 소셜 네트워킹 애플리케이션 중 적어도 하나로부터 도출될 수도 있다. 게임 개시 요청은 라이브 개시 참가자에 의해서, 그리고 라이브 개시 참가자에 의해 게임에 합류하라고 요청받았지만 타임아웃 기간에 기초하여 이용될 수 없는 것으로 판정된 제 2 사용자에 기초하여 시뮬레이트 상대에 의해 행해질 수 있다. 타임아웃 기간은 합류하라고 요청받은 제 2 사용자와 관련이 있을 수 있다.
실시예들에서, 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현된 컴퓨터 프로그램 제품이 제공될 수 있다: (a) 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계; (b) 요청에 응하여, 이전 게임 플레이 데이터가 인출되게 하는 단계로서, 이전 게임 플레이 데이터는 다른 사용자의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; (c) 요청에 더욱 응하여, 비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 이전 게임 플레이 데이터에 기초하여 외견상 라이브 참가자와 대항하여 플레이하며 이와 상호작용할 수 있는 것인, 단계.
실시예들에서, 다음의 단계들을 포함하는 게이밍 방법이 제공될 수 있다: (a) 라이브 개시 참가자로부터 게임 개시 요청을 수신하였을 때, 라이브 개시 참가자가 게임을 플레이하고 적어도 한 추가의 참가자를 게임에 합류하게 초청할 수 있는 컴퓨터 생성 복수-플레이어 게임 환경을 제공하는 단계; (b) 라이브 참가자로부터 제 2 참가자 초청을 수신한 것에 응하여, 게임에 합류할 것을 제 2 라이브 참가자 에 요청하는 단계; 및 (c) 제 2 참가자 초청에 이어, 게임을 시작하기에 앞서 게임에 합류하기 위한 제 2 라이브 참가자의 수락을 수신하기 위한 대기 기간을 제공하는 단계로서, (i) 제 2 라이브 참가자로부터 수락이 대기 기간 내에 수신된다면, 라이브 개시 참가자 및 제 2 라이브 참가자는 복수-플레이어 게임 환경에서 활성적 라이브 참가자들이 될 것이며, (ii) 제 2 라이브 참가자의 수락이 대기 기간 내에 수신되지 않는다면, 적어도 부분적으로 라이브 개시 참가자와 시뮬레이트 참가자 간에 게임간 양방향 상호작용에 기인하여, 라이브 개시 참가자의 관점에서, 시뮬레이트 참가자가 라이브 참가자인 것으로 보이게, 이전 게임 플레이 데이터에 기초하여 제 2 시뮬레이트 참가자에게 복수-플레이어 게임 환경에서 라이브 개시 참가자가 제공될 것인, 단계. 실시예들에서, 대기 기간는 사전에 결정될 수 있다. 대기 기간는 가변적일 수 있다. 대기 기간는 동적으로 조절가능할 수 있다. 대기 기간는 라이브 개시 참가자에 의해 명시될 수 있다. 대기 기간는 라이브 개시 참가자에 의해 조기에 종료될 수 있다. 시뮬레이트 제 2 참가자는 초청된 제 2 라이브 참가자의 이전 게임 플레이 데이터에 기초할 수 있다. 또한, 라이브 개시 참가자는 제 3 참가자를 게임에 합류하게 초청할 수 있다. 제 3 참가자는 초청을 수락하고 라이브 참가자로서 게임에 합류할 수 있다. 그러면, 라이브 개시 참가자는 제 2 및 제 3 라이브 참가자들과 함께 게임을 플레이할 수 있다. 라이브 개시 참가자는 제 2 시뮬레이트 참가자 및 제 3 라이브 참가자와 함께 게임을 플레이할 수 있다. 제 3 참가자의 수락은 제 3 참가자 수락에 대한 대기 기간 이내가 아닐 수 있고, 시뮬레이트 제 3 참가자는 제 3 참가자로서 사용될 수 있다. 시뮬레이트 제 3 참가자는 초청된 제 3 라이브 참가자의 이전 게임 플레이 데이터에 기초할 수 있다. 라이브 개시 참가자는 제 2 라이브 참가자 및 시뮬레이트 제 3 참가자와 함께 게임을 플레이할 수 있다. 라이브 개시 참가자는 제 2 시뮬레이트 참가자 및 시뮬레이트 제 3 참가자와 함께 게임을 플레이할 수 있다. 또한, 라이브 개시 참가자는 하나 이상의 추가의 참가자들을 게임에 합류하게 초청할 수 있다. 하나 이상의 추가의 참가자들은 초청을 수락하고 라이브 참가자들로서 게임에 합류할 수 있다. 라이브 개시 참가자는 제 2 및 하나 이상의 추가의 라이브 참가자들과 함께 게임을 플레이할 수 있다. 라이브 개시 참가자는 제 2 시뮬레이트 참가자 및 하나 이상의 추가의 라이브 참가자들과 함께 게임을 플레이할 수 있다.
실시예들에서, 게이밍 시스템은 라이브 개시 참가자로부터 게임 개시 요청을 수신하였을 때, 라이브 개시 참가자가 게임을 플레이하고 적어도 한 추가의 참가자를 게임에 합류하게 초청할 수 있는 컴퓨터 생성 복수-플레이어 게임 환경을 제공하며; 라이브 참가자로부터 제 2 참가자 초청을 수신한 것에 응하여, 게임에 합류할 것을 제 2 라이브 참가자에게 요청하며; 제 2 참가자 초청에 이어, 게임을 시작하기에 앞서 게임에 합류하기 위한 제 2 라이브 참가자의 수락을 수신하기 위한 대기 기간을 제공하는 것으로서, (i) 제 2 라이브 참가자로부터 수락이 대기 기간 내에 수신된다면, 라이브 개시 참가자 및 제 2 라이브 참가자는 복수-플레이어 게임 환경에서 활성적 라이브 참가자들이 될 것이며, (ii) 제 2 라이브 참가자의 수락이 대기 기간 내에 수신되지 않는다면, 적어도 부분적으로 라이브 개시 참가자와 시뮬레이트 참가자 간에 게임간 양방향 상호작용에 기인하여, 라이브 개시 참가자의 관점에서, 시뮬레이트 참가자가 라이브 참가자인 것으로 보이게, 이전 게임 플레이 데이터에 기초하여 제 2 시뮬레이트 참가자에게 복수-플레이어 게임 환경에서 라이브 개시 참가자가 제공될 것인, 컴퓨터 게임 시설을 포함할 수 있다.
실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: (a) 라이브 개시 참가자로부터 게임 개시 요청을 수신하였을 때, 라이브 개시 참가자가 게임을 플레이하고 적어도 한 추가의 참가자를 게임에 합류하게 초청할 수 있는 컴퓨터 생성 복수-플레이어 게임 환경을 제공하는 단계; (b) 라이브 참가자로부터 제 2 참가자 초청을 수신한 것에 응하여, 게임에 합류할 것을 제 2 라이브 참가자에 요청하는 단계; (c) 제 2 참가자 초청에 이어, 게임을 시작하기에 앞서 게임에 합류하기 위한 제 2 라이브 참가자의 수락를 수신하기 위한 대기 기간을 제공하는 단계로서, (i) 제 2 라이브 참가자로부터 수락이 대기 기간 내에 수신된다면, 라이브 개시 참가자 및 제 2 라이브 참가자는 복수-플레이어 게임 환경에서 활성적 라이브 참가자들이 될 것이며, (ii) 제 2 라이브 참가자의 수락이 대기 기간 내에 수신되지 않는다면, 적어도 부분적으로 라이브 개시 참가자와 시뮬레이트 참가자 간에 게임간 양방향 상호작용에 기인하여, 라이브 개시 참가자의 관점에서, 시뮬레이트 참가자가 라이브 참가자인 것으로 보이게, 이전 게임 플레이 데이터에 기초하여 제 2 시뮬레이트 참가자에게 복수-플레이어 게임 환경에서 라이브 개시 참가자가 제공될 것인, 단계.
실시예들에서, 컴퓨터 게임을 서비스하는 방법은 (a) 서버로부터 액세스될 수 있는 2개의 개별적 저장 시설들을 제공하는 단계로서, 제 1 저장 시설은 최근에 생성된 게임 플레이 데이터의 저장을 위한 고속 응덥 탐색가능 메모리를 포함하며, 제 2 저장 시설은 게임 플레이 데이터의 장기간 저장을 위한 구조형 데이터베이스를 포함하며, 제 1 메모리는 제 2 메모리보다 실질적으로 빠른 데이터 탐색 및 데이터 인출 속도를 갖는 것인, 단계; (b) 요망되는 상대 속성을 기술하는 게임 플레이 요청을 라이브 게이밍 참가자로부터 서버에서 수신하는 단계; (c) 게임 플레이 요청에 응하여, 적합한 상대에 대응하는 이전 게임 플레이 데이터를 확인하기 위해, 요망되는 상대 속성에 기초하여, 제 1 메모리를 탐색하는 단계; 및 (d) 라이브 게이밍 참가자가 외견상 라이브 상대와 대항하여 플레이하며 이 상대와 양방향 상호작용들을 가질 수 있는 복수-플레이어 게임 환경을 제공하는 단계로서, 외견상 라이브 상대의 상호작용은 적합한 상대에 대응하는 이전 게임 플레이 데이터에 기초하는 것인, 단계를 포함할 수 있다. 실시예들에서, 요망되는 상대 속성은 제3자 웹사이트, 등으로부터 수집된 정보로부터 판정되는, 명시된 개인, 스킬 레벨, 나이, 성별, 지리적 위치일 수 있다. 제3자 웹사이트는 소셜 네트워킹 웹사이트일 수 있다. 요망되는 상대 속성은 제3자 애플리케이션으로부터 도출된 정보로부터 판정될 수 있다. 제3자 웹사이트는 소셜 네트워킹 애플리케이션일 수 있다.
실시예들에서, 서버로부터 액세스될 수 있는 2개의 개별적인 저장 시설들을 가진 컴퓨터 게임 시설을 포함하는, 컴퓨터 게임을 서비스하는 시스템이 제공될 수 있으며, 제 1 저장 시설은 최근에 생성된 게임 플레이 데이터의 저장을 위한 고속 응답 탐색가능 메모리를 포함하며, 제 2 저장 시설은 게임 플레이 데이터의 장기간 저장을 위한 구조형 데이터베이스를 포함하며, 제 1 메모리는 제 2 메모리보다 실질적으로 빠른 데이터 탐색 및 데이터 인출 속도를 가지며; 서버는 요망되는 상대 속성을 기술하는 게임 플레이 요청을 라이브 게이밍 참가자로부터 수신하며; 게임 플레이 요청에 응하여, 적합한 상대에 대응하는 이전 게임 플레이 데이터를 확인하기 위해, 요망되는 상대 속성에 기초하여, 제 1 메모리를 탐색하며; 라이브 게이밍 참가자가 외견상 라이브 상대와 대항하여 플레이하며 이 상대와 양방향 상호작용들을 가질 수 있는 복수-플레이어 게임 환경을 제공하는 것으로, 외견상 라이브 상대의 상호작용은 적합한 상대에 대응하는 이전 게임 플레이 데이터에 기초한다. 실시예들에서, 요망되는 상대 속성은 제3자 웹사이트, 등으로부터 수집된 정보로부터 판정되는, 명시된 개인, 스킬 레벨, 나이, 성별, 지리적 위치일 수 있다. 제3자 웹사이트는 소셜 네트워킹 웹사이트일 수 있다. 요망되는 상대 속성은 제3자 애플리케이션로부터 도출된 정보로부터 판정될 수 있다. 제3자 웹사이트는 소셜 네트워킹 애플리케이션일 수 있다.
실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: (a) 활성적 참가자로부터 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 요망되는 상대에 관계된 요망되는 상대 정보를 포함하는 것인, 단계; (b) 요청에 응하여, 게임 플레이 데이터가 인출되게 하는 단계로서, 게임 플레이 데이터는 요망되는 상대 정보에 의해 확인된 요건들들 만족하는 게임 플레이어의 이전 게임 플레이에 응하여 저장되어 있는 것인, 단계; (c) 메모리는 액세스 속도를 용이하게 하기 위해 데이터베이스 상호작용을 요구하지 않게 하는 탐색가능 포맷으로 이전 게임 플레이 데이터를 저장하게 구성되며; (d) 요청에 더욱 응하여, 비동기 게임 플레이 환경을 제공하는 단계로서, 활성적 참가자는 게임 상호작용 데이터에 기초하여 외견상 라이브 참가자와 대항하여 플레이할 수 있는 것인, 단계. 실시예들에서, 요망되는 상대 속성은 제3자 웹사이트, 등으로부터 수집된 정보로부터 판정되는, 명시된 개인, 스킬 레벨, 나이, 성별, 지리적 위치일 수 있다. 제3자 웹사이트는 소셜 네트워킹 웹사이트일 수 있다. 요망되는 상대 속성은 제3자 애플리케이션으로부터 도출된 정보로부터 판정될 수 있다. 제3자 웹사이트는 소셜 네트워킹 애플리케이션일 수 있다.
실시예들에서, 컴퓨터 게임을 서비스하는 방법은 (a) 또 다른 사용자의 이전 라이브 게임 플레이에 관계된 이전 게임 플레이 데이터에 대해 클라이언트으로부터 요청을 서버에서 수신하는 단계; (b) 이전 게임 플레이 데이터를 인출하고 이전 게임 플레이 데이터를 클라이언트에 송신하는 단계; (c) 클라이언트가 나중에 이전 게임 플레이 데이터를 인출할 수 있게 클라이언트가 이전 게임 플레이 데이터를 저장하게 하는 단계; 및 (d) 클라이언트를 사용하는 라이브 게이밍 참가자가 외견상 라이브 상대와 대항하여 플레이하며 이 상대와 양방향 상호작용들을 가질 수 있는 복수-플레이어 게임 환경을 제공하는 것으로, 외견상 라이브 상대의 상호작용은 이전 게임 플레이 데이터에 기초하는 것인, 단계를 포함할 수 있다. 실시예들에서, 이전 게임 플레이 데이터는 제3자 웹사이트, 등으로부터 수집된 정보에 기초하여 선택되는, 명시된 개인, 요청하는 클라이언트 사용자의 스킬 레벨, 요청하는 클라이언트 사용자의 나이, 요청하는 클라이언트 사용자의 지리적 위치에의 매치 중 적어도 하나에 대한 것일 수 있다. 제3자 웹사이트는 소셜 네트워킹 웹사이트일 수 있다. 요망되는 상대 속성은 제3자 애플리케이션으로부터 도출된 정보로부터 판정될 수 있다. 제3자 웹사이트는 소셜 네트워킹 애플리케이션일 수 있다.
실시예들에서, 컴퓨터 게임을 서비스하는 시스템은, 다른 사용자의 이전 라이브 게임 플레이에 관계된 이전 게임 플레이 데이터에 대해 클라이언트로부터 요청을 서버에서 수신하며; 이전 게임 플레이 데이터를 인출하고 이전 게임 플레이 데이터를 클라이언트에 송신하며; 클라이언트가 나중에 이전 게임 플레이 데이터를 인출할 수 있게 클라이언트가 이전 게임 플레이 데이터를 저장하게 하며; 클라이언트를 사용하는 라이브 게이밍 참가자가 외견상 라이브 상대와 대항하여 플레이하며 이 상대와 양방향 상호작용들을 가질 수 있는 복수-플레이어 게임 환경을 제공하는 것으로, 외견상 라이브 상대의 상호작용은 이전 게임 플레이 데이터에 기초하는 것인, 서버 및 클라이언트를 포함하는 컴퓨터 게임 시설을 포함할 수 있다. 실시예들에서, 이전 게임 플레이 데이터는 제3자 웹사이트, 등으로부터 수집된 정보에 기초하여 선택되는, 명시된 개인, 요청하는 클라이언트 사용자의 스킬 레벨, 요청하는 클라이언트 사용자의 나이, 요청하는 클라이언트 사용자의 지리적 위치에의 매치 중 적어도 하나에 대한 것일 수 있다. 제3자 웹사이트는 소셜 네트워킹 웹사이트일 수 있다. 요망되는 상대 속성은 제3자 애플리케이션으로부터 도출된 정보로부터 판정될 수 있다. 제3자 웹사이트는 소셜 네트워킹 애플리케이션.일 수 있다.
실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: (a) 실질적으로 기준에 부합하는 적어도 한 사용자에 의해 플레이된 적어도 한 이전 게임을 나타내는 게임 플레이 데이터에 대한 요청을 클라이언트로부터 서버에서 수신하는 단계; (b) 요청에 응하여, 비동기 게임 플레이 데이터를 탐색하여 인출하고 게임 플레이 데이터를 클라이언트에 전달하는 단계; 및 (c) 클라이언트가 비동기 게임에서 상대와 플레이하기 위한 요청에 응하여 게임 플레이 데이터를 인출할 수 있게 게임 플레이 데이터가 클라이언트 상에 국부적으로 저장되게 하는 단계. 실시예들에서, 이전 게임 플레이 데이터는 제3자 웹사이트, 등으로부터 수집된 정보에 기초하여 선택되는, 명시된 개인, 요청하는 클라이언트 사용자의 스킬 레벨, 요청하는 클라이언트 사용자의 나이, 요청하는 클라이언트 사용자의 지리적 위치에의 매치 중 적어도 하나에 대한 것일 수 있다.
실시예들에서, 비동기 컴퓨터 게임 플레이를 위한 이전 게임 플레이 데이터를 관리하는 방법은 (a) 게임 플레이 데이터의 저장을 위해 고속 응답 탐색가능 메모리를 제공하는 단계로서, 메모리는 구조형 데이터베이스로부터 데이터 탐색 및 데이터 인출 속도보다 실질적으로 빠른 데이터 탐색 및 데이터 인출 속도를 갖는, 단계; (b) 서버에서, 라이브 게이밍 참가자로부터 게임 플레이 데이터를 수신하는 단계; (c) 라이브 게이밍 참가자 및 게임 플레이 데이터, 중 적어도 하나의 속성을 확인하고 라이브 게임 속성을 형성하는 단계; (d) 고속 응답 탐색가능 메모리에 각각이 다른 속성에 관계된 데이터를 포함하는 것인 복수의 게임 플레이 데이터 버켓들을 제공하고, 각 버켓에 대응하는 버켓 속성을 형성하는 단계; 및 (e) 복수의 버켓들 중 하나에 게임 플레이 데이터를 저장하는 단계로서, 요망되는 속성을 포함하는 게이밍 요청을 수신하였을 때, 라이브 게이밍 참가자가 외견상 라이브 상대와 대항하여 플레이하며 이 상대와 양방향 상호작용들을 가질 수 있고 외견상 라이브 상대의 상호작용이 이전 게임 플레이 데이터에 기초하는 것인 복수-플레이어 게임 환경에서 상대를 시뮬레이트하기 위해 사용될 이전 게임 데이터를 탐색하기 위해, 요망되는 속성이 복수의 버켓들로부터 버켓을 확인하기 위한 토대로서 사용될 수 있게, 버켓 속성 및 라이브 게임 속성은 실질적으로 부합하는 것인, 단계를 포함할 수 있다. 실시예들에서, 라이브 게임 속성은 적어도 부분적으로 제3자 웹사이트 정보, 등에 기초한, 이름, 스킬 레벨, 나이, 성별, 지리적 지역일 수 있다. 제3자 웹사이트는 소셜 네트워킹 웹사이트일 수 있다. 라이브 게임 속성은 적어도 부분적으로 제3자 애플리케이션 정보에 기초할 수 있다. 제3자 애플리케이션는 소셜 네트워킹 애플리케이션일 수 있다.
실시예들에서, 비동기 컴퓨터 게임 플레이를 위한 이전 게임 플레이 데이터를 관리하기 위한 시스템, 게임 플레이 데이터의 저장을 위해 고속 응답 탐색가능 메모리를 구비한 것으로, 메모리는 구조형 데이터베이스로부터 데이터 탐색 및 데이터 인출 속도보다 실질적으로 빠른 데이터 탐색 및 데이터 인출 속도를 가지며; 서버에서, 라이브 게이밍 참가자로부터 게임 플레이 데이터를 수신하고; 라이브 게이밍 참가자 및 게임 플레이 데이터 중 적어도 하나의 속성을 확인하고 라이브 게임 속성을 형성하며; 고속 응답 탐색가능 메모리에 각각이 다른 속성에 관계된 데이터를 포함하는 것인 복수의 게임 플레이 데이터 버켓들을 제공하고, 각 버켓에 대응하는 버켓 속성을 형성하며; 복수의 버켓들 중 하나에 게임 플레이 데이터를 저장하는 단계로서, 요망되는 속성을 포함하는 게이밍 요청을 수신하였을 때, 라이브 게이밍 참가자가 외견상 라이브 상대와 대항하여 플레이하며 이 상대와 양방향 상호작용들을 가질 수 있고 외견상 라이브 상대의 상호작용이 이전 게임 플레이 데이터에 기초하는 것인 복수-플레이어 게임 환경에서 상대를 시뮬레이트하기 위해 사용될 이전 게임 데이터를 탐색하기 위해서, 요망되는 속성을 복수의 버켓들로부터 버켓을 확인하기 위한 토대로서 사용할 수 있게, 버켓 속성 및 라이브 게임 속성은 실질적으로 부합하는 것인, 컴퓨터 게임 시설을 포함할 수 있다. 실시예들에서, 라이브 게임 속성은 적어도 부분적으로 제3자 웹사이트 정보, 등에 기초한, 이름, 스킬 레벨, 나이, 성별, 지리적 지역일 수 있다. 제3자 웹사이트는 소셜 네트워킹 웹사이트일 수 있다. 라이브 게임 속성은 적어도 부분적으로 제3자 애플리케이션 정보에 기초할 수 있다. 제3자 애플리케이션는 소셜 네트워킹 애플리케이션일 수 있다.
실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: (a) 비동기 게임 플레이 데이터를 수신한 것에 응하여, 비동기 게임 플레이 데이터에 연관된 정보의 감정을 통해 비동기 게임 플레이 데이터가 속하는 카테고리를 확인하는 단계; (b) 카테고리의 속성들에 실질적으로 부합하는 상대와의 비동기 게임 플레이를 위한 요청에 기초하여 비동기 게임 플레이 데이터가 인출될 수 있게 카테고리에의 연관과 더불어 메모리에 비동기 게임 플레이 데이터를 저장하는 단계. 실시예들에서, 라이브 게임 속성은 적어도 부분적으로 제3자 웹사이트 정보, 등에 기초한, 이름, 스킬 레벨, 나이, 성별, 지리적 지역일 수 있다. 제3자 웹사이트는 소셜 네트워킹 웹사이트일 수 있다. 라이브 게임 속성은 적어도 부분적으로 제3자 애플리케이션 정보에 기초할 수 있다. 제3자 애플리케이션는 소셜 네트워킹 애플리케이션일 수 있다.
실시예들에서, 게이밍 방법은 라이브 참가자로부터, (a) 게임 플레이에 대한 요청을 수신하는 단계로서, 요청은 요망되는 상대 정보를 포함하는 것인, 단계; (b) 요청에 응하여, 게이밍에서 라이브 참가자의 최근 성공을 감정하기 위해 라이브 참가자에 연관된 이전 게임 플레이 데이터를 평가하고, 만족 점수를 형성하는 단계; (c) 요청에 더욱 응하여, 또 다른 사용자의 이전 게임 플레이 데이터가 선택되고 다음에 기초하여 인출되게 하는 단계; (i) 요망되는 상대 정보에 실질적 매치; 및 (ii) 만족 점수에 실질적 매치; 및 (d) 라이브 게이밍 참가자가 외견상 라이브 상대와 대항하여 플레이하며 이 상대와 양방향 상호작용들을 가질 수 있고 외견상 라이브 상대의 상호작용이 이전 게임 플레이 데이터에 기초하는 것인 복수-플레이어 게임 환경을 제공하는 단계를 포함할 수 있다. 실시예들에서, 요망되는 상대 정보는 명시된 개인, 스킬 레벨, 나이, 친구 목록일 수 있다. 만족 점수는 스킬 레벨에 관련하여 게이밍에서의 성공에 기초할 수 있다.
실시예들에서, 게이밍 시스템은 라이브 참가자로부터, 요망되는 상대 정보를 포함하는, 게임 플레이에 대한 요청을 수신하고; 요청에 응하여, 게이밍에서 라이브 참가자의 최근 성공을 감정하기 위해 라이브 참가자에 연관된 이전 게임 플레이 데이터를 평가하고, 만족 점수를 형성하고; 요청에 더욱 응하여, 또 다른 사용자의 이전 게임 플레이 데이터가 선택되고 (i) 요망되는 상대 정보에 실질적 매치; 및 (ii) 만족 점수에 실질적 매치에 기초하여 인출되게 하는 컴퓨터 게임 시설을 포함할 수 있고; 컴퓨터 게임 시설은 라이브 게이밍 참가자가 외견상 라이브 상대와 대항하여 플레이하며 이 상대와 양방향 상호작용들을 가질 수 있고 외견상 라이브 상대의 상호작용이 이전 게임 플레이 데이터에 기초하는 것인 복수-플레이어 게임 환경을 제공한다. 실시예들에서, 요망되는 상대 정보는 명시된 개인, 스킬 레벨, 나이, 친구 목록일 수 있다. 만족 점수는 스킬 레벨에 관련하여 게이밍에서의 성공에 기초할 수 있다.
실시예들에서, 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터들 상에서 실행되었을 때 다음의 단계들을 수행할 수 있는 컴퓨터 판독가능 매체 내에 구현되었다: (a) 라이브 참가자로부터 게임 플레이를 위한 요청을 수신하는 단계로서, 요청은 요망되는 상대 정보를 포함하는 것인, 단계; (b) 요청에 응하여, 게이밍에서 라이브 참가자의 최근 성공을 감정하기 위해 라이브 참가자에 연관된 이전 게임 플레이 데이터를 평가하고, 만족 점수를 형성하는 단계; (c) 요청에 더욱 응하여, 또 다른 사용자의 이전 게임 플레이 데이터가 선택되고 다음에 기초하여 인출되게 하는 단계; (i) 요망되는 상대 정보에 실질적 매치; 및 (ii) 만족 점수에 실질적 매치이며 (d) 이 상대와 양방향 상호작용들을 가질 수 있고 외견상 라이브 상대의 상호작용이 이전 게임 플레이 데이터에 기초하는 것인 복수-플레이어 게임 환경을 제공하는 단계. 실시예들에서, 요망되는 상대 정보는 명시된 개인, 스킬 레벨, 나이, 친구 목록일 수 있다. 만족 점수는 스킬 레벨에 관련하여 게이밍에서의 성공에 기초할 수 있다.
본원에 기술된 방법들 및 시스템들은 프로세서 상에서 컴퓨터 소프트웨어, 프로그램 코드들, 및/또는 명령들을 실행하는 기계를 통해 부분적으로 또는 전체가 배치될 수 있다. 프로세서는 서버, 클라이언트, 네트워크 기반구조, 모바일 계산 플랫폼, 고정형 계산 플랫폼, 또는 그외 다른 계산 플랫폼의 부분일 수 있다. 프로세서는 프로그램 명령들, 코드들, 바이너리 명령들, 등을 실행할 수 있는 임의의 종류의 계산 또는 처리 장치일 수 있다. 프로세서는 신호 프로세서, 디지털 프로세서, 내장형 프로세서, 마이크로프로세서 혹은 코-프로세서(매스(math) 코-프로세서, 그래픽 코프로세서, 통신 코-프로세서, 등)와 같은 임의의 변종 및 저장된 프로그램 코드 또는 프로그램 명령들을 직접 또는 간접적으로 용이하게 할 수 있는 것이거나 이들을 포함할 수 있다. 또한, 프로세서는 복수 프로그램들, 스레드들, 및 코드들을 실행하게 할 수 있다. 스레드들은 프로세서의 수행을 향상시키고 애플리케이션의 동시적 동작들을 용이하게 하기 위해 동시에 실행될 수 있다. 구현으로서, 본원에 기술된 방법들, 프로그램 코드들, 프로그램 명령들, 등은 하나 이상의 스레드에서 구현될 수 있다. 스레드는 다른 스레드들에 연관된 우선도들을 할당하였을 수도 있는 이들 다른 스레드들을 스폰(spawn)할 수 있는데; 프로세서는 이들 스레드들을 우선도에 기초하거나 프로그램 코드내 제공된 명령들에 기초한 그외 어떤 다른 순서로 실행할 수 있다. 프로세서는 여기 및 다른 어떤 곳에 기술된 바와 같은 방법들, 코드들, 명령들 및 프로그램들을 저장하는 메모리를 포함할 수 있다. 프로세서는 여기 및 다른 어떤 곳에 기술된 바와 같은 방법들, 코드들, 명령들을 저장할 수 있는 인터페이스를 통해 저장매체에 액세스할 수 있다. 계산 또는 처리 장치에 의해 실행될 수 있는 방법들, 프로그램들, 코드들, 프로그램 명령들 또들 이외 다른 유형의 명령들을 저장하기 위한 프로세서에 연관된 저장매체는 CD-ROM, DVD, 메모리, 하드 디스크, 플래시 드라이브, RAM, ROM, 캐시, 등 중 하나 이상을 포함할 수 있지만 이들에 제한되지 않을 수 있다.
프로세서는 멀티프로세서의 속도 및 수행을 향상시킬 수 있는 하나 이상의 코어들을 포함할 수 있다. 실시예들에서, 프로세스는 2개 이상의 독립적인 코어들(다이라 함)을 조합하는 듀얼 코더 프로세서, 쿼드 코어 프로세서들, 다른 칩-레벨 멀티프로세서, 등일 수 있다.
본원에 기술된 방법들 및 시스템들은 서버, 클라이언트, 방화벽, 게이트웨이, 허브, 라우터, 또는 이외 다른 이러한 컴퓨터 및/또는 네트워킹 하드웨어 상에서 컴퓨터 소프트웨어를 실행하는 기계를 통해 부분적으로 또는 전체적으로 배치될 수 있다. 소프트웨어 프로그램은 파일 서버, 프린트 서버, 도메인 서버, 인터넷 서버, 인트라넷 서버 및 2차 서버, 호스트 서버, 분산 서버, 등과 같은 그외 다른 변종들을 포함할 수 있는 서버에 연관될 수 있다. 서버는 메모리들, 프로세서들, 컴퓨터 판독가능 매체들, 저장매체들, 포트들(물리적 및 가상의), 통신 장치들, 및 유선 또는 무선 매체, 등을 통해 다른 서버들, 클라이언트들, 기계들, 및 장치들에 액세스할 수 있는 인터페이스들 중 하나 이상을 포함할 수 있다. 여기 및 다른 어떤 곳에 기술된 바와 같은 방법들, 프로그램들 또는 코드들은 서버에 의해 실행될 수도 있다. 또한, 본원에 기술된 바와 같은 방법들의 실행을 위해 요구되는 다른 장치들은 서버에 연관된 기반구조의 부분으로서 간주될 수도 있다.
서버는 제한없이, 클라이언트들, 다른 서버들, 프린터들, 데이터베이스 서버들, 프린트 서버들, 파일 서버들, 통신 서버들, 분산 서버들, 등을 포함하는 다른 장치들에 대한 인터페이스를 제공할 수 있다. 또한, 이러한 결합 및/또는 연결은 네트워크를 통해 프로그램의 원격 실행을 용이하게 할 수 있다. 이들 장치들의 일부 또는 전부의 네트워킹은 발명의 범위 내에서 하나 이상의 위치에 프로그램 또는 방법의 병렬 처리를 용이하게 할 수 있다. 또한, 인터페이스를 통해 서버에 부착된 장치들 중 어느 것인든 방법들, 프로그램들, 코드 및/또는 명령들을 저장할 수 있는 적어도 한 저장매체를 포함할 수 있다. 중앙 저장부는 서로 다른 장치들 상에서 실행될 프로그램 명령들을 제공할 수 있다. 이 구현에서, 원격 저장부는 프로그램 코드, 명령들, 및 프로그램들을 위한 저장매체로서 작용할 수 있다.
소프트웨어 프로그램은 파일 클라이언트, 프린트 클라이언트, 도메인 클라이언트, 인터넷 클라이언트, 인트라넷 클라이언트, 및 2차 클라이언트, 호스트 클라이언트, 분산 클라이언트, 등과 같은 그외 변종들을 포함할 수 있는 클라이언트에 연관될 수 있다. 클라이언트는 메모리들, 프로세서들, 컴퓨터 판독가능 매체들, 저장매체들, 포트들(물리적 및 가상의), 통신 장치들, 및 유선 또는 무선 매체, 등을 통해 다른 클라이언트들, 서버들, 기계들, 및 장치들에 액세스할 수 있는 인터페이스들 중 하나 이상을 포함할 수 있다. 여기 및 다른 어떤 곳에 기술된 바와 같은 방법들, 프로그램들, 또는 코드들은 클라이언트에 의해 실행될 수 있다. 또한, 본원에 기술된 바와 같은 방법들의 실행을 위해 요구되는 다른 장치들은 클라이언트에 연관된 기반구조의 부분으로서 간주될 수도 있다.
클라이언트는 제한없이, 서버들, 다른 클라이언트들, 데이터베이스 서버들, 프린트 서버들, 파일 서버들, 통신 서버들, 분산된 서버들, 등을 포함한 다른 장치들에 대한 인터페이스를 제공할 수 있다. 또한, 이 결합 및/또는 연결은 네트워크를 통한 프로그램의 원격 실행을 할 수 있게 한다. 이들 장치들 중 일부 또는 전부의 네트워킹은 발명의 범위 내에서 하나 이상의 위치에서 프로그램 또는 방법의 병렬 처리를 할 수 있게 한다. 또한, 인터페이스를 통해 클라이언트에 부착된 장치들 중 어느 것이든 방법들, 프로그램들, 애플리케이션들, 코드 및/또는 명령들을 저장할 수 있는 적어도 한 저장매체를 포함할 수 있다. 중앙 저장부는 서로 다른 장치들 상에서 실행될 프로그램 명령들을 제공할 수 있다. 이 구현에서, 원격 저장부는 프로그램 코드, 명령들, 및 프로그램들을 위한 저장매체로서 작용할 수 있다.
본원에 기술된 방법들 및 시스템들은 네트워크 기반구조들을 통해 부분적으로 또는 전체가 배치될 수 있다. 네트워크 기반구조는 계산장치들, 서버들, 라우터들, 허브들, 방화벽들, 클라이언트들, 개인용 컴퓨터들, 통신장치들, 라우팅 장치들 및 그외 다른 활성 및 수동 장치들, 모듈들 및/또는 이 기술에 공지된 성분들과 같은 요소들을 포함할 수 있다. 네트워크 기반구조에 연관된 계산 및/또는 비-계산 장치(들)은, 다른 성분들을 외에, 플래시 메모리, 버퍼, 스택, RAM, ROM, 등과 같은 저장매체를 포함할 수 있다. 여기 및 다른 어떤 곳에 기술된 프로세스들, 방법들, 프로그램 코드들, 명령들은 네트워크 기반구조 요소들의 하나 이상에 의해 실행될 수 있다.
여기 및 다른 어떤 곳에 기술된 방법들, 프로그램 코드들, 및 명령들은 복수의 셀들을 갖는 셀 방식 네트워크 상에 구현될 수 있다. 셀 방식 네트워크는 주파수 분할 다중접속(FDMA) 네트워크이거나 부호분할 다중접속(CDMA) 네트워크일 수 있다. 셀 방식 네트워크는 모바일 장치들, 셀 사이트들, 기지국들, 리피터들, 안테나들, 등을 포함할 수 있다. 셀 네트워크는 GSM, GPRS, 3G, EVDO, 메시, 또는 그외 다른 네트워크 유형들일 수 있다.
여기 및 다른 어떤 곳에 기술된 방법들, 프로그램 코드들, 및 명령들은 모바일 장치들 상에 혹은 이들을 통해 구현될 수 있다. 모바일 장치들은 내비게이션 장치들, 셀 전화들, 모바일 전화들, 모바일 PDA(personal digital assistants), 랩탑들, 팜탑들, 네트북들, 페이저들, 전자책 리더기들, 음악 플레이어들, 등을 포함할 수 있다. 이들 장치들은 다른 성분들을 외에, 플래시 메모리, 버퍼, RAM, ROM과 같은 저장매체 및 및 하나 이상의 계산장치들을 포함할 수 있다. 모바일 장치들에 연관된 계산장치들은 이들에 저장된 프로그램 코드들, 방법들, 및 명령들을 실행하게 될 수 있다. 대안적으로, 모바일 장치들은 다른 장치들과 공조하여 명령들을 실행하게 구성될 수 있다. 모바일 장치들은 서버들에 인터페이스되고 프로그램 코드들을 실행하게 구성된 기지국들과 통신할 수 있다. 모바일 장치들은 피어-투-피어 네트워크, 메시 네트워크, 또는 그외 통신 네트워크로 통신할 수 있다. 프로그램 코드는 서버에 연관된 저장매체 상에 저장되고 서버 내에 내장된 계산장치에 의해 실행되는 될 수 있다. 기지국은 계산장치 및 저장매체를 포함할 수 있다. 저장장치는 기지국에 연관된 계산장치들에 의해 실행되는 프로그램 코드들 및 명령들을 저장할 수 있다.
컴퓨터 소프트웨어, 프로그램 코드들, 및/또는 명령들은 다음을 포함할 수 있는 기계 판독가능 매체들 상에 저장되고 및/또는 액세스될 수 있다: 컴퓨터 성분들, 장치들, 및 얼마간의 시구간 동안 계산하기 위해 사용되는 디지털 데이터를 보유하는 기록매체들; 랜덤 액세스 메모리(RAM)로서 알려진 반도체 저장장치; 이를테면 광학 디스크들, 하드 디크스들과 같은 형태들의 자기 저장장치, 테이프들, 드럼들, 및 그외 다른 유형들과 같은, 전형적으로 더 영구적 저장을 위한 대량 저장장치; 프로세서 레지스터들, 캐시 메모리, 휘발성 메모리, 비휘발성 메모리; CD, DVD와 같은 광학 저장장치; 플래시 메모리(예를 들면 USB 스틱들 또는 키들), 플로피 디스크들, 자기 테이프, 페이저 테이프, 펀치 카드들, 독자형 RAM 디스크들, 집(Zip) 드라이브들, 착탈가능 대량 저장장치, 오프-라인, 등과 같은 착탈 매체들; 그외 다른 컴퓨터 메모리로서 이를테면 동적 메모리, 정적 메모리, 판독/기입 저장장치, 가변성 저장장치, 판독전용, 랜덤 액세스, 순차 액세스, 위치 어드레스가능, 파일 어드레스가능, 콘텐트 어드레스가능, 네트워크 부착형 저장장치, 저장영역 네트워크, 바코드들, 자기 잉크, 등.
본원에 기술된 방법들 및 시스템들은 물리적 및/또는 무형의 아이템들을 한 상태에서 다른 상태로 변환할 수 있다. 본원에 기술된 방법들 및 시스템들은 물리적 및/또는 무형의 아이템들을 나타내는 데이터를 한 상태에서 다른 상태로 변환할 수 있다.
도면들에 전체에 걸처 흐름도들 및 블록도들에 포함하는 본원에 기술되고 도시된 요소들은 요소들 간에 논리적 경계들을 포함한다. 그러나, 소프트웨어 또는 하드웨어 엔지니어링 관행들에 따라, 도시된 요소들 및 이들의 기능들은 이들에 모노리식 소프트웨어 구조로서, 독자형 소프트웨어 모듈들로서, 혹은 외부 루틴들, 코드, 서비스들, 등, 또는 이들의 임의의 조합을 채용하는 모듈들로서 저장된 프로그램 명령들을 실행할 수 있는 프로세서를 가진 컴퓨터 실행가능 매체들을 통해 기계들 상에서 구현될 수 있고, 모든 이러한 구현들은 본 발명의 범위 내에 있다. 이러한 기계들의 예들은 PDA들, 랩탑들, 개인용 컴퓨터들, 모바일 전화들, 그외 휴대 계산장치들, 의료 장비, 유선 또는 무선 통신장치들, 트랜스듀서들, 칩들, 계산기들, 위성들, 타블렛 PC들, 전자책들, 가젯들, 전자장치들, 인공지능을 가진 장치들, 계산장치들, 네트워킹 장비들, 서버들, 라우터들, 등을 포함할 수 있는데, 이들로 제한되는 것은 아니다. 또한, 흐름도 및 블록도들에 도시된 요소들 또는 이외 어떤 다른 논리적 성분은 프로그램 명령들을 실행할 수 있는 기계 상에서 구현될 수 있다. 이에 따라, 앞에 도면들 및 설명이 개시된 시스템들의 기능 측면들을 개시하지만, 이들 기능 측면들을 구현하기 위한 소프트웨어의 어떠한 특별한 배열도 명백히 언급되지 않는 한 아니면 정황으로부터 명백하지 않는 한 이들 설명들로부터 추론되지 않아야 한다. 유사하게, 위에서 확인되고 기술된 여러 단계들은 달라질 수 있으며 단계들의 순서는 본원에 개시된 기술들의 특별한 응용에 맞게 수정될 수 있음을 알 것이다. 모든 이러한 변형들 및 수정들은 본 발명의 범위 내에 속하는 것이다. 따라서, 여러 단계들에 대한 순서의 도시 및/또는 설명은 특정 응용에 의해 요구되거나, 또는 명백히 언급되거나 아니면 정황으로부터 명백하지 않는 한 이들 단계들에 대한 실행의 특정한 순서를 요구하는 것으로 이해되지 않아야 한다.
위에 기술된 방법들 및/또는 프로세스들, 및 이들의 단계들은 하드웨어, 소프트웨어 또는 특정 응용에 적합한 하드웨어와 소프트웨어와의 임의의 조합으로 실현될 수 있다. 하드웨어는 범용 컴퓨터 및/또는 전용 계산장치 또는 특정 계산 장치 또는 특정 계산 장치의 특정 측면 또는 성분을 포함할 수 있다. 프로세스들은 내부 및/또는 외부 메모리와 더불어, 하나 이상의 마이크로프로세서들, 마이크로제어기들, 내장형 마이크로제어기들, 프로그램가능 디지털 신호 프로세서들 또는 그외 프로그램가능 장치로 실현될 수 있다. 또한, 혹은 이 대신에, 프로세스들은, 응용특정의 집적회로, 프로그램가능 게이트 어레이, 프로그램가능 어레이 로직, 또는 전자 신호들을 처리하게 구성될 수 있는 그외 어떤 다른 장치 또는 장치들의 조합으로 구현될 수 있다. 또한, 프로세스들 중 하나 이상은 기계 판독가능 매체 상에서 실행될 수 있는 컴퓨터 실행가능 코드로서 실행될 수 있음을 알 것이다.
컴퓨터 실행가능 코드는 C와 같은 구조형 프로그래밍 언어, C++와 같은 개체 지향 프로그래밍 언어, 혹은 프로세서들, 프로세서 아키텍처들의 이종 조합들, 혹은 상이한 하드웨어 및 소프트웨어의 조합들, 혹은 프로그램 명령들을 실행할 수 있는 그외 어떤 다른 머신뿐만 아니라, 위에 장치들 중 하나에 저장되거나, 컴파일되거나 실행하게 번역될 수 있는 그외 어떤 다른 고-레벨 또는 저-레벨 프로그래밍 언어(어셈플리 언어들, 하드웨어 서술 언어들, 및 데이터베이스 프로그래밍 언어들 및 기술들, 플래시, 자바, 루비 온 레일스, 또는 이 기술에 공지된 그외 어떤 다른 프로그래밍 언어)를 사용하여 생성될 수 있다.
이에 따라, 일 측면에서, 위에 기술된 각 방법 및 이들의 조합들은 하나 이상의 계산장치들 상에서 실행되었을 때 이들의 단계들을 수행하는 컴퓨터 실행가능 코드로 구현될 수 있다. 또 다른 측면에서, 방법들은 이들의 단계들을 수행하는 시스템들에서 구현될 수 있으며, 다수의 방법들로 장치들에 걸쳐 분산될 수 있으며, 혹은 모든 기능은 전용, 혹은 독자형 장치 또는 그외 다른 하드웨어에 일체화될 수 있다. 또 다른 측면에서, 위에 기술된 프로세스들에 연관된 단계들을 수행하기 위한 수단은 위에 기술된 하드웨어 및/또는 소프트웨어 중 어느 것을 포함할 수 있다. 모든 이러한 순열들 및 조합들은 본 개시의 범위 내에 포함된다.
발명이 도시되고 상세히 기술된 바람직한 실시예들에 관련하여 기술되었지만, 이들에 다양한 수정들 및 개선들이 당업자들에게 쉽게 명백해지게 될 것이다. 따라서, 본 발명의 정신 및 범위는 전술한 예들로 제한되지 않고 법에 의해 허용될 수 있는 가장 넓은 의미에서 이해되어야 한다.
본원에서 참조된 모든 문헌들은 참조문헌으로서 본원에 포함된다.
102; 비동기 게임 서버 104; 클라이언트
108; 제3자 환경 110; 비동기 게임 시설
110A; 비동기 게임 시설 110B; 비동기 게임 시설
111B; 비동기 게임 db 112; 메모리
112A; 메모리 112B; 메모리
114A: 동기 게임 db 114B; 게임 보관 db
118; 게임 보관 데이터베이스 118B; 게임 보관 db
120; 매칭 엔진 122A; 친구들
122B; 메모리 124; 인터넷
130; 사용자 130AP; 활성적 참가자
130PP; 과거 참가자 132; 동기 게임 서버
134; 동기 게임 시설 138; 동기 게임 db
140; 메모리 150; 게임 플레이 요청
152; 이전 게임 플레이 3802, 3902; 씬 클라이언트
108; 제3자 환경 110; 비동기 게임 시설
110A; 비동기 게임 시설 110B; 비동기 게임 시설
111B; 비동기 게임 db 112; 메모리
112A; 메모리 112B; 메모리
114A: 동기 게임 db 114B; 게임 보관 db
118; 게임 보관 데이터베이스 118B; 게임 보관 db
120; 매칭 엔진 122A; 친구들
122B; 메모리 124; 인터넷
130; 사용자 130AP; 활성적 참가자
130PP; 과거 참가자 132; 동기 게임 서버
134; 동기 게임 시설 138; 동기 게임 db
140; 메모리 150; 게임 플레이 요청
152; 이전 게임 플레이 3802, 3902; 씬 클라이언트
Claims (21)
- 게이밍 방법에 있어서,
a. 라이브 개시 참가자로부터 게임 개시 요청을 수신하였을 때, 상기 라이브 개시 참가자가 게임을 플레이하고 적어도 한 추가의 참가자를 상기 게임에 합류하게 초청할 수 있는 컴퓨터 생성 복수-플레이어 게임 환경을 제공하는 단계;
b. 상기 라이브 참가자로부터 제 2 참가자 초청을 수신한 것에 응하여, 상기 게임에 합류할 것을 제 2 라이브 참가자에 요청하는 단계; 및
c. 제 2 참가자 초청에 이어, 상기 게임을 시작하기에 앞서 상기 게임에 합류하기 위한 제 2 라이브 참가자의 수락을 수신하기 위해 대기 기간을 제공하는 단계로서,
i. 상기 제 2 라이브 참가자로부터 수락이 상기 대기 기간 내에 수신된다면, 상기 라이브 개시 참가자 및 상기 제 2 라이브 참가자는 상기 복수-플레이어 게임 환경에서 활성적 라이브 참가자들이 될 것이며,
ii. 상기 제 2 라이브 참가자의 수락이 상기 대기 기간 내에 수신되지 않는다면, 적어도 부분적으로 상기 라이브 개시 참가자와 상기 시뮬레이트 참가자 간에 게임간 양방향 상호작용에 기인하여, 상기 라이브 개시 참가자의 관점에서, 상기 시뮬레이트 참가자가 라이브 참가자인 것으로 보이게, 이전 게임 플레이 데이터에 기초하여 상기 복수-플레이어 게임 환경에서 제 2 시뮬레이트 참가자에게 상기 라이브 개시 참가자가 제공될 것인, 단계를 포함하는, 방법. - 제 1 항에 있어서, 상기 대기 기간은 사전에 결정된, 방법.
- 제 1 항에 있어서, 상기 대기 기간은 가변적인, 방법.
- 제 1 항에 있어서, 상기 대기 기간은 동적으로 조절가능하는, 방법.
- 제 1 항에 있어서, 상기 대기 기간는 상기 라이브 개시 참가자에 의해 명시될 수 있는, 방법.
- 제 1 항에 있어서, 상기 대기 기간는 상기 라이브 개시 참가자에 의해 조기에 종료될 수 있는, 방법.
- 제 1 항에 있어서, 상기 제 2 시뮬레이트 참가자는 상기 초청된 제 2 라이브 참가자의 상기 이전 게임 플레이 데이터에 기초하는, 방법.
- 제 1 항에 있어서, 상기 라이브 개시 참가자는 제 3 참가자를 상기 게임에 합류하게 초청하는 것을 더 포함하는, 방법.
- 제 8 항에 있어서, 상기 제 3 참가자는 상기 초청을 수락하고 라이브 참가자로서 상기 게임에 합류하는, 방법.
- 제 9 항에 있어서, 상기 라이브 개시 참가자는 상기 제 2 및 제 3 라이브 참가자들과 상기 게임을 플레이하는, 방법.
- 제 9 항에 있어서, 상기 라이브 개시 참가자는 상기 제 2 시뮬레이트 참가자 및 상기 제 3 라이브 참가자와 상기 게임을 플레이하는, 방법.
- 제 8 항에 있어서, 상기 제 3 참가자의 수락은 상기 제 3 참가자 수락에 대한 상기 대기 기간 이내가 아니며, 시뮬레이트 제 3 참가자가 상기 제 3 참가자으로서 사용되는, 방법.
- 제 12 항에 있어서, 상기 시뮬레이트 제 3 참가자는 상기 초청된 제 3 라이브 참가자의 상기 이전 게임 플레이 데이터에 기초하는, 방법.
- 제 12 항에 있어서, 상기 라이브 개시 참가자는 상기 제 2 라이브 참가자 및 상기 시뮬레이트 제 3 참가자와 상기 게임을 플레이하는, 방법.
- 제 12 항에 있어서, 상기 라이브 개시 참가자는 상기 제 2 시뮬레이트 참가자 및 상기 제 3 시뮬레이트 참가자와 상기 게임을 플레이하는, 방법.
- 제 1 항에 있어서, 라이브 개시 참가자가 하나 이상의 추가의 참가자들을 상기 게임에 합류하게 초청하는 것을 더 포함하는, 방법.
- 제 16 항에 있어서, 상기 하나 이상의 추가의 참가자들은 상기 초청을 수락하고 상기 게임에 라이브 참가자들로서 합류하는, 방법.
- 제 17 항에 있어서, 상기 라이브 개시 참가자는 상기 제 2 및 하나 이상의 추가의 라이브 참가자들과 상기 게임을 플레이하는, 방법.
- 제 17 항에 있어서, 상기 라이브 개시 참가자는 상기 제 2 시뮬레이트 참가자 및 상기 하나 이상의 추가의 라이브 참가자들과 상기 게임을 플레이하는, 방법.
- 게이밍 시스템에 있어서,
라이브 개시 참가자로부터 게임 개시 요청을 수신하였을 때, 상기 라이브 개시 참가자가 게임을 플레이하고 적어도 한 추가의 참가자를 게임에 합류하게 초청할 수 있으며, 상기 라이브 참가자로부터 제 2 참가자 초청을 수신한 것에 응하여, 상기 게임에 합류할 것을 제 2 라이브 참가자에 요청하며; 제 2 참가자 초청에 이어, 상기 게임을 시작하기에 앞서 상기 게임에 합류하기 위한 제 2 라이브 참가자의 수락를 수신하기 위해 대기 기간을 제공하는 것으로서,
i. 상기 제 2 라이브 참가자로부터 수락이 상기 대기 기간 내에 수신된다면, 상기 라이브 개시 참가자 및 상기 제 2 라이브 참가자는 상기 복수-플레이어 게임 환경에서 활성적 라이브 참가자들이 될 것이며;
ii. 상기 제 2 라이브 참가자의 수락이 상기 대기 기간 내에 수신되지 않는다면, 적어도 부분적으로 상기 라이브 개시 참가자와 상기 시뮬레이트 참가자 간에 게임간 양방향 상호작용에 기인하여, 상기 라이브 개시 참가자의 관점에서, 상기 시뮬레이트 참가자가 라이브 참가자인 것으로 보이게, 이전 게임 플레이 데이터에 기초하여 상기 복수-플레이어 게임 환경에서 제 2 시뮬레이트 참가자에게 상기 라이브 개시 참가자가 제공될 것인, 컴퓨터 게임 시설을 포함하는, 게이밍 시스템. - 하나 이상의 컴퓨터들 상에서 실행되었을 때, 다음의 단계들을 수행하는 컴퓨터 판독가능 매체 내 구현된, 컴퓨터 프로그램 제품.
a. 라이브 개시 참가자로부터 게임 개시 요청을 수신하였을 때, 상기 라이브 개시 참가자가 게임을 플레이하고 적어도 한 추가의 참가자를 상기 게임에 합류하게 초청할 수 있는 컴퓨터 생성 복수-플레이어 게임 환경을 제공하는 단계;
b. 상기 라이브 참가자로부터 제 2 참가자 초청을 수신한 것에 응하여, 상기 게임에 합류할 것을 제 2 라이브 참가자에 요청하는 단계; 및
c. 제 2 참가자 초청에 이어, 상기 게임을 시작하기에 앞서 상기 게임에 합류하기 위한 제 2 라이브 참가자의 수락을 수신하기 위한 대기 기간을 제공하는 단계로서,
i. 상기 제 2 라이브 참가자로부터 수락이 상기 대기 기간 내에 수신된다면, 상기 라이브 개시 참가자 및 상기 제 2 라이브 참가자는 상기 복수-플레이어 게임 환경에서 활성적 라이브 참가자들이 될 것이며,
ii. 상기 제 2 라이브 참가자의 수락이 상기 대기 기간 내에 수신되지 않는다면, 적어도 부분적으로 상기 라이브 개시 참가자와 상기 시뮬레이트 참가자 간에 게임간 양방향 상호작용에 기인하여, 상기 라이브 개시 참가자의 관점에서, 상기 시뮬레이트 참가자가 라이브 참가자인 것으로 보이게, 이전 게임 플레이 데이터에 기초하여 제 2 시뮬레이트 참가자에게 상기 복수-플레이어 게임 환경에서 상기 라이브 개시 참가자가 제공될 것인, 단계.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US34974610P | 2010-05-28 | 2010-05-28 | |
US61/349,746 | 2010-05-28 | ||
US35771110P | 2010-06-23 | 2010-06-23 | |
US61/357,711 | 2010-06-23 | ||
PCT/US2011/022225 WO2011149564A1 (en) | 2010-05-28 | 2011-01-24 | Interactive hybrid asynchronous computer game infrastructure |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130121699A true KR20130121699A (ko) | 2013-11-06 |
Family
ID=45004257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127033803A KR20130121699A (ko) | 2010-05-28 | 2011-01-24 | 상호작용 혼성 비동기 컴퓨터 게임 기반구조 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8585505B2 (ko) |
EP (1) | EP2575988A1 (ko) |
JP (1) | JP2013532008A (ko) |
KR (1) | KR20130121699A (ko) |
CN (1) | CN102933267B (ko) |
WO (1) | WO2011149564A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210034642A (ko) * | 2018-09-11 | 2021-03-30 | 로브록스 코포레이션 | 친구 생성을 위한 사용자 생성 컨텐츠 시스템 |
WO2024090689A1 (ko) * | 2022-10-28 | 2024-05-02 | 드로닉 주식회사 | 무인 비행체를 이용하는 온라인 슈팅 시스템 |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110004848A (ko) * | 2008-03-03 | 2011-01-14 | 윌리암 레비 | 게임결과의 자동인증을 수행하는 온라인 게이머를 위한 인증시스템 |
US8496531B2 (en) | 2008-12-15 | 2013-07-30 | Tetris Online, Inc. | Interactive hybrid asynchronous computer game infrastructure with dynamic difficulty adjustment |
US8430755B2 (en) | 2008-12-15 | 2013-04-30 | Tetris Online, Inc. | Interactive asynchronous game play architecture |
WO2010075070A1 (en) | 2008-12-15 | 2010-07-01 | Tetris Online, Inc. | Interactive asynchronous computer game infrastructure |
US8444490B2 (en) | 2008-12-15 | 2013-05-21 | Tetris Online, Inc. | Interactive asynchronous game offline play architecture |
US8167695B2 (en) * | 2009-11-05 | 2012-05-01 | Think Tek, Inc. | Casino games |
US9111412B2 (en) | 2009-11-05 | 2015-08-18 | Think Tek, Inc. | Casino games |
WO2011149564A1 (en) | 2010-05-28 | 2011-12-01 | Tetris Online, Inc. | Interactive hybrid asynchronous computer game infrastructure |
US8777739B2 (en) * | 2011-02-23 | 2014-07-15 | Disney Enterprises, Inc. | Gender and age based gameplay through face perception |
US20130084969A1 (en) * | 2011-10-02 | 2013-04-04 | Microsoft Corporation | Asynchronous gameplay with rival display |
CN103309818B (zh) * | 2012-03-09 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 存储数据的方法及装置 |
JP5706868B2 (ja) * | 2012-03-30 | 2015-04-22 | Line株式会社 | メッセンジャープラットフォームでアバタ/ゲーム/エンターテイメント機能を提供するシステムおよび方法 |
JP5758947B2 (ja) * | 2012-04-27 | 2015-08-05 | 株式会社コナミデジタルエンタテインメント | 端末装置、その制御方法及びプログラム、並びにアプリケーションシステム |
WO2013161923A1 (ja) | 2012-04-27 | 2013-10-31 | 株式会社コナミデジタルエンタテインメント | 管理装置、その制御方法、及びコンピュータ読み取り可能な記録媒体 |
US10860688B1 (en) * | 2012-08-25 | 2020-12-08 | Play-it Health, Inc. | System and method for encouraging a medical patient to complete medical treatment regimen |
US10456686B2 (en) | 2012-09-05 | 2019-10-29 | Zynga Inc. | Methods and systems for adaptive tuning of game events |
US9569466B1 (en) | 2013-01-30 | 2017-02-14 | Kabam, Inc. | System and method for offline asynchronous user activity in a player versus player online game |
US20140302935A1 (en) * | 2013-04-04 | 2014-10-09 | DeNA Co. Ltd. | Turn timer system applied to a puzzle battle game |
JP6320685B2 (ja) * | 2013-04-30 | 2018-05-09 | 任天堂株式会社 | 情報処理プログラム、情報処理装置、情報処理システム、及び情報処理方法 |
US9295915B2 (en) * | 2013-05-20 | 2016-03-29 | Microsoft Technology Licensing, Llc | Game availability in a remote gaming environment |
JP6185802B2 (ja) * | 2013-09-17 | 2017-08-23 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および画面生成方法 |
US9452363B2 (en) * | 2013-10-18 | 2016-09-27 | Sony Interactive Entertainment America Llc | Multi-player video game environment for single-player use |
US20150151205A1 (en) * | 2013-12-02 | 2015-06-04 | DeNA Co., Ltd. | Multiple character pvp game |
JP6121896B2 (ja) * | 2013-12-27 | 2017-04-26 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および情報処理システム |
JP2015127898A (ja) | 2013-12-27 | 2015-07-09 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理システム |
JP2015127899A (ja) | 2013-12-27 | 2015-07-09 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理システム |
JP2015127900A (ja) | 2013-12-27 | 2015-07-09 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、サーバシステムおよび情報処理システム |
JP6368121B2 (ja) * | 2014-04-04 | 2018-08-01 | 任天堂株式会社 | 情報処理システム、情報処理装置、サーバ、情報処理プログラム、および情報処理方法 |
US10376792B2 (en) | 2014-07-03 | 2019-08-13 | Activision Publishing, Inc. | Group composition matchmaking system and method for multiplayer video games |
CN105323233A (zh) * | 2014-08-05 | 2016-02-10 | 腾讯科技(深圳)有限公司 | 业务同步方法、业务同步装置及业务同步系统 |
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 |
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 |
US10453305B2 (en) * | 2014-09-17 | 2019-10-22 | Konami Gaming, Inc. | Gaming machine and methods of providing games to players having player characters and enemy characters |
US10409457B2 (en) * | 2014-10-06 | 2019-09-10 | Zynga Inc. | Systems and methods for replenishment of virtual objects based on device orientation |
US11165596B2 (en) | 2014-11-04 | 2021-11-02 | Tmrw Foundation Ip S. À R.L. | System and method for inviting users to participate in activities based on interactive recordings |
CN104699498B (zh) * | 2014-12-10 | 2017-11-03 | 上海斐讯数据通信技术有限公司 | 基于Android平台的通过列表控件异步加载图片的优化方法 |
US10315113B2 (en) | 2015-05-14 | 2019-06-11 | Activision Publishing, Inc. | System and method for simulating gameplay of nonplayer characters distributed across networked end user devices |
JP6018266B1 (ja) * | 2015-07-17 | 2016-11-02 | 株式会社スクウェア・エニックス | ビデオゲーム処理プログラム及びビデオゲーム処理システム |
KR101766636B1 (ko) * | 2016-02-02 | 2017-08-09 | 주식회사 골프존 | 플레이어 매칭 장치 및 플레이어 매칭 방법 |
CN114768245A (zh) | 2016-03-15 | 2022-07-22 | 思奇里兹平台股份有限公司 | 用于虚拟排名赛的同步模型 |
WO2017160917A2 (en) | 2016-03-15 | 2017-09-21 | Skillz Inc. | Across-match analytics in peer-to-peer gaming tournaments |
WO2017160932A1 (en) | 2016-03-16 | 2017-09-21 | Skillz Inc. | Management of streaming video data |
US10286280B2 (en) * | 2016-04-11 | 2019-05-14 | Charles Chungyohl Lee | Motivational kinesthetic virtual training program for martial arts and fitness |
KR101875913B1 (ko) * | 2016-05-20 | 2018-07-06 | 주식회사 엑소게임즈 | 사용자 단말에서 수행되는 다중 접속 네트워크 게임 제공 방법 및 사용자 단말 |
US10625156B2 (en) * | 2016-06-30 | 2020-04-21 | Sony Interactive Entertainment LLC | Method and system for sharing video game content |
CN106512410A (zh) * | 2016-11-10 | 2017-03-22 | 北京像素软件科技股份有限公司 | 与离线玩家交互的数据处理方法、装置及服务器 |
US10304281B2 (en) * | 2016-11-22 | 2019-05-28 | Aruze Gaming (Hong Kong) Limited | Multiplayer and multigame electronic wagering table game system using live dealer |
CN106823376B (zh) | 2017-01-24 | 2020-08-21 | 腾讯科技(深圳)有限公司 | 一种实现用户匹配的方法及装置 |
CN107370667B (zh) * | 2017-07-31 | 2021-05-07 | 北京北信源软件股份有限公司 | 多线程并行处理方法和装置、可读介质和存储控制器 |
KR101963146B1 (ko) * | 2017-08-31 | 2019-03-29 | 엔에이치엔엔터테인먼트 주식회사 | 퍼즐 매칭 게임의 진행 방법 및 이를 이용하여 퍼즐 매칭 게임을 진행시키는 게임 시스템 |
US11040286B2 (en) * | 2017-09-27 | 2021-06-22 | Activision Publishing, Inc. | Methods and systems for improved content generation in multiplayer gaming environments |
US10974150B2 (en) | 2017-09-27 | 2021-04-13 | Activision Publishing, Inc. | Methods and systems for improved content customization in multiplayer gaming environments |
US10864443B2 (en) | 2017-12-22 | 2020-12-15 | Activision Publishing, Inc. | Video game content aggregation, normalization, and publication systems and methods |
US10549200B2 (en) | 2018-03-08 | 2020-02-04 | Electronic Arts, Inc. | Matchmaking for online gaming with streaming players |
US11071909B2 (en) * | 2018-03-19 | 2021-07-27 | Electronic Arts Inc. | Game quality-centric matchmaking for online gaming |
CN108339274B (zh) * | 2018-03-29 | 2020-02-21 | 北京达佳互联信息技术有限公司 | 业务连接处理方法、装置及电子设备 |
US10249140B1 (en) * | 2018-05-10 | 2019-04-02 | Huuuge Global Ltd. | System and method for playing online game |
US10967259B1 (en) | 2018-05-16 | 2021-04-06 | Amazon Technologies, Inc. | Asynchronous event management for hosted sessions |
CN109224456B (zh) * | 2018-08-06 | 2022-05-27 | 广州方硅信息技术有限公司 | 直播间游戏组队方法、基于直播的游戏交互系统及服务器 |
JP6743102B2 (ja) * | 2018-09-06 | 2020-08-19 | 株式会社アグニ・フレア | ゲームプログラム、記録媒体及びゲーム制御方法 |
US11679330B2 (en) | 2018-12-18 | 2023-06-20 | Activision Publishing, Inc. | Systems and methods for generating improved non-player characters |
CN110381387A (zh) * | 2019-06-10 | 2019-10-25 | 北京字节跳动网络技术有限公司 | 一种互动方法、装置、介质和电子设备 |
US11097193B2 (en) | 2019-09-11 | 2021-08-24 | Activision Publishing, Inc. | Methods and systems for increasing player engagement in multiplayer gaming environments |
US11712627B2 (en) | 2019-11-08 | 2023-08-01 | Activision Publishing, Inc. | System and method for providing conditional access to virtual gaming items |
US11260306B2 (en) * | 2020-04-23 | 2022-03-01 | Electronic Arts Inc. | Matchmaking for online gaming with simulated players |
US11305195B2 (en) * | 2020-05-08 | 2022-04-19 | T-Mobile Usa, Inc. | Extended environmental using real-world environment data |
US11524234B2 (en) | 2020-08-18 | 2022-12-13 | Activision Publishing, Inc. | Multiplayer video games with virtual characters having dynamically modified fields of view |
US11351459B2 (en) | 2020-08-18 | 2022-06-07 | Activision Publishing, Inc. | Multiplayer video games with virtual characters having dynamically generated attribute profiles unconstrained by predefined discrete values |
JP6997930B2 (ja) * | 2020-12-28 | 2022-01-18 | 楽天グループ株式会社 | 飛行体及び標識表示方法 |
CN113457132B (zh) * | 2021-06-23 | 2024-03-01 | 北京达佳互联信息技术有限公司 | 对象投放方法、装置、电子设备及存储介质 |
KR102469201B1 (ko) * | 2021-12-30 | 2022-11-22 | 주식회사 스포플랫폼 | 토너먼트 게임의 일정 관리 방법, 게임 관리 서버 및 이를 위한 컴퓨터 프로그램 |
US11857882B1 (en) * | 2022-06-29 | 2024-01-02 | Superplay Ltd | Altering computer game tiles having multiple matchable ends |
Family Cites Families (183)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2800457A (en) | 1953-06-30 | 1957-07-23 | Ncr Co | Oil-containing microscopic capsules and method of making them |
US5360897A (en) | 1981-08-31 | 1994-11-01 | The University Of Rochester | Immunogenic conjugates of streptococcus pneumonial capsular polymer and toxin or in toxiad |
SE8205892D0 (sv) | 1982-10-18 | 1982-10-18 | Bror Morein | Immunogent membranproteinkomplex, sett for framstellning och anvendning derav som immunstimulerande medel och sasom vaccin |
DE3485094D1 (de) | 1983-01-25 | 1991-10-31 | Ciba Geigy Ag | Neue peptidderivate. |
EP0138854B1 (en) | 1983-03-08 | 1992-11-04 | Chiron Mimotopes Pty. Ltd. | Antigenically active amino acid sequences |
IL73534A (en) | 1983-11-18 | 1990-12-23 | Riker Laboratories Inc | 1h-imidazo(4,5-c)quinoline-4-amines,their preparation and pharmaceutical compositions containing certain such compounds |
US6090406A (en) | 1984-04-12 | 2000-07-18 | The Liposome Company, Inc. | Potentiation of immune responses with liposomal adjuvants |
US5916588A (en) | 1984-04-12 | 1999-06-29 | The Liposome Company, Inc. | Peptide-containing liposomes, immunogenic liposomes and methods of preparation and use |
EP0639582B1 (en) | 1985-03-15 | 1998-09-16 | Antivirals Inc. | Polynucleotide assay reagent and method |
US5185444A (en) | 1985-03-15 | 1993-02-09 | Anti-Gene Deveopment Group | Uncharged morpolino-based polymers having phosphorous containing chiral intersubunit linkages |
US5011828A (en) | 1985-11-15 | 1991-04-30 | Michael Goodman | Immunostimulating guanine derivatives, compositions and methods |
ES2061500T5 (es) | 1986-06-17 | 2003-05-16 | Chiron Corp | Diagnosis y vacunas de la hepatitis delta, su preparacion y uso. |
FR2608942B1 (fr) | 1986-12-31 | 1991-01-11 | Centre Nat Rech Scient | Procede de preparation de systemes colloidaux dispersibles d'une substance, sous forme de nanocapsules |
FR2608988B1 (fr) | 1986-12-31 | 1991-01-11 | Centre Nat Rech Scient | Procede de preparation de systemes colloidaux dispersibles d'une substance, sous forme de nanoparticules |
US5057540A (en) | 1987-05-29 | 1991-10-15 | Cambridge Biotech Corporation | Saponin adjuvant |
NZ230423A (en) | 1988-08-25 | 1993-08-26 | Liposome Co Inc | A dosage form comprising an antigen and a multilamellar liposome comprising dimyristolyphosphatidylcholine (dmpc) and cholesterol |
DE3841091A1 (de) | 1988-12-07 | 1990-06-13 | Behringwerke Ag | Synthetische antigene, verfahren zu ihrer herstellung und ihre verwendung |
US5238944A (en) | 1988-12-15 | 1993-08-24 | Riker Laboratories, Inc. | Topical formulations and transdermal delivery systems containing 1-isobutyl-1H-imidazo[4,5-c]quinolin-4-amine |
CA2006700A1 (en) | 1989-01-17 | 1990-07-17 | Antonello Pessi | Synthetic peptides and their use as universal carriers for the preparation of immunogenic conjugates suitable for the development of synthetic vaccines |
US4929624A (en) | 1989-03-23 | 1990-05-29 | Minnesota Mining And Manufacturing Company | Olefinic 1H-imidazo(4,5-c)quinolin-4-amines |
ES2106033T3 (es) | 1989-05-19 | 1997-11-01 | Genentech Inc | Dominio extracelular de her2. |
HU212924B (en) | 1989-05-25 | 1996-12-30 | Chiron Corp | Adjuvant formulation comprising a submicron oil droplet emulsion |
DE69033842T2 (de) | 1989-08-04 | 2002-06-20 | Schering Ag | Äusserliche domäne von c-erbb-2:gp75 |
IT1237764B (it) | 1989-11-10 | 1993-06-17 | Eniricerche Spa | Peptidi sintetici utili come carriers universali per la preparazione di coniugati immunogenici e loro impiego per lo sviluppo di vaccini sintetici. |
US5658731A (en) | 1990-04-09 | 1997-08-19 | Europaisches Laboratorium Fur Molekularbiologie | 2'-O-alkylnucleotides as well as polymers which contain such nucleotides |
ATE128628T1 (de) | 1990-08-13 | 1995-10-15 | American Cyanamid Co | Faser-hemagglutinin von bordetella pertussis als träger für konjugierten impfstoff. |
US5153312A (en) | 1990-09-28 | 1992-10-06 | American Cyanamid Company | Oligosaccharide conjugate vaccines |
US5389640A (en) | 1991-03-01 | 1995-02-14 | Minnesota Mining And Manufacturing Company | 1-substituted, 2-substituted 1H-imidazo[4,5-c]quinolin-4-amines |
US5268376A (en) | 1991-09-04 | 1993-12-07 | Minnesota Mining And Manufacturing Company | 1-substituted 1H-imidazo[4,5-c]quinolin-4-amines |
US5266575A (en) | 1991-11-06 | 1993-11-30 | Minnesota Mining And Manufacturing Company | 2-ethyl 1H-imidazo[4,5-ciquinolin-4-amines |
DE69219787T2 (de) | 1991-11-29 | 1997-08-28 | Chiron Viagene, Inc., Emeryville, Calif. | Immuntherapeutische vektorkonstrukte gegen krebs |
EP0967279B1 (en) | 1992-03-02 | 2008-01-02 | Novartis Vaccines and Diagnostics S.r.l. | Helicobacter pylori cytotoxin useful for vaccines and diagnostics |
IT1262896B (it) | 1992-03-06 | 1996-07-22 | Composti coniugati formati da proteine heat shock (hsp) e oligo-poli- saccaridi, loro uso per la produzione di vaccini. | |
NZ253137A (en) | 1992-06-25 | 1996-08-27 | Smithkline Beecham Biolog | Vaccine comprising antigen and/or antigenic composition, qs21 (quillaja saponaria molina extract) and 3 de-o-acylated monophosphoryl lipid a. |
US5395937A (en) | 1993-01-29 | 1995-03-07 | Minnesota Mining And Manufacturing Company | Process for preparing quinoline amines |
US5869445A (en) | 1993-03-17 | 1999-02-09 | University Of Washington | Methods for eliciting or enhancing reactivity to HER-2/neu protein |
US5801005A (en) | 1993-03-17 | 1998-09-01 | University Of Washington | Immune reactivity to HER-2/neu protein for diagnosis of malignancies in which the HER-2/neu oncogene is associated |
PL178578B1 (pl) | 1993-03-23 | 2000-05-31 | Smithkline Beecham Biolog | Zawiesina cząstek 3-0-deacylowanego monofosforylolipidu A i sposób jej wytwarzania oraz kompozycja szczepionki zawierającej antygen w połączeniu z 3-0-deacylowanym monofosforylolipidem A i sposób jej wytwarzania |
US5352784A (en) | 1993-07-15 | 1994-10-04 | Minnesota Mining And Manufacturing Company | Fused cycloalkylimidazopyridines |
EP0708772B1 (en) | 1993-07-15 | 2000-08-23 | Minnesota Mining And Manufacturing Company | IMIDAZO [4,5-c]PYRIDIN-4-AMINES |
US6015686A (en) | 1993-09-15 | 2000-01-18 | Chiron Viagene, Inc. | Eukaryotic layered vector initiation systems |
GB9326174D0 (en) | 1993-12-22 | 1994-02-23 | Biocine Sclavo | Mucosal adjuvant |
GB9326253D0 (en) | 1993-12-23 | 1994-02-23 | Smithkline Beecham Biolog | Vaccines |
US6429199B1 (en) | 1994-07-15 | 2002-08-06 | University Of Iowa Research Foundation | Immunostimulatory nucleic acid molecules for activating dendritic cells |
US6207646B1 (en) | 1994-07-15 | 2001-03-27 | University Of Iowa Research Foundation | Immunostimulatory nucleic acid molecules |
US6239116B1 (en) | 1994-07-15 | 2001-05-29 | University Of Iowa Research Foundation | Immunostimulatory nucleic acid molecules |
US5613909A (en) | 1994-07-21 | 1997-03-25 | Stelovsky; Jan | Time-segmented multimedia game playing and authoring system |
AUPM873294A0 (en) | 1994-10-12 | 1994-11-03 | Csl Limited | Saponin preparations and use thereof in iscoms |
US5482936A (en) | 1995-01-12 | 1996-01-09 | Minnesota Mining And Manufacturing Company | Imidazo[4,5-C]quinoline amines |
IL117483A (en) | 1995-03-17 | 2008-03-20 | Bernard Brodeur | MENINGITIDIS NEISSERIA shell protein is resistant to proteinase K. |
UA56132C2 (uk) | 1995-04-25 | 2003-05-15 | Смітклайн Бічем Байолоджікалс С.А. | Композиція вакцини (варіанти), спосіб стабілізації qs21 відносно гідролізу (варіанти), спосіб приготування композиції вакцини |
GB9513261D0 (en) | 1995-06-29 | 1995-09-06 | Smithkline Beecham Biolog | Vaccines |
US5830067A (en) | 1995-09-27 | 1998-11-03 | Multimedia Games, Inc. | Proxy player machine |
US6430997B1 (en) | 1995-11-06 | 2002-08-13 | Trazer Technologies, Inc. | System and method for tracking and assessing movement skills in multidimensional space |
WO1997037026A1 (en) | 1996-04-02 | 1997-10-09 | Smithkline Beecham Corporation | Novel compounds |
US6451592B1 (en) | 1996-04-05 | 2002-09-17 | Chiron Corporation | Recombinant alphavirus-based vectors with reduced inhibition of cellular macromolecular synthesis |
WO1997038087A2 (en) | 1996-04-05 | 1997-10-16 | Chiron Corporation | Alphaviral vector with reduced inhibition of cellular macromolecular synthesis |
US5846132A (en) | 1996-04-10 | 1998-12-08 | William W. Junkin Trust | Interactive system allowing simulated or real time participation in a league |
JP2000508178A (ja) | 1996-05-14 | 2000-07-04 | スミスクライン・ビーチャム・コーポレイション | 新規化合物 |
DE19630390A1 (de) | 1996-07-26 | 1998-01-29 | Chiron Behring Gmbh & Co | Proteine, insbesondere Membranproteine von Helicobacter pylori, ihre Herstellung und Verwendung |
CA2639051A1 (en) | 1996-09-04 | 1998-03-12 | Takara Bio Inc. | Fungal antigens and process for producing the same |
DE69737125T3 (de) | 1996-10-31 | 2015-02-26 | Human Genome Sciences, Inc. | Streptococcus pneumoniae-Antigene und Impfstoffe |
US6080063A (en) | 1997-01-06 | 2000-06-27 | Khosla; Vinod | Simulated real time game play with live event |
US20040202680A1 (en) | 1997-01-30 | 2004-10-14 | O'hagan Derek | Microparticles with adsorbent surfaces, methods of making same, and uses thereof |
US6884435B1 (en) | 1997-01-30 | 2005-04-26 | Chiron Corporation | Microparticles with adsorbent surfaces, methods of making same, and uses thereof |
WO1998033487A1 (en) | 1997-01-30 | 1998-08-06 | Chiron Corporation | Use of microparticles with adsorbed antigen to stimulate immune responses |
US6024643A (en) * | 1997-03-04 | 2000-02-15 | Intel Corporation | Player profile based proxy play |
EP1005368B1 (en) | 1997-03-10 | 2009-09-02 | Ottawa Hospital Research Institute | Use of nucleic acids containing unmethylated CpG dinucleotide in combination with alum as adjuvants |
US6818222B1 (en) | 1997-03-21 | 2004-11-16 | Chiron Corporation | Detoxified mutants of bacterial ADP-ribosylating toxins as parenteral adjuvants |
US6299881B1 (en) | 1997-03-24 | 2001-10-09 | Henry M. Jackson Foundation For The Advancement Of Military Medicine | Uronium salts for activating hydroxyls, carboxyls, and polysaccharides, and conjugate vaccines, immunogens, and other useful immunological reagents produced using uronium salts |
GB9712347D0 (en) | 1997-06-14 | 1997-08-13 | Smithkline Beecham Biolog | Vaccine |
GB9713156D0 (en) | 1997-06-20 | 1997-08-27 | Microbiological Res Authority | Vaccines |
US6800744B1 (en) | 1997-07-02 | 2004-10-05 | Genome Therapeutics Corporation | Nucleic acid and amino acid sequences relating to Streptococcus pneumoniae for diagnostics and therapeutics |
US6977074B2 (en) | 1997-07-10 | 2005-12-20 | Mannkind Corporation | Method of inducing a CTL response |
CA2302554C (en) | 1997-09-05 | 2007-04-10 | Smithkline Beecham Biologicals S.A. | Oil in water emulsions containing saponins |
US6756361B1 (en) | 1997-10-14 | 2004-06-29 | Nabi | Enterococcus antigens and vaccines |
CA2308606A1 (en) | 1997-11-06 | 1999-05-20 | Chiron S.P.A. | Neisserial antigens |
BR9814878A (pt) | 1997-11-21 | 2000-10-03 | Genset Sa | Sequência genÈmica e polipeptìdeos de chlamydia pneumoniae, fragmentos dos mesmos e usos dos mesmos, em particular para o diagnóstico, a prevenção e o tratamento de infecção |
GB9725084D0 (en) | 1997-11-28 | 1998-01-28 | Medeva Europ Ltd | Vaccine compositions |
WO1999028475A2 (en) | 1997-11-28 | 1999-06-10 | Genset | Chlamydia trachomatis genomic sequence and polypeptides, fragments thereof and uses thereof, in particular for the diagnosis, prevention and treatment of infection |
PT1047784E (pt) | 1998-01-14 | 2009-12-21 | Novartis Vaccines & Diagnostic | Antigénios de neisseria meningitidis |
GB9807721D0 (en) | 1998-04-08 | 1998-06-10 | Chiron Spa | Antigen |
JP2002511423A (ja) | 1998-04-09 | 2002-04-16 | スミスクライン ビーチャム バイオロジカルズ ソシエテ アノニム | ワクチン |
EP2261346A3 (en) | 1998-05-01 | 2012-01-04 | Novartis Vaccines and Diagnostics, Inc. | Neisseria meningitidis antigens and compositions |
GB9810193D0 (en) | 1998-05-12 | 1998-07-08 | Smithkline Beecham Biolog | Novel compounds |
US6562798B1 (en) | 1998-06-05 | 2003-05-13 | Dynavax Technologies Corp. | Immunostimulatory oligonucleotides with modified bases and methods of use thereof |
ES2260923T3 (es) | 1998-07-29 | 2006-11-01 | Chiron Corporation | Micorparticulas con superficies adsorbentes, procedimientos de fabricacion y uso de las mismas. |
GB9817052D0 (en) | 1998-08-05 | 1998-09-30 | Smithkline Beecham Biolog | Vaccine |
GB9819898D0 (en) | 1998-09-11 | 1998-11-04 | Smithkline Beecham Plc | New vaccine and method of use |
MXPA01003557A (es) | 1998-10-09 | 2004-04-05 | Chiron Corp | Secuencias genomicas de neisseria y metodos para su uso. |
CA2347099C (en) | 1998-10-16 | 2014-08-05 | Smithkline Beecham Biologicals S.A. | Adjuvant systems comprising an immunostimulant adsorbed to a metallic salt particle and vaccines thereof |
JP4097240B2 (ja) * | 1998-10-26 | 2008-06-11 | 株式会社バンダイナムコゲームス | ゲームシステム及び情報記憶媒体 |
EP1133572A4 (en) | 1998-11-12 | 2005-06-15 | Univ California | GENOME SEQUENCE OF CHLAMYDIA PNEUMONIAE |
GB9828000D0 (en) | 1998-12-18 | 1999-02-10 | Chiron Spa | Antigens |
US20030130212A1 (en) | 1999-01-14 | 2003-07-10 | Rossignol Daniel P. | Administration of an anti-endotoxin drug by intravenous infusion |
US6551600B2 (en) | 1999-02-01 | 2003-04-22 | Eisai Co., Ltd. | Immunological adjuvant compounds compositions and methods of use thereof |
US6273820B1 (en) | 1999-02-04 | 2001-08-14 | Haste, Iii Thomas E. | Virtual player gaming method |
HU228499B1 (en) | 1999-03-19 | 2013-03-28 | Smithkline Beecham Biolog | Streptococcus vaccine |
ATE272410T1 (de) | 1999-03-26 | 2004-08-15 | Vical Inc | Adjuvanszusammensetzungen zur erhöhung der immunantwort auf polynukleotid-basierende impfstoffe |
WO2000067161A2 (en) | 1999-05-04 | 2000-11-09 | Grant Lee H | Method and apparatus for categorizing and retrieving network pages and sites |
EP1198273B1 (en) * | 1999-07-15 | 2006-01-25 | Midway Games West Inc. | System and method of vehicle competition with enhanced ghosting features |
JP4658423B2 (ja) | 1999-08-03 | 2011-03-23 | ザ オハイオ ステイト ユニバーシティ | Her−2タンパク質に対する免疫反応性を増強するためのポリペプチドおよびポリヌクレオチド |
TR200200777T2 (tr) | 1999-09-24 | 2002-09-23 | Smithkline Beecham Biologicals S.A. | Polioksietilen alkil eteri veya esteriyle en az bir iyonik olmayan yüzey aktif maddeli adjuvant. |
IL148672A0 (en) | 1999-09-24 | 2002-09-12 | Smithkline Beecham Biolog | Use of combination of polyxyethylene sorbitan ester and octoxynol as adjuvant and its use in vaccines |
WO2001027771A1 (fr) * | 1999-10-08 | 2001-04-19 | Kabushiki Kaisha Eighting | Procede de recherche de participant dans un jeu ou un forum en ligne, dispositif de recherche de participant, serveur de reseau de participants, terminal de reseau et programme d'ordinateur |
WO2001036599A1 (en) | 1999-11-19 | 2001-05-25 | Chiron Corporation | Microparticle-based transfection and activation of dendritic cells |
DK1897555T3 (da) | 2000-01-17 | 2014-10-13 | Novartis Vaccines & Diagnostic | Kompletteret OMV-vaccine mod meningococcus |
US20010044416A1 (en) | 2000-01-20 | 2001-11-22 | Mccluskie Michael J. | Immunostimulatory nucleic acids for inducing a Th2 immune response |
US6951516B1 (en) | 2001-08-21 | 2005-10-04 | Nintendo Co., Ltd. | Method and apparatus for multi-user communications using discrete video game platforms |
WO2002002606A2 (en) | 2000-07-03 | 2002-01-10 | Chiron S.P.A. | Immunisation against chlamydia pneumoniae |
WO2002011083A2 (en) | 2000-07-28 | 2002-02-07 | Gamecraft, Inc. | Computer gaming system |
AU8743001A (en) | 2000-08-28 | 2002-03-13 | Aventis Pasteur | Moraxella polypeptides and corresponding dna fragments and uses thereof |
JP4341949B2 (ja) | 2000-09-01 | 2009-10-14 | ノバルティス バクシンズ アンド ダイアグノスティックス,インコーポレーテッド | アザ複素環式誘導体およびその治療的使用 |
EP1317442B1 (en) | 2000-09-11 | 2005-11-16 | Chiron Corporation | Quinolinone derivatives as tyrosine kinase inhibitors |
AU9475001A (en) | 2000-09-26 | 2002-04-08 | Hybridon Inc | Modulation of immunostimulatory activity of immunostimulatory oligonucleotide analogs by positional chemical changes |
JP2004518631A (ja) | 2000-09-28 | 2004-06-24 | カイロン コーポレイション | 異種核酸の送達のための微粒子 |
SG165981A1 (en) | 2000-10-27 | 2010-11-29 | Chiron Srl | Nucleic acids and proteins from streptococcus groups a & b |
US7244181B2 (en) | 2000-11-14 | 2007-07-17 | Netamin Communication Corp. | Multi-player game employing dynamic re-sequencing |
US7377852B2 (en) * | 2000-12-20 | 2008-05-27 | Aruze Co., Ltd. | Server providing competitive game service, program storage medium for use in the server, and method of providing competitive game service using the server |
GB0103424D0 (en) | 2001-02-12 | 2001-03-28 | Chiron Spa | Gonococcus proteins |
MXPA03008154A (es) | 2001-03-09 | 2004-11-12 | Id Biomedical Corp Quebec | Novedoso adyuvante de vacuna de proteosoma-liposacarido. |
US7218739B2 (en) | 2001-03-09 | 2007-05-15 | Microsoft Corporation | Multiple user authentication for online console-based gaming |
CA2447599C (en) | 2001-05-18 | 2015-04-28 | The Government Of The United States Of America, As Represented By The Secretary, Department Of Health And Human Services, Centers For Disease Control And Prevention, Technology Transfer Office | Peptide vaccines against group a streptococci |
US6899628B2 (en) | 2001-07-13 | 2005-05-31 | Game Account Limited | System and method for providing game event management to a user of a gaming application |
US6679777B2 (en) | 2001-08-06 | 2004-01-20 | Thwartpoker Inc. | Playing an interactive real-time card selection game over a network |
GB0120135D0 (en) * | 2001-08-17 | 2001-10-10 | Massey Graham P | A system for playing interactive games |
ATE447967T1 (de) | 2001-09-14 | 2009-11-15 | Cytos Biotechnology Ag | Verpackung von immunstimulierendem cpg in virusähnlichen partikeln: herstellungsverfahren und verwendung |
WO2003024480A2 (en) | 2001-09-14 | 2003-03-27 | Cytos Biotechnology Ag | In vivo activation of antigen presenting cells for enhancement of immune responses induced by virus like particles |
WO2003035836A2 (en) | 2001-10-24 | 2003-05-01 | Hybridon Inc. | Modulation of immunostimulatory properties of oligonucleotide-based compounds by optimal presentation of 5' ends |
AP2004003069A0 (en) | 2001-11-27 | 2004-06-30 | Anadys Pharmaceuticals Inc | 3-beta-d-ribofuranosynthiazolo [4-5-d] pyridimine nucleosides and uses thereof. |
US7321033B2 (en) | 2001-11-27 | 2008-01-22 | Anadys Pharmaceuticals, Inc. | 3-B-D-ribofuranosylthiazolo [4,5-d] pyrimidine nucleosides and uses thereof |
NZ546711A (en) | 2001-12-12 | 2008-06-30 | Chiron Srl | Immunisation against chlamydia trachomatis |
GB0203403D0 (en) | 2002-02-13 | 2002-04-03 | Chiron Spa | Chlamydia cytotoxic-T cell epitopes |
CA2480638C (en) | 2002-03-29 | 2013-02-12 | Chiron Corporation | Substituted benzazoles and use thereof as raf kinase inhibitors |
GB0210128D0 (en) | 2002-05-02 | 2002-06-12 | Chiron Spa | Nucleic acids and proteins from streptococcus groups A & B |
JP2004049313A (ja) | 2002-07-16 | 2004-02-19 | Aruze Corp | 遊技機、サーバ及びプログラム |
US7250443B2 (en) | 2002-08-23 | 2007-07-31 | Chiron Corporation | Pyrrole based inhibitors of glycogen synthase kinase 3 |
US20070036828A1 (en) | 2002-09-13 | 2007-02-15 | Chiron Corporation | Group b streptococcus vaccine |
HUE031886T2 (en) | 2002-10-11 | 2017-08-28 | Glaxosmithkline Biologicals Sa | Polypeptide vaccines for extensive protection against hypervirulent meningococcal lines |
US20090118019A1 (en) | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
WO2004060308A2 (en) | 2002-12-27 | 2004-07-22 | Chiron Corporation | Thiosemicarbazones as anti-virals and immunopotentiators |
WO2004064759A2 (en) | 2003-01-21 | 2004-08-05 | Chiron Corporation | Use of tryptanthrin compounds for immune potentiation |
GB0301554D0 (en) | 2003-01-23 | 2003-02-26 | Molecularnature Ltd | Immunostimulatory compositions |
US20050277472A1 (en) | 2003-03-26 | 2005-12-15 | William Gillan | Game server system and method for generating revenue therewith |
ES2423800T3 (es) | 2003-03-28 | 2013-09-24 | Novartis Vaccines And Diagnostics, Inc. | Uso de compuestos orgánicos para la inmunopotenciación |
US20060257852A1 (en) | 2003-04-10 | 2006-11-16 | Chiron Corporation | Severe acute respiratory syndrome coronavirus |
MXPA05013260A (es) | 2003-06-26 | 2006-03-09 | Chiron Corp | Composiciones inmunogenicas para chlamydia trachomatis. |
EP1652044A4 (en) * | 2003-07-15 | 2006-08-30 | Wildtangent Inc | LAUNCHING MULTI-USER SESSIONS, SYSTEM AND INVITATION METHOD THEREOF |
ES2505695T3 (es) | 2003-07-31 | 2014-10-10 | Novartis Vaccines And Diagnostics, Inc. | Composiciones inmunógenas para Streptococcus pyogenes |
US7288028B2 (en) * | 2003-09-26 | 2007-10-30 | Microsoft Corporation | Method and apparatus for quickly joining an online game being played by a friend |
WO2005084306A2 (en) | 2004-03-02 | 2005-09-15 | Chiron Corporation | Immunogenic compositions for chlamydia pneunomiae |
MX2007003078A (es) | 2004-09-14 | 2007-05-16 | Novartis Vaccines & Diagnostic | Compuestos de imidazoquinolina. |
US7828661B1 (en) * | 2004-12-21 | 2010-11-09 | Aol Inc. | Electronic invitations for an on-line game |
US7937314B2 (en) | 2005-10-21 | 2011-05-03 | The Invention Science Fund I | Disposition of component virtual property rights |
US8142268B2 (en) * | 2005-04-13 | 2012-03-27 | Take Two Interactive Software, Inc. | Systems and methods for simulating a particular user in an interactive computer system |
WO2006124922A2 (en) * | 2005-05-17 | 2006-11-23 | Super Computer International | Collaborative online gaming system and method |
US20070123353A1 (en) * | 2005-08-19 | 2007-05-31 | Nintendo Co., Ltd. | Invitation system for on-line video games |
US8696464B2 (en) * | 2005-08-19 | 2014-04-15 | Nintendo Co., Ltd. | Enhanced method and apparatus for selecting and rendering performance data |
KR100766545B1 (ko) * | 2005-09-08 | 2007-10-11 | 엔에이치엔(주) | 게이머의 입력 패턴을 복사하여 게임을 수행하는 게임 ai제어 방법 및 게임 ai 제어 시스템 |
JP5806444B2 (ja) | 2005-12-02 | 2015-11-10 | ノバルティス アーゲー | 免疫原性組成物で使用するためのナノ粒子 |
JP4164097B2 (ja) * | 2006-02-14 | 2008-10-08 | 株式会社コナミデジタルエンタテインメント | ゲーム端末装置 |
US20100010217A1 (en) | 2006-03-23 | 2010-01-14 | Valiante Nicholas M | Methods for the preparation of imidazole-containing compounds |
US7664927B2 (en) | 2006-03-29 | 2010-02-16 | Microsoft Corporation | Hash tables |
US20080039167A1 (en) | 2006-08-03 | 2008-02-14 | Seven Lights, Llc | Systems and methods for point value based match-up in online gaming |
CN101155044B (zh) * | 2006-09-29 | 2010-06-09 | 腾讯科技(深圳)有限公司 | 邀请即时通信用户加入网络游戏的方法、及用户设备 |
US8062129B2 (en) | 2006-09-29 | 2011-11-22 | Pope Alan T | Physiological user interface for a multi-user virtual environment |
WO2008043296A1 (fr) | 2006-09-29 | 2008-04-17 | Tencent Technology (Shenzhen) Company Limited | Procédé, équipement et système pour participer à un jeu en réseau |
GB2444767A (en) | 2006-11-22 | 2008-06-18 | Bawden & Associates | Internet trivia quiz game including virtual players |
US8480495B2 (en) | 2006-12-21 | 2013-07-09 | Microsoft Corporation | Social rewards for online game playing |
US9104962B2 (en) | 2007-03-06 | 2015-08-11 | Trion Worlds, Inc. | Distributed network architecture for introducing dynamic content into a synthetic environment |
KR101106846B1 (ko) * | 2007-09-19 | 2012-01-19 | 소니 컴퓨터 엔터테인먼트 아메리카 엘엘씨 | 복수-사용자 온라인 세션들에 대한 트래킹, 코릴레이팅 및 프로세싱 |
US8272961B2 (en) | 2007-11-20 | 2012-09-25 | Zynga Inc. | Asynchronous challenge gaming |
US8466167B2 (en) | 2008-03-03 | 2013-06-18 | Irm Llc | Compounds and compositions as TLR activity modulators |
US20090325712A1 (en) | 2008-06-28 | 2009-12-31 | Microsoft Corporation | Player character matchmaking with distributed peer-to-peer functionality |
CN101309234A (zh) * | 2008-06-30 | 2008-11-19 | 北京金山软件有限公司 | 一种在网络游戏中实现离线玩家参与游戏的方法及装置 |
US8313370B2 (en) | 2008-09-02 | 2012-11-20 | Tetris Holding Llc | Video game systems and methods for providing software-based skill adjustment mechanisms for video game systems |
WO2010075070A1 (en) | 2008-12-15 | 2010-07-01 | Tetris Online, Inc. | Interactive asynchronous computer game infrastructure |
US8496531B2 (en) | 2008-12-15 | 2013-07-30 | Tetris Online, Inc. | Interactive hybrid asynchronous computer game infrastructure with dynamic difficulty adjustment |
US8444490B2 (en) | 2008-12-15 | 2013-05-21 | Tetris Online, Inc. | Interactive asynchronous game offline play architecture |
US20110213655A1 (en) | 2009-01-24 | 2011-09-01 | Kontera Technologies, Inc. | Hybrid contextual advertising and related content analysis and display techniques |
CA2765112A1 (en) | 2009-06-10 | 2010-12-16 | Novartis Ag | Benzonaphthyridine-containing vaccines |
US20110276744A1 (en) | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
WO2011149564A1 (en) | 2010-05-28 | 2011-12-01 | Tetris Online, Inc. | Interactive hybrid asynchronous computer game infrastructure |
-
2011
- 2011-01-24 WO PCT/US2011/022225 patent/WO2011149564A1/en active Application Filing
- 2011-01-24 US US13/012,224 patent/US8585505B2/en not_active Expired - Fee Related
- 2011-01-24 KR KR1020127033803A patent/KR20130121699A/ko not_active Application Discontinuation
- 2011-01-24 CN CN201180025359.9A patent/CN102933267B/zh not_active Expired - Fee Related
- 2011-01-24 JP JP2013512612A patent/JP2013532008A/ja active Pending
- 2011-01-24 EP EP11787044.4A patent/EP2575988A1/en not_active Withdrawn
- 2011-12-19 US US13/330,145 patent/US8444492B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210034642A (ko) * | 2018-09-11 | 2021-03-30 | 로브록스 코포레이션 | 친구 생성을 위한 사용자 생성 컨텐츠 시스템 |
WO2024090689A1 (ko) * | 2022-10-28 | 2024-05-02 | 드로닉 주식회사 | 무인 비행체를 이용하는 온라인 슈팅 시스템 |
Also Published As
Publication number | Publication date |
---|---|
CN102933267B (zh) | 2015-05-27 |
US20120021823A1 (en) | 2012-01-26 |
JP2013532008A (ja) | 2013-08-15 |
CN102933267A (zh) | 2013-02-13 |
US8585505B2 (en) | 2013-11-19 |
US20120088579A1 (en) | 2012-04-12 |
WO2011149564A1 (en) | 2011-12-01 |
US8444492B2 (en) | 2013-05-21 |
EP2575988A1 (en) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8430755B2 (en) | Interactive asynchronous game play architecture | |
US8444492B2 (en) | Inter-game interactive hybrid asynchronous computer game infrastructure with social networking | |
US8496531B2 (en) | Interactive hybrid asynchronous computer game infrastructure with dynamic difficulty adjustment | |
US8444490B2 (en) | Interactive asynchronous game offline play architecture | |
US8696469B2 (en) | Interactive asynchrounous computer game infrastructure | |
US20120122552A1 (en) | Interactive asynchronous game bucketing facility | |
Achterbosch et al. | Massively multiplayer online role-playing games: The past, present, and future | |
US9724602B2 (en) | Method for implementing a computer game | |
Medler | Generations of game analytics, achievements and high scores | |
US9433855B1 (en) | Social game systems and methods | |
US11724195B2 (en) | Seasonal reward distribution system | |
US9643080B2 (en) | Asynchronous social events in computer-implemented games | |
Schules et al. | Single-player computer role-playing games | |
US10918937B2 (en) | Dynamic gameplay session management system | |
JP2019146998A (ja) | コンピュータシステム及びゲームシステム | |
JP2018164586A (ja) | コンピュータシステム及びゲームシステム | |
US12102925B2 (en) | Competitive event based reward distribution system | |
WO2024087935A1 (zh) | 虚拟对象的控制方法、装置、设备、介质及产品 | |
JP2023114816A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP5620545B2 (ja) | オンラインゲームシステム、バトルサーバ装置、及びプログラム | |
JP2021000209A (ja) | コンピュータシステム、ゲームシステム及びプログラム | |
SHAH et al. | Chess Mania And Tower Defence Game | |
KR20120140483A (ko) | 온라인 게임에서의 인스턴스 던전 제공방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |