KR20180044191A - 멀티플레이어 비디오 게임 매치메이킹 시스템 및 방법들 - Google Patents

멀티플레이어 비디오 게임 매치메이킹 시스템 및 방법들 Download PDF

Info

Publication number
KR20180044191A
KR20180044191A KR1020170133538A KR20170133538A KR20180044191A KR 20180044191 A KR20180044191 A KR 20180044191A KR 1020170133538 A KR1020170133538 A KR 1020170133538A KR 20170133538 A KR20170133538 A KR 20170133538A KR 20180044191 A KR20180044191 A KR 20180044191A
Authority
KR
South Korea
Prior art keywords
user
users
video game
graph
data
Prior art date
Application number
KR1020170133538A
Other languages
English (en)
Other versions
KR102127670B1 (ko
Inventor
수 쉬에
카지 아티프-우즈 자만
나비드 아그흐다이에
존 코렌
쩽싱 첸
Original Assignee
일렉트로닉 아트 아이엔씨.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 일렉트로닉 아트 아이엔씨. filed Critical 일렉트로닉 아트 아이엔씨.
Publication of KR20180044191A publication Critical patent/KR20180044191A/ko
Application granted granted Critical
Publication of KR102127670B1 publication Critical patent/KR102127670B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/798Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for assessing skills or for ranking players, e.g. for generating a hall of fame
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5566Details 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/558Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history by assessing the players' skills or ranking

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본원에 제시된 시스템들의 실시예들은 플레이어 또는 사용자 유지를 증가시키는 멀티플레이어 비디오 게임을 위한 매치메이킹 플랜들의 세트들을 창조하는 맵핑 시스템 및 기계 학습 알고리즘들을 사용하여 멀티플레이어 비디오 게임을 함께 플레이 하는 사용자들을 식별할 수 있다.
본원에 제시된 시스템의 실시예들은 사용자가 비디오 게임의 멀티플레이어 인스턴스에서 하나 이상의 추가 사용자들과 매치하는 경우 비디오 게임을 플레이하기 위해 대기하는 사용자기의, 예측된 해지율 또는 반대로 유지율을 결정할 수 있다.

Description

멀티플레이어 비디오 게임 매치메이킹 시스템 및 방법들{MULTIPLAYER VIDEO GAME MATCHMAKING SYSTEM AND METHODS}
이 개시는 2016년 10월 21일에 출원된 미국 가출원 62/411,452의 우선권을 주장하며, 이는 "참여 최적화된 매치메이킹 프레임워크(Engagement Optimized Matchmaking Framework)"라는 제목이며, 이 개시는 여기서 모든 목적들을 위해 그 전체가 본원에서 참조로 포함된다. 본 명세서가 제출된 명세서 데이터 시트(Application Data Sheet)에 외국 또는 국내 우선권 주장이 명시되어있는 모든 명세서는 37 CFR 1.57에 의거 참조로 통합된다.
소프트웨어 개발자들은 일반적으로 그들의 소프트웨어를 사용하여 가능한 한 오랫동안 사용자들을 참여시키고자 한다. 사용자가 소프트웨어에 참여하는 시간이 길수록, 소프트웨어는 성공할 확률이 높을 것이다. 소프트웨어의 성공 및 사용자의 참여의 길이 간의 관계는 비디오 게임들과 관련하여 특히 중요하다. 사용자가 특정 비디오 게임을 플레이하는(plays) 시간이 길수록, 사용자가 게임을 즐긴 가능성이 높고, 따라서 사용자는 게임을 계속할 가능성이 높아진다.
참여의 원리는 단일 플레이어 게임들에만 국한되지 않으며 멀티플레이어 비디오 게임들에도 적용될 수 있다. 사용자들에게 즐거운 멀티플레어 경험들을 제공하는 비디오 게임들은 사용자가 다시 플레이 할 가능성이 높다. 반대로, 사용자들에게 나쁜(poor) 멀티플레이어 경험들을 제공하는 비디오 게임들은 높은 수의 사용자들을 유지할 가능성이 적다. 따라서, 비디오 게임 개발자의 과제 중 하나는 즐거운 멀티플레이어 경험의 가능성을 보장하거나 증가시키는 메커니즘(mechanism)을 제공하는 것이다.
각각의 본 개시의 시스템들, 방법들 및 장치들은 여러 혁신적인 측면들을 가지며, 그 중 단일의 것은 본원에 개시된 바람직한 속성들의 전부에 전적인 책임이 있다. 본 명세서에서 설명된 주제(subject matter)의 하나 이상의 구현들의 세부 사항은 첨부된 도면들 및 이하의 설명에서 설명된다.
본 개시의 특정 실시예들은 특정 컴퓨터-실행 가능 명령어들로 구성된 인터랙티브 컴퓨팅 시스템(interactive computing system)에 의해 구현될 수 있는 컴퓨터-구현 방법에 관한 것이다. 상기 방법은 사용자들의 풀(pool of users)로부터 복수의 사용자들을 선택하는 단계를 포함할 수 있다. 상기 사용자들의 풀은 비디오 게임(video game)의 인스턴스(instance)를 플레이 하기 위한 선택이 가능하다. 상기 비디오 게임의 인스턴스의 적어도 제1 부분(portion)은 상기 복수의 사용자들로부터 적어도 하나의 사용자 컴퓨팅 장치(user computing device)에서 실행할 수 있고, 상기 비디오 게임의 인스턴스의 제2 부분은 상기 인터랙티브 컴퓨팅 시스템(interactive computing system)에서 실행할 수 있다. 또한, 상기 방법은 복수의 에지들(edges) 및 복수의 정점들(vertexes)을 포함하는 연결된 그래프(connected graph)를 창조하는(creating) 단계를 포함할 수 있다. 각 정점은 상기 복수의 에지들로부터 적어도 하나의 에지에 의해 연결되고, 각 정점은 상기 복수의 사용자들로부터 상이한 사용자(different user)를 나타낼 수 있다. 상기 방법은 상기 복수의 사용자들 중 각 사용자에 대한 사용자 인터랙션 데이터(user interaction data)를 액세스하는(accessing) 단계를 포함할 수 있다. 상기 사용자 인터랙션 데이터는 상기 비디오 게임과의 사용자의 인터랙션(user’s interaction)에 대응할 수 있다. 상기 연결된 그래프에서의 각 에지에 대해, 상기 방법은 상기 에지의 제1 노드에 대응하는 제1 사용자의 제1 해지 위험(churn risk) 및 상기 제2 에지의 제2 노드에 대응하는 제2 사용자의 제2 해지 위험에 적어도 부분적으로 기초하여 상기 에지에 가중치(weight)를 할당하는 단계를 포함할 수 있다. 상기 제1 해지 위험은 상기 제1 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초할 수 있고, 상기 제2 해지 위험은 상기 제2 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초할 수 있다. 또한, 상기 방법은 상기 연결된 그래프 내의 각 에지에 할당된 상기 가중치들에 적어도 부분적으로 기초하여 선택된 에지들의 세트(a set of selected edges)를 얻기(obtain) 위해 상기 연결된 그래프로부터 에지들의 세트를 선택하는 단계를 포함할 수 있다. 상기 연결된 그래프에서의 각 정점은 상기 선택된 에지들의 세트 내의 적어도 하나의 에지에 연결될 수 있다. 또한, 상기 방법은 상기 선택된 에지들의 세트에 포함된 하나 이상의 에지들의 정점들에 대응하는 적어도 사용자들의 한 쌍(at least a pair of users)을 사용하여 상기 비디오 게임의 플레이 가능한 인스턴스(playable instance)를 개시하는(initiating) 단계를 포함할 수 있다.
본 개시의 다른 실시예들은 비디오 게임의 사용자들에 대한 사용자 인터랙션 데이터를 저장하는 전자 데이터 저장소(electronic data store) 및 상기 전자 데이터 저장소와 통신하는 하드웨어 프로세서(hardware processor)를 포함할 수 있는 시스템에 관한 것이다. 상기 하드웨어 프로세서는 비디오 게임의 인스턴스를 플레이 할 수 있는 복수의 사용자들을 적어도 선택하는 특정 컴퓨터-실행 가능 명령어들(specific computer-executable instructions)을 실행할 수 있다. 상기 비디오 게임의 인스턴스의 적어도 제1 부분은 상기 복수의 사용자들로부터 적어도 하나의 사용자의 사용자 컴퓨팅 장치에서 실행하고, 상기 비디오 게임의 인스턴스의 제2 부분은 상기 인터랙티브 컴퓨팅 시스템(interactive computing system)에서 실행할 수 있다. 또한, 상기 하드웨어 프로세서는 상기 복수의 사용자들로부터 상이한 사용자를 나타내는 각 정점을 구비한 연결된 그래프를 적어도 창조하고 상기 전자 데이터 저장소로부터 상기 복수의 사용자들의 각 사용자에 대한 사용자 인터랙션 데이터를 액세스하는 특정 컴퓨터-실행 가능 명령어들을 실행할 수 있다. 상기 사용자 인터랙션 데이터는 상기 비디오 게임과의 사용자의 인터랙션에 대응할 수 있다. 상기 연결된 그래프에서의 각 에지에 대해, 상기 하드웨어 프로세서는 상기 에지의 제1 노드에 대응하는 제1 사용자의 제1 해지 위험 및 상기 에지의 제2 노드에 대응하는 제2 사용자의 제2 해지 위험에 적어도 부분적으로 기초하여 상기 에지에 가중치를 적어도 할당하는 특정 컴퓨터-실행 가능 명령어들을 실행할 수 있다. 상기 제1 해지 위험은 상기 제1 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초할 수 있고, 상기 제2 해지 위험은 상기 제2 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초할 수 있다. 또한, 상기 하드웨어 프로세서는 상기 연결된 그래프 내의 각 에지에 할당된 상기 가중치들에 적어도 부분적으로 기초하여 상기 연결된 그래프로부터 에지들의 세트를 적어도 선택하는 특정 컴퓨터-실행 가능 명령어들을 실행할 수 있다. 상기 연결된 그래프에서의 각 정점은 상기 선택된 에지들의 세트 내의 적어도 하나의 에지에 연결될 수 있다. 부가적으로, 상기 하드웨어 프로세서는 상기 선택된 에지들의 세트에 포함된 하나 이상의 에지들의 정점들에 대응하는 적어도 두 사용자들을 사용하여 상기 비디오 게임의 플레이 가능한 인스턴스를 적어도 개시하는 특정 컴퓨터-실행 가능 명령어들을 실행할 수 있다
그래도, 본 개시의 다른 실시예들은 하나 이상의 컴퓨팅 장치들에 의해 실행될 때, 하나 이상의 컴퓨팅 장치가 비디오 게임의 인스턴스를 플레이 하는데 이용 가능한 사용자들의 풀로부터 복수의 사용자들을 선택하는 단계를 포함하는 작동들(operations)을 수행하도록 구성하는 컴퓨터 실행 가능 명령어들을 저장하는 비-일시적 컴퓨터-판독 가능 저장 매체에 관한 것이다. 상기 비디오 게임의 인스턴스의 적어도 제1 부분은 상기 복수의 사용자들로부터 적어도 하나의 사용자의 사용자 컴퓨팅 장치에서 실행할 수 있고, 상기 비디오 게임의 인스턴스의 제2 부분은 상기 인터랙티브 컴퓨팅 시스템에서 실행할 수 있다. 또한, 상기 작동들은 상기 복수의 사용자들로부터 상이한 사용자를 나타내는 각 정점을 구비하는 연결된 그래프를 창조하는 단계 및 상기 복수의 사용자들의 각 사용자에 대한 사용자 인터랙션 데이터를 액세스 하는 단계를 포함할 수 있다. 상기 사용자 인터랙션 데이터는 상기 비디오 게임과의 사용자의 인터랙션에 대응할 수 있다. 상기 연결된 그래프의 각 에지에 대해, 상기 작동들은 상기 에지의 제1 노드에 대응하는 제1 사용자의 제1 해지 위험 및 상기 에지의 제2 노드에 대응하는 제2 사용자의 제2 해지 위험에 적어도 부분적으로 기초하여 상기 에지에 가중치를 할당하는 단계를 포함할 수 있다. 상기 제1 해지 위험은 상기 제1 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초할 수 있고, 상기 제2 해지 위험은 상기 제2 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초할 수 있다. 또한, 상기 작동들은 상기 연결된 그래프 내의 각 에지에 할당된 상기 가중치들에 적어도 부분적으로 기초하여 상기 연결된 그래프로부터 에지들의 세트를 선택하는 단계를 포함할 수 있따. 상기 연결된 그래프에서의 각 정점은 상기 선택된 에지들의 세트 내의 하나 이상의 에지들에 연결될 수 있다. 또한, 상기 작동들은 상기 선택된 에지들의 세트에 포함된 하나 이상의 에지들의 정점들에 대응하는 복수의 사용자들을 사용하여 상기 비디오 게임의 플레이 가능한 인스턴스를 개시하는 단계를 포함할 수 있다.
특정 실시예들 및 예시들이 본원에 개시되어 있지만, 본 발명의 주제는 구체적으로 개시된 실시예들에서의 다른 실시예들 및/또는 사용들, 및 그 수정들 및 등가물들로 확장된다.
도면들 전체에 걸쳐, 참조 번호들은 참조된 요소들 사이의 대응 관계를 표시하기 위해 재-사용된다. 도면들은 본원에서 설명된 주제의 실시예들을 예시하기 위한 것이며 본 발명의 범위를 제한하지 않는다.
도 1a는 비디오 게임을 위한 동적 사용자 매치메이킹 시스템의 하나 이상의 실시예들을 구현할 수 있는 네트워크 컴퓨팅 환경의 일 실시예를 도시한다.
도 1b는 도 1a의 모델 생성 시스템의 일 실시예를 도시한다.
도 1c는 도 1a의 유지 분석 시스템의 일 실시예를 도시한다.
도 2는 예측 모델 생성 프로세스의 일 실시예의 흐름도를 나타낸다.
도 3은 사용자들의 연결된 그래프의 일 실시예의 일 예시를 나타낸다.
도 4는 멀티 플레이어 매칭 프로세스의 일 실시예의 흐름도를 나타낸다.
도 5는 사용자 컴퓨팅 시스템의 일 실시예를 도시한다.
도 6은 도 5의 사용자 컴퓨팅 시스템에 대한 하드웨어 구성의 일 실시예를 도시한다.
서론
일반적으로 다수의 사용자들에게 어필하는 비디오 게임이 바람직하다. 또한 이 원칙은 멀티플레이어 비디오 게임들에도 해당된다. 멀티플레이어 비디오 게임들은 둘 이상의 사용자들이 서로 대항하여(against) 플레이 하는 비디오 게임, 둘 이상의 사용자들이 동일한 팀에서 플레이하는 비디오 게임, 및/또는 여러 사용자들의 팀들이 서로 대항하여 플레이하는 비디오 게임들을 포함할 수 있다.
나쁜 매치메이킹 알고리즘들(matchmaking algorithms)을 구비하는 멀티플레이어 게임들은 사용자들의 참여를 낮출 수 있다. 다시 말해, 나쁘게 매치된 상대방들 및/또는 팀원들은 멀티플레이어 게임이 더 나은 매치메이킹 알고리즘들을 갖는 경우보다 비디오 게임을 플레이 하는 것을 중지하거나 비디오 게임을 더 자주 플레이하지 않게 할 수 있다. 나쁜 매치메이킹은, 다른 여러가지들 중, 플레이 스타일 선호도(play style preferences)가 모순되는 것 또는 양립할 수 없거나 부적당하게 쌍이 된 기술 레벨들의 사용자들을 매치하는 것을 포함할 수 있다. 일부 사용자들을 위해, 상이한 기술 레벨 또는 다른 플레이 스타일의 사용자와 쌍이 되는 것은 바람직하지 않을 수 있으며 나쁜 매치메이킹으로 고려될 수 있다. 그러나, 다른 사용자들을 위해, 상이한 기술 레벨 또는 상이한 플레이 스타일의 사용자와 쌍이 되는 것은 바람직할 수 있다. 따라서, 매치메이킹이 나쁘거나 좋은지를 결정하는 것은 매치메이킹 알고리즘들에 의해 분석된 특정 사용자들에 의존할 수 있다.
본원에 제시된 실시예들은 플레이어 또는 사용자 유지를 최적화 또는 증가시키는 멀티플레이어 비디오 게임에 대한 매치메이킹 플랜들의 세트를 식별하기 위해 그래프 맵핑 시스템 및 기계 학습 알고리즘들(machine learning algorithms)을 사용한다. 본원에 제시된 시스템들은 비디오 게임의 멀티플레이어 인스턴스(multiplayer instance)에서 하나 이상의 추가 사용자들과 사용자의 여러 매치업들(matchups)을 위해 비디오 게임을 플레이하기를 대기하는 사용자의, 예측된 해지율(churn rate), 또는 반대로 유지율(retention rate)을 결정할 수 있다. 또한, 본원의 시스템들의 실시예들은 사용자들의 그래프 토폴로지(graph topology)를 생성할 수 있고, 유지 또는 해지 율에 대하여 플레이어 매치메이킹의 품질을 최적화 또는 증가시키기 위해 결정된 해지, 또는 유지 율에 적어도 부분적으로 기초하여 하나 이상의 에지 선택 알고리즘들(edge selection algorithms)을 수행할 수 있다. 유지율을 결정하고 유지율을 사용하여 매치 플랜(match plan)을 생성하는 데 사용될 수 있는 시스템들 및 알고리즘들의 예시적인 실시예들은 "멀티플레이어 비디오 게임 매치메이킹 최적화(MULTIPLAYER VIDEO GAME MATCHMAKING OPTIMIZATION)"라는 제목의 2016년 3월 8일자로 출원된 미국 출원 15/064,115에 설명되어 있고, 이는 본원에 그 전체 내용이 본원의 모든 목표들을 위해 참고로 포함된다.
논의(discussion)를 단순화하기 위해, 이 개시는 주로 멀티플레이어 비디오 게임을 플레이하는 사용자들의 해지율을 감소시키거나 사용자 유지를 증가시키는데 중점을 둔다. 그러나, 목표는 그 자체로 제한되지 않으며, 본 개시의 실시예들은 하나 이상의 추가 또는 대안 목표들의 가능성을 최적화하거나 증가시키는데 사용될 수 있다. 예를 들어, 목표들은 다음 중 하나 이상을 포함할 수 있다: 가상 또는 실제 통화의 게임-내 지출을 증가시키는 것; 비디오 게임 내에서 바람직하지 않은 행동 (예를 들어, 다른 사용자들의 욕설 또는 괴롭힘)을 줄이는 것, 또는 비디오 게임의 인스턴스를 조기에 퇴장하는 사용자들의 발생하는 것을 줄이는 것.
논의를 단순화하기 위해, 본 개시는 주로 비디오 게임과 관련하여 설명된다. 그러나, 본 개시는 그 자체로 제한되지 않으며 애플리케이션들의 다른 유형들에 적용될 수 있다. 예를 들어, 본원에 개시된 실시예들은 교육용 애플리케이션들(예를 들어, 사용자들이 새로운 언어를 학습하는 것을 돕는 애플리케이션) 또는 그룹 내의 둘 이상의 사용자들을 함께 쌍을 이룰 수 있는 다른 애플리케이션들에 적용될 수 있다.
예시적인 네트워크 컴퓨팅 환경
도 1a는 비디오 게임(video game)(112)을 위한 동적 사용자 매치메이킹 시스템의 하나 이상의 실시예들을 구현할 수 있는 네트워크 컴퓨팅 환경(networked computing environment)(100)의 일 실시예를 도시한다. 네트워크 컴퓨팅 환경(100)은 네트워크(network)(104)를 통해 인터랙티브 컴퓨팅 시스템(interactive computing system)(130)과 통신할 수 있는 복수의 사용자 컴퓨팅 시스템들(user computing systems)(110)을 포함한다.
사용자 컴퓨팅 시스템들(110) 중 적어도 일부는 비디오 게임(video game)(112)을 포함하거나, 호스트(host)하거나, 실행할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 비디오 게임(112)의 일부를 호스트 또는 실행할 수 있고, 애플리케이션 호스트 시스템(application host system)(138)은 비디오 게임(112)의 일 부분을 호스트 및/또는 실행할 수 있다. 사용자가 사용자 컴퓨팅 시스템(110)에서 비디오 게임(112)의 실행을 개시하면, 네트워크 연결은 인터랙티브 컴퓨팅 시스템(130)과 설정될(established) 수 있고, 비디오 게임(112)의 두 부분들은 서로 연계하여 실행할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)이 예를 들어 플레이 가능한 게임-내 캐릭터(playable in-game character)를 사용하는 비디오 게임 환경과 사용자가 인터랙트(interact)할 수 있게 하는 비디오 게임(112)의 일 부분을 실행할 수 있는 동안 애플리케이션 호스트 시스템(138)은 비디오 게임 환경을 포함하는 비디오 게임(112)의 일 부분을 호스트 및 실행할 수 있다. 비디오 게임 환경은 사용자 컴퓨팅 시스템(110)의 사용자가 애플리케이션 호스트 시스템(138)으로부터 연결 해제된 후에도 유지될 수 있는 온라인 또는 디지털 영구 세계(online or digital persistent world)를 포함 할 수 있다. 다른 예시로서, 비디오 게임은 인터랙티브 컴퓨팅 시스템(130)의 부분으로서 포함될 수 있는 하나 이상의 애플리케이션 호스트 시스템들(도시되지 않음)에 의해 실행되는 서버 부분(server portion) 및 사용자 컴퓨팅 시스템(110)에 의해 실행되는 클라이언트 부분(client portion) 및 을 포함하는 대용량 멀티플레이어 온라인 롤-플레잉 게임(MMORPG; massively multiplayer online role-playing game)일 수 있다.
전술한 바와 같이, 애플리케이션 호스트 시스템(138)은 비디오 게임(112)의 적어도 일 부분을 호스트 및/또는 실행할 수 있다. 대안적으로, 또는 부가적으로, 애플리케이션 호스트 시스템(138)은 비디오 게임(112)의 전체를 호스트 또는 실행하고 사용자는 사용자 컴퓨팅 시스템(110)을 사용하여 비디오 게임(112)과 인터랙트할 수 있다.
사용자 컴퓨팅 시스템(110)은, 인터랙티브 컴퓨팅 시스템(130)과 같은, 다른 컴퓨팅 시스템과 통신 네트워크(104)를 통해 통신을 설정하기 위한 하드웨어 및 소프트웨어 구성 요소들을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 네트워크(예를 들어, 인터넷) 또는 인트라넷을 통한 통신을 용이하게 하는 네트워킹 장비 및 네트워크 소프트웨어 애플리케이션들(예를 들어, 웹 브라우저)을 갖출 수 있다. 사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛들(central processing units) 및 아키텍처들(architectures), 메모리(memory), 대용량 저장소(mass storage), 그래픽 프로세싱 유닛들(graphics processing units), 통신 네트워크 이용 가능성 및 대역폭(communication network availability and bandwidth) 등과 같은 다수의 로컬 컴퓨팅 리소스들(local computing resources)을 포함할 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 컴퓨팅 시스템의 임의의 유형을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 데스크톱들(desktops), 랩탑들(laptops), 비디오 게임 플랫폼들(video game platforms), 텔레비전 셋-톱 박스(television set-top boxes), 텔레비전들(televisions)(예를 들어, 인터넷 TV들), 네트워크-가능 키오스크들(network-enabled kiosks), 자동차-콘솔 장치들(car-console devices), 컴퓨터 가전제품들(computerized appliances), 웨어러블 장치들(wearable devices)(예를 들어, 스마트 워치들(smart watches) 및 컴퓨팅 기능을 갖는 안경), 및 무선 모바일 장치들(예를 들어, 스마트 폰들, PDA들, 태블릿들 등), 등과 같은, 컴퓨팅 장치(들)의 임의의 유형을 포함하지만, 이들로 제한되지는 않는다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 도 5 및 도 6과 관련하여 후술되는 실시예들 중 하나 이상을 포함할 수 있다.
이전에 논의된 바와 같이, 비디오 게임(112)과의 사용자의 참여의 레벨을 유지하거나 증가시키는 것이 바람직할 수 있다. 비디오 게임(112)과의 사용자의 참여의 레벨을 유지 또는 증가시키기 위한 하나의 솔루션은 사용자가 상대방들 및/또는 팀원들에서 원하거나 선호하는 경향이 있는, 플레이 특성들(play characteristics) 또는 애플리케이션 인터랙티브 특성들(application interactivity characteristics)을 갖는 다른 사용자들과 사용자를 매칭시키는 것을 포함한다. 이러한 플레이 특성들은 기술 레벨, 플레이 스타일(play style)(예를 들어, 방어적으로 플레이하는, 공격적으로 플레이하는, 지원 역할을 플레이하는, 스텔스 공격들(stealth attacks)을 선호하는, 마법 능력들을 사용하는 것을 선호하는, 또는 근접전 능력들(melee abilities)을 사용하는 것을 선호하는 사용자 등), 및/또는 스포츠맨 정신(sportsmanship) (예를 들어, 품위 있는 승리자 또는 패배자이거나, 사교적이거나 사교적이지 않거나, 또는 다른 사용자들을 모욕하지 않는 사용자 등)에 관한 특성들을 포함할 수 있다. 플레이 특성들이라는 용어가 사용되었지만, 플레이 특성들은 반드시 비디오 게임(112)을 플레이하는 것과 관련된 특성에 제한되지는 않는다는 것을 알아야 한다. 일부 실시예들에서, 플레이 특성들은 멀티플레이어 게임에 대한 매칭 사용자들에 관한 하나 이상의 추가 또는 대안 특성들을 포함 할 수 있다. 이러한 추가 또는 대안 특성에는 멀티 플레이어 게임에서 사용자의 플레이 경험을 향상시키는 것과 관련된 특성이 포함될 수 있습니다. 예를 들어, 추가 또는 대안 특성들은 사용자 지리적 위치, 네트워크 내의 사용자 위치, 사용자의 사용자 컴퓨팅 시스템(110)의 특성들 및 사용자의 사용자 컴퓨팅 시스템(110)과 통신하는 네트워크의 일 부분의 네트워크 특성들(예를 들어, 사용자의 홈 네트워크(home network) 또는 라스트 마일(last mile)) 등을 포함할 수 있다.
플레이 특성들은 하나 이상의 사용자들로부터의 특별한 요청들 또는 표시들(express requests or indications) 및/또는 하나 이상의 사용자들에 대한 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 결정될 수 있다. 또한, 사용자가 상대방들 및/또는 팀원들에서 원하거나 선호하는 경향이 있는 플레이 특성들은 사용자에 대한 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 결정될 수 있다.
인터랙티브 컴퓨팅 시스템(130)은 비디오 게임(112)의 특정 사용자에 대한 상대방 및/또는 팀원 사용자들의 원하는 플레이 특성들 및/또는 비디오 게임(112)의 특정 사용자의 플레이 특성들의 결정을 용이하게 하기 위한 다수의 시스템들 또는 서브시스템들(subsystems)을 포함할 수 있다. 또한, 인터랙티브 컴퓨팅 시스템(130)은 사용자들의 플레이 특성들에 적어도 부분적으로 기초하여 비디오 게임(112)의 사용자들의 매치메이킹을 용이하게 하기 위한 다수의 시스템들 및 서브시스템들을 포함할 수 있다. 이러한 시스템들 또는 서브시스템들은 사용자 그래프 생성기(user graph generator)(120), 사용자 매칭 시스템(user matching system)(132), 기술 평가 시스템(skill evaluation system)(136), 애플리케이션 호스트 시스템(application host system)(138), 사용자 데이터 보관소(user data repository)(142), 유지 분석 시스템(retention analysis system)(140) 및 모델 생성 시스템(model generation system)(146)을 포함할 수 있다. 이들 시스템들의 각각은 하드웨어 및 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 또한, 이들 시스템들의 각각은 컴퓨터 하드웨어를 포함하는 단일 컴퓨팅 시스템 또는 하나 이상의 개별 또는 분산 컴퓨팅 시스템들에 구현될 수 있다. 또한, 이들 시스템들은 인터랙티브 컴퓨팅 시스템(130)에 저장되거나 실행되는 것으로 도 1a에 도시되어 있지만, 일부 실시예들에서는, 이들 시스템들의 일부 또는 전부가 사용자 컴퓨팅 시스템(110)에 저장되고 실행될 수 있음을 알 수 있다.
사용자 그래프 생성기(120)는 비디오 게임의 인스턴스를 플레이하기 위해 대기하고 있는 사용자들의 세트의 그래프를 생성한다. 사용자들의 세트는 비디오 게임의 인스턴스를 플레이하기 위해 대기하는 모든 사용자들, 또는 선착순으로 제공되거나 기술 레벨 범위를 매칭하는 사용자들의 임계 수(threshold number)와 같은, 선택 프로세스를 사용하여 선택될 수 있는 사용자들의 서브셋(subset)을 포함할 수 있다. 사용자들은, 팀원들 또는 상대방들이 노드들(nodes) 또는 정점들(vertices) 사이의 에지들에 의해 나타낼 수 있으므로, 잠재적 매치업들 및 그래프에서 노드들 또는 정점들에 의해 나타낼 수 있다. 또한, 사용자 그래프 생성기(120)는 하나 이상의 선택된 목표들에 적어도 부분적으로 기초하여 에지들을 가중시킬 수 있다. 예를 들어, 에지들은 그래프에서의 에지에 의해 연결된 사용자들에 대한 해지율에 기초하여 가중될 수 있다. 예를 들어, 인접 행렬(adjacency matrix), 행렬, 에지리스트(edge list), 인접 리스트(adjacency list), 노드 리스트(node listing) 등과 같이 그래프에 저장된 데이터를 나타내는데 다른 데이터 구조들이 사용될 수도 있음을 알 수 있다.
사용자 매칭 시스템(132)은 비디오 게임(112)을 플레이하기 위해 둘 이상의 사용자들을 함께 식별 또는 매치한다. 둘 이상의 사용자들은 상대방들, 팀원들 또는 상대방들과 팀원들의 조합으로 매치될 수 있다. 상대방들 또는 팀원들로서 매치될 사용자들을 식별하기 위해, 사용자 매칭 시스템(132)은 사용자 그래프 생성기(120)에 의해 생성된 사용자 그래프를 액세스할 수 있다. 또한, 사용자 매칭 시스템(132)은 비디오 게임(112)의 인스턴스를 플레이하기 위한 사용자들의 쌍 만들기(pairing) 또는 매치 플랜(match plan)을 식별하여 사용자 그래프 생성기(120)에 의해 생성된 그래프에 대한 최소 또는 최대 가중치 매칭 문제를 해결할 수 있다.
모델 생성 시스템(146)은 하나 이상의 기계 학습 알고리즘들을 사용하여 하나 이상의 예측 모델들 또는 매개변수 함수들(parameter functions)을 생성할 수 있다. 이들 매개변수 함수들 중 하나 이상은 입력들의 세트에 기초하여 기대 값 또는 발생(expected value or occurrence)을 결정하는데 사용될 수 있다. 예를 들어, 예측 모델은, 예를 들어 사용자에 대한 이력 사용자 인터랙션 정보와 같은, 사용자가 예측 모델에 하나 이상의 입력들에 기초하여 비디오 게임(112)을 플레이 하는 것을 중단할 확률(probability) 또는 기대 해지율을 결정하는데 사용될 수 있다. 다른 예시로서, 예측 모델은 예측 모델에 대한 하나 이상의 입력들에 기초하여 비디오 게임에 대한 게임-내 아이템들을 구매시 사용자에 의해 지출된 돈의 기대 양을 결정하는데 사용될 수 있다. 일부 경우들에서, 예를 들어, 출력은 사용자가 비디오 게임(112)을 계속해서 플레이하는 것과 같은 동작 또는 이벤트의 예측이거나 관련될 수 있기 때문에, 예측 모델은 예측 모델이라고 지칭될 수 있다. 알고리즘들의 다수의 상이한 유형들은 모델 생성 시스템(146)에 의해 사용될 수 있다. 예를 들어, 본원의 특정 실시예들은 로지스티컬 회귀 모델(logistical regression model)을 사용할 수 있다. 그러나, 선형 회귀 모델, 이산 선택 모델, 또는 일반 선형 모델과 같은 다른 모델들도 가능하다.
기계 학습 알고리즘들은 모델 생성 시스템(146)에 의해 수신된 새로운 입력에 기초하여 시간이 지남에 따라 모델들을 적응적으로 개발 및 업데이트하도록 구성될 수 있다. 예를 들어, 사용자 정보가 시간이 지남에 따라 진전되어서(evolves) 모델의 예측을 더 정확하게 유지하는데 도움이 되는 새로운 사용자 정보가 제공될 때마다 모델을 정기적으로 재생성할 수 있다. 모델 생성 시스템(146)은 본원에서 더 상세하게 설명된다. 모델이 생성된 후, 그것은 유지 분석 시스템(140)에 제공될 수 있다.
매개변수 함수들 또는 예측 모델들을 생성 및 업데이트하는데 사용될 수 있는 기계 학습 알고리즘들의 일부 비-제한적인 예시들은, 회귀 알고리즘들(예를 들어, 보통 최소 자승 회귀(Ordinary Least Squares Regression)와 같은), 인스턴스-기반 알고리즘들(예를 들어, 학습 벡터 양자화(Learning Vector Quantization)와 같은), 의사결정 트리 알고리즘들(예를 들어, 분류 및 회귀 트리들(classification and regression trees)과 같은), 베이지안 알고리즘들(Bayesian algorithms)(예를 들어, 나이브 베이즈(Naive Bayes)와 같은), 클러스터링 알고리즘들(clustering algorithms)(예를 들어, 케이-평균 클러스터링(k-means clustering)과 같은), 연관 규칙 학습 알고리즘들(association rule learning algorithms)(예를 들어, 선험적 알고리즘들(Apriori algorithms)과 같은), 인공 신경 네트워크 알고리즘들(artificial neural network algorithms)(예를 들어, 퍼셉트론(Perceptron)과 같은), 딥 학습 알고리즘들(deep learning algorithms)(예를 들어, 딥 볼츠만 기계(Deep Boltzmann Machine)와 같은), 차원 감소 알고리즘(dimensionality reduction algorithms)(예를 들어, 주요 구성 요소 분석(Principal Component Analysis)과 같은), 앙상블 알고리즘들(ensemble algorithms)( 예를 들어, 스택 일반화(Stacked Generalization)와 같은) 및/또는 다른 기계 학습 알고리즘들을 포함하는, 감독 및 비-감독 기계 학습 알고리즘들(supervised and non-supervised machine learning algorithms)을 포함할 수 있다.
유지 분석 시스템 (140)은 모델 생성 시스템(140)에 의해 생성된 예측 모델과 같은 예측 모델에 대한 매치 플랜에 포함된 추가 사용자들에 대한 사용자 인터랙션 데이터 및 사용자에 대한 사용자 인터랙션 데이터의 애플리케이션에 기초하여 사용자에 대한 예측된 해지 또는 유지율을 결정하기 위한 하나 이상의 시스템들을 포함 할 수 있다. 일부 경우들에서, 사용자 매칭 시스템(132)은 매치 플랜을 선택할지 또는 비디오 게임(112)의 인스턴스를 플레이하기 위한 새로운 매치 플랜을 생성 할지를 결정하기 위해 유지 분석 시스템(140)에 의해 결정된 예측된 유지율을 사용할 수 있다. 예를 들어, 사용자 매칭 시스템(132)은 사용자 그래프 생성기(120)에 의해 생성된 사용자 그래프의 에지들에 대한 예측된 유지율들의 적용에 기초하여 최소 가중치 문제를 해결할 수 있다. 일부 경우들에서, 매치 플랜을 선택할지를 결정하는 것은 새로운 매치 플랜을 선택할지 여부를 표시하는 보관소(도시되지 않음)에서의 데이터에 대한 유지율을 매치시키는 것을 포함한다.
또한, 매개변수 함수들 또는 예측 모델들의 생성 및 적용 및 매치 플랜을 생성하거나 비디오 게임(112)의 인스턴스를 플레이하기 위한 매치 플랜을 선택할지 여부를 결정하는데 있어서 그것들의 사용은 유지 분석 시스템(140)에 관련하여 이하에서 더 상세하게 설명될 것이다. 특정 실시예들에서, 사용자 매칭 시스템(132)은 모델 생성 시스템(146)일 수 있거나 포함 할 수 있다. 또한, 일부 경우들에서, 사용자 매칭 시스템(132)은 유지 분석 시스템(140) 또는 사용자 그래프 생성기(120) 일 수 있거나 포함할 수 있다.
일부 실시예들에서, 유지 분석 시스템(140)은 매치 플랜에 포함된 각 사용자와 관련된 특정 매치 플랜 및 사용자 인터랙션 데이터, 특징들(features) 및/또는 메타데이터(metadata)를 수신할 수 있다. 유지 분석 시스템(140)은 매치 플랜 자체에 및/또는 매치 플랜에 포함된 각각의 개별 사용자에 대한 유지율 및/또는 예측된 지출 액수(predicted spending amount)을 출력할 수 있다. 예를 들어, 유지 분석 시스템(140)은 한 팀의 사용자들 A1, A2 및 A3 그리고 다른 팀의 사용자들 B1, B2 및 B3을 포함하는 매치 플랜을 수신할 수 있다. 여섯 사용자들의 각각에 대한 사용자 인터랙션 데이터를 사용하여, 유지 분석 시스템(140)은 각 사용자에 대한 유지율, 매치 플랜에 대한 유지율, 각 사용자에 대한 예측된 지출 액수 및/또는 매치 플랜에 대한 합에서의 예측된 소비 액수를 결정할 수 있다.
기술 평가 시스템(136)은 비디오 게임(112)을 액세스 또는 플레이하는 사용자의 기술 레벨을 평가할 수 있다. 사용자의 기술 레벨은 비디오 게임(112)의 사용자의 액세스와 관련된 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 결정될 수 있다. 일부 경우들에서, 기술 평가 시스템(136)은 비디오 게임(112)을 플레이하는 사용자에 대한 일반적인 기술을 결정할 수 있다. 다른 경우들에서, 기술 평가 시스템(136)은 비디오 게임(112)을 플레이하는 것과 관련된 복수의 상이한 기술들을 평가할 수 있다. 이들 기술들은 비디오 게임의 유형에 기초하여 다를 수 있다.  예를 들어, 스포츠 게임에서, 기술들은 비디오 게임(112)을 플레이 할 때 올바른 플레이, 최상의 플레이 또는 최상의 플레이 전략을 선택하는 사용자의 능력과 관련될 수 있다. 제2 예시로서, 1 인칭 사격 게임(first-person shooter game)에서, 기술들은 비디오 게임(112) 내의 적을 사격할 때의 사용자의 정확성과 관련될 수 있다. 기술 레벨 정보는 사용자 데이터 보관소(142)에서 사용자와 관련될 수 있다.
사용자 데이터 보관소(142)는 비디오 게임(112) 및/또는 하나 이상의 다른 비디오 게임들과의 하나 이상의 사용자의 인터랙션과 관련된 사용자 인터랙션 정보를 저장할 수 있다. 이 사용자 인터랙션 정보 또는 데이터는 사용자의 플레이 특성들(기술 레벨과 같은) 및 상대방들 및/또는 팀원들에 대한 사용자의 원하는 플레이 특성들을 결정하는 데 사용될 수 있는 임의의 유형의 정보를 포함 할 수 있다. 또한, 사용자 인터랙션 정보는 다양한 플레이 특성들과 관련된 사용자들과 함께 또는 대항하여(playing with or against users) 플레이 할 때 비디오 게임(112)과의 사용자의 참여 레벨을 결정하는데 사용될 수 있다. 예를 들어, 사용자 인터랙션 정보의 일부 비-제한적인 예시들은 비디오 게임(112) 내의 사용자에 의해 취해진 동작들에 관한 정보; 사용자 성공의 레벨; 비디오 게임(112) 내의 사용자의 진행의 측정치; 사용자가 비디오 게임(112) 내의 특정 동작들을 수행하는 것 또는 비디오 게임(112) 내의 특정 목표를 완료하는 것을 성공했는지의 여부; 사용자가 특정 목표들을 완료하는 데 걸린 시간; 사용자가 특정 목표들을 완료하는 데 걸린 시도 횟수; 비디오 게임(112)에 대한 액세스를 얻기 위해 지출된 돈을 제외하고 비디오 게임(112)에 대해 지출된 돈의 액수 및 비디오 게임(112)에 대한 액세스를 얻는데 지출된 돈의 액수 중 하나 또는 모두를 포함할 수 있는, 비디오 게임(112)에 관해 사용자가 지출한 돈의 양; 사용자가 비디오 게임(112)에 얼마나 자주 액세스하는지; 사용자가 비디오 게임(112)을 얼마나 오랫동안 플레이하는지; 목표를 달성하기 위한 패배 또는 실패 이후에 플레이 세션(play session) 동안 사용자가 계속해서 플레이하는지 여부 등을 포함할 수 있다. 사용자 인터랙션 정보의 이들 유형들의 각각은 사용자와 함께 또는 대항하여 플레이하는 다른 사용자들의 플레이 특성들에 적어도 부분적으로 기초하여 수집, 분할, 가중 및/또는 특징화 될 수 있다. 예를 들어, 비디오 게임(112)을 플레이 할 때 사용자의 성공의 레벨에 관한 사용자 인터랙션 정보는 팀원들의 플레이 특성들에 기초하여 다르게 가중되거나 분류될 수 있다.  예를 들어, 팀원이 사용자보다 더 낮거나 더 높은 기술 레벨을 갖는지 여부를 팀원의 플레이 특성들이 표시함에 기초하여 사용자의 성공 레벨이 더 높거나 더 낮게 가중될 수 있다.
일반적으로, 사용자 인터랙션 정보는 인터랙티브 컴퓨팅 시스템(130)의 시스템들에 의해 모니터링 및/또는 얻어질 수 있다. 그러나, 일부 경우들에서, 사용자 컴퓨팅 시스템(110)은 사용자 인터랙션 정보의 적어도 일부를 모니터링 및/또는 얻을 수 있다. 이러한 경우들에서, 사용자 컴퓨팅 시스템(110)은 네트워크(104)를 통해 인터랙티브 컴퓨팅 시스템(130)과 사용자 인터랙션 정보를 공유할 수 있다. 일부 실시예들에서, 사용자 인터랙션 정보의 일부 또는 전부는 비디오 게임(112)에 의해 저장되지 않지만, 대신에 비디오 게임(112) 외부의 사용자 컴퓨팅 시스템(110)의 다른 부분 및/또는 인터랙티브 컴퓨팅 시스템(130)에 의해 결정되거나 그에 제공된다. 본원에서 설명된 보관소의 각각은 비-휘발성 메모리 또는 휘발성 및 비휘발성 메모리의 조합을 포함할 수 있다.
네트워크(104)는 통신 네트워크의 임의의 유형을 포함할 수 있다. 예를 들어, 네트워크(104)는 하나 이상의 광역 네트워크(WAN; wide area network), 근거리 네트워크(LAN; local area network), 셀룰러 네트워크(cellular network), 애드혹 네트워크(ad hoc network), 위성 네트워크, 유선 네트워크, 무선 네트워크, 및 등등을 포함할 수 있따. 또한, 일부 경우들에서, 네트워크(104)는 인터넷을 포함할 수 있다.
예시 모델 생성 시스템
도 1b는 도 1a의 모델 생성 시스템(146)의 일 실시예를 도시한다. 모델 생성 시스템(146)은 다수의 사용자들에 대한 이력 데이터(historical data)(152)에 기초하여 하나 이상의 예측 모델들(prediction models)(160)을 생성하거나 결정하는데 사용될 수 있다. 일반적으로, 필수적이지는 않지만, 이력 데이터(152)는 수백, 수천, 수십만 또는 그 이상의 사용자들과 같은, 상당수의 사용자들과 관련된 데이터를 포함한다. 그러나, 본 개시는 그 자체로 제한되지 않으며, 사용자들의 수는 사용자들의 임의의 수를 포함할 수 있다. 또한, 이력 데이터(152)는, 예를 들어 애플리케이션 호스트 시스템(도시되지 않음) 및/또는 하나 이상의 사용자 컴퓨팅 시스템들(112)과 같은 하나 이상의 데이터 소스들로부터 수신된 데이터를 포함할 수 있다. 또한, 이력 데이터(152)는 상이한 데이터 소스들, 상이한 데이터 유형들, 및 비디오 게임(112)과의 하나 이상의 사용자의 인터랙션에 의해 생성된 임의의 데이터로부터의 데이터를 포함할 수 있다. 일부 실시예들에서, 이력 데이터(152)는 수백만의 데이터 포인트들과 같은, 매우 큰 수의 데이터 포인트들을 포함 할 수 있으며, 이는 하나 이상의 데이터 세트들에 결집될(aggregated) 수 있다. 일부 경우들에서, 이력 데이터(152)는 사용자 데이터 보관소(142)로부터 액세스 될 수 있다. 일부 실시예들에서, 이력 데이터(152)는 비디오 게임에 대한 이력 정보로 제한되지만, 다른 실시예들에서, 이력 데이터(152)는 하나 이상의 다른 비디오 게임들로부터의 정보를 포함할 수 있다. 또한, 일부 실시예들에서, 이력 데이터 중 하나 이상의 서브셋들은 최근 6, 9 또는 12 개월로부터의 데이터를 포함하도록 제한되는 것과 같은, 날짜 규제(date restriction)에 의해 제한된다.
이력 데이터(152)는 비디오 게임(112)에 관한 사용자들에 대한 사용자 인터랙션 데이터를 포함할 수 있다. 또한, 이력 데이터(152)는 사용자들의 상대방들 및/또는 팀원들과 관련된 정보를 포함할 수 있다.
또한 모델 생성 시스템(146)은, 일부 경우들에서, 피드백 데이터(feedback data)(154)를 수신할 수 있다. 이 데이터는 관리자와 같은 시스템 사용자가 예측 모델(160)의 생성을 용이하게 하는데 사용될 수 있는 모델 생성 시스템(146)에 추가 입력을 제공할 수 있게 하는 감독 모델 생성 프로세스(supervised model generation process)의 일부로서 수신될 수 있다. 예를 들어, 이력 데이터(152)에 변칙(anomaly)이 존재하는 경우, 시스템 사용자는 모델 생성 시스템(146)이 데이터에 상이한 가중치를 적용하는 것 또는 모델 생성 프로세스로부터 데이터를 제외하는 것과 같이, 태깅된 데이터(tagged data)를 다르게 프로세싱할 수 있게 하는 변칙의 데이터(anomalous data)에 태그를 붙일 수 있다.
또한, 모델 생성 시스템(146)은 제어 데이터(control data)(156)를 수신할 수 있다. 이 제어 데이터(156)는 모델 생성 시스템(146)이 모델을 결정하기 위한 하나 이상의 특징들 또는 특성들을 식별할 수 있다. 또한, 일부 경우들에서, 제어 데이터(156)는 제어 데이터(156)에서 식별된 하나 이상의 특징들에 대한 값을 표시할 수 있다. 예를 들어, 제어 데이터(156)는 사용자가 비디오 게임(112)을 플레이 한 시간의 길이를 결정하기 위해 이력 데이터(152)를 사용하여 생성될 예측 모델을 표시한다고 가정한다. 각 사용자가 게임을 한 시간의 양이 알려지면, 이 데이터는 제어 데이터(156)의 부분으로서 또는 이력 데이터(152)의 부분으로서 제공될 수 있다. 다른 예시로서, 예를 들어, 사용자가 비디오 게임(112)을 계속 플레이하는지 또는 시간의 임계 기간 동안 비디오 게임(112)을 플레이하는지 여부에 기초하여, 결정된 바와 같은 유지율을 추정하기 위해 예측 모델이 생성되어야 하는 경우, 특정 시간의 임계 기간 후, 제어 데이터(156)는 데이터가 이력 데이터(152)에 포함된 사용자들에 대한 유지율, 상대방 데이터 및/또는 팀원 데이터를 포함할 수 있다.
모델 생성 시스템(146)은 일반적으로 예측 모델(160)의 생성을 위한 모델 생성 규칙 세트(model generation rule set)(170)를 포함할 수 있다. 규칙 세트(170)는 하나 이상의 매개변수들(parameters)(162)을 포함할 수 있다. 매개변수들(162)의 각 세트는 매개변수 함수를 얻기 위해 하나 이상의 수학 함수들을 사용하여 조합될 수 있다. 또한, 하나 이상의 특정 매개변수들은 가중치들(weights)(164)에 의해 가중될 수 있다. 일부 경우들에서, 매개변수 함수는 매개변수들의 세트를 가중치들(164)의 각 세트와 조합함으로써 얻어질 수 있다. 예측 모델(160) 및/또는 예측 모델들(160)의 각각의 매개변수들 (162)은 이력 데이터(152), 피드백 데이터(154) 및 제어 데이터(156)와 같은 특정 입력 데이터뿐만 아니라 정의된 출력 기준에 기초하여 트레이닝 프로세스(training process) 동안 유도될(derived) 수 있으며, 이는 트레이닝 목적들에 사용되는, 제어 데이터(156)에 포함될 수 있다. 모델 생성 규칙 세트(170)는 해지율을 결정하는 것과 같은, 정의된 목표 함수에 기초하여 모델을 생성하기 위해 모델 생성 시스템(146)이 사용하는 특정 기계 학습 규칙들 및/또는 알고리즘들을 정의할 수 있다. 일부 실시예들에서, 초기 매개변수들(162) 및 가중치들(164)은 모델 생성 프로세스의 개시 동안 수동으로 제공될 수 있다. 매개변수들(162) 및 가중치들(164)은 예측 모델(160)을 생성하기 위해 모델 생성 단계 동안 업데이트되고 수정될 수 있다.
모델 생성 시스템(146)은 데이터의 다양한 특성들 및 매개변수들에 따라 이력 데이터 세트들을 필터링하고 분류할 수 있다. 예를 들어, 데이터는 데이터 소스(예를 들어, 게임 애플리케이션 데이터, 호스트 애플리케이션 데이터, 또는 사용자 프로파일 데이터와 같은), 정보 유형(예를 들어, 게임플레이 정보, 거래 정보, 인터랙션 정보, 또는 게임 계정 정보와 같은), 상대방 데이터(예를 들어, 상대방의 기술, 상대방에 의해 선택된 또는 플레이된 역할들, 또는 상대방에 대한 성공률과 같은), 팀원 데이터(예를 들어, 팀원들의 기술, 팀원들에 의해 선택되거나 플레이된 역할들, 또는 특정 팀원과 플레이 할 때의 성공률과 같은), 또는 데이터와 관련된 다른 카테고리들에 의해 분류될 수 있다. 모델 생성 시스템(146)은 추가 프로세싱을 위해(for further processing) 정보를 식별하기 위해 정보를 필터링할 수 있다. 일부 실시예들에서, 모델 생성 시스템(146)은 추가 프로세싱 전에 이력 데이터(152)를 복수의 데이터 유형들 또는 카테고리들로 필터링하고 분리하도록 구성된다. 또한, 일부의 경우들에서, 이력 데이터(152)의 일부는 모델 생성 시스템(146)에 의해 결정된 바와 같이 임계 관련성(threshold relevance)을 만족시키지 않는 관련성과 관련된 데이터에 기초하여 이력 데이터(152)로부터 필터링되거나 제거될 수 있다.
선택적으로, 하나 이상의 예측 모델들(160)은 페널티(penalty)(166)와 관련 될 수 있다. 이들 페널티들(166)은 페널티를 유도하는데 사용되는 하나 이상의 인자들(factors)에 기초하여 특정 예측 모델 (160)의 생성 또는 선택을 용이하게 하는데 사용될 수 있다. 예를 들어, 특정 예측 모델(160)에 포함된 수학적 복잡성 또는 매개변수들의 수는 특정 예측 모델(160)에 대한 페널티를 생성하는데 사용될 수 있으며, 이는 특정 예측 모델(160)이 선택되는 선택 확률 또는 선택 알고리즘 및/또는 모델의 생성에 영향을 미칠 수 있다.
예측 모델(160)이 생성된 후, 모델은 비디오 게임(112)의 인스턴스를 플레이하기 위한 매치 플랜을 승인, 거절 또는 선택하기 위해 유지 분석 시스템(140) 및/또는 사용자 매칭 시스템(132)의 런타임 동안 사용될 수 있다. 일부 경우들에서, 예측 모델(160)은 매치 플랜을 생성하는 것을 용이하게 하는데 사용될 수 있다. 다른 경우들에서, 예측 모델(160)은 특정 매치 플랜이 예를 들어 특정 임계 유지율과 같은 조건들의 세트를 만족시키는지를 확인하는데 사용될 수 있다.
예시 유지 분석 시스템
도 1c는 도 1a의 유지 분석 시스템(140)의 일 실시예를 도시한다. 유지 분석 시스템(140)은 모델 생성 시스템(146)에 의해 생성된 하나 이상의 예측 모델들(160)을 적용 또는 사용할 수 있다. 별도의 시스템으로서 도시되었지만, 일부 경우들에서, 유지 분석 시스템(140)은 사용자 매칭 시스템(132)의 일부로서 포함될 수 있다. 유지 분석 시스템(140)은 출력 데이터(output data)(174)를 얻기 위해 입력 데이터(input data)(172)를 프로세스하는 하나 이상의 예측 모델들(160A, 160B, 160N)(예를 들어, "예측 모델 (160)"로서 단수형(singular)으로 또는 "예측 모델들(160)"로서 집합적으로 지칭될 수 있는)을 사용할 수 있다.
유지 분석 시스템(140)은 비디오 게임(112)의 특정 인스턴스에 대한 매치 또는 게임 플레이의 개시 동안 예측 모델(들)(160)을 적용할 수 있다. 일부 실시예들에서, 예측 모델들(160)은 게임의 시작시 매치 플랜을 생성하거나, 매치 플랜이, 예를 들어 사용자들이 실제-세계 통화(예를 들어, 미국 달러 또는 유로) 또는 개임-내의 특정 액수를 지출할 가능성 또는 유지율과 같은, 특정 조건을 만족하는지를 확인하기 위해 적용된다. 다른 실시예들에서, 예측 모델(160)은 게임 중 상이한 시간들에 및/또는 게임에서의 상이한 스테이지들에 적용된다. 비디오 게임(112)의 인스턴스의 개시 동안 또는 팀원들 및/또는 상대방들이 될 사용자들의 세트의 선택 동안, 유지 분석 시스템(140)은 하나 이상의 예측 모델들(160)에 적용될 수 있는 입력 데이터(172)를 수신한다. 입력 데이터(172)는 비디오 게임(112)을 플레이하고 있거나 비디오 게임(112)에 대한 인스턴스를 플레이하고자 하는 희망(desire)을 표시하는 사용자와 관련된 하나 이상의 데이터의 조각들을 포함할 수 있다. 이 데이터는 비디오 게임(112)에 대한 사용자 인터랙션 데이터, 사용자에 대한 프로파일 데이터, 및 사용자에 대한 유지 또는 해지 율을 결정하기 위해 예측 모델(160)에 적용될 수 있는 임의의 다른 데이터를 포함할 수 있다. 또한, 입력 데이터(172)는 사용자의 상대방들 및/또는 팀원들로서 선택될 수 있는 하나 이상의 추가 사용자들과 관련된 하나 이상의 데이터의 조각들을 포함할 수 있다. 추가 사용자들과 관련된 데이터는 사용자에 대해 수신된 데이터와 동일한 유형, 사용자에 대해 수신된 데이터의 유형, 및/또는 사용자에 대해 수신된 데이터의 추가 유형들을 포함할 수 있다. 일부 실시예들에서, 입력 데이터(172)는 유지 분석 시스템(140)에 제공되기 전에 필터링될 수 있다.
일부 실시예들에서, 단일 예측 모델(160)은 유지 분석 시스템(140)에 대해 존재할 수 있다. 그러나, 도시된 바와 같이, 유지 분석 시스템(140)은 다수의 예측 모델들(160)을 포함할 수 있다. 유지 분석 시스템(140)은 입력 데이터(172)와 관련된 추가 식별자들 및/또는 입력 데이터(172)에 기초하여 사용하기 위한, 모델들(160A-N) 중 임의의 것과 같은, 예측 모델을 결정할 수 있다. 또한, 선택된 예측 모델(160)은 입력 데이터(172)로서 제공된 특정 데이터에 기초하여 선택될 수 있다. 입력 데이터(172)의 부분으로서 데이터의 특정 유형들의 이용 가능성(availability)은 예측 모델(160)의 선택에 영향을 줄 수 있다. 예를 들어, 입력 데이터의 부분으로서 인구 통계학적 데이터(demographic data)(예를 들어, 연령, 성별, 제1 언어, 또는 선호되는 언어)의 포함은 예측 모델(160A)을 사용할 수 있다. 그러나, 특정 사용자에 대해 인구 통계학적 데이터가 이용 가능하지 않다면, 예측 모델(160B)이 대신 사용될 수 있다.
상술한 바와 같이, 하나 이상의 예측 모델들(160)은 페널티(166)로 생성되거나 연관될 수 있다. 페널티는 유지 분석 시스템(140)에 의해 사용하기 위한 예측 모델의 선택 또는 모델의 생성에 영향을 미치도록 사용될 수 있다.
출력 데이터(174)는 사용자들 또는 사용자들의 세트가 비디오 게임(112)의 플레이를 중단하는 예측과 관련된 유지율 또는 해지율일 수 있다. 예를 들어, 일부 실시예들에서, 유지율은 임계 시간 기간(threshold time period) 내에 비디오 게임(112)의 플레이를 중단할 입력 데이터(172)로서 포함되는 것과 유사하거나 동일한 데이터와 연관된 사용자들의 예측된 백분율을 표시하는 0 및 100 사이일 수 있다. 일부 경우들에서, 출력 데이터(174)는 또한 유지율에 대한 이유를 식별 할 수 있다. 예를 들어, 유지 분석 시스템(140)은 특정 사용자에 대한 90% 유지율이 비디오 게임(112)을 플레이하는 동안 지출된 돈의 액수에 적어도 부분적으로 기초한다는 것을 표시할 수 있다. 그러나, 유지 분석 시스템(140)은 다른 사용자에 대한 90% 유지율이 적어도 부분적으로 사용자가 위치하는 지리적 영역에서의 동결 온도(freezing temperature)에 기초할 수 있음을 표시할 수 있다. 다른 예시로서, 유지 분석 시스템(140)은 사용자에 대한 20% 유지율이 25% 미만의 우승 비율에 적어도 부분적으로 기초할 수 있음을 표시할 수 있다. 또 다른 예시에서, 유지 분석 시스템(140)은 사용자에 대한 25% 유지율이 기술 레벨 임계치를 만족시키지 않는 매치 플랜에서 사용자의 임원들 및/또는 상대방들의 기술 레벨에 적어도 부분적으로 기초할 수 있음을 표시할 수 있다 .
예측 모델들(160A, 160B, 160N)은 일반적으로 각각 하나 이상의 매개변수들(162A, 162B, 162N)(이는 "매개 변수들(162)"로 집합적으로 지칭될 수 있음)의 세트를 포함할 수 있다. 매개변수들(162)의 각 세트(매개변수들(162A)과 같은)는 하나 이상의 수학적 함수들을 사용하여 조합되어 매개변수 함수를 얻을 수 있다. 또한, 매개변수들(162A, 162B, 162N)로부터의 하나 이상의 특정 매개변수들은 가중치들(164A, 164B, 164N)(이는 "가중치들(164)"로 집합적으로 지칭될 수 있음)에 의해 가중될 수 있다. 일부 경우들에서, 매개변수 함수는 가중치들(164)의 각 세트 (가중치들(164A)과 같은)와 매개별수들의 세트(매개 변수들(162A)와 같은)조합함으로써 얻어질 수 있다. 선택적으로, 하나 이상의 예측 모델들(160A, 160B, 160N)은 각각 페널티(166A, 166B, 166N)(이는 "페널티들(166)"로 집합적으로 지칭될 수 있음)과 연관될 수 있다. 예측 모델(160) 내에서 사용된 매개변수들(162) 및/또는 가중치들(164)은, 예측 모델을 생성 또는 구축하기 위한 규칙 세트(170)에서 사용된 매개변수들(162) 및/또는 가중치들(164)로부터 (부분적으로 또는 전체적으로) 상이할 수 있고, 일부 실시예들에서, 모델을 생성하기 위한 규칙 세트의 매개변수들 및 가중치들은 모델 내에서 사용된 매개변수들 및 가중치들과 상이함을 알 수 있다.
예시 예측 모델 생성 프로세스
도 2는 예측 모델 생성 프로세스(200)의 일 실시예의 흐름도를 나타낸다. 프로세스(200)는 하나 이상의 매개변수들을 포함하는 하나 이상의 매개변수 함수들 또는 예측 모델들을 생성할 수 있는 임의의 시스템에 의해 구현될 수 있다. 일부 경우들에서, 프로세스(200)는 이력 데이터 또는 다른 공지된 데이터에 기초하여 하나 이상의 매개변수 함수들 또는 예측 모델들을 개발하기 위한 트레이닝 프로세스로서 기능한다. 전체적으로 또는 부분적으로, 프로세스(200)는, 예를 들어, 다른 여러가지들 중, 인터랙티브 컴퓨팅 시스템(130), 사용자 매칭 시스템(132), 기술 평가 시스템(136), 보존 분석 시스템(140), 모델 생성 시스템(146), 또는 사용자 컴퓨팅 시스템(110)에 의해 구현될 수 있다. 임의의 수의 시스템이, 전체적으로 또는 부분적으로, 프로세스(200)를 구현할 수 있지만, 논의를 단순화하기 위해, 프로세스(200)는 특정 시스템과 관련하여 설명될 것이다. 또한, 프로세스(200)는 시간이 지남에 따라 반복적으로 업데이트되거나 수행될 수 있다는 것을 이해해야 한다. 예를 들어, 프로세스(200)는 새로운 비디오 게임의 추가 또는 릴리스와 함께, 또는 비디오 게임(112)을 분석 또는 플레이하기 위해 이용가능한 새로운 사용자들의 임계 수의 추가와 함께, 월 1 회 반복될 수 있다. 그러나, 프로세스(200)는 더 많거나 더 적은 빈도로 수행될 수 있다.
프로세스(200)는 모델 생성 시스템(146)이 비디오 게임(112)의 다수의 사용자들에 대한 사용자 인터랙션 데이터를 포함하는 이력 데이터(152)를 수신하는 블록(202)에서 시작한다. 이 이력 데이터(152)는 모델 생성 시스템(146)에 대한 트레이닝 데이터로서 기능할 수 있고, 연령, 지리적 위치, 성별, 또는 사회경제적 분류와 같은 사용자 인구통계학들 또는 특성들을 포함할 수 있다. 대안으로, 또는 부가적으로, 이력 데이터(152)는 하나 이상의 사용자들의 플레이 스타일; 비디오 게임(112)을 플레이하는데 지출된 돈의 액수; 비디오 게임(112)에 관한 사용자 성공 또는 실패 정보(예를 들어, 사용자 승리 비율); 비디오 게임(112)을 플레이하는 것의 플레이 빈도; 특정 선택 게임 요소들(예를 들어, 사용 가능한 부스트들(boosts), 레벨 스킵들(level skips), 게임-내 힌트들(in-game hints), 파워 업들(power ups) 등)을 사용하는 빈도; 비디오 게임(112)에 대한 게임-내 아이템들 구매에 지출한 실제 돈의 액수(예를 들어, 미국 달러 또는 유럽 유로); 등등에 관한 정보를 포함할 수 있다. 부가적으로, 이력 데이터(152)는 사용자들의 수로부터 사용자와 비디오 게임(112)을 플레이 한 하나 이상의 다른 사용자들에 관한 데이터를 포함할 수 있다. 일부 경우들에서, 이력 데이터(152)는 사용자들의 다수의 세트들에 대한 다른 사용자 또는 비디오 게임 관련 데이터 및 사용자 인터랙션 데이터를 포함할 수 있으며, 여기서 각 세트는 상대방들, 팀원들 또는 모두로서 함께 비디오 게임의 멀티플레이어 인스턴스를 플레이하는 사용자들의 그룹을 포함한다. 사용자 또는 비디오 게임 데이터는 비디오 게임(112)에 관한 각각의 사용자에 대한 상술한 데이터뿐만 아니라 기술 정보 및/또는 비디오 게임(112)에서 수행될 수 있는 하나 이상의 동작들 및/또는 비디오 게임(112)의 하나 이상의 요소들(레벨들 또는 을 포함 할 수있다. 또는 비디오 게임 (112)의 더 많은 요소들(레벨들 또는 장애물들(obstacles)과 같은)을 포함할 수 있다. 부가적으로, 데이터는 게임-내 캐릭터 선택 선호도들(preferences), 역할 선호도들, 및 상이한 사용자들의 기술들, 선호도들, 또는 플레이 스타일들을 구별하는 데 사용할 수 있는 다른 정보를 포함할 수 있다.
블록(204)에서, 모델 생성 시스템(146)은 이력 데이터(152)에 대응하는 원하는 예측 기준(desired prediction criteria)을 나타내는 제어 데이터(156)를 수신한다. 이 제어 데이터(156)는 모델 생성 시스템(146)이 모델을 결정하기 위한 하나 이상의 특징들 또는 특성들을 나타낼 수 있다. 대안적으로, 또는 부가적으로, 제어 데이터(156)는 수신된 이력 데이터(152)와 관련된 특징들 또는 특성들에 대한 값을 포함할 수 있다. 일부 실시예들에서, 제어 데이터(156)는 모델 생성 시스템(146)에 의해 생성될 모델에 의해 예측되는 다수의 특성들 또는 특징들을 포함할 수 있다. 예를 들어, 제어 데이터(156)는 쌍이 된 사용자의 유형으로 비디오 게임의 인스턴스를 플레이 한 후 사용자가 시간의 특정 기간 동안 비디오 게임을 계속 플레이 할 가능성을 예측하기 위한 요청일 수 있다. 다른 예시로서, 제어 데이터(150)는 팀원 또는 상대방으로서 다른 사용자와 쌍이 된 경우, 사용자가 2 시간 이내에 게임을 완료하거나 적어도 2 시간 동안 연속적으로 플레이 할 가능성을 포함할 수 있다. 제어 데이터(156)는 모델 생성 시스템(146)에 의해 생성될 모델에 의해 예측될 원하는 특징으로서, 해지율 또는 유지율을 결정하는데 사용하기 위한 기준을 지정할 수 있다. 기준은 개인의 해지율 및/또는 다른 플레이어 유형(예를 들어, 상대방 또는 팀원)에 대한 개인의 해지율을 식별할 수 있다. 해지율 또는 유지율은 비디오 게임(112)의 플레이를 중단한 이력 데이터(152)와 관련된 사용자들의 백분율에 대응할 수 있다. 또한, 제어 데이터(156)는 이력 데이터와 관련된 유지율을 결정하기 위한 기준을 식별 할 수 있다. 예를 들어, 제어 데이터(156)는 데이터가 이력 데이터(152)로서 제공되는 사용자들에 대해, 유지율 및 유지율에 대한 이유(매치가 완료되기 전 비디오 게임(112)의 인스턴스를 그만두는 상대방들 및/또는 팀원들의 임계 백분율 보다 더 높거나, 임계 기술 델타(threshold skill delta) 보다 더 많음에 의해 나뉘는 상대방들의 기술 레벨과 같은), 또는 데이터가 이력 데이터 (152)로서 제공된 사용자들에 의해 지출된 평균 화폐 액수 및 유지율을 식별하는데 사용될 수 있다.
블록(206)에서, 모델 생성 시스템(146)은 이력 데이터(152) 및 제어 데이터 (156)에 기초하여 하나 이상의 예측 모델(160)을 생성한다. 예측 모델들(160)은 수학적 알고리즘 또는 모델 생성 규칙세트(170)를 사용하여 조합될 수 있는 하나 이상의 변수들 또는 매개변수들(162)을 포함하여, 이력 데이터(152) 및 경우에 따라 제어 데이터(156)에 기초하여 예측 모델(160)을 생성할 수 있다.  또한, 특정 실시예들에서, 블록(206)은 하나 이상의 피드백 데이터(154)를 적용하는 것을 포함할 수 있다. 예를 들어, 예측 모델(160)이 감독 기계 학습 프로세스의 부분으로서 생성되는 경우, 시스템 사용자(예를 들어, 관리자)는 예측 모델(160)이 생성될 때 모델 생성 시스템(146)에 하나 이상의 입력들을 제공할 수 있고, 및/또는 예측 모델(160) 생성 프로세스를 정제할(refine) 수 있다. 예를 들어, 사용자는 특정 지역 또는 지리적 영역에 정전이 있음을 알고 있을 수 있다. 이러한 경우에서, 시스템 사용자는 정전 동안 영향이 미친 지리적 영역으로부터의 사용자들에 대응할 수 있는 이력 데이터(152)의 부분의 가중치를 감소시키기 위해 피드백 데이터(154)를 공급할 수 있다. 또한, 일부 경우들에서, 하나 이상의 변수들 또는 매개변수들은 예를 들어 가중치(164)를 사용하여 가중될 수 있다.  변수에 대한 가중치의 값은 변수가 이력 데이터(152) 및/또는 제어 데이터(156)를 만족시키거나 임계 불일치(threshold discrepancy) 내에서 만족시키는 예측 모델(160)을 생성하는데 있어 미치는 영향에 적어도 부분적으로 기초할 수 있다. 일부 경우들에서, 변수들 및 가중들의 조합은 예측 모델(160)을 생성하는데 사용될 수 있다.
선택적으로, 블록(208)에서, 모델 생성 시스템(146)은 예측 모델들을 생성할 때 사용된 변수들 중 하나 이상과 또는 블록(206)에서 생성된 하나 이상의 예측 모델들(160) 중 적어도 일부와 페널티(166)를 연관시키거나 페널티를 적용한다. 하나 이상의 예측 모델들(160)의 각각과 관련된 페널티는 다를 수 있다. 또한, 예측 모델들(160)의 각각에 대한 페널티는 매개변수 함수에 포함된 매개변수들의 수, 및 예측 모델(160)의 매개변수들(162)을 조합하는데 사용된 수학적 알고리즘, 및/또는 예측 모델(160)의 모델 유형에 적어도 부분적으로 기초할 수 있다. 예를 들어, 예측 모델(160)을 생성할 때, 모델을 적용하기 위해 더 많은 양의 프로세싱 파워(processing power) 또는 매우 많은 수의 변수들을 무시하는(disfavors) 패널티가 적용될 수 있다. 다른 예시로서, 다른 예측 모델보다 더 많은 매개변수들 또는 변수들을 사용하는 예측 모델(160)은 더 적은 변수들을 사용하는 예측 모델보다 더 큰 패널티(166)와 관련될 수 있다. 추가 예시로서, 다른 예측 모델보다 계산하는데 더 많은 양의 프로세싱 파워를 요구하는 수학적 알고리즘 또는 모델 유형을 사용하는 예측 모델은 계산하는데 더 적은 양의 프로세싱 파워를 요구하는 수학적 알고리즘 또는 모델 유형을 사용하는 예측 모델보다 더 큰 패널티와 관련될 수 있다.
블록(210)에서, 임의의 연관된 페널티 및 예측 모델(160)의 정확성에 적어도 부분적으로 기초하여 모델 생성 시스템(146)은 예측 모델(160)을 선택한다. 일부 실시예들에서, 모델 생성 시스템(146)은 다른 예측 모델(160)과 비교하여 더 적은 페널티와 관련된 예측 모델(160)을 선택한다. 그러나, 일부 실시예들에서, 모델 생성 시스템(146)은, 예를 들어 예측 모델(160)의 출력이 더 낮은 페널티와 관련된 예측 모델보다 더 정확한 임계 정도인 경우, 더 높은 페널티와 관련된 예측 모델을 선택할 수 있다. 특정 실시예들에서, 블록(210)은 선택적이거나 생략될 수 있다. 예를 들어, 일부 경우들에서, 예측 모델들(160)은 모델을 생성하는 동안 페널티의 고려가 끝나고 및/또는 패널티와 관련되지 않을 수 있다. 이러한 일부 경우들에서, 예측 모델은 예측 모델에 의해 생성된 출력의 정확성에 기초하여 복수의 예측 모델로부터 선택되거나 무작위로 선택될 수 있다. 다른 경우들에, 블록(206)을 수행한 결과는 블록(208) 및 블록(210)과 관련된 작동들을 불필요하게 하는 단일 예측 모델이다.
예시 매치메이킹 목표
본원에 설명된 실시예들에서, 매치메이킹은, 1-vs-1 매치들을 플레이 하거나 시작하기를 대기하고 있는, 사용자들 또는 플레이어들의 풀(pool)에 적용될 수 있다, P = {p 1, . . . , p N }. 이러한 사용자들의 풀 P는 사용자들의 풀(pool of users)(302)로서 도 3에 도시된다. 단순화를 위해, 1-vs-1 사용자 경우(1-vs-1 use case)가 설명된다. 그러나, 본원에서의 실시예들은 멀티플레이어 매치를 위해 더 많은 사용자들을 포함하도록 확장될 수 있다는 것을 이해해야 한다. 그래프 G는 멀티플레이어 비디오 게임을 플레이 하도록 대기하는 플레이어들의 세트를 모델링하도록 구성될 수 있다. 이러한 그래프 G의 일 예시는 그래프(graph)(304)로서 도 3에 도시된다. 각 플레이어 p i 는 그래프의 정점 또는 노드에 의해 나타낼 수 있으며, 이는 현재 플레이어 상태 s i 를 갖는다. 플레이어 상태 s i 는 사용자에 특정한 임의의 데이터 및 비디오 게임(112)과의 사용자의 인터랙션을 나타낼 수 있다. 예를 들어, 플레이어 상태 s i 는 사용자 인터랙션 데이터, 사용자의 승리-손실 기록(user's win-loss record), 또는 사용자 인구 통계학적 데이터를 나타낼 수 있다. 또한, 사용되는 플레이어 상태 데이터는 해지 위험(churn risk) 또는 게임-내 통화를 구입할 가능성과 같은, 원하는 목표 함수에 따라 달라질 수 있다. 두 플레이어들 p i p j 사이의 에지는 사용자가 쌍이 된 경우 기대되는 합계 목표 또는 참여 메트릭(engagement metric)(예를 들어, 합계 해지 위험)과 관련될 수 있다. 이 메트릭은 두 사용자의 상태들에 의존하고 함수 f(s i , s j )로서 나타낼 수 있다. G는 일반적으로 플레이어들의 모든 쌍들이 연결될 수 있다는 점에서 완벽한 그래프이다. 그러나, 사전-계산 및 사전-필터링 프로세스는 그래프를 감소시키기 위해 수행될 수 있다. 사용자 또는 플레이어 튜플들의 목록(list of user or player tuples), M = {(p i , p j )}는 P에서의 모든 플레이어들이 쌍을 이루며 한 번만 쌍이 되는, 매치메이킹 결과 또는 쌍 할당(pair assignment)을 나타내는데 사용될 수 있다. 그래프 G의 예증이 되는, 도 3에서의 그래프(304)는, 풀 P의 예증이 되는, 풀(302)로부터 열 명의 사용자들의 그래픽적 쌍 만들기를 나타낸다. 그러나, 일부 경우들에서, 그래프 G는 플레이어 풀 P에서의 모든 플레이어들을 나타내도록 형성 될 수 있다.
본원에 설명된 실시예들은 최적의 쌍 할당 M*을 찾도록 시도하며, 이는 전체 플레이어 참여(overall player engagement)를 최대화한다:
Figure pat00001
해지 위험은 구체적인 해약 메트릭(disengagement metric)으로서 사용될 수 있다. 해지 위험은 시간의 특정 기간 내 또는 선택된 매치 플랜으로 매치가 끝난 후 제로 게임들을 플레이 할 플레이어(player playing zero games)의 가능성을 표시할 수 있다. 두 플레이어들의 합계 참여를 최대화하는 것은 두 플레이어들 또는 사용자들의 합계 해지 위험들을 최소화하는 것과 동일하게 고려될 수 있다. 플레이어 p j 와의 비디오 게임의 인스턴스에서 매치된 후 플레이어 p i 의 해지 위험 c i,j 는 사용자들 또는 플레이어들의 상태들의 함수, c i,j = c(s i , s j )로서 모델링될 수 있다. 일반적으로 쌍이 된 매치에서의 두 플레이어들로서 c i,j != c j,i 는 함께 쌍이 됨으로써 서로 다른 영향이 미칠 수 있다. 예를 들어, 한 플레이어는 매치업을 즐길 수 있는 반면, 각 플레이어는 상이한 매치업 선호도를 가질 수 있기 때문에 다른 플레이어는 매치업을 즐길 수 없다. 따라서, 목표 함수로서 해지 위험을 사용하는 것 및 쌍 만들기시 각 플레이어의 해지 위험을 고려하는 것은 쌍 만들기에 의해 다르게 영향을 받을 수 있고, 수학식 1의 최적화 목표 함수는 다음과 같이 변환될 수 있다:
Figure pat00002
c i,j + c j,i G 의 에지에 가중치로서 할당하면, 최적화 수학식 2는 최소 가중치 퍼펙트 매칭(MWPM; minimum weight perfect matching) 문제로 변환될 수 있다. 그래프 G 에 관한 MWPM 문제를 해결하는 것은 에지들의 최소 합계 가중치들을 구비한 사용자들 P 에 대한 쌍 할당을 찾는 것이 된다.
해지 위험의 예측
함수 c i,j = c(s i , s j )는 해지 예측 문제(churn prediction problem)로서 모델링될 수 있다. 플레이어 p i 의 해지 위험 c i,j 는 플레이어 자신과 그의 또는 그녀의 상대방 모두로부터의 특징들에 따를 수 있다. 그러나, 기계 학습 프로세스를 사용하여 얻어진 예측 모델의 매개변수 함수로서 모델링 될 수 있는, 함수 c i,j 에 대한 입력으로서 두 사용자들의, 플레이어 상태 정보 또는 사용자 인터랙션 정보를 사용하는 것은 함수의 특징 디멘션들(feature dimensions)을 더블할(double) 것이며, 이는, 예를 들어 기계 학습 알고리즘을 사용하여 매개변수 함수를 생성하는 것이 단일 사용자의 플레이어 상태 정보에 대해 결정된 함수와 비교하여 훨씬 더 많은 트레이닝 데이터를 요구할 수 있기 때문에, 결과 예측을 이해하기 어렵게 하거나 결정하기 어렵게 만들 수 있다.
따라서, 본원에 개시된 실시예들은 c i,j 를 예측하기 위해 단일 사용자 p i 의 상태 정보 s i 에 의존한다. 그러나 사용자의 상대방의 상태 정보 s j 는 사용자의 상태 정보 s i 에 영향을 줄 수 있다. 예를 들어, 매치메이킹의 문맥(context)에서, 사용자 p i 와 상대방 p j 간의 비디오 게임의 인스턴스의 예측된 매치 결과(predicted match outcome)는 c i,j 의 결정에 영향을 주기 위해 사용될 수 있다. 따라서, 일단 게임 결과가 알려지면, c i,j 는 상대방의 상태 s j 에 대해 조건부 독립적이 될 수 있다.
일 사용 예시에서, 게임의 결과들이 승리(Win), 패배(Lose) 및 무승부(Draw)와 같은 유한 집합(finite set) O 로부터 샘플링 된다고 가정한다. 표준 기술 모델을 사용하여, 두 사용자들의 기술들에 기초한 게임 결과는 예측될 수 있다. 일부 경우들에서, 예측은 사용자들의 상태들의 다른 특징들과 상관없이 발생할 수 있다. 플레이어 p i 의 기술 표현(예를 들어, 벡터를 통해)을 μi로서 나타내면, (p i 의 관점으로부터) 플레이어 p i p j 사이의 게임 결과 o i,j 의 확률은 다음과 같이 나타낼 수 있다:
Figure pat00003
여기서, o i,j = Wp i 승리 및 p j 패배를 의미하고, 여기서 o j,i = Lp j 의 관점으로부터 동일한 결과를 나타낸다.
쌍이 된 사용자들의 해지 위험은 다음과 같은 수학식 2에 기초하여 효율적으로 예측될 수 있다:
Figure pat00004
여기서, 제1 등식은 게임 결과 o i,j 에 대한 주변화(marginalization)이다. 제2 등식에서, 수학식 3은 플러그된다(plugged in). 구성 c(s i |o i,j )은 매치메이킹 후 플레이어 pi의 해지 위험을 나타낼 수 있고, 여기서, o i,j 에 주어진 s j 에 대한 c i,j 의 조건부 독립성이 사용된다.
구성 c(s i |o i,j )은 해지 예측 문제로서 효율적으로 학습될 수 있다. 입력 특징들은 매치메이킹 비디오 게임 결과, si update s i + o i,j 를 결정한 후에 업데이트된 사용자 상태를 포함할 수 있다.
Figure pat00005
를 분해하면(Decomposing), 여기서 o i K 는 최신 K 비디오 게임 결과들의 벡터(예를 들어, K = 5 일 때 o i K = LWLDL)이고,
Figure pat00006
s i 에서의 다른 상태 정보를 나타낸다. 상태 업데이트는 다음과 같이 나타낼 수 있다:
Figure pat00007
새로운 매치가 완료된 후 비-게임-결과 상태 정보(non-game-outcome state information) 또는 특징들이 또한 업데이트 될 수 있음을 나타내는
Figure pat00008
와 함께. 예를 들어, 플레이된 게임의 총 횟수는 1씩 증가한다. 본원에서의 실시예들은 업데이트된 사용자 상태 정보에 기초하여 다른 해지 예측 모델들을 채택하는 것을 허용한다(amenable).
사용자들의 그래프가 생성되고 해지 위험과 같은 선택된 목표 함수를 기초하는 에지들에 가중치들이 적용되면, 광학 쌍 할당(optical pair assignment)은 에지 선택 알고리즘을 사용하여 결정될 수 있다. 예를 들어, 최소 가중치 퍼펙트 매칭(MWPM) 문제를 해결하는 것은 가장 낮은 해지 위험과 관련된 사용자 쌍이 선택되는 에지들을 선택할 수 있다. 아래 도 4와 관련하여 설명된 프로세스(400)는 증가된 참여 또는 해지 위험 감소 프로세스를 사용하여 매치 플랜에 대한 사용자들의 선택과 관련된 추가 세부 정보들을 제공한다.
예시 멀티플레이어 매칭 프로세스
도 4는 멀티플레이어 매칭 프로세스(400)의 일 실시예의 흐름도를 나타낸다. 프로세스(400)는 상대방들, 팀원들 또는 이 둘의 조합으로서 비디오 게임(112)을 플레이 할 수 있는 둘 이상의 사용자들의 매치 플랜을 창조할 수 있는 임의의 시스템에 의해 구현될 수 있다. 전체적으로 또는 부분적으로, 프로세스(400)는, 예를 들어, 다른 여러가지들 중, 인터랙티브 컴퓨팅 시스템(130), 사용자 매칭 시스템(132), 사용자 그래프 생성기(120), 기술 평가 시스템(136), 유지 분석 시스템(140), 모델 생성 시스템(146), 또는 사용자 컴퓨팅 시스템(110)에 의해 구현될 수 있다. 임의의 수의 시스템들이 전체적으로 또는 부분적으로 프로세스(400)를 구현할 수 있지만, 논의를 단순화하기 위해, 프로세스(400)는 특정 시스템들과 관련하여 설명될 것이다. 또한, 프로세스(400)는 시간이 지남에 따라 반복적으로 업데이트되거나 수행될 수 있음을 알아야 한다. 예를 들어, 프로세스(400)는 비디오 게임(112)의 각 플레이 세션 또는 비디오 게임(112)의 각 라운드에 대해 반복될 수 있다. 그러나, 프로세스(400)는 더 많거나 더 적은 빈도로 수행될 수 있다.
프로세스(400)는 블록(402)에서 시작하여, 사용자 매칭 시스템(132)은 멀티 플레이어 비디오 게임(112)을 플레이하기를 기다리는 사용자들의 세트를 식별한다. 식별된 사용자들의 세트 또는 플레이어들의 풀은 팀원들, 상대방들, 또는 둘의 조합으로서 둘 이상의 사용자들의 매치 플랜에 쌍이 되거나 포함될 가능성이 있는 사용자들이 포함된다. 사용자 매칭 시스템(132)은 잠재적으로 함께 매칭되도록 사용자들을 식별하기 위한 시스템 또는 프로세스의 임의의 유형을 사용할 수 있다. 예를 들어, 사용자 매칭 시스템(132)은 비디오 게임(112)의 인스턴스를 플레이 하기 위해 대기하는 사용자들의 큐(queue)에서의 그들의 위치 또는 시간의 길이에 기초하여 사용자들을 식별할 수 있다. 대안 적으로, 사용자 매칭 시스템(132)은 기술 레벨에 기초하여 사용자들을 식별할 수 있다. 다른 예시에서, 사용자 매칭 시스템(132)은 특정 시간 윈도우(certain time window) 내에서 무작위로 사용자들을 선택할 수 있다. 이 시간 윈도우는 사용자들의 세트가 사용자들의 큐에서 대기하고 있는 시간의 길이와 관련이 있다. 또한, 시간 윈도우는 사용자들의 큐에서의 사용자들의 수에 기초하여 달라질 수 있다. 또한, 일부 경우들에서, 사용자들의 수의 적어도 일부는 비디오 게임(112)을 함께 플레이 하고자 하는 희망(desire)을 나타내는 사용자들의 수의 적어도 일부의 표시에 기초하여 선택될 수 있다.
블록(404)에서, 사용자 그래프 생성기는 그래프 내의 서로 다른 정점에 대한 에지(edge)에 의해 연결된 각 정점과 그리고 그래프 내의 정점 또는 노드를 나타내는 블록(402)에서 식별된 사용자들의 세트로부터의 각 사용자로 사용자들을 모델링하도록 완전히 연결된 그래프(fully connected graph) G를 생성한다. 도 3은 그래프 생성 프로세스의 일 예시를 나타낸다. 도 3은 사용자들의 풀(302)을 포함한다. 도시된 예시에서, 사용자들의 풀(302)은 14 명의 사용자들을 포함한다. 또한, 도 3의 도시된 예시에서, 프로세스(400)의 블록(402)에서 수행되는 작동들의 부분으로서 사용자들의 풀(302)로부터 10 명의 사용자들이 선택될 수 있다.
블록(404)에서 수행되는 작동들의 부분으로서, 그래프(304)는 블록(402)에서 선택된 10 명의 사용자들 중 하나를 나타내는 그래프의 각각의 정점으로 생성될 수 있다. 도 3에 도시된 바와 같이, 그래프(304)는 그래프의 각 정점이 그래프의 서로 다른 정점에 연결된 완전히 연결된 그래프다. 다시 말해서, 도시된 예시에서, 각 정점은 그래프(304)에서 9 개의 다른 정점들에 연결된다.
도 4를 참조하면, 블록(406)에서, 유지 분석 시스템(140)은 블록(402)에서 식별된 사용자들의 각각에 대한 사용자 인터랙션 데이터를 액세스한다. 사용자 인터랙션 데이터는 사용자 데이터 보관소(142)로부터 액세스될 수 있으며, 비디오 게임(112)과의 각 사용자의 인터랙션에 관한 정보를 포함할 수 있다. 사용자 인터랙션 데이터는 현재 사용자 인터랙션 데이터, 이력 사용자 인터랙션 데이터, 또는 이들의 조합을 포함할 수 있다. 현재 사용자 인터랙션 데이터는 특정 임계 시간 기간 보다 더 새로운 현재 플레이 세션 또는 사용자 인터랙션 데이터로부터의 사용자 인터랙션 데이터를 포함할 수 있다. 예를 들어, 최근 사용자 인터랙션 데이터는 1 주 또는 1 개월 미만인 사용자 인터랙션 데이터를 포함할 수 있다. 대안적으로, 또는 부가적으로, 최근 사용자 인터랙션 데이터는 3, 5 또는 10 플레이 세션들 미만인 플레이 세션들로부터의 데이터를 포함할 수 있다. 반대로, 이력 사용자 인터랙션 데이터는 특정 임계 시간 기간보다 오래된 사용자 인터랙션 데이터를 포함할 수 있다. 예를 들어, 이력 사용자 인터랙션 데이터는 적어도 1 주 또는 1 개월인 사용자 인터랙션 데이터를 포함할 수 있다. 대안적으로, 또는 부가적으로, 이력 사용자 인터랙션 데이터는 5 또는 10 플레이 세션들 이상인 플레이 세션들로부터의 데이터를 포함할 수 있다.
사용자 인터랙션 데이터는, 예를 들어, 사용자에 의해 선택된 게임 내 캐릭터의 아이덴티티(identity); 사용자의 역할이 플레이하는 시간의 임계 백분율(치료자 또는 수비수와 같은); 사용자가 비디오 게임을 플레이하는데 소비하는 시간의 양; 사용자가 비디오 게임(112)에 대해 소비한 돈의 액수; 사용자와 관련된 기술 레벨; 등을 포함하는 비디오 게임(112)과의 사용자의 인터랙션에 관한 임의의 데이터를 포함할 수 있다. 또한, 블록(406)은 사용자가 이전에 플레이 한 적이 있는 상대방들 또는 팀원들에 관한 데이터를 액세스하는 것을 포함할 수 있다. 일부 경우들에서, 사용자에 대한 사용자 인터랙션 데이터는 상대방 또는 팀원 별 데이터를 포함할 수 있다. 예를 들어, 사용자에 대한 사용자 인터랙션 데이터는, 사용자의 팀원들이 사용자보다 더 높은 기술 레벨에 있을 때, 일반적으로(예를 들어, 임계 백분율보다 더 자주) 사용자가 치료자로서 비디오 게임(112)을 플레이 한다는 것을 표시할 수 있다. 그러나, 사용자에 대한 사용자 인터랙션 데이터는 사용자의 팀원들이 사용자보다 낮은 기술 레벨에 있을 때, 비디오 게임(112)을 일반적으로 플레이하는 사용자가 근접전 공격 캐릭터임을 표시할 수 있다.
특정 실시예들에서, 특정 값들(디폴트 값들(default values)과 같은)은 사용자 인터랙션 데이터와 관련되지 않은 사용자들에게 할당되거나, 비디오 게임(112)의 플레하는 것의 양 또는 매치들의 임계수 보다 적은 것으로부터 유도된 사용자 인터랙션 데이터와 관련된다. 바람직하게는, 일부 이러한 실시예들에서, 프로세스(400)는 비디오 게임(112)을 새롭게 플레이 하는 사용자들과 함께 사용될 수 있거나 또는 사용자에 대한 특정 값을 사용함으로써 비디오 게임(112)에 대한 매치들 또는 플레이 시간의 임계 양 보다 적은 것과 관련된다.
선택적으로, 블록(408)에서, 사용자 그래프 생성기(120)는 각 사용자에 대한 사용자가 원하는 매치 결과(user desired match outcome)를 예측하기 위해 사용자의 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 각 사용자에 대한 사전-계산 프로세스(pre-computation process)를 수행한다. 사전-계산 프로세스를 수행하는 것은 매개변수 함수 또는 예측 모델(160)을 사용하여 사용자의 사용자 인터랙션 데이터에 기초하여 사용자가 원하는 매치 결과를 예측하는 것을 포함할 수 있다. 이 예측 모델은 블록(414)에서 사용된 것과 상이한 모델일 수 있다. 사용자들이 원하는 매치 결과를 결정하는 것은 사용자가 비디오 게임(112)의 그 또는 그녀의 다음 매치를 승리하거나 패배하기를 원하는지 여부, 또는 사용자가 다음 매치의 결과에 무관심한지 여부를 결정하는 것을 포함할 수 있다. 예를 들어, 잇달아 여러 매치들에서 승리한 사용자는 비디오 게임(112)이 너무 단순하다는 것을 느끼기 시작할 수 있고 도전의 느낌을 유지하기 위해 다음 매치를 실패하기를 원할 수 있다. 다른 사용자는 패배를 싫어할 수 있으며, 잇달아 여러 매치들에서 승리했음에도 불구하고 계속해서 매치들을 승리하고 싶어 할 수 있다. 제3 사용자는 잇달아 여러 매치들을 패배했을 수 있으며, 매치를 승리하고 싶어 할 수 있다. 제3 사용자가 매치를 승리하지 못하면, 비디오 게임(112)은 제3 사용자에게 너무 도전적으로 보일 수 있다. 제4 사용자는 결과에 관계없이 비디오 게임(112)을 플레이 하는 것을 즐길 수 있다.
블록(410)에서, 사용자 그래프 생성기(120)는 감소된 그래프(reduced graph)를 얻기 위해 블록(408)에서 결정된 각 사용자에 대한 사용자가 원하는 매치 결과에 적어도 부분적으로 기초하여 블록(404)에서 생성된 완전히 연결된 그래프에 대해 사전-필터링 프로세스(pre-filtering process)를 수행한다. 사전-필터링 프로세스를 수행하는 것은 이전에 완전히 연결된 그래프 내의 특정 사용자들 사이의 에지들을 제거하는 것을 포함할 수 있다.  예를 들어, 한 명의 사용자가 다음 매치를 승리하고자 하는 희망(desire)을 가지고 있고 한 명의 사용자가 다음 매치를 패배하고자 하는 희망(desire)을 가지고 있는 것으로 결정되면, 두 사용자들을 대표하는 한 쌍의 노드들을 잠재적 팀원들로서 연결하는 에지는 연결된 그래프로부터 제거된다. 바람직하게는, 특정 실시예들에서, 완전히 연결된 그래프를 감소된 그래프로 감소시키기 위해 사전-필터링 프로세스를 수행함으로써, 프로세스(400)의 후속 블록들에 관한 작동들을 수행하는데 필요한 프로세싱 파워의 양은 감소된다. 예를 들어, 아래에서 보다 상세히 설명되는 바와 같이, 블록(418)은 비디오 게임(112)을 플레이하기 위한 하나 이상의 매치 플랜들을 식별하기 위해 최소 가중치 매칭 문제(minimum weight matching problem)를 해결하는 것을 포함한다. 사전-필터링 프로세스를 수행하여 완전히 연결된 그래프를 감소시킴으로써, 블록(418)과 관련된 작동들은 완전히 연결된 그래프에 대한 작동들을 수행하는 것에 비교하여 사전-필터링 프로세스에 의해 얻어진 감소된 연결된 그래프에 더 적은 계산 리소스들 및 더 신속하게 수행될 수있다. 특정 실시예들에서, 블록(410)은 블록(408)이 생략될 때와 같이, 선택적이거나 생략된다.
블록(412)에서, 블록 (408) 및 (410)이 생략된 경우, 완전히 연결된 그래프 또는 감소된 그래프에서의 각 에지에 대해, 유지 분석 시스템(140)은 에지에 의해 연결된 정점 쌍에 대응하는 사용자들의 쌍에 대한 사용자 인터랙션 데이터를 액세스한다. 각 에지는 1 대 1 매치 플랜을 대표할 수 있다. 따라서, 그래프에서의 에지들은 복수의 잠재적인 1 대 1 매치 플랜들로 생각될 수 있다. 프로세스(400)는, 예를 들어 비디오 게임(112)의 1 대 1 매치들을 사용자들의 쌍들을 식별하는 것과 관련하여 주로 설명되지만, 프로세스(400)는 이에 제한되지 않는다. 프로세스(400)의 실시예들은 둘 이상의 사용자들을 포함하는 매치 플랜을 창조하는데 사용될 수 있다. 예를 들어, 프로세스(400)는 3 명 또는 4 명의 사용자들을 선택하여 매치 플랜에 포함시킬 수 있다. 따라서, 일부 실시예들에서, 유지 분석 시스템(140)은 매치 플랜에 포함된 에지들의 세트에 의해 연결된 정점들에 대응하는 사용자들의 세트에 대한 사용자 인터랙션 데이터를 액세스한다. 예를 들어, 특정 비디오 게임(112)이 3 명의 비-플레이어 캐릭터(NPC들; non-player characters)에 대항하여 플레이 하는 3 명의 사용자들을 지원한다고 가정한다. 이러한 경우들에서, 사용자 인터랙션 데이터는 완전히 연결된 또는 감소된 그래프 내의 사용자들의 트라이앵글들(triangles)에 대해 선택될 수 있다.
블록(414)에서 예측 모델을 사용하여, 유지 분석 시스템(140)은 사용자들의 쌍에 대한 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 연결된 그래프에서의 각 사용자들의 쌍으로부터 각 사용자에 대한 해지 위험(churn risk)을 계산한다. 해지 위험은 사용자가 쌍이 된 사용자와 함께 비디오 게임(112)의 인스턴스를 플레이 한 후 시간의 특정 기간 동안 비디오 게임(112)을 계속 플레이 할 확률을 포함할 수 있다. 일부 경우들에서, 각 사용자에 대한 해지 위험을 결정하는 단계는 사용자들의 쌍과 사용자에 대한 사용자 인터랙션 데이터 사이의 매치업의 예측된 결과를 예측 모델에 적용하는 단계를 포함한다. 대안적으로, 또는 부가적으로, 각 사용자에 대한 해지 위험을 결정하는 단계는 사용자에 대한 인터랙션 데이터 및 둘 이상의 사용자들을 포함하는 멀티플레이어 매치업들의 경우에서 사용자들의 그룹들, 또는 쌍이 된 사용자에 대한 인터랙션 데이터를 예측 모델에 적용하는 단계를 포함한다.
전술한 바와 같이, 사용자 인터랙션 데이터는, 성공의 사용자들 레벨이 비디오 게임(112)을 플레이하고 있다는 것(the users level of success are playing the videogame 112) 및 비디오 게임(112)을 플레이 하는 동안 사용자에 의해 취해진 동작들을 포함하는 비디오 게임(112)과의 사용자의 인터랙션에 관련된 데이터의 임의의 유형을 포함할 수 있다. 일부 경우들에서, 사용자 인터랙션 데이터는 비디오 게임(112)을 플레이 할 때 사용자의 선호도와 관련되는, 추가 데이터 또는 대안 데이터를 포함할 수 있다. 또한, 일 사용자에 대해 이용 가능한 사용자 인터랙션 데이터는 다른 사용자에 대해 이용 가능한 사용자 인터랙션 데이터로부터 다를 수 있다. 예를 들어, 바람직한 캐릭터 분류는 일 사용자에게 공지될 수 있고 사용자 인터랙션 데이터에 포함될 수 있지만, 다른 사용자에게 공지되지 않을 수 있으며 따라서 다른 사용자에 대한 사용자 인터랙션 데이터에서 생략될 수 있다. 또한, 일부 경우들에서, 어떤 플레이어들이 팀원들이고 어떤 플레이어들이 상대방들인지를 특정하는 특정 매치 플랜은 예측 모델(160)에 제공되어, 사용자들의 수의 각각에 대한 해지 위험을 결정할 수 있다. 이러한 일부 경우들에서, 예측 모델(160)은 해지 위험에 더하여 또는 대신에, 사용자들의 세트에 대한 유지율을 최대화하는 대안 매치 플랜 또는 매치 플랜을 출력할 수 있다. 일부 경우들에서, 사용자 인터랙션 데이터는 팀원들 또는 상대방들로서 함께 그룹화 될 둘 이상의 사용자들을 표시하는 추가 데이터를 제공하는 것을 포함할 수 있다. 예를 들어, 두 플레이어들이 매치를 함께 플레이 하고 싶다고 표시할 수 있다. 따라서, 일부 경우들에서, 매개변수 함수는 둘 이상의 사용자들이 함께 매치를 플레이하고자 하는 희망(desire)을 표시했다는 표시에 기초하여 사용자들의 그룹 또는 쌍에 대한 출력된 해지 위험을 조정할 수 있다.
블록(416)에서, 사용자 그래프 생성기(120)는 에지에 의해 연결된 정점 쌍에 대응하는 사용자들의 쌍에 대한 해지 위험의 합, 예를 들면 플레이어 A와 쌍이 되는 플레이어 B에 대한 해지 위험 및 플레이어 B와 쌍이 되는 플레이어 A에 대한 해지 위험의 합에 기초하여 그래프의 각 에지에 가중치를 할당한다. 일부 경우들에서, 사용자들의 한 쌍은 함께 매치를 플레이하고자 하는 희망을 표시할 수 있다. 이러한 경우들에서, 함께 매치를 플레이하고자 하는 희망을 표시하는 사용자들의 쌍과 연관된 에지에 할당된 가중치는 에지가 아래 설명되는 블록(418)과 관련된 프로세스의 부분으로서 선택되도록 조절될 수 있다. 매치를 플레이하고자 하는 희망을 표시한 사용자들의 수가 매치를 플레이하는 사용자들의 총 수보다 적은 경우에서, 사용자들과 관련된 노드들은 매치를 플레이할 추가 사용자들을 선택하는 목적을 위해 그래프 내에서 유지된다. 예를 들어, 4 명의 플레이어 멀티플레이어 비디오 게임(112)에서, 두 사용자들이 함께 플레이하고자 하는 희망을 표시하는 경우, 두 사용자들 관련된 노드들은 그래프 내에 유지될 수 있고, 두 사용자들 사이의 에지는 가중될 수 있어 두 사용자들의 선택은 보장되어 함께 플레이할 수 있다. 그러나, 멀티플레이어 비디오 게임(112)을 함께 플레이하고자 하는 희망을 표시하는 사용자들의 수가 멀티플레이어 비디오 게임(112)을 함께 플레이 할 수 있는 사용자들의 수와 동일한 경우, 함께 플레이하고자 하는 희망을 표시한 사용자들과 관련된 노드들 및 에지들은 그래프로부터 제거될 수 있다. 다른 경우들에서, 그래프 내의 특정 노드들과 관련된 사용자들은 다른 사용자들로 대체될 수 있다.
블록(418)에서, 사용자 매칭 시스템(132)은 에지들의 세트를 결정하기 위해 할당된 가중치를 사용하여 최소 가중치 매칭(MWM; minimum weight matching) 또는 최소 가중치 퍼펙트 매칭 (MWPM) 문제를 해결한다. MWM 문제가 해결된 경우들에서, 선택된 에지들은 그래프에 포함된 노드들 중 하나 이상을 생략할 수 있다. 이러한 경우들에서, 생략된 노드들과 관련된 사용자들은 프로세스(400)의 후속 퍼포먼스(subsequent performance)에서 대안 사용자들을 구비한 다른 그래프에 포함될 수 있다. 다시 말해, 일부 경우들에서, 블록(402)에서 식별된 모든 사용자들이 비디오 게임(112)의 인스턴스에 할당될 수 있는 것은 아니다. 이러한 경우들에서, 사용자들은 비디오 게임(112)의 인스턴스에 할당을 대기하고 있는 사용자들의 풀에 다시 배치될 수 있다. MWPM 및 문제가 해결된 경우들에서, 그래프에서의 각 노드는 선택된 에지와 관련된다.
전술한 바와 같이, 본원에 개시된 실시예들은 부가적 또는 대안적 목표들에 적용될 수 있으며 해지 위험에 기초한 사용자들의 선택에 제한되지 않는다. 예를 들어, 블록(414)에서, 예측 모델은, 사용자가 하나 이상의 팀원 유형들 또는 상대방 유형들에 관련하여 또는 단독으로 매치를 완료하는 확률, 예를 들어, 비디오 게임 개발자 또는 비디오 게임 커뮤니티에 의해, 결정되는 바와 같은 긍정적 또는 부정적 사용자 행동의 확률, 통화 지출 율(currency spending rate), 또는 유지율을 결정하는데 사용될 수 있다. 일부 경우들에서, 가장 낮은 가중치들이 아닌 가장 높은 가중치들과 관련된 에지들을 선택하는 것이 바람직할 수 있다. 이러한 경우들에서, 블록(418)은 최대 가중치 매칭 또는 최대 가중치 퍼펙트 매칭 문제를 해결하는 단계를 포함할 수 있다.
일부 실시예들에서, 블록(418)은 또한 비디오 게임(112)의 인스턴스를 플레이하기 위해 에지들의 세트의 정점들과 관련된 사용자들을 식별하는 단계를 포함한다. 일부 경우들에서, 각 에지와 관련된 사용자들의 쌍은 비디오 게임(112)의 개별 인스턴스를 플레이하기 위해 식별된다. 다른 경우들에서, 그래프 내의 선택된 에지들에 의해 연결된 셋 이상의 사용자들이 비디오 게임(112)의 인스턴스를 플레이하기 위해 선택될 수 있다. 예를 들어, 3 플레이어 멀티플레이어 게임(three player multiplayer game)에서, 블록(418)은 개별 에지들 대신에 3 개의 에지들의 그룹들에 대한 최소 가중치 매칭 문제를 해결하는 단계를 포함할 수 있다. 3 개의 에지들의, 각 그룹 또는 트라이앵글과 관련된 사용자들은 비디오 게임(112)의 인스턴스를 플레이하도록 선택될 수 있다. 다시 말해서, 프로세스(400)는 비디오 게임(112)의 인스턴스를 함께 플레이 하기 위해 선택된 셋 이상의 사용자들에 대한 예측된 해지 위험을 조사하는 그룹화 문제에 대한 상대방의 상태 및 사용자의 상태에 기초하여 비디오 게임의 인스턴스를 플레이하기 위해 사용자들을 결정하는 것으로부터 수정될 수 있다.
도 4의 그래프(404)는 그래프(404)에서의 사용자들의 쌍들 사이에 존재하는 굵은 선들 또는 두꺼운 선들에 의해 도시된 바와 같이 최소 가중치 매칭 문제의 해결의 완료를 도시한다. 일부 실시예들에서, 선택된 에지들은 필터링되어 특정 임계치를 만족하지 않는 에지들을 제거할 수 있다. 예를 들어, 도 4에 도시된 예시를 계속하여, 최소 가중치 매칭 문제를 해결하는 단계는 가장 낮은 관련 가중치들을 구비한 5 개의 에지들을 선택할 수 있다. 그러나, 5 개의 에지들 중 일부는 특정 임계치를 초과하는 가중치들과 관련될 수 있다. 이러한 일부 경우들에서, 특정 임계치를 초과하는 가중치들과 관련된 에지들은 제거될 수 있고, 관련된 사용자들은 사용자들의 풀(402)로부터의 추가 사용자들을 구비한 새로운 그래프에 포함될 수 있다.
블록(420)에서, 사용자 매칭 시스템(132)은 블록(418)에서 결정된 에지들의 세트로부터 선택된 에지와 관련된 사용자들의 쌍을 사용하여 비디오 게임(112)의 플레이 가능한 인스턴스(playable instance)를 개시한다. 일부 경우들에서, 블록(420)은 선택된 에지들의 세트로부터 각각의 선택된 에지와 연관된 사용자들의 각 쌍에 대한 비디오 게임(112)의 개별적인 플레이 가능한 인스턴스를 개시하는 단계를 포함할 수 있다. 또한, 블록(418)과 관련하여 설명된 바와 같이, 둘 이상의 사용자들이 비디오 게임(112)의 인스턴스를 플레이하도록 선택될 수 있다. 셋 이상의 사용자들의 그룹화는 에지들의 세트로부터 선택된 에지들의 그룹과의 사용자들의 연관성에 기초하여 선택될 수 있다.
일부 실시예들에서, 블록(420)은 각각의 선택된 에지와 연관된 사용자들의 각 쌍에 대한 해지 위험이 임계치를 만족시키는지의 여부를 결정하는 단계를 포함할 수 있다. 임계치를 만족시키는 해지 위험과 연관된 사용자들의 각 쌍에 대해, 비디오 게임(112)의 플레이 가능한 인스턴스는 개시될 수 있다. 반대로, 임계치를 만족시키지 않는 해지 위험과 연관된 사용자들의 각 쌍에 대해, 사용자들의 쌍은 비디오 게임(112)의 인스턴스를 플레이하기를 대기하는 사용자들의 큐에 다시 배치 될 수 있다.
특정 실시예들에서, 프로세스(400)의 블록들 중 적어도 일부와 관련된 작동들 중 적어도 일부는 비디오 게임(112)의 인스턴스를 개시하기 위한 트리거(trigger)에 앞서 수행될 수 있다. 예를 들어, 블록(402 내지 416)과 연관된 작동들은 제1 시간 기간 동안 수행될 수 있다. 제 1 시간 기간에 후속하는 제2 시간 기간 동안, 멀티플레이어 비디오 게임(112)의 하나 이상의 플레이 가능한 인스턴스들을 개시하기 위한 트리거를 수신하면, 블록 (418 및 420)과 관련된 작동들이 수행될 수 있다. 바람직하게는, 미리 작동들의 적어도 일부를 수행함으로써, 비디오 게임(112)의 인스턴스를 플레이하기 위해 사용자들을 매칭시키는 프로세스가 가속될 수 있다. 또한, 프로세스(400)의 부분들은 더 낮은 계산 비용으로 반복될 수 있다. 예를 들어, 블록(402 내지 412)과 관련된 작동들이 제1 시간 기간 동안 수행된다고 가정한다. 또한, 블록(402)에서 식별된 하나 이상의 사용자들이 멀티플레이어 비디오 게임의 인스턴스를 플레이하기 위해 대기하는 해외 플레이(playing overseas)를 중단하는 것을 가정한다. 이러한 경우들에서, 블록(402 내지 412)과 관련된 작동들은 제2 시간 기간 동안 후속 블록들을 수행하기 전에 제1 시간 기간 동안 반복될 수 있다. 특정 블록들의 퍼포먼스를 상이한 시간 기간으로 분리함으로써, 이용 가능한 사용자들의 변화를 검출할 때 더 적은 작동들이 반복될 필요가 있을 수 있으며, 따라서 사용자 선택 프로세스의 퍼포먼스는 향상될 수 있다.
컴퓨팅 시스템의 개요
도 5는 사용자 컴퓨팅 시스템(110)의 일 실시예를 도시하고, 이는 게임 시스템으로서 지칭될 수 있다. 도 5는 사용자 컴퓨팅 시스템(110)을 특정하이지만, 사용자 컴퓨팅 시스템들(114 및 116)은 동일하거나 유사한 구성을 가질 수 있음을 이해해야 한다. 대안 적으로, 하나 이상의 사용자 컴퓨팅 시스템들(114 및 116)은 서로와 및/또는 사용자 컴퓨팅 시스템(110)과 상이한 구성을 가질 수 있다. 도시된 바와 같이, 사용자 컴퓨팅 시스템(110)은 다수의 요소들을 포함할 수 있는 단일 컴퓨팅 장치일 수 있다. 그러나, 일부 경우들에서, 사용자 컴퓨팅 시스템(110)은 다수의 장치들을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛 및 그래픽 프로세싱 유닛을 포함하는 하나의 장치, 디스플레이를 포함하는 다른 장치 및 키보드 또는 마우스와 같은 입력 메커니즘을 포함하는 다른 장치를 포함할 수 있다.
사용자 컴퓨팅 시스템(110)은 게임 시스템을 실행할 수 있는 컴퓨팅 시스템의 일 실시예일 수 있다. 도 5의 비-제한적인 예시에서, 사용자 컴퓨팅 시스템(110)은 터치스크린 디스플레이(touchscreen display)(502)를 통해 사용자로부터 입력을 수신할 수 있는 터치-가능 컴퓨팅 장치이다. 그러나, 사용자 컴퓨팅 시스템(110)은 그 자체로 제한되지 않으며 터치스크린 디스플레이(502)를 포함하지 않는 비-접촉식 실시예들을 포함 할 수 있다.
사용자 컴퓨팅 시스템(110)은 터치스크린 디스플레이(502) 및 터치스크린 인터페이스(touchscreen interface)(504)를 포함하고, 게임 애플리케이션을 실행하도록 구성된다. 이 게임 애플리케이션은 비디오 게임(112) 또는 비디오 게임 실행 환경과 같은 비디오 게임 (112)과 함께 또는 그 지원 하에 실행되는 애플리케이션일 수 있다. 게임 애플리케이션(112)으로 기술되었지만, 일부 실시예들에서, 애플리케이션(112)은, 교육 소프트웨어 또는 언어 소프트웨어와 같은 다수의 사용자 컴퓨팅 시스템들에 걸쳐 다수의 사용자들과 인터랙트할 수 있는 애플리케이션의 다른 유형일 수 있다. 사용자 컴퓨팅 시스템(110)은 터치스크린 디스플레이(502)를 포함하지만, 터치스크린 디스플레이(502)에 추가하여 또는 터치스크린 디스플레이(502) 대신에 다양한 입력 장치들이 사용될 수 있다는 것이 인식된다.
사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛들(CPU; central processing units), 그래픽 프로세싱 유닛들(GPU; graphics processing units) 및 가속 프로세싱 유닛들(APU; accelerated processing units)과 같은 하나 이상의 프로세서들을 포함할 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 하나 이상의 데이터 저장 요소들을 포함할 수 있다. 부가적으로, 사용자 컴퓨팅 시스템(110)은 랜덤 액세스 메모리(RAM)와 같은 하나 이상의 휘발성 메모리 요소들을 포함할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 게임 애플리케이션들(112)을 실행하기 위해 창조된 특수 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 비디오 게임 콘솔 일 수 있다. 사용자 컴퓨팅 시스템(110)에 의해 실행되는 게임 애플리케이션들(112)은 특정 애플리케이션 프로그래밍 인터페이스(API; application programming interface)를 사용하여 창조되거나 사용자 컴퓨팅 시스템(110)에 특정 될 수 있는 특정 명령어 세트(particular instruction set)로 컴파일(compiled)될 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 게임 애플리케이션들(112) 및 비-게임 애플리케이션들을 실행할 수 있는 범용 컴퓨팅 장치(general purpose computing device)일 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 통합된 터치스크린 디스플레이를 구비한 랩탑 또는 외부 터치스크린 디스플레이를 구비한 데스크탑 컴퓨터일 수 있다. 사용자 컴퓨팅 시스템(110)의 일 예시적인 실시예의 구성 요소는 도 6과 관련하여 보다 상세하게 설명된다.
터치스크린 디스플레이(502)는 정전식 터치스크린(capacitive touchscreen), 저항성 터치스크린(resistive touchscreen), 표면 탄성파 터치스크린(surface acoustic wave touchscreen), 또는 사용자로부터 터치 입력들로도 지칭되는 촉각 입력들(tactile inputs)을 수신하도록 구성된 터치스크린 기술의 다른 유형일 수 있다. 예를 들어, 터치 입력들은 스크린을 터치하는 손가락, 스크린을 터치하는 다수의 손가락들, 스타일러스(stylus), 또는 터치스크린 디스플레이(502) 상에 터치 입력을 등록하는데 사용될 수 있는 다른 자극제들(stimuli)을 통해 수신될 수 있다. 터치스크린 인터페이스(504)는 터치 입력을 데이터로 변환하고, 운영 시스템 및 게임 애플리케이션(112)과 같은 사용자 컴퓨팅 시스템(110)의 구성 요소들에 의해 해석될 수 있도록 데이터를 출력하도록 구성될 수 있다. 터치스크린 인터페이스(504)는 촉각 터치 입력 터치(tactile touch input touch)의 특성들을 터치 입력 데이터로 변환할 수 있다. 터치 입력의 일부 예시적인 특성들은 형상, 크기, 압력, 위치, 방향, 움직임(movement), 지속 시간 및/또는 다른 특성들을 포함할 수 있다. 터치스크린 인터페이스(504)는, 예를 들어 탭(tap)(예를 들어, 단일 위치에서의 터치 및 릴리스) 또는 스와이프(swipe)(예를 들어, 단일 터치 입력에서의 터치스크린상의 복수의 위치들을 통한 움직임)와 같은 터치 입력의 유형을 결정하도록 구성될 수 있다. 터치스크린 인터페이스(504)는 동시에 또는 실질적으로 병렬로 발생하는 다수의 터치 입력들과 관련된 터치 입력 데이터를 검출하고 출력하도록 구성될 수 있다. 일부 경우들에서, 동시 터치 입력들은 사용자가 터치스크린 디스플레이(502) 상에 제1 터치를 유지하고 이어서 터치스크린 디스플레이(502) 상에 제2 터치를 수행하는 인스턴스들을 포함할 수 있다. 터치스크린 인터페이스(504)는 터치 입력들의 움직임을 검출하도록 구성될 수 있다. 터치 입력 데이터는 프로세싱을 위해 사용자 컴퓨팅 시스템(110)의 구성 요소들로 전송될 수 있다. 예를 들어, 터치 입력 데이터는 프로세싱을 위해 게임 애플리케이션(112)에 직접 전송될 수 있다.
일부 실시예들에서, 터치 입력 데이터는 게임 애플리케이션(112)에 출력되기 전에 터치스크린 인터페이스(504), 운영 시스템, 또는 다른 구성요소들에 의한 프로세싱 및/또는 필터링을 거칠 수 있다. 일 예시로서, 원시 터치 입력 데이터(raw touch input data)는 터치 입력으로부터 캡쳐될 수 있다. 원시 데이터는 필터링되어 배경 잡음을 제거할 수 있고, 입력과 관련된 압력 값들은 측정될 수 있으며, 터치 입력과 연관된 위치 좌표들은 계산될 수 있다. 게임 애플리케이션(112)에 제공된 터치 입력 데이터의 유형은 터치스크린 인터페이스(504)의 특정 구현 및 터치스크린 인터페이스(504)와 연관된 특정 API에 좌우될(dependent) 수 있다. 일부 실시예들에서, 터치 입력 데이터는 터치 입력의 위치 좌표들을 포함할 수 있다. 터치 신호 데이터는 정의된 주파수에서 출력될 수 있다. 터치 입력들을 프로세싱하는 것은 초당 여러 번 계산될 수 있으며 터치 입력 데이터는 추가 프로세싱을 위해 게임 애플리케이션에 출력될 수 있다.
게임 애플리케이션(112)은 사용자 컴퓨팅 시스템(110)에서 실행되도록 구성 될 수 있다. 게임 애플리케이션(112)은 또한 비디오 게임, 게임, 게임 코드 및/또는 게임 프로그램으로 지칭될 수 있다. 게임 애플리케이션은 사용자 컴퓨팅 시스템(110)이 사용자가 게임을 플레이하기 위해 제공하여 사용할 수 있는 소프트웨어 코드(software code)를 포함하는 것으로 이해되어야 한다. 게임 애플리케이션(112)은 실행을 위한 프로세서 명령어들을 사용자 컴퓨팅 시스템(110)에 알리는 소프트웨어 코드를 포함할 수 있지만, 상수들, 이미지들 및 다른 데이터 구조들과 관련된 데이터와 같은, 게임의 플레이에 사용되는 데이터를 포함할 수도 있다. 예를 들어, 도시된 실시예에서, 게임 애플리케이션은 게임 엔진(game engine)(512), 게임 데이터(game data)(514) 및 게임 상태 정보(game state information)(516)를 포함한다. 전술한 바와 같이, 본원에 설명된 실시예들은, 교육용 소프트웨어 또는 화상 회의(videoconferencing)와 같은 비디오 게임 이외의 애플리케이션에 사용될 수 있다. 따라서, 이러한 일부 경우들에서, 게임 애플리케이션(112)은 네트워크를 통해 통신하고, 호스트로서 동작하는, 복수의 사용자 컴퓨팅 시스템 중 하나 또는 서버를 선택하는 다수의 사용자들을 포함할 수 있는 애플리케이션들의 다른 유형들로 대체될(substituted) 수 있다.
터치스크린 인터페이스(504) 또는 운영 시스템과 같은 사용자 컴퓨팅 시스템(110)의 다른 구성 요소는 터치 입력들과 같은 사용자 입력을 게임 애플리케이션(112)에 제공 할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 마우스, 키보드, 카메라, 게임 제어기 등과 같은 대안적인 또는 추가의 사용자 입력 장치들을 포함할 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 가상 리얼리티 디스플레이(virtual reality display) 및/또는 증강 현실 디스플레이(augmented realreality display)를 포함 할 수 있다. 사용자는 터치스크린 인터페이스(504) 및/또는 하나 이상의 대안 또는 추가 사용자 입력 장치들을 통해 게임 애플리케이션(112)과 인터랙트할 수 있다. 게임 엔진(512)은 사용자 컴퓨팅 시스템(110) 내의 게임 애플리케이션(112)의 작동의 측면들(aspects)을 실행하도록 구성될 수 있다. 게임 애플리케이션 내의 게임플레이의 측면들의 실행은 수신된 사용자 입력, 게임 데이터(514) 및 게임 상태 정보(516)에 적어도 부분적으로 기초할 수 있다. 게임 데이터(514)는 게임 규칙들, 미리 기록된 모션 캡처 포즈들/경로들(prerecorded motion capture poses/paths), 환경 설정들, 제한들, 애니메이션 참조 곡선들(animation reference curves), 골격 모델들(skeleton models) 및/또는 다른 게임 애플리케이션 정보를 포함할 수 있다. 또한, 게임 데이터(514)는 게임 애플리케이션(112)의 난이도를 설정 또는 조절하는데 사용되는 정보를 포함할 수 있다.
게임 엔진(512)은 게임 규칙들에 따라 게임 내에서 게임플레이를 실행할 수 있다. 게임 규칙들의 일부 예시들은 채점 규칙들, 가능한 입력들, 동작들/이벤트들, 입력들에 대한 응답 등을 포함할 수 있다. 다른 구성 요소들은 받아 들여지는 입력들과 게임 진행 방법, 및 게임 플레이의 다른 측면들을 제어할 수 있다. 게임 애플리케이션(112)의 실행 동안, 게임 애플리케이션(112)은 게임 상태 정보 (516)를 저장할 수 있으며, 이는 캐릭터 상태들, 환경 상태들, 장면 객체 저장소, 및/또는 게임 애플리케이션(112)의 실행의 상태와 관련된 다른 정보를 포함할 수 있다. 예를 들어, 게임 상태 정보(516)는 캐릭터 위치, 캐릭터 동작, 게임 레벨 속성들 및 게임 애플리케이션의 상태에 기여하는 다른 정보와 같은 특정 시점에서 게임 애플리케이션의 상태를 식별할 수 있다.
게임 엔진(512)은 사용자 입력들을 수신하고 동작들, 충돌들(collisions), 달리기들(runs), 던지기들(throws), 공격들(attacks) 및 게임 애플리케이션(112)에 적합한 다른 이벤트들과 같은 게임-내 이벤트들을 결정할 수 있다. 작동 동안, 게임 엔진(512)은 적절한 게임-내 이벤트들을 결정하기 위하여 게임 데이터(514) 및 게임 상태 정보(516)를 판독(read)할 수 있다. 일 예시에서, 게임 엔진(512)이 캐릭터 이벤트들을 결정한 후, 캐릭터 이벤트들은 캐릭터들이 이벤트에 응답하여 만들어야 하는 적절한 모션들을 결정할 수 있는 움직임 엔진(movement engine)으로 전달될 수 있고, 이들 모션들을 애니메이션 엔진(animation engine) 상에 패스할 수 있다. 애니메이션 엔진은 캐릭터들에 대한 새로운 포즈들을 결정하고 스키닝 및 렌더링 엔진(skinning and rendering engine)에 새로운 포즈들을 제공할 수 있다. 스키닝 및 렌더링 엔진은 애니메이트(animate), 인애니메이트(inanimate) 및 배경 객체들을 전체 장면으로 조합하기 위하여 객체 결합자(object combiner)에 캐릭터 이미지들을 차례대로 제공할 수 있다. 전체 장면은 렌더러(renderer)로 전달될 수 있으며, 이는 사용자에게 디스플레이 하기 위해 새로운 프레임을 생성할 수 있다. 프로세스는 게임 애플리케이션의 실행 동안 각 프레임을 렌더링하기 위해 반복될 수 있다. 프로세스가 캐릭터의 문맥에서 설명되었지만, 프로세스는 이벤트들을 프로세싱하고 사용자에게 디스플레이하기 위해 출력을 렌더링하는 임의의 프로세스에 적용될 수 있다.
일부 경우들에서, 비디오게임 엔진(512) 중 적어도 일부는 비디오게임 서버들(152) 중 하나와 같은 서버 상에 상주할 수 있다. 또한, 일부 경우들에서, 완전한 비디오게임 엔진(512)은 서버 상에 상주할 수 있다. 따라서, 일부 경우들에서, 비디오 게임 엔진(512)은 사용자 컴퓨팅 시스템(110) 상에 호스트되는 비디오 게임 애플리케이션(112)의 부분으로부터 생략될 수 있다. 유사하게, 일부 실시예들에서, 비디오 게임 상태 정보(516) 및 비디오 게임 데이터(514)는 사용자 컴퓨팅 시스템(110) 대신에 또는 사용자 컴퓨팅 시스템(110)에 부가하여 서버에 호스트될 수 있다. 또한, 일부 경우들에서, 비디오 게임 애플리케이션(112) 내에서 수행되는 사용자의 동작들은 비디오 게임(112)의 일 부분을 호스트하는 서버로 전송될 수 있다. 서버는 충돌들, 공격들 또는 움직임들과 같은 비디오 게임 애플리케이션(112)에 관한 사용자의 인터랙션의 결과를 계산하거나 결정할 수 있다. 서버는 사용자의 동작들의 결과를 사용자 컴퓨팅 시스템(110) 상의 비디오 게임 어플리케이션(112)에 전송할 수 있다. 비디오 게임 애플리케이션(112)은, 그 결과를 사용자에게 디스플레이 하는 것과 같이 결과에 응답하여 동작을 수행할 수 있다.
컴퓨팅 시스템의 예시 하드웨어 구성
도 6은 도 5의 사용자 컴퓨팅 시스템(110)에 대한 하드웨어 구성의 일 실시예를 도시한다. 사용자 컴퓨팅 시스템(114 및 116)의 각각은 사용자 컴퓨팅 시스템(110)과 유사하게 또는 동일하게 구성될 수 있다는 것을 이해해야 한다. 대안적으로, 하나 이상의 사용자 컴퓨팅 시스템(114 및 116)은 서로 및/또는 사용자 컴퓨팅 시스템(110)과 상이한 구성들을 가질 수 있다. 사용자 컴퓨팅 시스템(110)의 다른 변형들은 사용자 컴퓨팅 시스템(110)에 대한 구성 요소들을 제거하거나 추가하는 것과 같이 본원에 명시적으로 제시된 예시들로 대체될 수 있다. 사용자 컴퓨팅 시스템(110)은 전용 게임 장치, 스마트 폰, 태블릿, 개인용 컴퓨터, 데스크탑, 랩톱, 스마트 텔레비전, 자동차 콘솔 디스플레이 등을 포함할 수 있다. 또한, (도 6에 명시적으로 도시되지는 않았지만) 도 5에 관련하여 설명된 바와 같이, 사용자 컴퓨팅 시스템(110)은 선택적으로 터치스크린 디스플레이(502) 및 터치스크린 인터페이스(504)를 포함할 수 있다.
도시된 바와 같이, 사용자 컴퓨팅 시스템(110)은 사용자 컴퓨팅 시스템(110)의 다른 구성 요소 및 사용자 컴퓨팅 시스템(110) 외부의 구성 요소와 인터랙트하는 프로세싱 유닛(processing unit)(20)을 포함한다. 게임 매체(12)와 통신할 수 있는 게임 매체 리더(game media reader)(22)가 포함될 수 있다. 게임 매체 리더(22)는 CD-ROM 또는 DVD들과 같은 광학 디스크들을 판독할 수 있는 광학 디스크 리더(optical disc reader), 또는 게임 매체(12)로부터 데이터를 수신하고 판독할 수 있는 리더의 임의의 다른 유형일 수 있다. 일부 실시예들에서, 게임 매체 리더(22)는 선택적이거나 생략될 수 있다. 예를 들어, 게임 콘텐츠 또는 애플리케이션들은 게임 매체 판독기(22) 및/또는 게임 매체(12)를 선택적으로 렌더링하면서 네트워크 I/O(38)를 통해 네트워크를 통해 액세스될 수 있다.
사용자 컴퓨팅 시스템(110)은 별도의 그래픽 프로세서(24)를 포함할 수 있다. 일부 경우들에서, 그래픽 프로세서(24)는 APU와 같은 프로세싱 유닛(20)에 구축될 수 있다. 이러한 일부 경우들에서, 그래픽 프로세서(24)는 프로세싱 유닛(20)과 랜덤 액세스 메모리(RAM; Random Access Memory)를 공유할 수 있다. 대안적으로, 또는 부가적으로, 사용자 컴퓨팅 시스템(110)은 프로세싱 유닛(20)으로부터 분리된 이산 그래픽 프로세서(discrete graphics processor)(24)를 포함할 수 있다. 이러한 일부 경우들에서, 그래픽 프로세서(24)는 프로세싱 유닛(20)으로부터 분리된 RAM을 가질 수 있다. 또한, 일부 경우들에서, 그래픽 프로세서(24)는 하나 이상의 추가 그래픽 프로세서들 및/또는 내장 또는 비-이산 그래픽 프로세싱 유닛과 함께 작업할 수 있으며, 이는 마더보드(motherboard)에 내장될 수 있고 때때로 온-보드 그래픽 침 또는 장치(on-board graphics chip or device)로 지칭된다.
또한, 사용자 컴퓨팅 시스템(110)은, I/O(32), 사용자 I/O(user I/O)(34), 디스플레이 I/O(display I/O)(36), 및 네트워크 I/O(network I/O)(38)와 같은 입력/출력을 가능하게 하는 다양한 구성 요소들을 포함한다. 전술한 바와 같이, 입력/출력 구성 요소들은, 일부 경우들에서, 터치-가능 장치들을 포함할 수 있다. I/O(32)는 사용자 컴퓨팅 시스템(110)을 위한 저장소를 제공하기 위하여 장치(42)를 통해 이동식 저장 매체(removable storage media)(44) 및 저장 요소(storage element)(40)와 인터랙트한다. 프로세싱 유닛(20)은 I/O(32)를 통해 통신하여 게임 상태 데이터 및 임의의 공유 데이터 파일들과 같은 데이터를 저장할 수 있다. 저장 매체(40) 및 이동식 저장 매체(44)에 부가적으로, 사용자 컴퓨팅 시스템(110)은 ROM(Read-Only Memory) (46) 및 RAM(48)을 포함하여 또한 도시된다. RAM(48)은 프로세싱 유닛(20) 및/또는 그래픽 프로세서 (24)에 의해 액세스되는 모든 데이터에 대해 또는 게임이 플레이 될 때와 같은, 자주 액세스되는 데이터에 사용될 수 있다.
사용자 I/O(34)는 프로세싱 유닛(20)과 게임 제어기들과 같은 사용자 장치들 사이에서 명령을 송수신하기 위해 사용된다. 일부 실시예들에서, 사용자 I/O(34)는 터치스크린 입력들을 포함할 수 있다. 전술한 바와 같이, 터치스크린은 정전식 터치스크린, 저항성 터치스크린, 또는 사용자로부터 터치 입력을 통해 사용자 입력을 수신하도록 구성된 터치스크린 기술의 다른 유형일 수 있다. 디스플레이 I/O(36)는 플레이되는 게임으로부터 이미지들을 디스플레이 하는데 사용되는 입력/출력 기능들을 제공한다. 네트워크 I/O(38)는 네트워크에 대한 입력/출력 기능들을 위해 사용된다. 네트워크 I/O(38)는 게임이 온라인으로 실행되거나 온라인으로 액세스 될 때와 같이 게임의 실행 동안 사용될 수 있다.
디스플레이 출력 신호들은 디스플레이 I/O(36)에 의해 생산될 수 있고 그래픽들, 사용자 인터페이스들, 비디오 및/또는 다른 시각적 콘텐츠와 같은 디스플레이 장치에 사용자 컴퓨팅 시스템 (110)에 의해 생산된 시각적 콘텐츠를 디스플레이 하기 위한 신호들을 포함할 수 있다. 사용자 컴퓨팅 시스템(110)은 디스플레이 I/O(36)에 의해 생산된 디스플레이 출력 신호들을 수신하도록 구성된 하나 이상의 통합된 디스플레이들을 포함할 수 있으며, 이는 사용자에게 디스플레이하기 위해 출력될 수 있다. 일부 실시예들에 따라서, 디스플레이 I/O(36)에 의해 생산된 디스플레이 출력 신호들은 또한 사용자 컴퓨팅 시스템(110) 외부의 하나 이상의 디스플레이 장치들로 출력될 수 있다.
또한, 사용자 컴퓨팅 시스템(110)은 클락(clock)(50), 플래시 메모리(flash memory)(52) 및 다른 구성들과 같은 게임에 사용될 수 있는 다른 특징들을 포함할 수 있다. 오디오/비디오 플레이어(audio/video player)(56)는 또한 영화와 같은 비디오 시퀀스(video sequence)를 플레이하는데 사용될 수 있다. 다른 구성 요소들이 사용자 컴퓨팅 시스템(110)에 제공될 수 있고 당업계의 기술자가 사용자 컴퓨팅 시스템(110)의 다른 변형들을 이해할 수 있음을 이해해야 한다.
프로그램 코드는 ROM(46), RAM(48) 또는 저장소(40)에 저장될 수 있다(이는 하드 디스크, 다른 자기 저장소, 광학 저장소, 고체 상태 드라이브들 및/또는 다른 비-휘발성 저장소, 또는 이들의 조합 또는 변형을 포함할 수 있음). 프로그램 코드의 적어도 일부는 저장소(40) 및/또는 게임 매체(12)와 같은 이동식 매체에서의 프로그램 가능한(ROM, PROM, EPROM, EEPROM 등) ROM에 저장될 수 있다(이는 CD-ROM, 카트리지(cartridge), 메모리 칩(memory chip) 등일 수 있거나 필요에 따라 네트워크 또는 다른 전자 채널을 통해 얻을 수 있음). 일반적으로, 프로그램 코드는 유형의 비-일시적 신호-전달 매체(tangible non-transitory signal-bearing medium)에서 구체화될 수 있다.
랜덤 액세스 메모리(RAM)(48)(및 가능하게는 다른 저장소)는 필요에 따라 변수들 및 다른 게임 및 프로세서 데이터를 저장하는데 사용될 수 있다. RAM은 사용되고, 게임 플레이 중에 생성되는 데이터를 보유하며, 그의 부분들은 프레임 버퍼들(frame buffers), 게임 상태 및/또는 사용자 입력을 해석하고 게임 디스플레이를 생성하기 위해 필요하거나 사용할 수 있는 다른 데이터를 위해 리저브(reserved)될 수 있다. 일반적으로, RAM(48)은 휘발성 저장소이고, RAM(48) 내에 저장된 데이터는 사용자 컴퓨팅 시스템(110)이 꺼지거나 전력을 잃을 때 손실될 수 있다.
사용자 컴퓨팅 시스템(110)이 게임 매체(12)를 판독하고 게임을 제공함에 따라, 정보는 게임 매체(12)로부터 판독되고 RAM(48)과 같은 메모리 장치에 저장될 수 있다. 또한, 저장소(40), ROM(46), 네트워크(도시되지 않음)를 통해 액세스된 서버들 또는 이동식 저장 매체(46)로부터의 데이터는 판독되고 RAM(48)으로 로드(loaded)될 수 있다. 데이터가 RAM(48)에서 발견되는 것으로 설명되었지만, 데이터는 RAM (48)에 저장될 필요가 없고 프로세싱 유닛(20)에 액세스 가능한 다른 메모리에 저장되거나 게임 매체(12) 및 저장소(40)와 같은 여러 매체에 분산될 수 있다.
추가 실시예들
반드시 모든 목적들 또는 이점들이 본원에 설명된 임의의 특정 실시예에 따라 달성될 필요는 없다는 것을 이해해야 한다. 따라서, 예를 들어, 당업자는, 본원에서 교시되거나 제안될 수 있는 다른 목적들 또는 이점들을 필연적으로 달성하지 않으면서 본원에 교시된 바와 같이, 특정 실시예들이 하나의 이점 또는 이점들의 그룹을 달성, 증가, 또는 최적화하는 방식으로 작동하도록 구성될 수 있는 것을 인식할 것이다.
본원에 설명된 모든 프로세스들은 하나 이상의 컴퓨터들 또는 프로세서들을 포함하는 컴퓨팅 시스템에 의해 실행되는 소프트웨어 코드 모듈들을 통해 실시될 수 있으며, 완전히 자동화될 수 있다. 코드 모듈들은 비-일시적 컴퓨터-판독 가능 매체 또는 다른 컴퓨터 저장소의 임의의 유형에 저장될 수 있다. 일부 또는 모든 방법들은 특수한 컴퓨터 하드웨어로 구체화될 수 있다.
본원에 설명된 것 이외의 많은 다른 변형들이 이 개시로부터 명백할 것이다. 예를 들어, 실시예들에 따르면, 여기에 설명된 임의의 알고리즘들의 특정한 동작들, 이벤트들, 또는 기능들은 서로 다른 순서로 수행될 수 있고, 추가, 병합 또는 생략될 수 있다(즉, 알고리즘들의 실행을 위해 설명된 모든 동작들 또는 이벤트들이 필요한 것은 아니다). 또한, 특정한 실시예들에서, 작동들 또는 이벤트들이 순차적으로 수행되는 것이 아니라, 예를 들어, 멀티-스레드 프로세싱, 인터럽트 프로세싱, 또는 멀티 프로세서 또는 프로세서 코어들 또는 다른 병렬 아키텍쳐들을 통해 동시에 수행될 수 있다. 또한, 상이한 작업들 또는 프로세스들은 함께 수행할 수 있는 기계들 및/또는 컴퓨팅 시스템에 의해 수행될 수 있다.
여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 로직 블록들 및 모듈은 프로세싱 유닛 또는 프로세서, 디지털 시그널 프로세서(DSP), 어플리케이션 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 프로그래밍할 수 있는 논리 장치, 이산 게이트 또는 트렌지스터 로직, 이산 하드웨어 컴포넌트들, 또는 여기에 설명된 기능들을 수행하도록 설계된 임의의 조합과 같은 머신에 의해 수행되거나 구현될 수 있다. 프로세서는 마이크로프로세서일 수 있으나, 대안적으로, 프로세서는 컨트롤러, 마이크로 컨트롤러, 또는 스테이트 머신(state machine), 이들의 조합 등일 수 있다. 프로세서는 컴퓨터-실행 가능한 명령어들을 처리할 수 있는 전기 회로를 포함할 수 있다. 다른 실시예에서, 프로세서는 FPGA 또는 컴퓨터-실행 가능한 명령어들을 처리하지 않고, 다른 논리 동작들을 수행할 수 있는 프로그래밍할 수 있는 장치를 포함할 수 있다. 프로세서는 또한 예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로 프로세서들, 또는 임의의 다른 이러한 구성으로 구현될 수 있다. 비록 디지털 기술과 관련하여 주로 여기에 설명되었지만, 프로세서는 또한 아날로그 컴포넌트들을 주로 포함할 수 있다. 컴퓨팅 환경은 마이크로프로세서, 메인 프레임 컴퓨터, 디지털 시그널 프로세서, 휴대용 컴퓨팅 장치, 장치 컨트롤러 또는 어플라이언스 내의 계산 엔진 등을 포함하지만 이에 한정되지 않는 임의의 종류의 컴퓨터 시스템을 포함할 수 있다.
달리 명시하지 않거나, 사용된 문맥에서 달리 이해되지 않는다면, "할 수 있다(can, could)", "일 수 있다(may, might)"과 같은 조건 언어는 일반적으로 특정한 실시예들이 특정 특징들, 요소들 및/또는 스텝들을 포함하지만, 다른 실시예들은 특정한 특징들, 요소들 및/또는 스텝들을 포함하지 않는다는 것을 전달하고자 한다. 따라서, 그러한 조건 언어는 일반적으로 특징들, 요소들 및/또는 스텝들이 어떤 방식으로든 하나 이상의 실시예들에 요구되는 것을 암시하지 않으며, 또는, 하나 이상의 실시예가 다른 입력 또는 프롬프트와 함께(또는 그렇지 않고)이러한 특징들, 요소들 및/또는 스텝들이 임의의 특정한 실시예에서 수행되거나 포함될 지 여부를 결정하는 논리를 반드시 포함함을 암시하지 않는다.
달리 명시되지 않는 한, "X, Y, Z 중 적어도 하나"라는 문구와 같은 분리어(disjunctive language)는 일반적으로 항목, 용어 등이 X, Y, 또는 Z 중 하나 또는 이들의 임의의 조합(예를 들어, X, Y, 및/또는 Z)임을 제시하는 데에 사용됨을 문맥 상에서 이해할 수 있다. 따라서, 그러한 분리어는 일반적으로, 반드시 그럴 필요는 없지만 특정한 실시예들이 각각이 제시되기 위하여 X의 적어도 하나, Y의 적어도 하나, Z의 적어도 하나를 필요로 함을 암시하지 않는다.
본원에 설명 및/또는 첨부된 도면들에 도시된 흐름도들에서의 임의의 프로세스 설명들, 요소들 또는 블록들은 잠재적으로 모듈들, 세그먼트들 또는 특정 논리 기능들 또는 프로세스에서의 요소들을 구현하기 위한 하나 이상의 실행 가능 명령어들을 포함하는 코드의 부분들로 이해되어야 한다. 대안 구현예들은 요소들 또는 기능들이 삭제되거나, 도시된 것으로부터 순서대로 실행되거나 또는 논의될 수 있으며, 당업자가 이해할 수 있는 관련 기능에 따라, 실질적으로 동시에 또는 역순으로 포함될 수 있는 본원에 설명된 실시 예들의 범위 내에 포함된다.
달리 명시되지 않는 한, "일(a)"또는 "일(an)"과 같은 항목은 일반적으로 하나 이상의 설명된 항목을 포함하도록 해석되어야 한다. 따라서, "에 구성되는 장치(a device configured to)"와 같은 문구는 하나 이상의 인용된 장치를 포함하도록 의도된다. 이러한 하나 이상의 열거된 장치는 명시된 기재 사항을 수행하도록 집합 적으로 구성될 수도 있다. 예를 들어, "암송들(recitations) A, B 및 C를 수행하도록 구성된 프로세서"는 암송들 B 및 C를 수행하도록 구성된 제2 프로세서와 함께 동작하는 암송 A를 수행하도록 구성된 제1 프로세서를 포함할 수 있다.
전술한 실시예들에 많은 변형들 및 수정들이 이루어질 수 있으며, 그 요소들은 다른 허용 가능한 예시들 중 하나로 이해되어야 한다는 점을 강조해야 한다. 이러한 모든 수정들 및 변형들은 본원에서의 범위 내에 포함되는 것으로 의도된다.

Claims (20)

  1. 컴퓨터-구현 방법에 있어서,
    특정 컴퓨터-실행 가능 명령어들로 구성된 인터랙티브 컴퓨팅 시스템에 의해 구현되는 바와 같이,
    사용자들의 풀로부터 복수의 사용자들을 선택하는 단계 - 상기 사용자들의 풀은 비디오 게임의 인스턴스를 플레이 하기 위한 선택이 가능하고, 상기 비디오 게임의 인스턴스의 적어도 제1 부분은 상기 복수의 사용자들로부터 적어도 하나의 사용자 컴퓨팅 장치에서 실행하고, 상기 비디오 게임의 인스턴스의 제2 부분은 상기 인터랙티브 컴퓨팅 시스템에서 실행함 -;
    복수의 에지들 및 복수의 정점들을 포함하는 연결된 그래프를 창조하는 단계 - 각 정점은 상기 복수의 에지들로부터 적어도 하나의 에지에 의해 연결되고, 각 정점은 상기 복수의 사용자들로부터 상이한 사용자를 나타냄 -;
    상기 복수의 사용자들 중 각 사용자에 대한 사용자 인터랙션 데이터를 액세스하는 단계 - 상기 사용자 인터랙션 데이터는 상기 비디오 게임과의 사용자의 인터랙션에 대응함 -;
    상기 연결된 그래프에서의 각 에지에 대해, 상기 에지의 제1 노드에 대응하는 제1 사용자의 제1 해지 위험 및 상기 제2 에지의 제2 노드에 대응하는 제2 사용자의 제2 해지 위험에 적어도 부분적으로 기초하여 상기 에지에 가중치를 할당하는 단계 - 상기 제1 해지 위험은 상기 제1 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초하고, 상기 제2 해지 위험은 상기 제2 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초함 -;
    상기 연결된 그래프 내의 각 에지에 할당된 상기 가중치들에 적어도 부분적으로 기초하여 선택된 에지들의 세트를 얻기 위해 상기 연결된 그래프로부터 에지들의 세트를 선택하는 단계 - 상기 연결된 그래프에서의 각 정점은 상기 선택된 에지들의 세트 내의 적어도 하나의 에지에 연결됨 -; 및
    상기 선택된 에지들의 세트에 포함된 하나 이상의 에지들의 정점들에 대응하는 적어도 사용자들의 한 쌍을 사용하여 상기 비디오 게임의 플레이 가능한 인스턴스를 개시하는 단계
    를 포함하는 컴퓨터-구현 방법.
  2. 제1항에 있어서,
    상기 연결된 그래프는 완전히 연결된 그래프인
    컴퓨터-구현 방법.
  3. 제1항에 있어서,
    기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성된 매개변수 함수에 적어도 상기 제1 사용자의 사용자 인터랙션 데이터를 적용함으로써 상기 제1 해지 위험을 결정하는 단계
    를 더 포함하는 컴퓨터-구현 방법.
  4. 제1항에 있어서,
    상기 제1 사용자의 사용자 인터랙션 데이터 및 상기 제2 사용자의 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 상기 제1 사용자 및 상기 제2 사용자에 의해 플레이된 상기 비디오 게임의 특정 인스턴스에 대한 매치 결과를 예측하는 단계
    를 더 포함하는 컴퓨터-구현 방법.
  5. 제4항에 있어서,
    기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성된 매개변수 함수에 적어도 상기 제1 사용자의 사용자 인터랙션 데이터 및 상기 예측된 매치 결과를 적용함으로써 상기 제1 해지 위험을 결정하는 단계
    를 더 포함하는 컴퓨터-구현 방법.
  6. 제1항에 있어서,
    상기 가중치는 상기 제1 해지 위험 및 상기 제2 해지 위험의 평균 또는 합계(summation)를 포함하는
    컴퓨터-구현 방법.
  7. 제1항에 있어서,
    상기 에지들의 세트를 선택하는 단계는,
    상기 연결된 그래프의 각 에지에 할당된 상기 가중치들에 적어도 부분적으로 기초하여 상기 연결된 그래프에 대한 최소 가중치 매칭 문제를 해결하는 단계
    를 포함하는 컴퓨터-구현 방법.
  8. 제1항에 있어서,
    상기 복수의 사용자들의 각 사용자에 대해, 상기 사용자에 대한 원하는 비디오 게임 매치 결과를 결정하도록 상기 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 사전계산 프로세스를 수행하는 단계
    를 더 포함하는 컴퓨터-구현 방법.
  9. 제8항에 있어서,
    상기 복수의 사용자들로부터 상이한 사용자를 나타내는 각 정점을 구비하는 완전히 연결된 그래프를 결정하는 단계; 및
    상기 연결된 그래프를 얻기 위해 상기 복수의 사용자들의 각 사용자에 대한 상기 원하는 비디오 게임 매치 결과에 적어도 부분적으로 기초하여 상기 완전히 연결된 그래프에 사전-필터링 프로세스를 수행하는 단계
    를 더 포함하는 컴퓨터-구현 방법.
  10. 제1항에 있어서,
    적어도 상기 연결된 그래프를 창조하는 단계는 제1 시간 기간(time period) 동안 발생하고;
    적어도 상기 에지 선택 프로세스를 수행하는 단계는 상기 제1 시간 기간 보다 더 늦은 제2 시간 기간 동안 발생하는
    컴퓨터-구현 방법.
  11. 제10항에 있어서,
    상기 복수의 사용자들에서의 적어도 하나의 사용자의 이용 가능성(availability)의 변화에 응답하여, 업데이트된 복수의 사용자들은 상기 사용자들의 풀로부터 선택되고, 적어도 상기 연결된 그래프를 창조하는 단계는 상기 업데이된 복수의 사용자를 사용하여 상기 제1 시간 기간 동안 반복되는
    컴퓨터-구현 방법.
  12. 제10항에 있어서,
    상기 제2 시간 기간은 상기 비디오 게임의 플레이 가능한 인스턴스를 개시하도록 트리거에 응답하여 시작하는
    컴퓨터-구현 방법.
  13. 시스템에 있어서,
    비디오 게임의 사용자들에 대한 사용자 인터랙션 데이터를 저장하는 전자 데이터 저장소;
    상기 전자 데이터 저장소와 통신하는 하드웨어 프로세서 - 상기 하드웨어 프로세서는 적어도 다음의 특정 컴퓨터-실행 가능 명령어들을 실행함 -:
    비디오 게임의 인스턴스를 플레이 할 수 있는 복수의 사용자들을 선택하고, 상기 비디오 게임의 인스턴스의 적어도 제1 부분은 상기 복수의 사용자들로부터 적어도 하나의 사용자의 사용자 컴퓨팅 장치에서 실행하고, 상기 비디오 게임의 인스턴스의 제2 부분은 상기 인터랙티브 컴퓨팅 시스템에서 실행함,
    상기 복수의 사용자들로부터 상이한 사용자를 나타내는 각 정점을 구비한 연결된 그래프를 창조하고;
    상기 전자 데이터 저장소로부터 상기 복수의 사용자들의 각 사용자에 대한 사용자 인터랙션 데이터를 액세스하고, 상기 사용자 인터랙션 데이터는 상기 비디오 게임과의 사용자의 인터랙션에 대응함;
    상기 연결된 그래프에서의 각 에지에 대해, 상기 에지의 제1 노드에 대응하는 제1 사용자의 제1 해지 위험 및 상기 에지의 제2 노드에 대응하는 제2 사용자의 제2 해지 위험에 적어도 부분적으로 기초하여 상기 에지에 가중치를 할당하고, 상기 제1 해지 위험은 상기 제1 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초하고, 상기 제2 해지 위험은 상기 제2 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초함;
    상기 연결된 그래프 내의 각 에지에 할당된 상기 가중치들에 적어도 부분적으로 기초하여 상기 연결된 그래프로부터 에지들의 세트를 선택하고, 상기 연결된 그래프에서의 각 정점은 상기 선택된 에지들의 세트 내의 적어도 하나의 에지에 연결됨; 및
    상기 선택된 에지들의 세트에 포함된 하나 이상의 에지들의 정점들에 대응하는 적어도 두 사용자들을 사용하여 상기 비디오 게임의 플레이 가능한 인스턴스를 개시하는
    시스템.
  14. 제13항에 있어서,
    상기 하드웨어 프로세서는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성된 매개변수 함수에 적어도 상기 제1 사용자의 사용자 인터랙션 데이터를 적용함으로써 상기 제1 해지 위험을 결정하는
    시스템.
  15. 제13항에 있어서,
    상기 하드웨어 프로세서는:
    상기 제1 사용자의 사용자 인터랙션 데이터 및 상기 제2 사용자의 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 상기 제1 사용자 및 상기 제2 사용자에 의해 플레이된 상기 비디오 게임의 특정 인스턴스의 매치 결과를 예측하고; 및
    기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성된 매개변수 함수에 적어도 상기 제1 사용자의 인터랙션 데이터 및 상기 예측된 매치 결과를 적용함으로써 상기 제1 해지 위험을 결정하는
    시스템.
  16. 제13항에 있어서,
    상기 하드웨어 프로세서는,
    상기 에지 선택 프로세스의 부분으로서 상기 연결된 그래프의 각 에지에 할당된 상기 가중치들에 적어도 부분적으로 기초하여 상기 연결된 그래프에 대한 최소 가중치 매칭 문제를 해결하는
    시스템.
  17. 제13항에 있어서,
    상기 하드웨어 프로세서는 적어도 다음 단계에 의해 상기 연결된 그래프를 창조하는:
    상기 복수의 사용자들로부터 상이한 사용자를 나타내는 각 정점을 구비하는 완전히 연결된 그래프를 창조하는 단계;
    각 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 각 사용자에 대한 원하는 비디오 게임 매치 결과를 결정하는 단계; 및
    각 사용자에 대한 상기 원하는 비디오 게임 매치 결과에 적어도 부분적으로 기초하여 상기 연결된 그래프를 얻기 위해 상기 완전히 연결된 그래프를 필터링하는 단계
    시스템.
  18. 하나 이상의 컴퓨팅 장치들에 의해 실행될 때, 하나 이상의 컴퓨팅 장치가 다음의 작동들을 수행하도록 구성하는 컴퓨터 실행 가능 명령어들을 저장하는 비-일시적 컴퓨터-판독 가능 저장 매체에 있어서,
    비디오 게임의 인스턴스를 플레이 하는데 이용 가능한 사용자들의 풀로부터 복수의 사용자들을 선택하는 단계 - 상기 비디오 게임의 인스턴스의 적어도 제1 부분은 상기 복수의 사용자들로부터 적어도 하나의 사용자의 사용자 컴퓨팅 장치에서 실행하고, 상기 비디오 게임의 인스턴스의 제2 부분은 상기 인터랙티브 컴퓨팅 시스템에서 실행함;
    상기 복수의 사용자들로부터 상이한 사용자를 나타내는 각 정점을 구비하는 연결된 그래프를 창조하는 단계;
    상기 복수의 사용자들의 각 사용자에 대한 사용자 인터랙션 데이터를 액세스 하는 단계 - 상기 사용자 인터랙션 데이터는 상기 비디오 게임과의 사용자의 인터랙션에 대응함 -;
    상기 연결된 그래프의 각 에지에 대해, 상기 에지의 제1 노드에 대응하는 제1 사용자의 제1 해지 위험 및 상기 에지의 제2 노드에 대응하는 제2 사용자의 제2 해지 위험에 적어도 부분적으로 기초하여 상기 에지에 가중치를 할당하는 단계 - 상기 제1 해지 위험은 상기 제1 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초하고, 상기 제2 해지 위험은 상기 제2 사용자에 대한 상기 사용자 인터랙션 데이터에 적어도 부분적으로 기초함 -;
    상기 연결된 그래프 내의 각 에지에 할당된 상기 가중치들에 적어도 부분적으로 기초하여 상기 연결된 그래프로부터 에지들의 세트를 선택하는 단계 - 상기 연결된 그래프에서의 각 정점은 상기 선택된 에지들의 세트 내의 하나 이상의 에지들에 연결됨 -; 및
    상기 선택된 에지들의 세트에 포함된 하나 이상의 에지들의 정점들에 대응하는 복수의 사용자들을 사용하여 상기 비디오 게임의 플레이 가능한 인스턴스를 개시하는 단계
    를 포함하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  19. 제18항에 있어서,
    기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성된 매개변수 함수에 적어도 상기 제1 사용자의 사용자 인터랙션 데이터를 적용함으로써 상기 제1 해지 위험을 결정하는 단계
    를 더 포함하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  20. 제18항에 있어서,
    상기 제1 사용자의 사용자 인터랙션 데이터 및 상기 제2 사용자의 사용자 인터랙션 데이터에 적어도 부분적으로 기초하여 상기 제1 사용자 및 상기 제2 사용자에 의해 플레이된 상기 비디오 게임의 특정 인스턴스의 매치 결과를 예측하는 단계; 및
    기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성된 매개변수 함수에 적어도 상기 제1 사용자의 인터랙션 데이터 및 상기 예측된 매치 결과를 적용함으로써 상기 제1 해지 위험을 결정하는 단계
    를 더 포함하는 비-일시적 컴퓨터-판독 가능 저장 매체.
KR1020170133538A 2016-10-21 2017-10-13 멀티플레이어 비디오 게임 매치메이킹 시스템 및 방법들 KR102127670B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662411452P 2016-10-21 2016-10-21
US62/411,452 2016-10-21
US15/416,961 US10286327B2 (en) 2016-10-21 2017-01-26 Multiplayer video game matchmaking system and methods
US15/416,961 2017-01-26

Publications (2)

Publication Number Publication Date
KR20180044191A true KR20180044191A (ko) 2018-05-02
KR102127670B1 KR102127670B1 (ko) 2020-06-29

Family

ID=61971712

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170133538A KR102127670B1 (ko) 2016-10-21 2017-10-13 멀티플레이어 비디오 게임 매치메이킹 시스템 및 방법들

Country Status (3)

Country Link
US (3) US10286327B2 (ko)
KR (1) KR102127670B1 (ko)
CN (1) CN107970612B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210071227A (ko) * 2019-12-06 2021-06-16 넷마블 주식회사 매칭 결정 방법을 제공하기 위한 컴퓨터 프로그램
US11344814B2 (en) 2016-10-21 2022-05-31 Electronic Arts Inc. Multiplayer video game matchmaking system and methods

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7110525B1 (en) 2001-06-25 2006-09-19 Toby Heller Agent training sensitive call routing system
US8038535B2 (en) 2005-05-17 2011-10-18 Electronic Arts Inc. Collaborative online gaming system and method
US9776091B1 (en) 2014-05-16 2017-10-03 Electronic Arts Inc. Systems and methods for hardware-based matchmaking
US9993735B2 (en) 2016-03-08 2018-06-12 Electronic Arts Inc. Multiplayer video game matchmaking optimization
US10729975B1 (en) 2016-03-30 2020-08-04 Electronic Arts Inc. Network connection selection processing system
US10603594B2 (en) * 2016-12-07 2020-03-31 Microsoft Technology Licensing, Llc Online ecosystem-based resource recommendations
US10449458B2 (en) * 2016-12-30 2019-10-22 Microsoft Technology Licensing, Llc Skill matching for a multiplayer session
CN106823376B (zh) * 2017-01-24 2020-08-21 腾讯科技(深圳)有限公司 一种实现用户匹配的方法及装置
US10832260B2 (en) * 2017-01-27 2020-11-10 Walmart Apollo Lllc Systems and methods for determining customer lifetime value
US10894215B1 (en) * 2017-06-27 2021-01-19 Amazon Technologies, Inc. Matching players for networked gaming applications
US10807006B1 (en) * 2017-12-06 2020-10-20 Amazon Technologies, Inc. Behavior-aware player selection for multiplayer electronic games
US10449461B1 (en) * 2018-05-07 2019-10-22 Microsoft Technology Licensing, Llc Contextual in-game element recognition, annotation and interaction based on remote user input
US10559281B2 (en) * 2018-05-31 2020-02-11 Sony Interactive Entertainment LLC Challenge game system
CN108786117A (zh) * 2018-06-12 2018-11-13 北京智明星通科技股份有限公司 一种手机游戏玩家分组方法、装置和服务器
CN108846438B (zh) * 2018-06-15 2022-05-24 电子科技大学 一种基于现实地理位置的组队匹配方法
US11651314B1 (en) * 2018-06-26 2023-05-16 Gbt Travel Services Uk Limited Determining customer attrition risk
CN108970124A (zh) * 2018-07-05 2018-12-11 腾讯科技(深圳)有限公司 组队匹配方法、装置、系统及可读介质
CN109284776B (zh) * 2018-08-24 2022-05-03 小沃科技有限公司 用于防沉迷系统的基于随机森林的自训练学习系统及方法
US11052311B2 (en) 2018-09-07 2021-07-06 Valve Corporation Machine-learned trust scoring based on sensor data
US10905962B2 (en) * 2018-09-07 2021-02-02 Valve Corporation Machine-learned trust scoring for player matchmaking
US10576380B1 (en) * 2018-11-05 2020-03-03 Sony Interactive Entertainment LLC Artificial intelligence (AI) model training using cloud gaming network
US10960315B1 (en) * 2018-12-03 2021-03-30 Electronic Arts Inc. Mapping identifier values of a gameplay session for application profiling
CN109966744B (zh) * 2019-01-10 2023-04-18 珠海金山数字网络科技有限公司 一种动态组队匹配的方法和系统
JP7212071B2 (ja) * 2019-01-24 2023-01-24 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理装置の制御方法、及びプログラム
WO2020180424A1 (en) 2019-03-04 2020-09-10 Iocurrents, Inc. Data compression and communication using machine learning
CN110348914A (zh) * 2019-07-19 2019-10-18 中国银行股份有限公司 客户流失数据分析方法及装置
GB2585879A (en) 2019-07-19 2021-01-27 Sony Interactive Entertainment Inc User interaction selection method and apparatus
US11395974B1 (en) * 2020-05-04 2022-07-26 Electronic Arts Inc. Contextually aware active social matchmaking
CN111613540A (zh) * 2020-05-09 2020-09-01 安徽安美半导体有限公司 一种高可靠性整流桥及整流模块的生产工艺
CN111803957B (zh) * 2020-07-17 2024-02-09 网易(杭州)网络有限公司 一种网络游戏的玩家预测方法、装置、计算机设备和介质
CN111957053A (zh) * 2020-09-03 2020-11-20 网易(杭州)网络有限公司 游戏玩家匹配方法、装置、存储介质与电子设备
US11478716B1 (en) * 2020-11-05 2022-10-25 Electronic Arts Inc. Deep learning for data-driven skill estimation
US11276127B1 (en) 2021-03-04 2022-03-15 Timothy Dirk Stevens Recommending matches using machine learning
CN114840859B (zh) * 2021-12-21 2023-03-24 许磊 一种通用数据的流媒体化系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040097287A1 (en) * 2002-11-14 2004-05-20 Richard Postrel Method and system for gaming over a computer network
US20060258463A1 (en) * 2005-05-13 2006-11-16 Professional Interactive Entertainment, Inc. System and method for network interactive game match-up and server selection
JP2011161026A (ja) * 2010-02-10 2011-08-25 Konami Digital Entertainment Co Ltd ゲームシステム、ゲームシステムの制御方法及びプログラム

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020195775A1 (en) 1994-07-22 2002-12-26 Shuffle Master, Inc. Four card poker and associated games
US5685774A (en) 1994-07-22 1997-11-11 Webb; Derek J. Method of playing card games
US5813913A (en) 1995-05-30 1998-09-29 Interactive Network, Inc. Game of skill playable by remote participants in conjunction with a common game event where participants are grouped as to skill level
JPH09155065A (ja) 1995-12-12 1997-06-17 Hudson Soft Co Ltd 特定固有データ交換可能な対戦型コンピュータゲームシステム
JP2000508097A (ja) 1996-03-21 2000-06-27 エムパス インタラクティブ,インコーポレイテッド サーバおよび通信リンクの属性に基づいてクライアントを選択するためのネットワークマッチメーカ
US6015348A (en) 1996-10-18 2000-01-18 Starwave Corporation Scalable game server architecture
US6038599A (en) 1997-04-23 2000-03-14 Mpath Interactive, Inc. Latency server and matchmaker
US6023729A (en) 1997-05-05 2000-02-08 Mpath Interactive, Inc. Method and apparatus for match making
US5964660A (en) 1997-06-18 1999-10-12 Vr-1, Inc. Network multiplayer game
US6012096A (en) 1998-04-23 2000-01-04 Microsoft Corporation Method and system for peer-to-peer network latency measurement
JP4097240B2 (ja) 1998-10-26 2008-06-11 株式会社バンダイナムコゲームス ゲームシステム及び情報記憶媒体
US6352479B1 (en) 1999-08-31 2002-03-05 Nvidia U.S. Investment Company Interactive gaming server and online community forum
US6755743B1 (en) 1999-12-08 2004-06-29 Kabushiki Kaisha Sega Enterprises Communication game system and processing method thereof
US20010044339A1 (en) 2000-02-17 2001-11-22 Angel Cordero Multi-player computer game, system and method
US7240093B1 (en) 2000-02-29 2007-07-03 Microsoft Corporation Use of online messaging to facilitate selection of participants in game play
US20020119821A1 (en) 2000-05-12 2002-08-29 Sanjoy Sen System and method for joining a broadband multi-user communication session
US6699125B2 (en) 2000-07-03 2004-03-02 Yahoo! Inc. Game server for use in connection with a messenger server
US6701344B1 (en) 2000-07-31 2004-03-02 The Boeing Company Distributed game environment
US6732147B1 (en) 2000-07-31 2004-05-04 The Boeing Company Leaving a broadcast channel
US6910069B1 (en) 2000-07-31 2005-06-21 The Boeing Company Joining a broadcast channel
US6920497B1 (en) 2000-07-31 2005-07-19 The Boeing Company Contacting a broadcast channel
US6829634B1 (en) 2000-07-31 2004-12-07 The Boeing Company Broadcasting network
US6714966B1 (en) 2000-07-31 2004-03-30 The Boeing Company Information delivery service
US20020037767A1 (en) 2000-08-17 2002-03-28 Steven Ebin Gambling system and method through a computer network
US8157654B2 (en) 2000-11-28 2012-04-17 Nintendo Co., Ltd. Hand-held video game platform emulation
US6641481B1 (en) 2000-11-17 2003-11-04 Microsoft Corporation Simplified matchmaking
GB0120135D0 (en) 2001-08-17 2001-10-10 Massey Graham P A system for playing interactive games
US7031473B2 (en) 2001-11-13 2006-04-18 Microsoft Corporation Network architecture for secure communications between two console-based gaming systems
US7133368B2 (en) 2002-02-01 2006-11-07 Microsoft Corporation Peer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same
US20040043806A1 (en) 2002-02-08 2004-03-04 Keith Kirby Online vehicle collection and play activity
US20030212597A1 (en) 2002-05-10 2003-11-13 Igt Multi-level point accumulation for a player tracking system and method
JP2004021756A (ja) 2002-06-19 2004-01-22 Hitachi Ltd 情報システム性能の統計的予測方法
US7016942B1 (en) 2002-08-05 2006-03-21 Gary Odom Dynamic hosting
KR20040052131A (ko) 2002-12-13 2004-06-19 한국전자통신연구원 거리기반 분산형 온라인 게임 서버 시스템
US7636719B2 (en) 2002-12-19 2009-12-22 Microsoft Corporation Contact schema
US20040143852A1 (en) 2003-01-08 2004-07-22 Meyers Philip G. Systems and methods for massively multi-player online role playing games
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7846023B2 (en) 2003-03-27 2010-12-07 Microsoft Corporation Application-centric user interface techniques
US7634569B2 (en) 2003-04-23 2009-12-15 Microsoft Corporation Match making based on proximity measures between devices
US7437409B2 (en) 2003-06-13 2008-10-14 Microsoft Corporation Limiting interaction between parties in a networked session
US7169051B1 (en) 2003-07-09 2007-01-30 Tim Mossbarger Player confidence points method and system of implementation in a multiplayer software application
US7288028B2 (en) 2003-09-26 2007-10-30 Microsoft Corporation Method and apparatus for quickly joining an online game being played by a friend
US20050091399A1 (en) 2003-09-30 2005-04-28 Candan Kasim S. Resource-aware adaptive multicasting in a shared proxy overlay network
US8317602B2 (en) 2003-10-21 2012-11-27 Schugar David S Wagering game that allows player to alter payouts based on equity position
US7549125B2 (en) 2003-10-23 2009-06-16 Microsoft Corporation Information picker
US7749078B2 (en) 2003-12-08 2010-07-06 United Tote Company Systems and methods for accessing, manipulating and using funds associated with pari-mutuel wagering
US7287076B2 (en) 2003-12-29 2007-10-23 Microsoft Corporation Performing threshold based connection status responses
US7614955B2 (en) 2004-03-01 2009-11-10 Microsoft Corporation Method for online game matchmaking using play style information
US8870639B2 (en) 2004-06-28 2014-10-28 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
US7430719B2 (en) 2004-07-07 2008-09-30 Microsoft Corporation Contact text box
US7677970B2 (en) 2004-12-08 2010-03-16 Microsoft Corporation System and method for social matching of game players on-line
US7846024B2 (en) * 2005-01-24 2010-12-07 Micorsoft Corporation Team matching
US20070035548A1 (en) 2005-08-12 2007-02-15 Searete Llc Rating technique for virtual world environment
US7785184B2 (en) 2005-03-23 2010-08-31 Scientific Games International, Inc. Computer-implemented simulated card game
US8066568B2 (en) 2005-04-19 2011-11-29 Microsoft Corporation System and method for providing feedback on game players and enhancing social matchmaking
US8038535B2 (en) 2005-05-17 2011-10-18 Electronic Arts Inc. Collaborative online gaming system and method
US8241129B2 (en) 2005-06-20 2012-08-14 Microsoft Corporation Setting up on-line game sessions out of a game context
US20070066403A1 (en) 2005-09-20 2007-03-22 Conkwright George C Method for dynamically adjusting an interactive application such as a videogame based on continuing assessments of user capability
US20070094279A1 (en) 2005-10-21 2007-04-26 Nokia Corporation Service provision in peer-to-peer networking environment
US20080026846A1 (en) 2006-07-25 2008-01-31 Mcmaster Jason Structured gaming system
US8358579B1 (en) 2006-08-23 2013-01-22 Quiro Holdings, Inc. Controlling quality of service and content quality based on user relationships
US8932124B2 (en) 2006-08-31 2015-01-13 Cfph, Llc Game of chance systems and methods
US8672764B2 (en) * 2007-03-29 2014-03-18 Microsoft Corporation Adaptive matchmaking for games
US8221221B2 (en) 2008-09-15 2012-07-17 Sony Computer Entertainment America Llc Metrics-based gaming operations
US8210931B2 (en) 2007-10-12 2012-07-03 Cfph, Llc Game with chance element and tax indicator
US8177628B2 (en) 2007-10-12 2012-05-15 Cfph, Llc Lot-to-lot roulette combination
US8979647B2 (en) * 2007-10-26 2015-03-17 Microsoft Technology Licensing, Llc Method of providing player status and ability to join games
US9277004B2 (en) 2008-02-19 2016-03-01 Microsoft Technology Licensing, Llc Prediction of network path quality among peer networking devices
KR20090100628A (ko) * 2008-03-20 2009-09-24 삼성전자주식회사 게임 매치 방법 및 그 방법을 이용하는 전자 장치
US20100041482A1 (en) 2008-08-18 2010-02-18 Collisse Group Ltd Recommendation generator and method for determining affinities to participate in a venture exchange
US8308549B2 (en) 2008-11-14 2012-11-13 Igt Gaming system and method for adjusting the average expected payback associated with a play of a wagering game
JP4576463B2 (ja) 2009-02-03 2010-11-10 Jx日鉱日石エネルギー株式会社 コークス製造用粘結材の製造方法およびコークスの製造方法
US8719336B2 (en) 2009-02-03 2014-05-06 Microsoft Corporation Method and apparatus for thwarting traffic analysis in online games
US8369243B2 (en) 2009-04-28 2013-02-05 Sony Computer Entertainment America Inc. Minimizing bandwidth costs for online games
US8412833B2 (en) 2010-04-07 2013-04-02 Apple Inc. Apparatus and method for inviting users to online sessions
JP4929373B2 (ja) * 2010-06-04 2012-05-09 株式会社コナミデジタルエンタテインメント ゲームシステム及びプレイヤのマッチング方法
US20120142429A1 (en) * 2010-12-03 2012-06-07 Muller Marcus S Collaborative electronic game play employing player classification and aggregation
CN103945912A (zh) * 2011-06-24 2014-07-23 娱乐技术公司 用于实施在线视频游戏联赛的系统和方法
US20130007013A1 (en) * 2011-06-30 2013-01-03 Microsoft Corporation Matching users over a network
US8485901B2 (en) 2011-07-21 2013-07-16 Igt Gaming system and method for providing a multi-dimensional symbol wagering game with rotating symbols
WO2013016687A1 (en) 2011-07-28 2013-01-31 Hall Shane Method and system for matchmaking connections within a gaming social network
US20130045803A1 (en) 2011-08-21 2013-02-21 Digital Harmony Games, Inc. Cross-platform gaming between multiple devices of multiple types
US8360845B1 (en) 2011-11-03 2013-01-29 Tien-Shu Hsu Apparatus for roulette table games with dynamic raised odds
EP2618274A1 (en) * 2012-01-18 2013-07-24 Alcatel Lucent Method for providing a set of services of a first subset of a social network to a user of a second subset of said social network
US9132350B2 (en) 2012-02-14 2015-09-15 Empire Technology Development Llc Player matching in a game system
US8882588B2 (en) 2012-03-21 2014-11-11 Sony Computer Entertainment America Llc Method and apparatus for use in reserving a position within a simulation for another user
US20130262203A1 (en) 2012-03-27 2013-10-03 Sirqul, Inc. Location-based task and game functionality
US8814698B1 (en) * 2012-03-30 2014-08-26 Zynga Inc. Graphical user interfaces in computer-implemented multiplayer games
US9044683B2 (en) 2012-04-26 2015-06-02 Steelseries Aps Method and apparatus for presenting gamer performance at a social network
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
CN105307738B (zh) * 2013-02-19 2019-03-08 大卫·瓦勒斯 用于卡图匹配游戏的系统和方法
US9120020B2 (en) 2013-03-13 2015-09-01 Microsoft Technology Licensing, Llc Matchmaking in multiplayer gaming
CN104063574B (zh) * 2013-06-03 2016-08-10 腾讯科技(深圳)有限公司 队伍对战匹配方法及服务器
US9474967B2 (en) 2013-08-02 2016-10-25 Activision Publishing, Inc. Internet distance-based matchmaking
US20160255139A1 (en) 2016-03-12 2016-09-01 Yogesh Chunilal Rathod Structured updated status, requests, user data & programming based presenting & accessing of connections or connectable users or entities and/or link(s)
US20150148127A1 (en) 2013-11-22 2015-05-28 Zynga Inc. Systems and methods for matching players of a game
US8782121B1 (en) 2014-01-17 2014-07-15 Maximilian A. Chang Peer-to-peer electronic device handling of social network activity
US9776091B1 (en) 2014-05-16 2017-10-03 Electronic Arts Inc. Systems and methods for hardware-based matchmaking
US9381434B2 (en) 2014-06-30 2016-07-05 Linkedin Corporation Social network interaction via games
US10286326B2 (en) 2014-07-03 2019-05-14 Activision Publishing, Inc. Soft reservation system and method for multiplayer video games
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
CN105582673B (zh) * 2015-11-09 2018-11-13 广州多益网络股份有限公司 对象匹配的方法及系统
US9993735B2 (en) 2016-03-08 2018-06-12 Electronic Arts Inc. Multiplayer video game matchmaking optimization
US10729975B1 (en) 2016-03-30 2020-08-04 Electronic Arts Inc. Network connection selection processing system
CN105854301A (zh) * 2016-04-25 2016-08-17 上海云顷信息科技有限公司 一种约战的系统方法
US10286327B2 (en) 2016-10-21 2019-05-14 Electronic Arts Inc. Multiplayer video game matchmaking system and methods
US10091281B1 (en) 2016-12-01 2018-10-02 Electronics Arts Inc. Multi-user application host-system selection system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040097287A1 (en) * 2002-11-14 2004-05-20 Richard Postrel Method and system for gaming over a computer network
US20060258463A1 (en) * 2005-05-13 2006-11-16 Professional Interactive Entertainment, Inc. System and method for network interactive game match-up and server selection
JP2011161026A (ja) * 2010-02-10 2011-08-25 Konami Digital Entertainment Co Ltd ゲームシステム、ゲームシステムの制御方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11344814B2 (en) 2016-10-21 2022-05-31 Electronic Arts Inc. Multiplayer video game matchmaking system and methods
KR20210071227A (ko) * 2019-12-06 2021-06-16 넷마블 주식회사 매칭 결정 방법을 제공하기 위한 컴퓨터 프로그램

Also Published As

Publication number Publication date
US20190262718A1 (en) 2019-08-29
US20180111051A1 (en) 2018-04-26
US10751629B2 (en) 2020-08-25
CN107970612A (zh) 2018-05-01
US10286327B2 (en) 2019-05-14
KR102127670B1 (ko) 2020-06-29
CN107970612B (zh) 2021-07-13
US11344814B2 (en) 2022-05-31
US20210023455A1 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
KR102127670B1 (ko) 멀티플레이어 비디오 게임 매치메이킹 시스템 및 방법들
US11141663B2 (en) Multiplayer video game matchmaking optimization
US11369880B2 (en) Dynamic difficulty adjustment
KR102060879B1 (ko) 비디오 게임 애플리케이션 내의 게임플레이 파라미터들의 실시간 동적 수정 및 최적화
JP7399932B2 (ja) クラウドゲーミングネットワークを使用した人工知能(ai)モデルの訓練
KR102360420B1 (ko) 비디오 게임에서 플레이어 게임플레이를 모방하기 위한 커스텀 모델
US10449440B2 (en) Interactive voice-controlled companion application for a video game
US10864446B2 (en) Automated player control takeover in a video game
US11110353B2 (en) Distributed training for machine learning of AI controlled virtual entities on video game clients
US11724195B2 (en) Seasonal reward distribution system
US20230009378A1 (en) Automated test multiplexing system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant