KR102291044B1 - 멀티 플레이어 비디오 게임 매치 메이킹 최적화 - Google Patents

멀티 플레이어 비디오 게임 매치 메이킹 최적화 Download PDF

Info

Publication number
KR102291044B1
KR102291044B1 KR1020200136078A KR20200136078A KR102291044B1 KR 102291044 B1 KR102291044 B1 KR 102291044B1 KR 1020200136078 A KR1020200136078 A KR 1020200136078A KR 20200136078 A KR20200136078 A KR 20200136078A KR 102291044 B1 KR102291044 B1 KR 102291044B1
Authority
KR
South Korea
Prior art keywords
user
users
video game
match
retention
Prior art date
Application number
KR1020200136078A
Other languages
English (en)
Other versions
KR20200123404A (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 KR20200123404A publication Critical patent/KR20200123404A/ko
Application granted granted Critical
Publication of KR102291044B1 publication Critical patent/KR102291044B1/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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/73Authorising game programs or game devices, e.g. checking authenticity
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • 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/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • 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

Landscapes

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

Abstract

여기에 제시된 시스템의 실시예들은 매치 플랜(match plan)에 포함시킬 사용자들을 식별할 수 있다. 사용자들의 집합의 리텐션 타임(retention time)을 예측하기 위해 파라미터 모델이 생성될 수 있다. 대기중인 사용자들의 대기열(queue)로부터 잠재적인 사용자들의 대기열, 팀메이트들 및/또는 상대들의 집합이 선택될 수 있다. 팀메이트들 및/또는 상대들의 집합에 대한 사용자 정보는 예측된 리텐션 타임(retention time)을 생성하기 위해 매개 변수 모델에 제공될 수 있다. 예상되는 리텐션 타임이 미리 설정된 임계값을 충족한다면 팀메이트들 및/또는 상대들의 집합은 승인될 수 있다. 현존하는 멀티플레이어 매칭 시스템과 비교할 때, 리텐션 비율(retention rates)에 기초하여 매치 플랜을 생성함으로써, 다수의 사용자에 대한 참여율 및/또는 리텐션 비율은 유리하게 향상될 수 있다.

Description

멀티 플레이어 비디오 게임 매치 메이킹 최적화{MULTIPLAYER VIDEO GAME MATCHMAKING OPTIMIZATION}
본 발명은 멀티 플레이어 비디오 게임의 매치 메이킹의 최적화에 관한 것이다.
소프트웨어 개발자는 전형적으로 그들의 소프트웨어가 최대한 오랫동안 사용자들을 사로잡기를 바란다. 사용자가 오랫동안 소프트웨어에 사로잡혀 있을수록 소프트웨어는 더 성공적일 것이다. 소프트웨어의 성공과 사용자의 참여 시간의 관계는 특히 비디오 게임에서 사실이다. 사용자가 특정 비디오 게임을 더 오래 플레이할수록 사용자는 더 게임을 즐기는 것일 것이고, 따라서, 사용자는 게임을 지속적으로 플레이하게 될 것이다.
참여의 원칙은 싱글 플레이어 게임들에 제한되지 않고, 멀티 플레이어 비디오 게임들에 또한 적용될 수 있다. 사용자에게 즐거운 멀티 플레이어 경험들을 제공할 수 있는 비디오 게임들은 사용자들이 그 비디오 게임들을 다시 플레이하게 할 가능성이 높다. 반대로, 사용자들에게 낮은 품질의 멀티 플레이어 경험을 제공하는 비디오 게임들은 많은 사용자들을 유지하기 어려울 수 있다. 따라서, 비디오 게임 발전의 도전들 중 하나는 즐거운 멀티 플레이어 경험의 확률을 증가시키거나 보증하는 매커니즘을 제공하는 것이다.
개시된 시스템들, 방법들, 장치들 각각은 몇몇의 혁신적인 측면들을 가지고 있고, 어떠한 시스템, 방법, 장치도 단독으로 아래 개시된 모든 바람직한 특징들을 책임지지 않는다. 본 명세서에 설명된 요소들의 하나 이상의 구현의 상세한 부분은 아래 설명 및 도면을 동반하여 제시된다.
어떤 실시예들에서, 컴퓨터 구현 방법은 비디오 게임의 인스턴스(instance)를 플레이하기 위해 대기하는 사용자들의 대기열(queue)에서 적어도 복수의 사용자들을 선택하는 특정한 컴퓨터 실행 가능 명령어들(computer-executable instructions)로 구성된 인터랙티브 컴퓨팅 시스템(interactive computing system)에 의해 구현될 수 있는 컴퓨터 구현 방법이 개시된다. 적어도 상기 비디오 게임의 상기 인스턴스의 적어도 제1 부분은 상기 사용자들의 대기열 중 적어도 한 명의 사용자의 사용자 컴퓨팅 장치에서 실행될 수 있고, 상기 비디오 게임의 상기 인스턴스의 제2 부분은 상기 인터랙티브 컴퓨팅 시스템에서 실행될 수 있다. 상기 복수의 사용자들 중 각각의 사용자들에 대하여, 상기 방법은 상기 대응하는 사용자와 연관된 입력 데이터의 세트에 액세스하는 단계를 포함할 수 있다. 상기 입력 데이터의 세트는 상기 대응하는 사용자의 상기 비디오 게임과의 상호작용과 연관된 사용자 상호작용 데이터를 포함할 수 있다. 추가적으로, 상기 방법은 상기 복수의 사용자들 중 각각의 사용자에 대한 상기 입력 데이터의 세트에 적어도 부분적으로 기초하여 상기 복수의 사용자들 중 각각의 사용자들에 대한 예측된 리텐션 비율(predicted retention rate)을 결정하는 단계를 포함할 수 있다. 상기 예측된 리텐션 비율은 상기 복수의 사용자들 중 각각의 사용자가 상기 비디오 게임을 플레이할 시간의 양을 나타낸다. 게다가, 상기 방법은 상기 복수의 사용자들의 상기 예측된 리텐션 비율들이 리텐션 임계값(retention threshold)을 만족하였는지 여부를 결정하는 단계를 포함할 수 있다. 상기 예측된 리텐션 비율들이 상기 리텐션 임계값을 만족하는 것에 응답하여, 상기 방법은 상기 복수의 사용자들과의 비디오 게임의 상기 인스턴스를 상기 비디오 게임의 상기 인스턴스의 플레이어로 시작하는 단계를 포함할 수 있다.
일부 실시예들에서, 상기 리텐션 임계값을 만족시키지 못하는 상기 예측된 리텐션 비율들에 응답하여, 상기 컴퓨터 구현 방법은 상기 비디오 게임의 상기 인스턴스를 플레이하기 위해 대기하는 상기 사용자들의 대기열에서 새로운 복수의 사용자들을 선택하는 단계를 더 포함할 수 있다.
또한, 상기 복수의 사용자들 중 적어도 한 명의 사용자는 상기 새로운 복수의 사용자들에 포함될 수 있다. 일부의 경우에서, 상기 복수의 사용자들은, 상기 사용자들의 대기열에 포함되는 사용자들 중 일부(subset of users included in the queue of users)를 포함한다. 또한, 상기 복수의 사용자들은 하나 이상의 선택 기준(selection criteria)에 기초하여 선택될 수 있다.
상기 선택 기준은 상기 대기열에서의 사용자의 시간의 길이(length of time of a user in the queue); 상기 사용자의 지리적인 위치(geographic location of the user); 상기 사용자의 블랙리스트 상의 포함 여부(inclusion on a blacklist of the user); 상기 비디오 게임의 상기 인스턴스의 제2 부분을 호스트(host)하는 상기 인터랙티브 컴퓨팅 시스템의 호스트 서버로부터의 지리적인 거리, 또는 상기 호스트 서버로부터의 네트워크 거리(network distance) 중 적어도 하나를 포함할 수 있다
일부 실시예에서, 상기 복수의 사용자들 중 각각의 사용자들에 대한 상기 예측된 리텐션 비율을 결정하는 단계는 파라미터 함수에 상기 복수의 사용자들 중 각각의 사용자에 대한 상기 입력 데이터의 세트를 제공하는 단계를 포함할 수 있다. 상기 파라미터 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성될 수 있다.
게다가, 상기 방법은 상기 파라미터 함수의 출력에 적어도 부분적으로 기초하여 상기 복수의 사용자들로부터의 각각의 사용자들에 대한 상기 예측된 리텐션 비율을 결정하는 단계를 포함할 수 있다. 일부 예들에서, 상기 파라미터 함수를 생성하는 단계는 적어도 트레이닝 입력 데이터(training input data)에 액세스하는 단계를 포함할 수 있다. 상기 트레이닝 입력 데이터는 상기 비디오 게임을 플레이하는 제2 복수의 사용자들과 연관된다. 또한, 상기 방법은 상기 제2 복수의 사용자들에 대한 출력 데이터의 세트에 액세스하는 단계를 포함할 수 있다. 상기 출력 데이터는 상기 제2 복수의 사용자들에 대한 리텐션 비율(retention rate)과 연관될 수 있다.
게다가, 상기 방법은 상기 입력 데이터의 세트 및 상기 출력 데이터의 세트에 적어도 부분적으로 기초하여 상기 파라미터 함수를 결정하기 위하여 상기 기계 학습 알고리즘을 사용하는 단계를 포함할 수 있다. 게다가, 상기 방법은 상기 파라미터 함수에 포함되는 변수들의 수; 상기 파라미터 함수와 연관된 수학적 알고리즘의 복잡성; 및 상기 출력 데이터와 비교한 상기 파라미터 함수의 출력의 정확성 중 적어도 하나에 부분적으로 적어도 부분적으로 기초하여 패널티(penalty)를 상기 파라미터 함수와 연관시키는 단계를 포함할 수 있다. 일부의 경우들에서, 상기 방법은 복수의 파라미터 함수들 중 적어도 일부의 상기 파라미터 함수들과 연관되는 패널티 값(penalty value)에 적어도 기초하여 상기 복수의 파라미터 함수 중에서 상기 파라미터 함수를 선택하는 단계를 포함할 수 있다.
일부 실시에들에서, 상기 방법은 상기 복수의 사용자들 중 제1 사용자 및 제2 사용자가 상기 비디오 게임의 상기 동일한 인스턴스를 플레이하기를 희망(desire)한다는 지시(indication)을 수신하는 단계를 포함할 수 있다. 상기 리텐션 임계값을 만족하지 못한 상기 리텐션 비율에 응답하여, 상기 방법은 상기 제1 사용자 및 제2 사용자를 상기 복수의 사용자들에 유지하며, 상기 복수의 사용자들 중 적어도 일부를 다른 사용자들로 대체하는 단계를 포함할 수 있다. 일부의 경우들에서, 상기 사용자 상호작용 데이터는 플레이 스타일(play style); 스킬 레벨(skill level); 캐릭터 선택 히스토리(character selection history); 및 역할 히스토리(role history) 중 적어도 하나를 포함할 수 있다. 또한, 상기 방법은, 상기 사용자가 상기 비디오 게임과 상호작용 히스토리 임계량(threshold amount interaction history)보다 더 적게 연관되었다고 결정하는 것에 응답하여, 특정한 사용자 상호작용 데이터의 세트를 상기 복수의 사용자들 중 한 명의 사용자와 연관시키는 단계를 포함할 수 있다.
현재의 개시의 특정한 실시예들에서, 비디오 게임의 사용자들에 대한 사용자 상호작용 데이터를 저장하는 전자 데이터 저장소를 포함하는 시스템이 개시된다. 상기 시스템은 상기 전자 데이터 저장소와 통신하는 하드웨어 프로세서를 더 포함할 수 있다. 상기 하드웨어 프로세서는 비디오 게임을 플레이하기 위해 대기하는 사용자의 대기열로부터 적어도 사용자들의 세트를 선택하기 위한 특정한 컴퓨터 실행 가능 명령어들을 실행하도록 구성될 수 있다. 적어도 상기 비디오 게임의 제1 부분은 상기 사용자들의 대기열 중 적어도 한 명의 사용자의 사용자 컴퓨팅 장치에 호스트되고, 상기 비디오 게임의 제2 부분이 서버 시스템에 의해 호스트될 수 있다. 게다가, 상기 시스템은 상기 사용자들의 세트에 기초하여 매치 플랜(match plan)을 생성할 수 있다. 각각의 매치 플랜은 상기 사용자들의 세트로부터의 제1 사용자들의 팀 및 상기 사용자들의 세트로부터의 제2 사용자의 팀을 포함할 수 있다 상기 사용자들의 세트로부터의 각각의 사용자들에 대하여, 상기 시스템은 상기 사용자와 관련된 사용자 상호작용 데이터의 세트에 액세스할 수 있다. 이 사용자 상호작용 데이터의 세트는 상기 전자 데이터 저장소로부터 액세스될 수 있다. 또한, 상기 시스템은 상기 사용자들의 세트로부터의 각각의 사용자들과 관련된 상기 사용자 상호작용 데이터의 세트에 적어도 부분적으로 기초하여 상기 매치 플랜에 대한 참여 점수(engagement score)를 결정할 수 있다. 상기 시스템은 또한 상기 참여 점수가 참여 점수 임계값을 만족하는지 여부에 대해 결정할 수 있다. 상기 참여 점수가 상기 참여 점수 임계점을 만족하는 것에 응답하여, 상기 시스템은 상기 매치 플랜을 사용하는 상기 비디오 게임의 인스턴스를 시작할 수 있다.
일부 실시예에서, 상기 매치 플랜은 복수의 매치 플랜들 중 하나일 수 있다. 또한 상기 하드웨어 프로세서는 각각의 매치 플랜 참여 점수에 적어도 부분적으로 기초하여 상기 복수의 매치 플랜 중 상기 매치 플랜을 적어도 선택하는 특정한 컴퓨터 실행 가능 명령어들을 실행하도록 더 구성될 수 있다. 상기 참여 점수가 상기 참여 점수 임계값을 만족하는 것을 결정하는 것에 응답하여, 상기 하드웨어 프로세서는 적어도 상기 사용자들의 세트로부터 적어도 한 명의 사용자를 상기 사용자들의 대기열로부터의 다른 사용자로 대체하는 특정한 컴퓨터 실행가능 명령어들을 실행하도록 더 구성될 수 있다. 일부 경우들에서, 적어도 제1 사용자 및 제2 사용자는 사용자 쌍(user pair)으로 지정될 수 있고, 상기 사용자들의 세트로부터의 적어도 한 명의 사용자를 상기 사용자들의 대기열로부터의 다른 사용자로 대체하는 단계는 상기 사용자 쌍을 유지하는 단계를 포함할 수 있다. 일부 경우들에서, 상기 참여 점수 임계값은 상기 사용자들의 대기열에 포함된 사용자들의 수에 적어도 부분적으로 기초하여 변화할 수 있다.
여기에 개시된 특정 실시예들은 적어도 하나의 컴퓨팅 장치들에 의해 실행되었을 때, 상기 적어도 하나의 컴퓨팅 장치들이 상기 비디오 게임의 인스턴스를 플레이하기 위한 매치 플랜을 형성하기 위해, 비디오 게임의 인스턴스를 플레이하기 위해 대기하는 사용자들의 대기열로부터 복수의 사용자들을 선택하는 단계를 포함하는 동작들을 수행하도록 구성하는 컴퓨터 실행 가능 명령어들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체(non-transitory computer-readable storage medium)와 관련된다.
상기 복수의 사용자들로부터의 각각의 사용자에 대하여, 상기 동작들은 상기 비디오 게임들과 상기 사용자의 상호작용과 연관된 사용자 상호작용 데이터의 세트에 액세스하는 단계를 포함할 수 있다. 게다가, 상기 동작들은 상기 복수의 사용자들 각각에 대한 상기 사용자 상호작용 데이터의 세트에 적어도 부분적으로 기초하여 예측된 리텐션 비율 상기 매치 플랜을 결정하는 단계를 포함할 수 있다. 상기 예측된 리텐션 비율은 상기 복수의 사용자들 중 특정 숫자의 사용자들이 상기 비디오 게임을 플레이하는 것을 중단할 확률에 대응할 수 있다. 또한, 상기 동작들은 상기 예측된 리텐션 비율이 리텐션 임계값을 만족하는지 여부를 결정하는 단계를 포함할 수 있다. 상기 리텐션 임계값을 만족하는 상기 예측된 리텐션 비율에 응답하여, 상기 동작들은 상기 비디오 게임의 상기 인스턴스를 플레이하기 위한 상기 매치 플랜을 선택하는 단계를 포함할 수 있다.
일부 실시예들에서, 상기 예측된 리텐션 비율을 결정하는 단계는 상기 매치 플랜의 각각의 사용자들에 대한 상기 사용자 상호작용 데이터의 세트를 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성된 파라미터 함수에 제공하는 단계를 포함할 수 있다. 상기 동작들은 상기 파라미터 함수의 출력에 적어도 부분적으로 기초하여 상기 매치 플랜에 대한 상기 예측된 리텐션 비율을 결정하는 단계를 더 포함할 수 있다. 일부의 경우에, 상기 파라미터 함수의 상기 출력은 상기 매치 플랜에 대한 상기 예측된 리텐션 비율 및 제2 리텐션 임계점을 만족하지 못한 리텐션 비율들과 연관된 복수의 사용자들의 신원(identity)을 포함한다. 상기 리텐션 임계점 및 상기 제2 리텐션 임계점은 일부 경우들에서 상이할 수 있다.
비록 특정 실시예들 및 예시들은 여기에 개시되었지만, 발명 주제 대상(inventive subject matter)은 상기 구체적으로 개시된 실시예들의 상기 예시들을 넘어 다른 대체적인 실시예들 및/또는 사용들 및 변형물들과 동등한 것들에까지 확장된다.
도면들에 있어서, 참조 번호들은 참조된 요소들 사이에서 대응하는 요소(correspondence)를 지칭하기 위해 재사용되었다. 제시된 도면들은 여기에 설명된 발명의 실시예들을 도시하지만, 도시된 범위에 한정되지 않는다.
도 1a은 비디오 게임을 위한 동적인 사용자 매치메이킹 시스템의 적어도 하나의 실시예를 구현할 수 있는 네트워크화된 컴퓨팅 환경의 일실시예를 도시한다.
도 1b는 도 1a의 모델 생성 시스템의 일실시예를 도시한다.
도 1c는 도 1a의 리텐션 분석 시스템의 일실시예를 도시한다.
도 2는 예측 모델 생성 프로세스의 일실시예의 흐름도를 제시한다.
도 3은 멀티플레이어 매칭 프로세스의 일실시예의 흐름도를 제시한다.
도 4는 클러스터 생성 프로세스의 일실시예의 흐름도를 제시한다.
도 5는 사용자를 위한 클러스터 배정 프로세스의 일실시예의 흐름도를 제시한다.
도 6은 상대 매치 메이킹 프로세스(opponent matchmaking process)의 일실시예의 흐름도를 제시한다.
도 7은 팀메이트 선택 프로세스(teammate selection process)의 일실시예의 흐름도를 제시한다.
도 8은 결합된 팀메이트 및 상대 선택 프로세스(teammate and opponent selection process)의 일실시예의 흐름도를 제시한다.
도 9는 사용자 컴퓨팅 시스템의 일실시예를 도시한다.
도 10은 도 9의 사용자 컴퓨팅 시스템의 하드웨어 구성의 일실시예를 도시한다.
도입
비디오 게임이 다수의 사용자들에게 호소하는 것은 일반적으로 바람직하다. 이 원칙은 또한 멀티플레이어 비디오 게임들에도 해당된다. 멀티플레이어 비디오 게임들은 두 명의 사용자(또는 그 이상)가 서로 간의 대항하여 플레이하는 비디오 게임들, 두 명의 사용자(또는 그 이상)가 동일한 팀으로 플레이하는 비디오 게임, 및 다수의 사용자들의 팀들이 서로 간에 대항하여 플레이하는 비디오 게임을 포함할 수 있다.
좋지 않은 매치 메이킹 알고리즘들을 포함하는 멀티플레이어 게임들은 사용자들의 낮은 참여를 유발할 수 있다. 즉, 적절하게 매칭되지 않은 상대 및/또는 팀메이트는 사용자들이 비디오 게임을 플레이하는 것을 중단하게 하거나, 멀티플레이어 게임이 더 나은 매치 메이킹 알고리즘을 포함할 때보다 사용자들이 비디오 게임을 더 적게 플레이하도록 할 수 있다. 좋지 못한 매치 메이킹은 다른 것들 중 스킬 레벨들 또는 플레이 스타일 선호도가 다른 사용자들 사이에서 매칭을 하는 것을 포함할 수 있다.
여기에 제시된 실시예들은 멀티플레이어 비디오게임을 위한 매치 플랜이 매치 플랜에 포함될 개인 사용자들에 대한 리텐션에 미칠 것 같은 영향을 결정하기 위하여 기계 학습 알고리즘들을 사용한다. 또한, 여기의 특정한 실시예들은 둘 이상의 플레이어들을 팀메이트들 및/또는 적들로 무리짓는 것이 플레이어들 중 한 명이 비디오 게임을 플레이하는 것을 중단하려 하는 경향이 더 큰 지를 결정하는 것에 관련된다. 여기에 제시된 시스템들은 사용자들의 비디오 게임과의 상호작용과 관련된 사용자들에 대한 사용자 상호작용 데이터 및 특정한 매치 플랜들의 구성에 적어도 기초하여 사용자들에 대한 이탈 비율(churn rate) 또는 리텐션 비율을 예측하거나 측정하기 위한 파라미터 함수 혹은 예측 모델을 사용할 수 있다. 매치 플랜은 비디오 게임 또는 매치에서 각각의 사용자의 적어도 하나의 역할들, 둘(그 이상의) 사용자들이 팀메이트 또는 상대인지 여부, 팀 내의 사용자들의 수 및 팀들 및/또는 사용자들의 수의 식별을 포함할 수 있다. 역할들은 사용자들에 의해 사용될 수 있는 인-게임(in-game) 또는 플레이할 수 있는 캐릭터들의 신원 및/또는 공격 캐릭터(예를 들어, 축구 게임에서 포워드), 수비 캐릭터(예를 들어, 풋볼 게임에서 코너백), 탱크 캐릭터(또는 많은 인-게임(in-game) 데미지를 견딜 수 있도록 디자인된 캐릭터), 힐러 캐릭터(healer character), 레인지 캐릭터(range character), 사이드-킥(side- kick) 등과 같은 플레이할 수 있는 캐릭터의 역할을 포함할 수 있다.
일부 실시예에서, 히스토리 사용자 정보(historical user information)는 예를 들어, 기대되는 이탈 비율, 리텐션 비율, 사용자가 게임을 플레이할 것으로 기대되는 시간의 길이 또는 사전에 게임을 플레이했던 사용자들의 히스토리 세트(historical set)에 대한 사용자의 기대되는 게임 플레이 시간의 지시(indication)과 같은 게임 플레이의 기대되는 기간을 예측하는 예측 모델을 생성하기 위하여 기계 학습 시스템에 제공된다. 매치 메이킹 프로세스 동안, 예측 모델은 식별된 매치 플랜을 사용하는 게임 플레이의 사용자의 기대되는 지속 시간을 예측하기 위하여 사용자 및 팀메이트 및/또는 상대로써 사용자와 매치되는 다른 사용자들에 대한 정보에 적용된다. 기대되는 지속 시간에 기초하여, 시스템은 선택된 매치 플랜과 함께 게임의 인스턴스를 시작할지 또는 새로운 매치 플랜을 생성할지 결정할 수 있다. 일부 실시예에서, 예측 모델은 각각의 사용자들에게 개별적으로 적용될 수 있다. 그러한 일부 실시예에서, 매치 플랜은 각각의 개인 사용자에 대한 예측 모델의 적용의 결과에 적어도 부분적으로 기초하여 생성될 수 있다.
여기에 제시된 특정한 추가적인 실시예들은 특정한 비디오 게임을 플레이하는 사용자들의 서로 다른 그룹들에 대한 상대 선호도 및 팀메이트 선호도의 적어도 하나를 식별하는 방법 및 시스템을 포함한다. 사용자들은 그들의 상대 및/또는 팀메이트 선호도에 기초하여 서로 다른 클러스터들로 무리지어질 수 있다. 서로 다른 클러스터들은 서로 다른 타입의 상대 및/또는 팀메이트 선호도를 식별하기 위하여, 시간 주기 동안 사용자들의 그룹에 대한 사용자 상호작용 데이터를 분석하기 위하여, 적어도 하나의 기계 학습 알고리즘들을 사용함으로써 결정될 수 있다. 예를 들어, 기계 학습 알고리즘은 일부 사용자들의 그룹들이 특정한 스킬 레벨들 및/또는 특정한 플레이 스타일들을 가진 상대들 및/또는 팀메이트들을 선호하는 것을 결정할 수 있다. 또한, 기계 학습 알고리즘은 사용자들의 특정한 특징 및 사용자들의 특정한 선호도를 사이의 관계를 식별할 수 있다. 예를 들어, 기계 학습 알고리즘은 낮은 레벨의 스킬을 가진 일부 사용자들은 사용자들이 게임에 동등하게 참여할 수 있도록 하기 위해 대응하는 낮은 레벨의 스킬의 다른 참여자들과 플레이하는 것을 선호한다고 결정할 수 있다. 그러나, 기계 학습 알고리즘들은 일부 다른 낮은 레벨의 스킬을 가지는 사용자들이 학습 기회들 및/또는 승리의 기회를 증가시키기 위해 더 높은 레벨의 스킬을을 가진 다른 사용자들과 플레이하기를 선호한다고 결정할 수 있다. 위에 설명되고, 이하 설명되는 것과 같이, 여기에 설명된 추가적인 또는 대체적인 실시예들은 적어도 하나의 파라미터 함수들 또는 예측 모델들을 사용함으로써, 비디오 게임의 멀티플레이어 인스턴스를 시작하기 위한 적어도 하나의 매치 플랜을 결정할 수 있다. 일부의 예에서, 예측 모델들은 클러스터링(clustering)과 함께 결합될 수 있다. 다른 실시예들에서, 예측 모델들은 크러스터링 대신에 사용될 수 있다.
또한, 여기에 설명된 특정한 실시예에서, 사용자는 사용자의 상대 및/또는 팀메이트 선호도 및 각각의 사용자 클러스터들과 연관된 선호도들 사이의 유사도에 적어도 부분적으로 기초하여 적어도 사용자 클러스터들과 함께 무리지어질 수 있다. 사용자의 상대 및/또는 팀메이트 선호도의 결정은 비디오 게임에 대한 사용자 상호작용 정보를 분석함으로써 결정될 수 있다. 예를 들어, 만약 사용자의 사용자 상호작용 정보의 분석이 사용자가 난투-기초 캐릭터들(melee-based characters)을 사용하는 다른 사용자들과 비디오 게임을 플레이하는 경향을 가진다면, 레인지-기초 캐릭터들(range-based characters)을 사용하는 사용자들과 짝지어졌을 때의 평균적인 비율보다 더 높게 매치 혹은 게임을 그만둘 것이고, 사용자는 난투-기초 캐릭터들(melee-based characters)을 사용하는 사용자에 대한 팀메이트 선호도를 나타내는 사용자 클러스터와 연관될 수 있다.
게다가, 여기에 설명된 특정한 실시예들에서, 사용자는 사용자와 연관된 사용자 클러스터에 부분적으로 기초하여 비디오 게임의 인스턴스에서 상대 또는 팀메이트로써 다른 사용자와 짝지어질 수 있다. 예를 들어, 이전의 예에 지속하여, 사용자는 비디오 게임을 플레이할 때에, 난투- 기초 캐릭터들을 선택하는 경향이 있는 다른 사용자와 매치될 수 있다. 이 매치업(matchup)은 선택된 사용자가 비디오 게임을 플레이하기 위해 대기하는 사용자들의 대기열에서 바로 다음 사용자인지 여부와 상관없이 형성될 수 있다. 유익하게도, 특정 실시예들에서, 상대 및/또는 팀메이트 선호도를 식별하기 위해 기계 학습을 사용하고, 팀메이트들 또는 상대들로써 함께 무리지어질 사용자들을 선택하기 위해 선호도 정보를 사용함으로써, 다른 매칭 시스템과 비교하여, 사용자들의 참여 및/또는 리텐션 레벨은 향상될 수 있다.
논의를 단순화하기 위하여, 본 개시는 주로 비디오 게임에 관하여 설명된다. 그러나, 본 개시는 이에 한정되지 않고, 다른 종류의 어플리케이션에 적용될 수 있다. 예를 들어, 여기에 개시된 실시예들은 교육용 어플리케이션(예를 들어, 사용자가 새로운 언어를 배우는 것을 돕는 어플리케이션들) 또는 둘 이상의 사용자들을 그룹으로 짝 지을 수 있는 다른 어플리케이션들에 적용될 수 있다.
네트워크화된 컴퓨팅 환경의 예
도 1a는 비디오 게임(112)을 위한 동적 사용자 매치 메이킹 시스템의 적어도 하나의 실시예를 구현할 수 있는 네트워크화된 컴퓨팅 환경(100)의 실시예를 도시한다. 네트워크화된 컴퓨팅 환경(100)은 네트워크(104)를 통해 인터랙티브 컴퓨팅 시스템(130)과 통신할 수 있는 사용자 컴퓨팅 시스템(110)을 포함한다. 또한, 네트워크화된 컴퓨팅 환경(100)은 다수의 추가적인 사용자 컴퓨팅 시스템(102)을 포함할 수 있다. 사용자 컴퓨팅 시스템들(102)의 적어도 일부는 사용자 컴퓨팅 시스템(110)과 동일하거나 유사하게 구성될 수 있다.
사용자 컴퓨팅 시스템(110)은 비디오 게임(112)을 포함하거나, 호스트하거나 또는 실행할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 비디오 게임(112)의 일 부분을 실행하거나 호스트할 수 있고, 어플리케이션 호스트 시스템(138)은 비디오 게임(112)의 일 부분을 호스트 및/또는 실행할 수 있다. 사용자가 사용자 컴퓨팅 시스템(110)에 비디오 게임(112)의 실행을 시작할 때에, 네트워크 연결은 인터랙티브 컴퓨팅 시스템(130)과 함께 설정될 수 있고, 비디오 게임(112)의 두 부분은 서로 함께 실행될 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)이 예를 들어, 플레이할 수 있는 인-게임 캐릭터를 사용하는 비디오 게임 환경과 사용자가 상호작용하도록 하는 비디오 게임(112)의 일 부분을 실행할 수 있는 동안에, 어플리케이션 호스트 시스템(138)은 비디오 게임 환경을 포함하는 비디오 게임(112)의 일부분을 실행하거나 호스트할 수 있다. 비디오 게임 환경은 어플리케이션 호스트 시스템(138)으로부터 사용자 컴퓨팅 시스템(110)의 사용자가 연결이 해제된 후에도 유지될 수 있는 온라인 또는 디지털 지속적 세상(online or digital persistent world)을 포함할 수 있다. 다른 예시로써, 비디오 게임은 사용자 컴퓨팅 시스템(110)에 의해 실행되는 클라이언트 부분 및 인터랙티브 컴퓨팅 시스템(130)의 일부로써 포함될 수 있는 적어도 하나의 어플리케이션 호스트 시스템들(도시되지 않음)에 의해 실행되는 서버 부분을 포함하는 대규모 멀티플레이어 온라인 롤-플레잉 게임(massively multiplayer online role-playing game)(MMOPRG)일 수 있다. 앞서 언급되었듯이, 어플리케이션 호스트 시스템(138)은 비디오 게임(112)의 적어도 일 부분을 호스트 및/또는 실행할 수 있다. 대안적으로, 또는 추가적으로, 어플리케이션 호스트 시스템(138)은 사용자 컴퓨팅 시스템(110)에 의해 호스트될 수 없거나 또는 실행될 수 없는 비디오 게임(144)을 호스트하거나 실행할 수 있다. 그러나, 일부 예들에서, 사용자는 사용자 컴퓨팅 시스템(110)을 사용하여 비디오 게임(144)과 상호작용할 수 있다.
사용자 컴퓨팅 시스템(110)은 통신 네트워크(104)를 통해 통신을 설정하기 위한 소프트웨어 및 하드웨어 요소들을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 네트워크(예를 들어, 인터넷) 또는 인트라넷을 통한 통신을 가능하게 하는 네트워크 소프트웨어 어플리케이션(예를 들어, 웹 브라우저) 및 네트워킹 장비가 장착되어 있을 수 있다. 사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛들 및 아키텍쳐들(architectures)과 같은 다양한 로컬 컴퓨팅 리소스들(varied local computing resources), 메모리, 대용량 저장소, 그래픽 프로세싱 유닛들, 통신 네트워크 이용가능성 및 대역폭 등을 포함할 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 임의의 종류의 컴퓨팅 시스템을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 예를 들어, 데스트탑, 랩탑, 비디오 게임 플랫폼들, 텔레비전 셋탑 박스, 텔레비전(예를 들어 인터넷 TV), 네트워크 지원 키오스크, 자동차-콘솔 장치, 컴퓨터화된 가전제품, 웨어러블 디바이스(예를 들어, 스마트 워치, 컴퓨터 기능을 포함하는 안경), 및 무선 모바일 장치(예를 들어, 스마트폰, PDA, 테블릿 등)를 포함하지만 이에 한정되지 않는 임의의 종류의 컴퓨팅 장치(들)을 포함할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 도 9 및 도 10에 관해 아래에 설명된 적어도 하나의 실시예들을 포함할 수 있다.
이전에 논의된 바와 같이, 비디오 게임(112)에 대한 사용자의 참여 레벨을 증가시키거나 유지하는 것은 바람직할 수 있다. 비디오 게임(112)에 대한 사용자의 참여 레벨을 증가시키거나 유지시키는 하나의 해법은, 사용자를 사용자가 상대들 및/또는 팀메이트들로 선호하는 경향이 있거나, 희망(desire)하는, 어플리케이션 상호작용 특성 또는 플레이 특성을 가진 다른 사용자와 매치하는 것을 포함할 수 있다. 이러한 플레이 특성은 스킬 레벨, 플레이 스타일(예를 들어, 사용자가 방어적으로 플레이하거나, 공격적으로 플레이 하거나 지원 역할(support role)을 플레이 하거나, 스텔스 공격(stealth)을 선호하거나 마법 능력을 사용하는 것을 선호하거나 또는 난투 능력을 사용하는 것을 선호하는 것 등), 및/또는 스포츠맨쉽(예를 들어, 사용자가 품위 있는 승자 또는 패자이거나, 사교적이거나, 사교적이지 않거나 또는 다른 사용자들을 모욕하지 않는 것 등)과 관련된 특성을 포함한다. 비록 플레이 특성이란 용어가 사용되지만, 플레이 특성은 반드시 비디오 게임(112)을 플레이하는 것에 관련된 특성에 제한되는 것은 아니라는 것에 주목해야 한다. 일부 실시예들에서, 플레이 특성은 멀티 플레이어 게임에 대한 사용자들을 매칭하는 것과 관련된 적어도 하나의 추가적인 또는 대안적인 특성을 포함할 수 있다. 이러한 추가적인 또는 대안적인 특성은 멀티 플레이어 게임에서 사용자들의 플레이 경험을 향상시키는 데에 관련되는 특성을 포함할 수 있다. 예를 들어, 추가적인 또는 대안적은 특성은 사용자의 지리적인 위치, 네트워크에서 사용자의 위치, 사용자의 사용자 컴퓨팅 시스템(110)의 특성, 및 사용자 컴퓨팅 시스템(110)과의 통신에서 네트워크(예를 들어, 라스트 마일(last mile), 또는 사용자의 홈 네트워크) 부분의 네트워크 특성 등을 포함할 수 있다.
플레이 특성은 적어도 한 명의 사용자의 사용자 상호작용 데이터에 적어도 부분적으로 기초하여 결정될 수 있다. 또한, 사용자가 상대들 및/또는 팀메이트들로 선호하는 경향이 있거나 희망(desire)하는 플레이 특성은 사용자에 대한 사용자 상호작용 데이터에 적어도 부분적으로 기초하여 결정될 수 있다.
인터랙티브 컴퓨팅 시스템(130)은 비디오 게임(112)의 특정한 사용자의 플레이 특성 및 비디오 게임(112)의 특정한 사용자의 상대 및/또는 팀메이트 사용자들의 희망(desire)하는 플레이 특성의 결정을 가능하게 하기 위한 다수의 시스템들 또는 서브 시스템들을 포함할 수 있다. 또한, 인터랙티브 컴퓨팅 시스템(130)은 사용자들의 플레이 특성에 적어도 부분적으로 기초하여 비디오 게임(112)의 사용자들의 매치 메이킹을 가능하게 하기 위한 다수의 시스템들 및 서브 시스템들을 포함할 수 있다. 이러한 시스템들 및 서브 시스템들은 사용자 매칭 시스템(132), 사용자 클러스터링 시스템(134), 스킬 평가 시스템(136), 어플리케이션 호스트 시스템(138), 사용자 데이터 저장소(142), 리텐션 분석 시스템(140), 및 모델 생성 시스템(146)을 포함할 수 있다. 각각의 이러한 시스템들은 하드웨어 및 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 또한, 각각의 이러한 시스템들은 컴퓨터 하드웨어를 포함하는 단일 컴퓨팅 시스템 또는 적어도 하나의 분리된 또는 분산된 컴퓨팅 시스템들로 구현될 수 있다. 게다가, 이러한 시스템들은 인터랙티브 컴퓨팅 시스템(130)에 저장되고 실행되는 것으로 도 1a에 도시되어 있지만, 일부 실시예에서, 이러한 시스템들의 일부 혹은 전부는 사용자 컴퓨팅 시스템(110)에 실행되거나 저장될 수 있다.
사용자 매칭 시스템(132)은 비디오 게임(112)을 플레이하기 위해 둘 이상의 사용자들을 함께 매치하거나 식별한다. 둘 이상의 사용자들은 상대들, 팀메이트들, 또는 상대들 및 팀메이트들의 조합으로 매치될 수 있다. 복수의 사용자들을 매치하기 위하여, 사용자 매칭 시스템(132)은 사용자들 각각의 플레이 특성 및/또는 사용자들 각각이 바라는(desire) 상대들 및/또는 팀메이트들의 플레이 특성을 결정하기 위하여 각각의 복수의 사용자들과 연관된 사용자 클러스터들에 액세스할 수 있다. 사용자 클러스터들은 사용자 데이터 저장소(142)로부터 액세스될 수 있다.
모델 생성 시스템(146)은 적어도 하나의 예측 모델 또는 파라미터 함수를 생성하기 위하여 적어도 하나의 기계 학습 알고리즘을 사용할 수 있다. 적어도 하나의 이러한 파라미터 함수는 입력의 세트에 기초하여 기대 값 또는 발생(occurrence)을 결정하기 위해 사용될 수 있다. 예를 들어, 예측 모델은 사용자에 대한 히스토리 사용자 상호작용 정보(historical user interaction information)와 같은 예측 모델에 대한 적어도 하나의 입력들에 기초하여 사용자가 비디오 게임(112)을 플레이하는 것을 중단할 확률 또는 기대되는 이탈 비율을 결정하는 데에 사용될 수 있다. 또 다른 예로서, 예측 모델은 예측 모델에 대한 적어도 하나의 입력에 기초하여 비디오 게임에 대한 인-게임 아이템들(in-game items)을 구매할 때에 사용자에 의해 사용되는 기대되는 돈의 양을 결정하는 데에 사용될 수 있다. 일부 예시에서, 예측 모델은 예를 들어, 출력이 사용자가 비디오 게임(112)을 계속 플레이하는 것에 대한 예측과 같은 동작 및 이벤트의 예측이거나 이와 관련되기 때문에 예측 모델이란 용어로써 불린다. 다수의 서로 다른 종류의 알고리즘들이 기계 학습 시스템(140)에 의해 사용될 수 있다. 예를 들어 여기의 특정한 실시예들은 로지스틱 회귀 분석 모델(logistical regression model)을 사용할 수 있다. 그러나, 선형 회귀 분석 모델(linear regression model), 이산 선택 모델(discrete choice model), 또는 일반화된 선형 모델(generalized linear model)과 같은 다른 모델들도 사용될 수 있다.
기계 학습 알고리즘은 모델 생성 시스템(146)에 의해 수신된 새로운 입력에 기초하여 경과 시간동안 모델들을 적응적으로 발전시키거나 업데이트하도록 구성될 수 있다. 예를 들어, 새로운 사용자 정보는 사용자 정보가 시간 지나며 발전됨에 따라, 모델에서 예측의 정확성을 높이는 것을 도울 수 있기 때문에 모델은 주기적으로 재생산될 수 있다. 모델 생성 시스템(146)은 여기서 더 자세히 설명된다. 모델이 생성된 후, 리텐션 분석 시스템(140)에 제공될 수 있다.
파라미터 함수들 또는 예측 모델들을 업데이트하고 생산하기 위해 사용될 수 있는 기계 학습 알고리즘들의 일부 비 제한적인 실시예들은 회귀 알고리즘들(예를 들어, 일반 최소 자승 회귀(Ordinary Least Squares Regression)), 인스턴스 기반 알고리즘들(예를 들어 학습 벡터 양자화(Learning Vector Quantization)), 결정 트리 알고리즘들(decision tree algorithms)(예를 들어, 분류 및 회귀 트리들), 베이시안 알고리즘(Beyesian algorithms)(예를 들어, 네이브 베이스(Naive Bayes)), 클러스터링 알고리즘(예를 들어 k-평균 클러스터링), 연관 규칙 학습 알고리즘들(association rule learning algorithms)(예를 들어, 아프리오리 알고리즘(Apriori algorithms)), 인공 신경 네트워크 알고리즘들(예를 들어, 퍼셉트론(Perceptron)), 딥 러닝 알고리즘들(예를 들어, 딥 볼츠만 머신(Deep Boltzmann Machine)), 차원 감소 알고리즘(dimensionality reduction algorithms)(예를 들어, 주요 요소 분석(Principal Componet Analysis)), 앙상블 알고리즘들(ensemble algorithms)(예를 들어, 스택 일반화(Stacked Generalizaiont), 및/또는 다른 기계 학습 알고리즘들을 포함하는 감독 및 비 감독 기계 학습 알고리즘들을 포함할 수 있다.
리텐션 분석 시스템(140)은 사용자에 대한 사용자 상호작용 데이터 및 매치 플랜에 포함된 추가적인 사용자들에 대한 사용자 상호작용 데이터의 모델 생성 시스템(140)에 의해 생성된 예측 모델에 대한 적용에 기초하여 예측된 이탈 비율 또는 리텐션 비율을 결정하기 위한 적어도 하나의 시스템을 포함할 수 있다. 일부의 예들에서, 사용자 매칭 시스템(132)은 비디오 게임(112)의 인스턴스를 플레이 하기 위하여 매치 플랜을 선택할 것인지, 아니면 새로운 매치 플랜을 생성할 것인지를 결정하기 위하여 리텐션 분석 시스템(140)에 의해 결정된 예측된 리텐션 비율을 사용할 수 있다. 일부의 예들에서, 매치 플랜을 선택할 지 여부를 결정하는 것은 리텐션 비율을 저장소(미도시) 내의 새로운 매치 플랜을 선택할 지 여부를 나타내는 데이터에 매칭하는 것을 포함한다.
또한, 파라미터 함수들 또는 예측 모델들의 생성 및 적용, 및 매치 플랜을 생성하는 것 또는 비디오 게임(112)의 인스턴스를 플레이하기 위하여 매치 플랜을 선택할 지 여부를 결정하는 것에 대한 파라미터 함수들 또는 예측 모델들의 사용은 리텐션 분석 시스템(140)과 관련하여 이하 더 자세히 설명될 것이다. 특정한 실시예들에서, 사용자 매칭 시스템(132)은 모델 생성 시스템(146)이거나 이를 포함할 수 있다. 게다가, 일부 예들에서, 사용자 매칭 시스템(132)은 리텐션 분석 시스템(140)이거나 이를 포함할 수 있다.
일부 실시예들에서, 리텐션 분석 시스템(140)은 특정한 매치 플랜 및 사용자 상호작용 데이터, 특징들, 및/또는 매치 플랜에 포함된 각각의 사용자와 연관된 메타 데이터를 수신할 수 있다. 리텐션 분석 시스템(140)은 매치 플랜 그 자체에 대한 예측되는 사용량 및/또는 리텐션 비율 및/또는 매치 플랜에 포함된 개인 사용자 각각에 대한 예측되는 사용량 및/또는 리텐션 비율을 출력할 수 있다. 예를 들어, 리텐션 분석 시스템(140)은 제1 팀의 사용자들 A1, A2 및 A3 및 다른 팀의 사용자들 B1, B2 및 B3을 포함하는 매치 플랜을 수신할 수 있다. 여섯 명의 사용자들 각각에 대한 사용자 상호작용 데이터를 사용하여, 리텐션 분석 시스템(140)은 각각의 사용자 및 매치 플랜에 대한 리텐션 비율, 각각의 사용자에 대한 예측된 사용량 및/또는 매치 플랜에 대한 예측된 총 사용량을 결정할 수 있다.
위에 언급된 바와 같이, 여기에 사용될 수 있는 기계 학습 알고리즘의 비 제한적인 일 예는 클러스터링 알고리즘이다. 사용자 클러스팅 시스템(134)은 클러스터링 알고리즘의 실행을 가능하게 한다. 사용자 클러스팅 시스템(134)은 비디오 게임(112) 또는 사용자들에 의해 액세스되는 다른 비디오 게임들에 관한 각각의 사용자의 스킬 레벨, 또는 다른 플레이 특성에 적어도 부분적으로 기초하여, 사용자들의 세트를 그룹으로 무리짓거나 나눈다. 또한, 사용자 클러스터링 시스템(134)은 상대들 및/또는 팀메이트들에 대한 각각의 사용자들이 희망(desire)하는 플레이 특성에 적어도 부분적으로 기초하여 사용자들의 세트를 그룹으로 무리 짓거나 나눌 수 있다. 일부 예들에서, 단일 사용자 클러스터에 연관된 사용자들은 비디오 게임(112)을 플레이할 때에, 사용자의 플레이 특성 및 사용자가 상대들 및/또는 팀메이트들에 대해 희망(desire)하는 플레이 특성 둘 모두와 연관된다. 다른 예에서, 사용자들은 다중 사용자 클러스터들과 연관될 수 있다. 비디오 게임(112)을 플레이할 때에, 일부 사용자 클러스터들은 사용자가 상대들 및/또는 팀메이트들에 대해 희망(desire)하는 플레이 특성과 연관되고, 일부 사용자 클러스터들은 사용자의 플레이 특성들과 연관될 수 있다. 대안적으로, 또는 추가적으로, 사용자 클러스터링 시스템(134)은 비디오 게임(112) 또는 사용자들에 의해 액세스되는 다른 비디오 게임들에 대한 사용자의 참여 레벨에 영향을 미치는 적어도 한 명의 참여자들과 연관된 적어도 하나의 기준에 기초하여 사용자들을 무리 짓거나 클러스터(cluster)할 수 있다.
스킬 평가 시스템(skill evaluation system)(136)은 비디오 게임(112)을 플레이하거나 비디오 게임(112)에 액세스하는 사용자의 스킬 레벨을 평가한다. 사용자의 스킬 레벨은 비디오 게임(112)에 대한 사용자의 엑세스와 관련된 사용자 상호작용 데이터에 적어도 부분적으로 기초하여 결정될 수 있다. 일부 예에서, 스킬 평가 시스템(136)은 비디오 게임(112)을 플레이하는 사용자에 대한 일반적인 스킬을 결정할 수 있다. 다른 예에서, 스킬 평가 시스템(136)은 비디오 게임(112)을 플레이하는 것과 연관된 복수의 서로 다른 스킬들을 평가할 수 있다.
이러한 스킬들은 비디오 게임의 종류에 기초하여 변화한다. 예를 들어, 스포츠 게임에서, 스킬들은 비디오 게임(112)을 플레이할 때에, 올바른 플레이, 최상의 플레이 또는 최상의 플레이 전략을 선택하는 사용자의 능력과 연관될 수 있다. 두 번째 예로서, 제1 사용자인 슈터에 있어서, 스킬들은 비디오 게임(112)에서 적을 향한 슈팅에 대한 사용자의 정확성과 연관될 수 있다. 사용자와 연관된 스킬 레벨은 사용자와 연관시킬 사용자 클러스터를 결정하는 요인이 될 수 있다. 또한, 스킬 레벨 정보는 사용자 데이터 저장소(142)에서 사용자와 연관될 수 있다.
사용자 데이터 저장소(user data repository)(142)는 비디오 게임(112) 및/또는 적어도 하나의 다른 비디오 게임들과 적어도 한 명의 사용자의 상호작용과 연관된 사용자 상호작용 정보를 저장할 수 있다. 이 사용자 상호작용 정보 또는 데이터는 사용자의 플레이 특성(예를 들어 스킬 레벨) 및 사용자가 상대들 및/또는 팀메이트들에 바라는(desire) 플레이 특성을 결정하는 데에 사용되는 임의의 종류의 정보를 포함할 수 있다. 또한, 다양한 플레이 특성과 연관된 사용자들과 플레이하거나 또는 그러한 사용자와 대항하여 플레이할 때에, 사용자 상호작용 정보는 비디오 게임(112)에 대한 사용자의 참여 레벨을 결정하기 위해 사용될 수 있다. 예를 들어, 사용자 상호작용 정보의 일부 비 제한적인 예들은 비디오 게임(112)에서 사용자에 의해 취해진 동작; 사용자의 성공의 레벨; 비디오 게임(112)에서 사용자의 진전(progress)에 대한 측정; 사용자가 비디오 게임(112)에서 특정 동작을 수행하는 데에 있어 성공적이었는지 여부 또는 비디오 게임(112)에서 특정한 목적을 달성하는 데에 성공적이었는지 여부; 사용자가 특정한 목적을 달성하는 데에 시간이 얼마나 소요되었는지 여부; 사용자가 특정한 목적을 달성하기 위해 얼마나 많은 시도를 했는지 여부; 사용자가 비디오 게임(112)에 관해 얼마나 많은 돈을 소비했는지 여부, 여기에서 돈의 양은 사용자가 비디오 게임(112)에 액세스를 획득하기 위해 소비한 돈의 양 및 비디오 게임(112)에 액세스를 획득하기 위해 소비한 돈의 양을 제외하고 사용자가 비디오 게임(112)에 대해 소비한 돈의 양 중 하나 또는 둘 모두를 포함할 수 있음; 사용자가 얼마나 자주 비디오 게임(112)에 액세스하는지 여부; 사용자가 얼마나 오래 비디오 게임(112)을 플레이하는지 여부; 패배 또는 목적 달성 실패 등의 후에 사용자가 플레이 세션 동안 계속 플레이 하는 지 여부와 관련된 정보를 포함할 수 있다. 각각의 이러한 종류의 사용자 상호작용 정보는 사용자와 함께 혹은 사용자에 대항하여 플레이하는 다른 사용자들의 플레이 특성에 적어도 부분적으로 기초하여 수집되고(되거나), 나뉘고(나뉘거나), 가중치가 부여되고(되거나), 분류될 수 있다. 예를 들어, 비디오 게임(112)을 플레이할 때, 사용자의 성공의 레벨과 관련된 사용자 상호작용 정보는 팀메이트의 플레이 특성에 기초하여 다르게 분류되거나 가중치가 부여될 수 있다. 예를 들어, 팀메이트의 플레이 특성이 팀메이트가 사용자보다 더 낮거나 더 높은 스킬 레벨을 가진다고 나타내는 지 여부에 기초하여, 사용자의 성공의 레벨은 더 높게 혹은 더 낮게 가중치가 부여될 수 있다.
일반적으로, 사용자 상호작용 정보는 인터랙티브 컴퓨팅 시스템(130)의 시스템에 의해 획득되거나(획득되고) 모니터링될 수 있다. 그러나, 일부 예에서, 사용자 컴퓨팅 시스템(110)은 사용자 상호작용 정보의 적어도 일부를 획득하거나(획득하고) 모니터링할 수 있다. 그러한 예에서, 사용자 컴퓨팅 시스템(110)은 네트워크(104)를 통해 사용자 상호작용 정보를 인터랙티브 컴퓨팅 시스템(130)과 공유할 수 있다. 일부 실시예에서, 사용자 상호작용 정보의 일부 또는 전부는 비디오 게임(112)에 의해 저장되지 않고, 그 대신에 비디오 게임(112)의 외부에 있는 사용자 컴퓨팅 시스템(110)의 다른 부분에 의하거나(의하고) 인터랙티브 컴퓨팅 시스템(130)에 의해 제공되거나 결정될 수 있다. 또한, 사용자 데이터 저장소(142)는 사용자 클러스터링 시스템(134)에 의해 생성된 적어도 하나의 사용자 클러스터들과 연관된 사용자 클러스터 정보를 저장할 수 있다. 여기에 설명된 각각의 저장소들은 비 휘발성의 메모리 혹은 휘발성 및 비휘발성 메모리의 조합을 포함할 수 있다.
네트워크(104)는 임의의 종류의 커뮤니케이션 네트워크를 포함할 수 있다. 예를 들어, 네트워크(104)는 광역망(WAN), 근거리 통신망(LAN), 셀룰러 네트워크, 에드 호크 네트워크(ad hoc network), 위성 네트워크, 유선 네트워크, 무선 네트워크 등 중 적어도 하나를 포함할 수 있다. 또한, 일부 예에서, 네트워크(104)는 인터넷을 포함할 수 있다.
모델 생성 시스템의 예
도 1b는 도 1a의 모델 생성 시스템(146)의 실시예를 도시한다. 모델 생성 시스템(146)은 다수의 사용자들에 대한 히스토리 데이터(152)에 기초하여 적어도 하나의 예측 모델(160)을 결정하기 위해 사용될 수 있다. 전형적으로, 반드시 그러한 것은 아니지만, 히스토리 데이터(152)는 수백, 수천, 수만과 같이 매우 많은 사용자들과 연관된 데이터를 포함한다. 그러나, 현재의 개시는 이에 한정되지 않고, 사용자들의 수는 임의의 사용자들의 수를 포함할 수 있다. 또한, 히스토리 데이터(152)는 예를 들어 어플리케이션 호스트 시스템(미도시) 및/또는 적어도 하나의 사용자 컴퓨팅 시스템(102)과 같은 적어도 하나의 데이터 소스들로부터 수신된 데이터를 포함할 수 있다. 게다가, 히스토리 데이터(152)는 적어도 하나의 비디오 게임(112)과 사용자의 상호작용에 의해 생성된 임의의 데이터, 서로 다른 데이터 종류, 서로 다른 데이터 소스들로부터의 데이터를 포함할 수 있다. 일부 실시예들에서, 히스토리 데이터(152)는 적어도 하나의 데이터 세트들로 통합(aggregate)될 수 있는 수백만의 데이터 포인트와 같은 매우 많은 수의 데이터 포인트를 포함할 수 있다. 일부 예에서, 히스토리 데이터(152)는 사용자 데이터 저장소(142)로부터 액세스될 수 있다. 일부 실시예에서, 히스토리 데이터(152)는 비디오 게임에 대한 히스토리 정보에 제한되지만, 다른 실시예들에서, 히스토리 데이터(152)는 적어도 하나의 다른 비디오 게임들을 포함할 수 있다. 또한, 일부 실시예들에서, 히스토리 데이터의 적어도 하나의 부분 집합은 지난 6개월 동안의 데이터만을 포함하도록 제한되는 것과 같은 데이터 제한에 의해 제한될 수 있다.
히스토리 데이터(152)는 비디오 게임(112)에 관한 사용자에 대한 사용자 상호작용 데이터를 포함할 수 있다. 또한, 히스토리 데이터(152)는 사용자들의 상대 및/또는 팀메이트와 관련된 정보를 포함할 수 있다.
모델 생성 시스템(146)은 또한 일부 예에서, 피드백 데이터(154)를 수신할 수 있다. 이 데이터는 관리자와 같은 사용자가 예측 모델(160)의 생성을 가능하게 하는 데에 사용될 수 있는 모델 생성 시스템(146)에 추가적인 입력을 제공할 수 있게 하는 감독된 모델 생성 프로세스의 일부로서 수신될 수 있다. 예를 들어, 만약 히스토리 데이터(152)에 변칙이 존재하는 경우 사용자는 모델 생성 시스템(146)이 다른 가중치를 변칙 데이터에 부여하거나 모델 생성 프로세스에서 변칙 데이터를 배제하는 것과 같이 태그된 데이터를 다르게 처리할 수 있도록 하기 위해 변칙 데이터를 태그할 수 있다.
또한, 모델 생성 시스템(146)은 컨트롤 데이터(156)을 수신할 수 있다. 이 컨트롤 데이터(156)는 모델 생성 시스템(146)이 모델을 생성하기 위한 적어도 하나의 특징들 또는 특성들을 식별할 수 있다. 또한, 일부 예에서, 컨트롤 데이터(156)는 컨트롤 데이터(156)에서 식별된 적어도 하나의 특징들에 대한 값을 나타낼 수 있다. 예를 들어, 컨트롤 데이터(156)가 사용자들이 비디오 게임(112)을 플레이하는 시간의 길이를 결정하기 위해 예측 모델이 히스토리 데이터(152)를 사용하여 생성되어야 한다는 것을 나타낸다고 가정하자. 만약 각각의 사용자가 게임을 플레이한 시간의 양이 알려진다면, 이 데이터는 컨트롤 데이터(156)의 일부로써 제공되거나 히스토리 데이터(152)의 일부로써 제공될 수 있다. 다른 예로써, 만약 사용자들이 비디오 게임(112)을 임계 기간 동안 플레이 했는 지 또는 특정 임계 기간이 지난 이후에도 비디오 게임(112)을 계속 플레이하는 하는 지에 기초하여, 결정된 리텐션 비율을 추정하기 위해 예측 모델이 생성되어야 한다면, 컨트롤 데이터(156)는 그들의 데이터가 히스토리 데이터(152)에 포함된 사용자에 대한 리텐션 비율, 상대 데이터, 및/또는 팀메이트 데이터를 포함할 수 있다.
모델 생성 시스템(146)은 일반적으로 예측 모델(160)의 생성을 위한 모델 생성 룰 세트(170)을 포함할 수 있다. 룰 세트(170)는 하나 이상의 파라미터들(162)을 포함할 수 있다. 각각의 파라미터들(162)의 세트는 파라미터 함수를 획득하기 위해 적어도 하나의 수학적 함수를 사용하여 결합될 수 있다. 또한, 적어도 하나의 특정한 파라미터들은 가중치들(164)에 의해 가중치가 부여될 수 있다. 일부 예시에서, 파라미터 함수는 파라미터들의 세트를 각각의 가중치들(164)의 세트에 결합함으로써 획득될 수 있다. 예측 모델(160) 및/또는 각각의 예측 모델들(160)의 파라미터들(162)은 히스토리 데이터(152), 피드백 데이터(154), 및 컨트롤 데이터(156), 및 컨트롤 데이터(156)에 포함될 수 있고, 트레이닝 목적으로 사용되는 정의된 출력 기준에 기초하여 트레이닝 프로세스 동안에 유도될 수 있다. 모델 생성 룰 세트(170)는 모델 생성 시스템(146)이 이탈 비율을 결정하는 것과 같은 정의된 목적 함수에 기초하여 모델을 생성하기 위해 사용하는 알고리즘 및/또는 특정한 기계 학습 룰들을 정의할 수 있다. 일부 실시예들에서, 초기 파라미터들(162) 및 가중치들(164)은 모델 생성 프로세스의 시작 동안 수동적으로 제공될 수 있다. 파라미터들(162) 및 가중치들(164)은 예측 모델(160)을 생성하기 위한 모델 생성 상태(model generation phase)동안 업데이트되거나 수정될 수 있다.
모델 생성 시스템(146)은 다양한 데이터의 파라미터들 및 특성들에 따라서, 히스토리 데이터 세트를 분류하고 필터링할 수 있다. 예를 들어, 데이터는 데이터 소스(예를 들어, 게임 어플리케이션 데이터, 호스트 어플리케이션 데이터, 또는 프로필 데이터), 정보 종류(예를 들어, 게임 플레이 정보, 거래 정보, 상호작용 정보, 또는 게임 계정 정보), 상대 데이터(예를 들어, 상대의 스킬, 상대에 의해 플레이 되거나 선택되는 역할(role), 또는 상대에 대한 성공 비율), 팀메이트 데이터(예를 들어, 팀메이트의 스킬, 팀메이트에 의해 플레이 되거나 선택되는 역할들, 또는 특정한 팀메이트와 함께 플레이할 때에 성공 비율), 또는 데이터와 연관된 카테고리들에 의해 분류될 수 있다. 모델 생성 시스템(146)은 추가적인 프로세싱을 위한 정보를 식별하기 위해 정보를 필터링할 수 있다. 일부 실시예에서, 모델 생성 시스템(146)은 추가적인 프로세싱 전에 히스토리 데이터(152)를 복수의 데이터 종류들 또는 카테고리들로 필터링하거나 분리하도록 구성된다. 게다가, 일부 예시에서, 일부의 히스토리 데이터(152)는 모델 생성 시스템(146)에 의해 결정된 임계 적합성(threshold relevance)을 만족하지 않는 적합성과 연관된 데이터에 기초하여 히스토리 데이터(152)로부터 필터링 되거나 제거될 수 있다.
선택적으로, 적어도 하나의 예측 모델들(160)은 패널티(166)과 연관될 수 있다. 이러한 패널티들(166)은 패널티를 유도하기 위해 사용되는 적어도 하나의 요인들에 기초하여 특정한 예측 모델(160)의 선택 또는 생성을 가능하게 하기 위하여 사용될 수 있다. 예를 들어, 특정한 예측 모델(160)에 포함된 파라미터들의 수 또는 수학적 복잡성은 특정한 예측 모델(160)에 대한 패널티를 생성하기 위해 사용될 수 있고, 그것은 모델의 생성 및/또는 알고리즘의 선택 또는 특정한 예측 모델(160)이 선택되는 선택 확률에 영향을 미칠 수 있다.
예측 모델(160)이 생성된 후에, 모델은 리텐션 분석 시스템(140) 및/또는 사용자 매칭 시스템(132)의 런타임동안 사용되어 비디오 게임(112)의 인스턴스를 플레이하기 위한 매치 플랜을 승인, 거절, 또는 선택할 수 있다. 일부 예에서, 예측 모델(160)은 매치 플랜을 생성하는 것을 가능하게 하기 위해 사용될 수 있다. 다른 예에서, 예측 모델(160)은 특정한 매치 플랜이 예를 들어 특정한 임계 리텐션 비율과 같은 조건의 세트를 만족하는지 여부를 확인하기 위하여 사용될 수 있다.
리텐션 분석 시스템의 예
도 1c는 도 1a의 리텐션 분석 시스템(140)의 일실시예를 도시한다. 리텐션 분석 시스템(140)은 모델 생성 시스템(146)에 의해 생성된 적어도 하나의 예측 모델들(160)를 사용 또는 적용할 수 있다. 비록 분리된 시스템으로 도시되어 있지만, 일부 예들에서, 리텐션 분석 시스템(140)은 사용자 매칭 시스템(132)의 일부로써 포함될 수 있다.
리텐션 분석 시스템(140)은 입력 데이터(172)를 프로세스하여 출력 데이터(174)를 획득하기 위해 적어도 하나의 예측 모델들(160A, 160B, 160N)("예측 모델들(160)" 또는 단수로 "예측 모델(160)"으로 통칭함)을 사용할 수 있다.
리텐션 분석 시스템(140)은 특정한 비디오 게임(112)의 인스턴스에 대한 매치 또는 게임 플레이의 시작 동안 예측 모델(들)을 적용할 수 있다. 일부 실시예에서, 예측 모델들(160)은 사용자들이 특정한 양의 인-게임(in-game) 또는 현실세계 통화(예를 들어 US 달러 또는 유로화)를 소비할 가능성 또는 리텐션 비율과 같은 특정한 조건을 만족하는 매치 플랜을 확인하거나 매치 플랜을 생성하기 위하여 게임이 시작할 때에 적용될 수 있다. 다른 실시예들에서, 예측 모델(160)은 게임 중의 서로 다른 시간들 및/또는 게임에서 서로 다른 스테이지에서 적용될 수 있다. 비디오 게임(112)의 인스턴스의 시작 중 또는 팀메이트 및/또는 상대가 될 사용자들의 세트의 선택 중에, 리텐션 분석 시스템(140)은 적어도 하나의 예측 모델들(160)에 적용될 수 있는 입력 데이터(172)를 수신한다. 입력 데이터(172)는 비디오 게임(112)을 플레이하는 사용자와 연관된 적어도 하나의 데이터의 조각들을 포함할 수 있고, 비디오 게임(112)의 인스턴스를 플레이하고자 하는 바램을 나타낼 수 있다. 이러한 데이터는 비디오 게임(112)에 대한 사용자 상호작용 데이터, 사용자에 대한 프로필 데이터, 및 사용자에 대한 이탈 비율 또는 리텐션 비율을 결정하기 위해 예측 모델(160)에 적용될 수 있는 임의의 다른 데이터를 포함할 수 있다. 또한, 입력 데이터(172)는 사용자의 팀메이트들 및/또는 상대들로 선택될 수 있는 적어도 한 명의 추가적인 사용자들과 관련된 데이터의 적어도 하나의 조각들을 포함할 수 있다. 추가적인 사용자들과 연관된 데이터는 사용자가 수신한 데이터와 동일한 종류의 데이터, 사용자가 수신한 데이터의 종류의 부분 집합, 및/또는 사용자가 수신한 데이터와 다른 추가적인 종류의 데이터를 포함할 수 있다. 일부 실시예들에서, 입력 데이터(172)는 리텐션 분석 시스템(140)에 제공되지 전에 필터링 수 있다.
일부 실시예들에서, 단일 예측 모델(160)은 리텐션 분석 시스템(140)을 위해 존재할 수 있다. 그러나, 도시된 바와 같이 리텐션 분석 시스템(140)이 다중 예측 모델들(160)을 포함하는 것은 가능하다. 리텐션 분석 시스템(140)은 입력 데이터(172) 및/또는 입력 데이터(172)와 연관된 추가적인 식별자들에 기초하여 임의의 모델들(160A-N)과 같은 탐지 모델(detection model) 중 어떠한 모델을 사용할 지를 결정할 수 있다. 추가적으로, 선택된 예측 모델(160)은 입력 데이터(172)로서 제공된 특정한 데이터에 기초하여 선택될 수 있다. 입력 데이터(172)의 부분으로써 특정한 종류의 데이터의 가용성은 예측 모델(160)의 선택에 영향을 미칠 수 있다. 예를 들어, 인구학적 데이터(예를 들어, 연령, 나이, 모국어)를 입력 데이터의 일부로써 포함하는 것은 예측 모델(160A)의 허용을 야기할 수 있다. 그러나, 만약 인구학적 데이터가 특정한 사용자에게 이용가능하지 않다면, 예측 모델(160B)가 대신 사용될 수 있다.
위에 언급된 바와 같이, 적어도 하나의 예측 모델들(160)은 패널티(166)과 함께 생성되거나 패널티(166)과 연관될 수 있다. 패널티는 리텐션 분석 시스템(140)에 의해 사용을 위한 예측 모델의 선택 또는 모델의 생성에 영향을 미치는 데에 사용될 수 있다.
출력 데이터(174)는 사용자, 또는 사용자들의 세트가 비디오 게임(112)을 플레이 하는 것을 중단하는 것에 대한 예측과 연관된 리텐션 비율 또는 이탈 비율일 수 있다. 예를 들어, 일부 실시예들에서, 리텐션 비율은 입력 데이터(172)로써 유사하거나 동일한 데이터와 관련된, 임계 시간 주기 내에서 비디오 게임(112)를 플레이하는 것을 중단할 사용자들에 대해 예측되는 퍼센트를 나타내는 0에서 100 사이의 값일 수 있다. 일부 실시예에서, 출력 데이터(174)는 또한 리텐션 비율에 대한 이유를 식별할 수 있다. 예를 들어, 리텐션 분석 시스템(140)은 특정한 사용자에 대한 90% 리텐션 비율은 비디오 게임(112)을 플레이할 때에 소비하는 돈의 양에 적어도 기초한다는 것을 나타낼 수 있다. 그러나, 리텐션 분석 시스템(140)은 다른 사용자에 대한 90% 리텐션 비율은 사용자가 위치한 지리적인 지역에서 영하의 온도에 적어도 기초할 수 있다는 것을 나타낼 수 있다. 또 다른 예에서, 리텐션 분석 시스템(140)은 특정 사용자에 대한 20% 리텐션 비율은 25% 이하의 우승 비율에 적어도 부분적으로 기초할 수 있다는 것을 나타낼 수 있다. 그러나, 다른 실시예에서, 리텐션 분석 시스템(140)은 사용자에 대한 25% 리텐션 비율은 매치 플랜에서 스킬 레벨 임계값을 만족하지 못한 사용자의 팀메이트들 및/또는 상대들의 스킬 레벨에 적어도 부분적으로 기초할 수 있다는 것을 나타낼 수 있다.
예측 모델들(160A, 160B, 160N)은 일반적으로 각각 적어도 하나의 파라미터들(162A, 162B, 162N)("파라미터들 162"로 통칭함)을 포함할 수 있다. 각각의 파라미터들(162)(예를 들어 파라미터들(162A))의 세트는 파라미터 함수를 획득하기 위한 적어도 하나의 수학적 함수들을 사용하여 결합될 수 있다. 또한, 파라미터들(162A, 162B, 162N)에서 적어도 하나의 특정한 파라미터들은 가중치들(164A, 164B, 164N)("가중치들(164)"로 통칭함)에 의해 가중치가 부여될 수 있다. 일부 예에서, 파라미터 함수는 파라미터들(예를 들어 파라미터들(162A))의 세트를 각각의 가중치들(164)(예를 들어 가중치들(164A))과 결합함으로써 획득될 수 있다. 선택적으로, 적어도 하나의 예측 모델들(160A, 160B, 160N)은 각각의 패널티들(166A, 166B, 166N)("패널티들(166)"로 통칭함)과 연관될 수 있다.
예측 모델 생성 프로세스의 예
도 2는 예측 모델 생성 프로세스(200)의 일실시예를 나타내는 흐름도를 제시한다. 프로세스(200)는 적어도 하나의 파라미터들을 포함하는 예측 모델들 또는 적어도 하나의 파라미터 함수들을 생성할 수 있는 임의의 시스템에 의해 구현될 수 있다. 일부 예시에서, 프로세스(200)는 트레이닝 프로세스로서, 히스토리 데이터 또는 다른 알려진 데이터에 기초하여 하나 이상의 예측 모델들 또는 파라미터 함수들을 개발하는 단계를 수행한다. 프로세스(200)은 대체로 또는 부분적으로, 예를 들어 그 중에서도 인터랙티브 컴퓨팅 시스템(130), 사용자 매칭 시스템(132), 사용자 클러스터링 시스템(134), 스킬 평가 시스템(136), 리텐션 분석 시스템(140), 모델 생성 시스템(146), 또는 사용자 컴퓨팅 시스템(110)에 의해 구현될 수 있다. 비록 전체적으로 또는 부분적으로, 임의의 수의 시스템들이 프로세스(200)를 구현할 수 있지만, 논의를 단순화하기 위하여 프로세스(200)는 특정한 시스템들에 관하여 설명될 것이다. 또한, 프로세스(200)는 업데이트 될 수 있고, 시간 경과에 따라 반복적으로 수행될 수 있다. 예를 들어, 프로세스(200)는 한 달에 한번 새로운 비디오 게임의 발매 또는 추가에 따라 반복될 수 있고, 또는 비디오 게임(112)을 플레이거나 또는 분석하기 위해 수용할 수 있는 새로운 사용자의 임계 값의 증가에 따라 한 달에 한번 반복될 수 있다. 그러나, 프로세스(200)는 더 자주 수행되거나 이보다 덜 자주 수행될 수 있다.
프로세스(200)는 모델 생성 시스템(146)이 비디오 게임(112)의 다수의 사용자들에 대한 사용자 상호작용 데이터를 포함하는 히스토리 데이터(152)를 수신하는 블록(202)에서 시작한다. 히스토리 데이터(152)는 모델 생성 시스템(146)에 대한 트레이닝 데이터로써 기여하고, 나이, 지리적인 위치, 성별, 사회경제적 부류와 같은 사용자의 특성 또는 인구 통계를 포함할 수 있다. 대안적으로, 또는 추가적으로, 히스토리 데이터(152)는 적어도 한 명의 사용자들의 플레이 스타일; 비디오 게임(112)을 플레이하는 데에 사용하는 돈의 양; 비디오 게임에 관하여 성공 또는 실패 정보(예를 들어, 사용자 우승 비율); 비디오 게임(112)을 플레이하는 플레이 빈도; 특정한 선택적 게임 요소들의 사용 빈도(예를 들어, 이용가능한 부스트(boosts), 레벨 뛰어넘기, 인-게임 힌트, 파워 업 등); 비디오 게임(112)에 대한 인-게임 아이템들을 소비하기 위해 사용되는 실제 돈(예를 들어, U.S 달러 또는 유로화)의 양 등과 관련된 정보를 포함할 수 있다. 추가적으로, 히스토리 데이터(152)는 사용자들 중 사용자와 함께 비디오 게임(112)을 플레이하는 적어도 한 명의 다른 사용자들과 관련된 데이터를 포함할 수 있다. 일부 예에서, 히스토리 데이터(152)는 사용자 상호작용 데이터 및 각각의 세트가 비디오 게임의 멀티 플레이어 인스턴스를 상대들, 팀메이트들 또는 둘 모두로써 함께 플레이하는 사용자들의 그룹을 포함하는 사용자들의 다중 세트들에 대한 다른 사용자 또는 비디오 게임과 관련된 데이터를 포함할 수 있다. 사용자 또는 비디오 게임 데이터는 위에 언급된 데이터뿐만 아니라, 비디오 게임(112) 및/또는 비디오 게임에서 수행될 수 있는 적어도 하나의 동작들 및/또는 비디오 게임(112)의 적어도 하나의 요소(예를 들어 레벨 또는 장애물들)에 관한 각각의 사용자에 대한 스킬 정보를 포함할 수 있다. 추가적으로, 데이터는 인-게임 선택 선호도, 역할 선호도, 및 다른 사용자들의 플레이 스타일들, 선호도들 또는 스킬들을 구별하는 데에 사용될 수 있는 다른 정보들을 포함할 수 있다.
블록(204)에서 모델 생성 시스템(146)은 히스토리 데이터(152)에 대응하는 바람직한 예측 기준을 나타내는 컨트롤 데이터(156)를 수신할 수 있다. 이 컨트롤 데이터(156)는 모델 생성 시스템(146)이 모델을 결정하기 위한 적어도 하나의 특징들 또는 특성들을 나타낼 수 있다. 대안적으로, 또는 추가적으로 컨트롤 데이터(156)는 수신된 히스토리 데이터(152)와 연관된 특성 또는 특징들에 대한 값을 포함할 수 있다. 예를 들어, 컨트롤 데이터(156)는 모델 생성 시스템(146)에 의해 생성될 모델에 의해 예측되는 바람직한 특징들로서, 이탈 비율 또는 리텐션 비율을 식별할 수 있다. 이탈 비율 또는 리텐션 비율은 비디오 게임(112)을 플레이하는 것을 중단하는 히스토리 데이터(152)와 연관된 사용자들의 퍼센트와 대응할 수 있다. 또한, 컨트롤 데이터(156)는 히스토리 데이터와 연관된 리텐션 비율을 식별할 수 있다. 예를 들어, 컨트롤 데이터(156)는 리텐션 비율이 그들의 데이터가 히스토리 데이터(152)에 포함되는 특정한 사용자들에 대해 60%라는 것을 나타낼 수 있다. 일부 실시예들에서, 컨트롤 데이터(156)는 모델 생성 시스템(146)에 의해 생성되는 모델에 의해 예측되는 다중 특성 또는 특징을 포함할 수 있다. 예를 들어, 컨트롤 데이터(156)는 그들의 데이터가 히스토리 데이터(152)로서 제공된 사용자들에 대해 리텐션 비율 및 리텐션 비율에 대한 이유(예를 들어 임계 스킬 델타 이상으로 분기하는 상대의 스킬 레벨 또는 매치가 완료되기 전에 비디오 게임(112)의 인스턴스에서 나가는 팀메이트 및/또는 상대의 임계 퍼센트보다 더 높게), 또는 리텐션 비율 및 그들의 데이터가 히스토리 데이터(152)로서 제공된 사용자들에 의해 소비된 평균 화폐 양을 식별할 수 있다.
블록(206)에서 모델 생성 시스템(146)은 히스토리 데이터(152) 및 컨트롤 데이터(156)에 기초하여 적어도 하나의 예측 모델들(160)을 생성할 수 있다. 예측 모델들(160)은 히스토리 데이터(152) 및, 일부의 경우에 컨트롤 데이터(156)에 기초하여 예측 모델(160)을 생성하기 위한 모델 생성 룰세트(170) 또는 수학적 알고리즘을 사용하여 결합될 수 있는 적어도 하나의 파라미터들(162) 또는 변수들을 포함할 수 있다. 또한, 특정한 실시예들에서, 블록(206)은 적어도 하나의 피드백 데이터(154)를 적용하는 단계를 포함할 수 있다. 예를 들어, 만약 예측 모델(160)이 감독된 기계 학습 프로세스의 일부로서 생성된다면, 사용자(예를 들어 감독자)는 예측 모델(160)이 생성될 때, 및/또는 예측 모델(160) 생성 프로세스를 정제하기 위해, 모델 생성 시스템(146)에 적어도 하나의 입력을 제공할 수 있다. 예를 들어, 사용자는 특정 지역 또는 지역적인 영역이 정전을 가진 것을 알 수 있다. 그러한 예에서, 사용자는 정전 동안 영향을 받은 지리적인 영역의 사용자에 대응할 수 있는 히스토리 데이터(152)의 일 부분의 가중치를 줄이기 위해 피드백 데이터(154)를 제공할 수 있다. 또한, 일부 경우에, 적어도 하나의 변수들 또는 파라미터들이 예를 들어 가중치(164)를 사용하여 가중치를 부여 받을 수 있다. 변수에 대한 가중치의 값은 컨트롤 데이터(156) 및/또는 히스토리 데이터(152)를 만족하거나, 임계값 불일치 내에서 만족하는 예측 모델(160)을 생성하는 데에 변수가 미치는 영향에 적어도 부분적으로 기초한다. 이러한 경우에, 변수들 및 가중치들의 조합은 예측 모델(160)을 생성하는 데에 사용될 수 있다.
선택적으로, 블록(208)에서 모델 생성 시스템(146)은 패널티(166)를 블록(206)에서 생성된 적어도 하나의 예측 모델들(160)의 적어도 일부에 적용하거나 연관시킨다. 적어도 하나의 예측 모델 각각에 연관된 패널티는 다를 수 있다. 또한, 각각의 예측 모델들(160)에 대한 패널티는 예측 모델(160)의 모델 종류 및/또는 예측 모델(160)의 파라미터(162)와 파라미터 함수에 포함된 파라미터의 수를 결합하는 데에 사용되는 수학적인 알고리즘에 적어도 부분적으로 기초할 수 있다. 예를 들어, 예측 모델(160)을 생성할 때에, 모델을 적용하기 위한 많은 양의 프로세싱 능력 또는 매우 많은 수의 변수들을 꺼리는 패널티가 적용될 수 있다. 다른 예에서, 다른 예측 모델에 비해 더 많은 파라미터 또는 변수를 사용하는 예측 모델(160)은 적은 변수를 사용하는 예측 모델에 비해 더 큰 패널티(166)과 연관될 수 있다. 추가적인 예에서, 다른 예측 모델에 비해 계산을 위한 더 많은 프로세싱 능력을 필요로 하는 수학적 알고리즘 또는 모델 타입을 사용하는 예측 모델은 계산을 위해 더 적은 프로세싱 능력을 필요로 하는 수학적 알고리즘 또는 모델 종류를 사용하는 예측 모델에 비해 더 큰 패널티와 연관될 수 있다.
블록(210)에서 예측 모델(160)의 정확성에 적어도 부분적으로 기초하는 모델 생성 시스템(146) 및 임의의 연관된 패널티는 예측 모델(160)을 생성한다. 일부 실시예에서, 모델 생성 시스템(146)은 다른 예측 모델(160)과 비교할 때, 더 낮은 패널티와 연관된 예측 모델(160)을 선택한다. 그러나, 일부 실시예들에서, 만약, 예를 들어, 예측 모델(160)의 출력이 더 낮은 패널티와 연관된 예측 모델 보다 더 임계 수준으로 더 정확한 경우 모델 생성 시스템(146)은 더 높은 패널티와 연관된 예측 모델을 선택할 수 있다. 특정한 실시예에서, 블록(210)은 선택적이거나 생략될 수 있다. 예를 들어, 일부 예에서, 예측 모델(160)은 패널티와 연관될 수 있다. 그러한 일부 예들에서, 예측 모델은 예측 모델에 의해 생성되는 출력의 정확성에 기초하여 복수의 예측 모델들 중에서 선택될 수 있거나 랜덤하게 선택될 수 있다.
멀티 플레이어 매칭 프로세스의 예
도 3은 멀티 플레이어 매칭 프로세스(300)의 일 실시예를 나타내는 흐름도이다. 프로세스(300)는 비디오 게임(112)을 상대, 팀메이트, 또는 둘의 조합으로써 플레이할 수 있는 둘 이상의 사용자의 매치 플랜을 생성할 수 있는 임의의 시스템에 의해 구현될 수 있다. 프로세스(300)는 전체적으로 또는 부분적으로, 예를 들어 그 중에서도 인터랙티브 컴퓨팅 시스템(130), 사용자 매칭 시스템(132), 사용자 클러스팅 시스템(134), 스킬 평가 시스템(136), 리텐션 분석 시스템(140), 모델 생성 시스템(146), 또는 사용자 컴퓨팅 시스템(110) 등에 의해 구현될 수 있다. 비록 전체적으로 또는 부분적으로, 임의의 수의 시스템들이 프로세스(300)를 구현할 수 있더라도, 논의를 단순화하기 위하여, 프로세스(300)은 특정한 시스템들에 관하여 설명될 것이다. 또한, 프로세스(300)는 시간의 경과에 따라 반복적으로 수행되거나 업데이트될 수 있다. 예를 들어, 프로세스(300)는 각각의 비디오 게임(112)의 플레이 세션 또는 비디오 게임(112)의 각각의 라운드에 대하여 반복될 수 있다. 그러나, 프로세스(300)는 더 빈번하게 또는 덜 빈번하게 수행될 수 있다.
프로세스(300)는 사용자 매칭 시스템(132)이 멀티플레이어 비디오 게임(112)에 대한 매치 플랜에 포함될 복수의 사용자들을 선택하는 블록(302)에서 시작한다. 사용자 매칭 시스템(132)은 팀메이트들, 상대들 또는 이 둘의 조합으로 함께 무리 지어질 사용자를 식별하기 위해 임의의 종류의 시스템 또는 프로세스를 사용할 수 있다. 예를 들어, 사용자 매칭 시스템(132)은 스킬 레벨 및/또는 비디오 게임을 플레이하기 위해 대기하는 사용자들의 대기열에서의 위치에 기초하여 사용자들을 식별할 수 있다. 다른 예시로서, 사용자 매칭 시스템(132)은 특정한 시간 윈도우(time window)에서 랜덤하게 사용자들을 선택할 수 있다. 이러한 시간 윈도우는 사용자들의 대기열에서 사용자들의 세트가 대기하는 시간의 길이와 관련될 수 있다. 게다가, 시간 윈도우는 사용자들의 대기열에서 사용자들의 수에 기초하여 변화할 수 있다. 또한, 일부 예에서, 적어도 사용자들의 일부는 적어도 일부의 사용자들이 비디오 게임(112)을 함께 플레이하고자 하는 바램을 나타난 표시에 기초하여 선택될 수 있다.
블록(304)에서, 리텐션 분석 시스템(140)은 블록(302)에서 식별된 사용자들 각각에 대하여, 멀티 플레이어 비디오 게임(112)의 사용자에 대한 사용자 상호작용 데이터를 포함하는 입력 데이터(예를 들어 입력 데이터(172))의 세트를 수신할 수 있다. 입력 데이터(172)는 이에 제한되지 않지만, 전형적으로 사용자 특정 데이터이다. 또한, 입력 데이터(172)의 세트는 사용자에 대한 히스토리 사용자 상호작용 데이터(historical user interaction data) 및 최근의 사용자 상호작용 데이터 둘 모두를 포함할 수 있다. 히스토리 사용자 상호작용 데이터는 현재가 아닌 플레이 세션의 사용자 상호작용 데이터 및/또는 임계 연령을 만족하는 사용자 상호작용 데이터 또는 특정한 임계 시간 주기보다 더 오래된 사용자 상호작용 데이터를 포함할 수 있다. 예를 들어, 히스토리 사용자 상호작용 데이터는 적어도 한 주 또는 한 달이 지난 사용자 상호작용 데이터를 포함할 수 있다. 대안적으로, 또는 추가적으로 히스토리 사용자 상호작용 데이터는 5 또는 10 플레이 세션 이상 지난 플레이 세션으로부터의 데이터를 포함할 수 있다.
반대로, 최근의 사용자 상호작용 데이터는 임계 연령을 만족하거나 특정 임계 시간 주기보다 더 최근의 사용자 상호작용 데이터를 포함할 수 있다. 예를 들어, 최근의 사용자 상호작용 데이터는 한 주 또는 한 달보다 짧은 시간이 지난 사용자 상호작용 데이터를 포함할 수 있다. 대안적으로, 또는 추가적으로, 최근의 사용자 데이터는 3, 5 또는 10 플레이 세션보다 시간이 덜 지난 플레이 세션으로부터의 데이터를 포함할 수 있다.
일부 실시예들에서, 히스토리 사용자 데이터 및 최근의 사용자 데이터는 예측 모델(160)에서 다르게 가중치가 부여될 수 있다. 일부 예에서, 파라미터 모델(160)에서 각각의 파라미터(162)는 반복될 수 있다. 예를 들어, 파라미터의 하나의 버전은 히스토리 사용자 데이터에 기초할 수 있고, 가중치(164)와 연관될 수 있고, 파라미터의 다른 버전은 최근의 사용자 데이터에 기초할 수 있고, 다른 가중치(164)와 연관될 수 있다. 게다가, 일부 구현에서, 가중치는 슬라이딩 스케일(sliding scale) 또는 눈금 기준으로 적용될 수 있다. 예를 들어, 더 최근의 히스토리 사용자 데이터는 더 높은 가중치(164)와 연관될 수 있고, 이보다 덜 최근의 히스토리 사용자 데이터는 그러하지 않을 수 있다.
사용자 상호작용 데이터는 예를 들어, 사용자에 의해 선택된 게임 캐릭터의 신원; 시간의 임계적 퍼센트로 사용자가 플레이하는 역할(예를 들어 힐러(healer), 디팬더(defender)); 사용자가 비디오 게임을 플레이하는 데에 사용하는 시간; 비디오 게임(112)에 관하여 사용자가 소비한 돈의 양; 사용자와 연관된 스킬 레벨등을 포함하는 비디오 게임(112)과 사용자의 상호작용과 관련된 임의의 데이터를 포함할 수 있다. 또한, 블록(304)은 사용자가 이전에 함께 플레이 했던 팀메이트들 또는 상대들에 관한 데이터를 수신하는 단계를 포함할 수 있다. 추가적인 데이터는 사용자가 이전에 함께 플레이 했던 팀메이트 또는 상대에 대한 사용자 상호작용 데이터를 포함할 수 있다. 일부 예에서, 사용자에 대한 사용자 상호작용 데이터는 상대 또는 팀메이트 의존 데이터를 포함할 수 있다. 예를 들어, 사용자의 팀메이트가 사용자보다 높은 스킬 레벨일 때, 사용자에 대한 사용자 상호작용 데이터는 사용자가 전형적으로(예를 들어, 임계 퍼센트보다 더 자주) 힐러로서 비디오 게임(112)을 플레이하는 것을 나타낼 수 있다. 그러나, 사용자의 팀메이트가 사용자보다 낮은 스킬 레벨일 때에, 사용자에 대한 사용자 상호작용 데이터는 사용자가 전형적으로 난투 캐릭터(melee character)로서 비디오게임(112)을 플레이하는 것을 나타낼 수 있다.
특정한 실시예에서, 사용자 상호작용 데이터와 연관되지 않거나, 비디오 게임(112)을 플레이하는 임계적인 양 또는 매치의 임계 횟수보다 적은 상황에서 유도된 사용자 상호작용 데이터와 연관되는 특정한 값(예를 들어 디폴트 값들)은 사용자를 위해 파라미터 함수에 제공될 수 있다. 유익하게도, 이러한 실시예들의 일부에서, 프로세스(300)는 비디오 게임(112)을 처음 플레이하거나 매치들의 임계량 또는 플레이 시간의 임계량보다 더 적게 연관되는 사용자에게 사용자에 대한 특정한 값을 사용함으로써 사용될 수 있다.
블록(306)에서 리텐션 분석 시스템(140)은 파라미터 함수 또는 예측 모델(160)을 사용하고, 다수의 사용자들로부터의 다른 사용자들 각각에 대한 입력 데이터 및 사용자에 대한 입력 데이터의 세트에 적어도 부분적으로 기초하여 사용자들 각각에 대한 예측된 리텐션 비율을 결정한다. 예측 리텐션은 각각의 사용자들 또는 매치 플랜에 포함된 사용자들의 그룹이 특정한 기간 동안 비디오 게임(112)을 계속 플레이할 확률일 수 있다. 대안적으로, 또는 추가적으로, 예측 리텐션은 각각의 사용자들 또는 매치 플랜에 포함되는 사용자들의 그룹에 대한 "예" 또는 "아니오" 값일 수 있고, 특정한 임계 확률을 통해 사용자가 비디오 게임(112)을 계속 플레이할지 또는 비디오 게임(112)을 플레이하는 것을 중단할 지 여부를 나타낸다. 일부 예에서, 각각의 사용자에 대한 입력 데이터의 세트는 변화할 수 있고, 서로 다른 종류의 데이터를 포함할 수 있다. 예를 들어, 선호되는 캐릭터 클래스는 한 명의 사용자에게 알려질 수 있고, 그 사용자의 사용자 상호작용 데이터에 포함될 수 있지만, 다른 사용자에게 알려지지 않을 수 있고, 그러므로 다른 사용자의 사용자 상호작용 데이터에서 생략될 수 있다. 게다가, 일부 예에서, 어떠한 플레이어들이 팀메이트들이고 어떠한 플레이어들이 상대들인지와 같은 매치 플랜의 상세한 부분은 각각의 사용자들에 대한 리텐션을 결정하기 위하여 예측 모델(160)에 제공될 수 있다. 일부 그러한 예에서, 예측 모델(160)은 리텐션 대신에 또는 추가적으로, 사용자들의 세트에 대한 리텐션 비율을 최대화 하는 대안적인 매치 플랜 또는 매치 플랜을 출력할 수 있다. 일부 예들에서, 파라미터 함수에 제공되는 입력 데이터의 세트는 팀메이트들 또는 상대들로서 함께 무리지어지는 둘 이상의 사용자들을 식별할 수 있다. 예를 들어, 다른 두 명의 플레이어들이 블록(302)에서 특정한 매치 메이킹 절차를 사용하여 선택되는 동안에, 두 명의 사용자들은 함께 매치를 플레이 하길 원한다는 것을 나타낼 수 있다. 따라서, 일부 예에서, 파라미터 함수에 제공되는 매치 플랜은 사용자들이 매치 플랜에서 식별된 역할에 남아 있을 것을 나타낼 수 있고, 다른 사용자들은 매치 플랜에서 고정된 역할들(roles)에 배정(assign)되지 않을 것을 나타낼 수 있다.
선택적으로, 블록(308)에서, 리텐션 분석 시스템(140)은 사용자에 대한 입력 데이터의 세트 및 사용자들 중 다른 사용자 각각에 대한 입력 데이터에 적어도 부분적으로 기초하여 사용자들 각각에 대한 예측된 리텐션에 대한 적당한 이유(likely reason)를 결정하기 위해 예측 모델(160)을 사용할 수 있다. 예를 들어, 하나 이상의 힐러를 포함하는 사용자들의 팀들은 캐릭터들의 파티(party)에 하나 또는 그 이하의 힐러들을 포함하는 사용자들의 팀에 비해 낮은 리텐션 비율과 함께 연관된다는 것은 예측 모델(160)이 생성되는 동안에 결정될 수 있다. 따라서, 그러한 일부 예에서, 예측 모델(160)은 낮은 리텐션 비율 또는 특정한 임계값 이하의 비율은 특정한 팀을 위한 매치 플랜에 포함된 힐러-기반-캐릭터들(또는 비디오 게임(112)에서 힐러로서 사용될 수 있도록 구성된 캐릭터들)을 선택하는 경향이 있는 복수의 사용자들에 기인할 수 있다는 것을 나타낼 수 있다. 일부 예들에서, 리텐션 비율은 특정한 매치에 대한 리텐션 값(retention value)을 나타낼 수 있다. 다른 예들에서, 리텐션 비율은 일정 기간 동안 비디오 게임(112)을 플레이하기 위한 전체의 리텐션 또는 오랜 기간을 나타낼 수 있다.
결정 블록(310)에서, 리텐션 분석 시스템(140)은 적어도 한 명의 사용자들에 대한 예측된 리텐션이 리텐션 임계값을 만족하는지 여부를 결정할 수 있다. 만약 적어도 한 명의 사용자에 대한 예측된 리텐션이 리텐션 임계값을 만족한다면, 어플리케이션 호스트 시스템(138)은 매치 플랜을 사용하는 비디오 게임(112)의 플레이할 수 있는 인스턴스를 시작한다. 적어도 한 명의 사용자들에 대한 예측된 리텐션이 리텐션 임계값을 만족하지 않는다면, 프로세스(300)은 새로운 또는 다른 세트 또는 수의 사용자들이 선택되는 블록(302)로 되돌아올 수 있다. 일부 예에서, 완전히 다른 사용자들의 세트는 블록(302)에서 선택될 수 있다. 다른 예에서, 완전히 다른 사용자들의 세트는 블록(302)에서 선택될 수는 없다. 예를 들어, 일부 예에서, 임계 리텐션 레벨 이하의 사용자들만이 다른 사용자들에 의해 대체된다. 다른 예에서, 대체를 위해 선택된 사용자들은 사용자가 비디오 게임(112)을 플레이하기 위해 대기하는 대기열에서 있었던 시간의 길이와 같이 적어도 하나 이상의 추가적인 요인에 기초할 수 있다. 일부 실시예들에서, 임계 사용자들의 수는 새로운 수의 사용자들이 선택되기 전에 리텐션 임계값을 만족시키지 않을 것이 요구될 수 있다. 예를 들어, 하나의 사용 예에서, 매치 플랜에 포함되는 열 명의 사용자들 중 여덟 또는 그 이상의 사용자들이 리텐션 임계값을 만족하는 리텐션에 연관되어 있다면, 프로세스(300)는 블록 (312)으로 진행할 것이다. 따라서, 비 제한적인 예시적 사용 예에서, 리텐션 임계값을 만족하지 않는 리텐션과 연관된 단일 사용자는 블록(312)에서 플레이할 수 있는 비디오 게임의 인스턴스를 시작하는 데에 매치 플랜이 사용되는 것을 막지 않을 수 있다.
일부 실시예들에서, 개별 리텐션 임계값(separate retention threshold)은 매치 플랜 및 매치 플랜에 포함된 사용자들 각각과 연관될 수 있다. 두 개의 리텐션 임계값들은 동일할 수도 있고 다를 수도 있다. 일부 예에서, 비디오 게임의 인스턴스를 플레이 하기 위한 매치 플랜이 선택되기 전에 두 개의 리텐션 임계값들 모두는 만족되어야 한다. 다른 예에서, 매치 플랜 및/또는 사용자들의 세트로부터의 각각의 사용자 중 하나만 리텐션 임계값을 만족해도 충분할 수 있다. 일 예에서, 각각의 사용자에 대한 리텐션 값들의 집합은 매치 플랜 리텐션 값을 생성하는 데에 사용될 수 있다. 일부 예에서, 종합된 리텐션 값(aggregated retention value)은 결정 블록(310)의 일부로서, 매치 플랜 리텐션 임계값에 비교된다. 또한, 만약 매치 플랜 리텐션 임계값이 만족되었으나, 매치 플랜에 포함되는 임계 사용자들의 수가 리텐션 임계값을 만족하지 못한 리텐션 비율과 연관되면, 비디오 게임의 인스턴스를 플레이하기 위한 매치 플랜은 선택되지 못할 수 있다. 일부 구현들에서, 각각의 사용자는 리텐션 임계값을 만족할 수 있으나, 매치 플랜이 리텐션 임계값을 만족하지 못하여 매치 플랜이 선택되지 못할 수 있다.
특정한 실시예들에서, 예측된 모델(160)은 비디오 게임(112)의 인스턴스를 함께 플레이 하고자 하는 바램을 나타내는 사용자들을 설명할 수 있다. 예를 들어, 함께 플레이 하고자 하는 바램을 나타내는 제1 사용자 및 제2 사용자 사이의 관계와 연관된 예측된 모델(160)의 파라미터들은 함께 플레이 하고자 하는 바램을 나타내는 표시를 하지 않은 사용자들과 다르게 가중치가 부여될 수 있다. 유익하게, 특정한 실시예들에서, 함께 플레이하고자 하는 바램을 나타내는 사용자들의 상호작용과 연관된 파라미터들의 가중치들을 수정함으로써, 리텐션 비율은 매치 플랜에 적합하지 않을 수 있지만, 함께 플레이하고자 하는 바램을 나타내는 사용자를 설명할 수 있다. 예를 들어, 두 명의 형제는 예측 모델(160)이 낮은 리텐션 비율을 출력하도록 야기하는 서로 다른 스킬 레벨들 또는 플레이 스타일들을 가진다. 그러나, 형제들이 함께 플레이 하고자 하는 바라는 것에 대한 형제들의 지시(indication)을 설명하기 위하여 리텐션 분석 시스템(140)은 파라미터 함수의 파라미터들의 가중치를 수정할 수 있다.
일부 예에서, 블록(302)에서 선택된 사용자들의 수는 비디오 게임(112)의 인스턴스를 플레이하려는 사용자들의 수와 동일하다. 다른 예들에서, 블록(302)에서 선택된 사용자들의 수는 비디오 게임(112)의 인스턴스를 플레이하려는 사용자들의 수보다 더 크다. 그러한 일부 예들에서, 매치 플랜에 포함되고, 가장 높은 리텐션을 가진 사용자가 선택된다. 그러한 다른 예의 일부는, 하나 이상의 추가적인 선택 기준이 매치 플랜을 선택하기 위해 사용될 수 있다. 예를 들어, 리텐션 임계값을 만족하고, 비디오 게임(112)을 플레이 하기 위해 대기하는 사용자들의 대기열에서 임계 기간 이상으로 대기한 한 명 이상의 사용자들을 포함하는 매치 플랜이 선택될 수 있다.
일부 예들에서, 위의 하나 이상의 실시예들은 멀티플레이 비디오 게임에서 사용자들의 세트를 위한 매치 플랜을 결정하는 것을 가능하게 하기 위해 클러스터링과 결합될 수 있다.
클러스터링 실시예들의 예
일부 실시예들에서, 클러스터링 프로세스는 비디오 게임(112)에 대한 멀티 플레이어 매치 메이킹 선호도(multiplayer matchmaking preferences)를 식별하기 위해 사용될 수 있는 하나 이상의 특성을 공유하는 사용자들을 무리 짓는 데에 사용될 수 있다. 클러스터들은 하나 이상의 특성들을 공유하는 하나 이상의 사용자들을 포함할 수 있다. 매치 메이킹 선호도는 클러스터와 연관된 사용자들을 위한 하나 이상의 팀메이트들 또는 상대들을 식별하는 것을 가능하게 하기 위하여 각각의 클러스터와 연관될 수 있다. 특정한 클러스터와 특성이 매치되는 사용자는 그 특정한 클러스터에 배정(assign)될 수 있다. 상대들 또는 팀메이트들은 클러스터와 연관된 매치 메이킹 선호도에 기초하여 사용자를 위해 선택될 수 있다. 클러스터링을 사용하여 멀티 플레이어 매치 메이킹을 가능하게 하는 특정한 비 제한적인 예시 프로세스들은 아래에 설명된다.
클러스터 생성 프로세스의 예(Example Cluster Creation Process)
도 4는 클러스터 생성 프로세스(400)의 일실시예의 흐름도를 제시한다. 프로세스(400)는 각각의 사용자의 비디오 게임과의 상호작용(interaction) 및 각각의 사용자와 연관된 참여 레벨에 기초하여 복수의 사용자의 그룹들 또는 클러스터들을 생성할 수 있는 임의의 시스템에 의해 실행될 수 있다. 예를 들어, 프로세스(400)는 전체적으로 또는 부분적으로, 그 중에서도 인터랙티브 컴퓨팅 시스템(130), 사용자 매칭 시스템(132), 사용자 클러스터링 시스템(134), 스킬 평가 시스템(136) 또는 사용자 컴퓨팅 시스템(110)에 의해 실행될 수 있다. 비록 임의의 수의 시스템은 전체적으로 또는 부분적으로 프로세스(400)을 실행할 수 있지만, 논의를 단순화하기 위하여 프로세스(400)는 특정한 시스템에 관하여 설명될 것이다.
또한, 프로세스(400)는 시간 경과에 따라 반복적으로 수행되거나 업데이트 될 수 있다는 것은 이해되어야 한다. 예를 들어, 프로세스(400)는 새로운 비디오 게임의 출시 또는 추가, 또는 비디오 게임(112)을 플레이하거나 분석이 가능한 새로운 사용자들의 임계 수의 추가에 따라 한 달에 한번 반복될 수 있다. 그러나, 프로세스(400)는 더 또는 덜 자주 수행될 수 있다. 또한, 프로세스(400)는 사용자의 능력 또는 플레이 특성에 기초하여 하나 이상의 사용자 클러스터들을 식별하고, 사용자의 팀메이트 및/또는 상대에 대해 바라는 플레이 특성에 기초하여 하나 이상의 사용자 클러스터들을 식별하기 위해 반복될 수 있다. 일부 예들에서, 사용자는 사용자에 의한 선택에 기초하여 서로 다른 클러스터들에 연관될 수 있다. 예를 들어, 난투-기초 캐릭터(예를 들어, 싸우기 위해 검을 사용하는 캐릭터)를 선택할 때, 사용자는 하나의 사용자 클러스터에 연관될 수 있고, 레인지-기초 캐릭터(예를 들어, 싸우기 위해 석궁을 사용하는 캐릭터)를 선택할 때에, 사용자는 다른 사용자 클러스터에 연관될 수 있다.
프로세스(400)는 사용자 클러스터링 시스템(134)이 비디오 게임(112)의 사용자들의 세트를 식별하는 블록(402)에서 시작한다. 논의를 단순화하기 위해, 프로세스(400)는 주로 비디오 게임(112)과 같은 단일 비디오 게임에 관해 설명된다. 그러나, 이 개시는 이에 한정되지 않고, 프로세스(400)는 복수의 비디오 게임들을 위해 실행될 수 있다. 일부 예들에서, 복수의 비디오 게임들의 각각은 동일한 장르이거나, 하나 이상의 특성을 공통으로 공유한다. 다른 예들에서, 복수의 비디오 게임들은 다수의 장르에 걸쳐 분포된다. 장르는 테마 및/또는 게임 종류(예를 들어, 오픈 월드 게임(open world game), 롤 플레잉 게임, 1인칭 슈팅 게임, 사이드 스크롤링 게임(side scrolling game), 시뮬레이션 게임, 우주 전투기(space fighter), 웨스턴(western)등)에 기초할 수 있다. 또한, 일부 예에서, 프로세스(400)는 비디오 게임(112)의 분석에 기초하여 생성된 클러스터들을 확인하거나 정제하기 위하여 추가적인 비디오 게임들에 걸쳐 데이터를 분석하는 단계를 포함할 수 있다.
블록(404)에서, 블록(402)에서 식별된 각각의 사용자에 대하여, 사용자 클러스터링 시스템(134)은 사용자에 대한 사용자 상호작용 데이터를 획득하기 위해 시간이 경과에 따라 사용자의 비디오 게임(112)과의 상호작용을 모니터링한다. 이 모니터링은 서로 다른 시간 주기로부터 사용자에 대한 사용자 상호작용 데이터의 세트들을 검토하는 것에 의해 수행되거나 또는 실시간으로 비디오 게임(112)으로부터 데이터를 가져오고, 추후의 검토를 위해 데이터를 저장하는 것에 의해 수행될 수 있다. 이 사용자 상호작용 데이터는 도 1에 관하여 이전에 설명된 임의의 정보를 포함할 수 있다. 또한, 사용자 상호작용 데이터는 사용자의 비디오 게임에서의 진전(progress); 사용자가 단계 또는 목표를 완수하는 것을 성공했을 때, 사용자에 의해 취해지는 동작; 사용자가 단계 또는 목표를 완수하는 것을 성공하지 못했을 때, 사용자에 의해 취해지는 동작; 사용자가 목표를 성공하는데 걸리는 시간의 길이에 기초하여 사용자에 의해 취해지는 행동들의 차이; 사용자가 비디오 게임을 플레이할 때, 평균적으로 또는 각각의 경우에 사용자가 비디오 게임을 플레이하는 시간의 길이; 사용자가 전형적으로 게임을 단기간 동안 플레이하는지 또는 장기간 플레이하는 지 여부; 사용자가 비디오 게임을 플레이할 때에, 실제 세계 통화(인-게임 통화와 반대되는)를 사용하는 지 여부, 이는 사용자의 참여 레벨을 식별하는 요소로써 사용될 수 있음(예를 들어, 비디오 게임을 플레이하는 동안 돈을 사용하는 사용자는 돈을 사용하지 않고 비디오 게임을 플레이하는 사용자에 비해 더 다시 게임을 할 가능성이 높다.); 및 다른 사용자들과 함께 혹은 다른 사용자들에 대항하여 플레이할 때, 사용자의 비디오 게임에 대한 참여 레벨을 측정하는 데에 사용될 수 있는 임의의 다른 기준들과 관련된 데이터를 포함할 수 있다. 또한, 사용자 상호작용 데이터는 비디오 게임에 엑세스하기 위해 사용자에 의해 사용되는 사용자 컴퓨팅 시스템(110)의 종류; 비디오 게임에 엑세스하기 위해 사용되는 사용자 컴퓨팅 시스템(110)의 종류에 기초하여 사용자가 어떻게 비디오 게임과 상호작용하는지 및 차이점들(만약 존재한다면); 비디오 게임에 엑세스하기 위해 사용자가 다중 사용자 컴퓨팅 시스템들(110)을 사용하는 지 여부; 등과 관련된 정보를 포함할 수 있다. 게다가, 이미 언급된 바와 같이 사용자 클러스터링 시스템(134)은 사용자의 팀메이트 또는 상대의 특성에 기초하여 사용자 상호작용 데이터를 분류하거나 다른 방법으로 기술할 수 있다.
일부 예에서, 사용자 클러스터링 시스템(134)은 사용자 상호작용 데이터가 최소 상호작용 기준의 세트(minimum set of interaction criteria)를 만족하지 못하는 사용자를 필터링할 수 있다. 최소 상호작용 기준의 세트는 사용자가 게임을 플레이하는 시간의 길이 또는 사용자가 다중 플레이 세션들(multiple play sessions)을 위한 비디오 게임을 플레이 했는지 여부와 관련될 수 있다. 예를 들어, 비디오 게임을 임계 시간의 양보다 적게 플레이하거나 또는 임계 플레이 세션의 수보다 적게 플레이한 사용자는 사용자의 플레이 특성 및/또는 팀메이트들 및/또는 상대들에 대한 플레이 특성의 선호도를 결정하기에 충분한 정보를 제공할 수 없다.
또한, 최소 상호작용 기준의 세트는 비디오 게임(112)에서 사용자가 취하는 동작들의 종류, 비디오 게임(112)의 종류, 및 비디오 게임(112)에서 사용자가 만든 진전(progress)과 관련될 수 있다. 일부 예에서, 사용자 상호작용 데이터가 최소 상호작용 기준의 세트를 만족하지 못하는 사용자들은 유지될 수 있지만, 최소 상호작용 기준의 세트를 만족한 사용자들에 대한 사용자 상호작용 데이터와 비교할 때 더 낮게 가중치가 부여될 수 있다.
사용자들의 세트로부터의 각각의 사용자들에 대하여, 스킬 평가 시스템(136)은 블록(406)에서 그 사용자에 대한 사용자 상호작용 데이터에 적어도 부분적으로 기초하여 하나 이상의 사용자에 대한 플레이 스타일 및 스킬 레벨을 식별할 수 있다. 사용자에 대한 스킬 플레이 스타일 및 스킬 레벨을 결정하는 단계는 비디오 게임(112)을 플레이 할 때, 사용자에 대한 성공 비율(success rate) 및/또는 비디오 게임(112)을 플레이 할 때 사용자에 의해 취해지는 인-게임 동작의 종류를 결정하는 단계를 포함할 수 있다.
블록(408)에서, 사용자들의 세트로부터의 각각의 사용자에 대하여, 사용자 클러스터링 시스템(134)은 사용자 상호작용 데이터 및 사용자의 참여 레벨에 적어도 부분적으로 기초하여 사용자를 위한 선호되는 팀메이트들 및/또는 상대들을 식별할 수 있다. 사용자 상호작용 데이터는 사용자가 특정한 플레이 특성과 연관된 팀메이트들 및/또는 상대들이 나타나는 비디오 게임(112)의 일 부분 또는 매치를 완료했는지 여부를 나타내는 데이터를 포함할 수 있다. 또한, 사용자 상호작용 데이터는 사용자가 특정한 플레이 특성들과 연관된 특정 팀메이트들 및/또는 상대들이 나타나는 비디오 게임(112)의 부분들 또는 추가적인 매치들을 플레이 했는지 여부를 나타내는 데이터를 포함할 수 있다. 게다가, 블록(408)은 사용자의 팀메이트들 및/또는 상대들에 대한 플레이 특성을 결정하는 단계를 포함할 수 있다.
또한, 사용자에 대한 참여 레벨을 결정하는 단계는 비디오 게임을 플레이하는 동안 사용자가 돈을 쓰는지 여부 및/또는 얼마나 많은 돈을 쓰는지 여부를 결정하는 단계를 포함할 수 있다. 일부 예들에서, 사용자에 대한 참여 레벨을 결정하는 단계는 사용자에 대해 수집된 사용자 상호작용 데이터에 기초하여 사용자가 비디오 게임을 다시 플레이할 확률을 결정하는 단계를 포함할 수 있다. 일부 예들에서, 사용자에 대한 참여 레벨을 결정하는 단계는 비디오 게임에 관하여 사용자의 스킬을 결정하는 단계를 포함할 수 있다. 또한, 블록(406) 및 블록(408)의 적어도 하나와 연관된 동작을 수행하는 단계는 사용자 상호작용 데이터를 입력으로써 사용하는 하나 이상의 기계 학습 알고리즘들을 적용하여 사용자가 사용자와 함께 비디오 게임을 플레이하는 상대들 및/또는 팀메이트들에 기초하여 비디오 게임을 계속 플레이할 지 또는 그만둘 지에 대한 확률을 결정하는 단계를 포함할 수 있다. 이러한 기계 학습 알고리즘들은 k-평균 알고리즘과 같은 클러스터 분석 알고리즘 및 계층적 클러스터링 알고리즘을 포함하는 임의의 종류의 기계 학습 알고리즘을 포함할 수 있다. 일부 예들에서, 기계 학습 알고리즘의 수행은 인공 신경 네트워크의 사용을 포함할 수 있다. 기계-학습 테크닉들을 사용함으로써, 큰 용량(예를 들어 테라 바이트 또는 페타 바이트)의 사용자 상호작용 데이터가 사용자 선호도를 식별하기 위해 분석될 수 있다. 이러한 사용자 선호도는 히스토리 데이터를 사용하여 오프 라인으로 결정될 수 있다. 또한, 결정된 선호도는 여기서 개시된 기술들을 사용하지 않는 다른 매치 메이킹 시스템들과 비교하여, 결과적으로 참여 및 향상된 사용자의 즐거움을 제공할 수 있는 매치 플랜(이하 상세히 설명됨)을 실시간으로 선택하는 데에 사용될 수 있다.
블록(410)에서, 사용자 클러스터링 시스템(134)은 사용자의 선호하는 팀메이트들 및/또는 선호하는 상대들, 플레이 스타일, 스킬 레벨 중 하나 이상에 기초하여 복수의 사용자 클러스터들을 결정할 수 있다. 사용자 클러스터들을 결정하는 단계는 블록(404)에서 모니터링된 사용자 상호작용 데이터로부터 결정된 그들의 행동에 기초하여 사용자들을 무리 짓는 단계를 포함할 수 있다. 또한, 사용자들을 사용자 클러스터들로 무리짓는 단계는 비디오 게임에 대한 참여 레벨을 나타내는 사용자들에 대해 수집된 사용자 상호작용 데이터에 기초하여 각각의 사용자와 연관된 특성을 식별하는 단계를 포함할 수 있다. 예를 들어, 수비-지향적인 팀메이트가 선택된 때에, 시스템은 다수의 사용자들이 전형적으로 다섯 개 이상의 매치들 동안 비디오 게임(112)을 플레이하는 것으로 결정한다고 가정하자. 또한, 이러한 사용자들은 공격-지향적인 팀메이트와 짝지어졌을 때에, 단일 매치 이후에 비디오 게임을 플레이하는 것을 그만둔다고 가정하자. 이 숫자의 사용자들은 디팬스 플레이 스타일을 사용하여 비디오 게임(112)을 플레이하는 것에 더 흥미를 가지는 팀메이트와 플레이하는 것을 선호하는 사용자들을 위한 사용자 클러스터에 함께 클러스터될 수 있다. 반대로, 공격-지향적인 팀메이트와 짝지어졌을 때에 더 많은 플레이 세션을 위해 비디오 게임(112)을 플레이하는 경향을 가진 플레이어들의 다른 그룹은 분리된 사용자 클러스터에 함께 클러스터 될 수 있다. 다른 예로서, 동일한 캐릭터 종류를 사용하는 사용자와 매치될 때에 비디오 게임(112) 또는 특정한 매치를 그만두는 경향이 있지만, 다른 캐릭터 종류를 사용하는 사용자와 매치될 때에는 매치를 완수하는 경향이 있는 사용자들은 사용자 상호작용 데이터가 반대의 선호도를 나타내지 않는 사용자로부터 분리되어 클러스터될 수 있다. 하나 이상의 기계 학습 알고리즘들은 사용자들의 세트에 대한 사용자 상호작용 데이터에 적어도 부분적으로 기초하여 사용자들의 클러스터들을 식별하기 위해 사용될 수 있다.
일부 예에서, 블록(410)은 각각의 클러스터 내에 서브클러스터들(subclusters)을 생성하는 단계를 포함할 수 있다. 예를 들어, 하나의 클러스터는 탱크-기초 스타일(tank-based style)을 사용하는 팀메이트와 함께 플레이하는 것을 선호하는 경향이 있는 사용자들을 포함할 수 있고, 그들의 인-게임 캐릭터가 패배하기 전에 매우 많은 데미지를 받을 수 있는 팀메이트를 포함할 수 있다. 이러한 클러스터에서, 두 개의 서브클러스터들이 있을 수 있다. 하나의 서브클러스터는 사용자의 선택된 캐릭터와 상관없이 탱크-기초 스타일을 사용하는 팀메이트와 함께 플레이하는 것을 선호하는 경향이 있는 사용자들을 위한 것이다. 다른 서브클러스터는 사용자가 낮은 체력을 가지는 마법-기초 캐릭터를 선택했을 때, 탱크-기초 스타일을 사용하는 팀메이트를 선호하는 경향이 있지만, 사용자가 탱크-스타일 캐릭터를 선택했을 때에는 다른 종류의 팀메이트를 선호하는 경향이 있는 사용자들을 위한 것이다.
클러스터 배정 프로세스의 예(Example Cluster Assignment Process)
도 5는 사용자를 위한 클러스터 배정 프로세스(500)의 실시예를 제시하는 흐름도이다. 프로세스(500)는 비디오 게임과 사용자의 상호작용에 기초하여 사용자와 연관될 사용자 클러스터를 식별할 수 있는 임의의 시스템에 의해 실행될 수 있다. 예를 들어, 프로세스(500)는 전체적으로 또는 부분적으로, 그 중에서도 인터랙티브 컴퓨팅 시스템(130), 사용자 매칭 시스템(132), 사용자 클러스터링 시스템(134), 스킬 평가 시스템(136), 또는 사용자 컴퓨팅 시스템(110)에 의해 실행될 수 있다. 비록 임의의 수의 시스템은 전체적으로 또는 부분적으로 프로세스(500)를 실행할 수 있지만, 논의를 단순화하기 위하여 프로세스(500)는 특정한 시스템들에 관하여 설명될 것이다. 또한, 프로세스(500)는 시간 경과에 따라 반복적으로 수행되거나 업데이트될 수 있다는 것은 이해되어야 한다. 예를 들어, 프로세스(500)의 이전의 수행 때문에 사용자에 의한 플레이 세션들의 임계 횟수 이후 또는 사용자가 새로운 비디오 게임을 플레이한 이후에, 프로세스(500)는 한 달에 한번 반복될 수 있다. 그러나 프로세스(500)은 더 또는 덜 자주 수행될 수 있다.
프로세스(500)는 사용자 클러스터링 시스템(134)이 비디오 게임(112)의 사용자를 식별하는 블록(502)에서 시작된다. 사용자는 사용자 로그인과 같은 사용자 계정 정보 또는 스크린 이름(screen name)과 같은 사용자의 아바타(avatar)와 연관된 정보에 기초하여 식별될 수 있다. 대안적으로, 또는 추가적으로 사용자는 인터넷 프로토콜 주소(Internet protocol(IP) address)와 같은 사용자의 사용자 컴퓨팅 시스템(110)과 연관된 정보에 기초하여 식별될 수 있다.
블록(504)에서, 사용자 클러스터링 시스템(134)은 사용자에 대한 사용자 상호작용 데이터를 획득하기 위하여 시간 주기 동안 비디오 게임(112)과 사용자의 상호작용을 모니터링한다. 이 모니터링은 서로 다른 시간 주기로부터 사용자에 대한 사용자 상호작용 데이터의 세트를 검토하는 것에 의해 수행되거나 또는 실시간으로 비디오 게임(112)으로부터 데이터를 가져오고, 추후의 검토를 위하여 데이터를 저장하는 것에 의해 수행될 수 있다. 전형적으로, 시간 주기는 멀티플 플레이 세션들 동안 비디오 게임(112)과 사용자의 상호작용을 포함할 수 있는 히스토리 시간 주기이다. 또한, 시간 주기의 길이는 최소 시간 임계값을 만족시키거나 초과되도록 선택될 수 있다. 예를 들어, 시간 주기는 최소한 한 달, 두 달, 반 년 등 또는 이를 넘기도록 선택될 수 있다. 일부의 예에서, 시간 주기 동안 비디오 게임과 사용자의 상호작용을 모니터링하는 대신에 또는 이에 추가하여, 사용자 클러스터링 시스템(134)은 플레이 세션들의 임계 횟수 동안 사용자의 상호작용을 모니터링하도록 구성될 수 있다. 예를 들어, 사용자 클러스터링 시스템(134)은 사용자의 플레이 세션들의 제1 횟수(예를 들어 5, 10, 12 등) 또는 사용자의 플레이 세션들의 가장 최근의 횟수를 모니터링 하도록 구성될 수 있다. 일부 예들에서, 블록(504)은 복수의 비디오 게임들과의 사용자의 상호작용을 모니터링하는 단계를 포함할 수 있다. 복수의 비디오 게임들은 비디오 게임(112)과 같이 동일한 종류의 비디오 게임일 수 있다. 다른 예들에서, 복수의 비디오 게임들은 특정한 종류의 비디오 게임으로 제한되지 않을 수 있다. 일부 실시예들에서, 시간 주기는 사용자가 비디오 게임(112)에 포함된 인터랙티브 튜토리얼(interactive tutorial) 또는 트레이닝 부분(training portion)을 플레이하는 동안의 시간이거나 이를 포함할 수 있다.
사용자 클러스터링 시스템(134)은 블록(506)에서 클러스터들의 세트에 대한 클러스터 정의들에 엑세스한다. 클러스터들의 세트에 대한 클러스터 정의들에 엑세스하는 단계는 사용자 데이터 저장소(142)에 접근하는 단계를 포함할 수 있다. 클러스터 정의들은 사용자들의 세트에 대한 사용자 상호작용 데이터로부터 유도되거나 이에 연관되어 있는 특성의 세트를 포함할 수 있다. 또한, 이 특성의 세트는 사용자 클러스터와 연관된 사용자들이 선호하는 팀메이트들 및/또는 상대들의 종류를 식별할 수 있다. 게다가, 특성의 세트는 사용자 클러스터와 연관된 사용자들의 특성을 포함하거나 식별할 수 있다.
블록(506)에서 엑세스된 클러스터 정의들 및 블록(504)에서 획득된 사용자 상호작용 데이터를 사용하여, 사용자 클러스터링 시스템(134)은 블록(508)에서 클러스터들의 세트로부터 클러스터를 식별한다. 클러스터들의 세트로부터 클러스터를 식별하는 단계는 사용자 상호작용 데이터의 특성을 각각의 클러스터들의 세트와 연관된 특성을 매치하는 단계를 포함할 수 있다. 예를 들어, 만약 사용자 상호작용 데이터가 사용자 깃발을 차지하는 스타일의 슈팅 게임에서 사용자가 뒤쪽에 머무르며 깃발을 보호하는 것을 선호한다는 것을 나타낸다면, 사용자 클러스터링 시스템(134)은 깃발을 차지하는 스타일의 슈팅 게임에서 깃발을 차지하려고 시도하는 데에 더 많은 시간을 소모하는 경향이 있는 팀메이트를 선호하는 사용자와 연관된 사용자 클러스터를 식별할 수 있다. 다른 예로서, 만약 사용자 상호작용 데이터가 비디오 게임을 플레이하는 다른 사용자와 비교하여 사용자가 특정한 비디오 게임을 플레이하는 스킬의 비교적 낮은 레벨을 가지고, 상대가 사용자보다 높은 스킬의 레벨을 가지고 있을 때, 사용자가 매치를 중단하는 경향이 있다는 것을 나타낸다면, 사용자 클러스터링 시스템(134)은 비디오 게임의 다른 사용자들과 비교하여 낮은 스킬의 다른 사용자들과 대항하여 플레이하는 것을 좋아하는 낮은 스킬의 사용자들과 연관된 사용자 클러스터를 식별할 수 있다.
일부 예들에서, 클러스터들의 세트로부터 클러스터의 결정은 게임에서 방해물들에 사용자가 어떻게 반응하는 지 여부를 포함하는 비디오 게임에서 이벤트들에 대한 사용자의 동작들 및 반응들을 식별하는 것을 포함할 수 있다. 추가적으로, 클러스터들의 세트로부터 클러스터의 결정은 게임에서 다른 사용자들에 대한 사용자의 동작들 또는 반응들을 식별하는 것을 포함할 수 있다. 이러한 동작들 또는 반응들은 특정한 특성과 연관된 사용자들과 플레이하거나 또는 그러한 사용자들에 대항하여 플레이할 때, 사용자가 조급하게 게임 또는 매치를 중단하는지 여부 또는 얼마나 자주 사용자가 조급하게 게임 또는 매치를 중단하는 지에 대한 결정을 포함할 수 있다. 또한, 동작들 또는 반응들은 특정한 특성과 연관된 사용자들과 플레이하거나 또는 그러한 사용자들에 대항하여 플레이할 때, 사용자의 플레이 스타일 또는 플레이 스타일에서의 변화와 관련될 수 있다.
사용자 상호작용 데이터로부터 획득된 사용자의 동작들 또는 반응들을 분석함으로써, 사용자의 참여 레벨은 결정될 수 있고 다양한 관련된 참여 특성들도 결정될 수 있다. 이러한 참여 특성들은 사용자가 비디오 게임(112)을 함께 플레이 하는 것을 선호하는 팀메이트들 및 상대들의 종류와 관련될 수 있다. 또한, 비디오 게임과의 사용자의 상호작용으로부터 유도된 사용자에 관한 이러한 참여 특성들 및/또는 다른 특성들은 사용자와 연관시킬 대응하는 클러스터를 식별하기 위하여 클러스터들의 세트와 연관된 특성들과 비교될 수 있다. 참여 특성들의 비제한적인 일부 예시들은 사용자 스킬 레벨; 바라는 상대의 스킬 레벨; 바라는 팀메이트의 스킬 레벨; 사용자의 캐릭터 선택 선호도; 상대의 바라는 캐릭터 선택; 팀메이트의 바라는 캐릭터 선택; 사용자의 플레이 스타일; 상대의 바라는 플레이 스타일; 및 팀메이트의 바라는 플레이 스타일을 포함할 수 있다.
일부 실시예에서, 참여 특성들은 사용자에게 제공될 수 있고, 그 결과, 사용자 클러스터링 시스템(134)은 참여 특성들에 관한 입력을 사용자로부터 수신할 수 있다. 예를 들어, 사용자는 분석에 사용자가 동의하는 지 여부를 나타낼 수 있다. 다른 예로, 사용자는 그 또는 그녀가 계속 사용할 것이 계획되거나 계획되지 않은 새로운 플레이 스타일을 실험하고 있는 지를 나타낼 수 있다. 그러나, 다른 예에서, 예를 들어, 사용자는 사용자가 개인적인 이유 때문에 선호하지 않는 상대들 또는 팀메이트들(예를 들어, 선호하지 않는 상대들 또는 팀메이트들은 친구들 또는 친척들이다.)과 함께 플레이하기 때문에, 그 또는 그녀가 바라는 상대 또는 팀메이트 특성들에 동의하지 않는다고 나타낼 수 있다. 사용자 클러스터링 시스템(134)은 특정한 사용자 클러스터의 선택을 확인하거나 조정하기 위해 사용자 입력을 사용할 수 있다. 일부 예들에서, 사용자 입력은 사용자 클러스터링 시스템(134)이 블록(504)에서 획득한 데이터의 양에 기초하여 가중치가 부여될 수 있다. 예를 들어, 사용자 입력은 히스토리가 거의 없는 사용자(예를 들어 2 또는 3 개의 플레이 세션들)에게는 가중치가 높게 부여될 수 있고, 매우 많은 히스토리를 가지는 사용자(예를 들어 50 또는 100개의 플레이 세션들)에게는 가중치가 덜 높게 부여될 수 있다.
일부 예들에서, 인터랙티브 컴퓨팅 시스템(130)은 스펙트럼에 대한 사용자의 참여 특성들을 나타내기 위하여 사용자에게 디스플레이 되기 위한 슬라이더들(sliders) 또는 다른 사용자 인터페이스 요소들을 야기할 수 있다. 예를 들어, 슬라이더는 사용자가 방어적인 게임 플랜을 플레이하거나 레인지 무기들(range weapons)을 사용하는 것을 선호하는 경향이 있는 시간의 퍼센트를 나타낼 수 있다. 비록 사용자 상호작용 데이터의 분석은 사용자에게 제공되지만, 그 정보가 사용자와 팀메이트들 또는 상대들의 매칭을 조절하기 위해 사용된다는 정보는 사용자가 통지 받을 수도 있고 통지 받지 않을 수도 있다.
사용자가 매치 또는 비디오 게임(112)의 일부를 플레이한 이후에, 사용자 클러스터링 시스템(134)은 사용자 선호도를 결정하는 것을 돕거나 사용자가 팀메이트들 또는 상대들의 선택을 어떻게 평가하는 지에 대한 정보를 획득하기 위해 사용자에게 질문할 수 있다. 항상 그런 것은 아니지만, 일반적으로 사용자에게 제공된 질문들은 완료된 비디오 게임의 일부 또는 매치의 상대들 또는 팀메이트들과 공유된 하나 이상의 식별된 특성들을 가지는 사용자들과 플레이할 때, 비디오 게임의 참여 레벨 및/또는 즐거움과 관련된다. 즉, 일반적으로, 항상 그러한 것은 아니지만, 제공되는 질문은 다를 사용자들에 대한 개인적인 공격들은 피하도록 설계된다. 사용자는 사용자가 플레이 세션을 마쳤다고 나타낸 후에 질문을 받을 수 있다. 따라서, 사용자는 사용자의 플레이 경험을 방해받지 않으면서, 그 또는 그녀의 경험에 대해 질문을 받을 수 있다. 또한, 사용자 클러스터링 시스템(134)은 팀메이트 또는 상대의 캐릭터 선택 또는 플레이 스타일을 포함하는 상대 또는 팀메이트에 대한 사용자의 견해 및/또는 사용자의 참여 레벨을 결정하기 위해 사용자의 채팅 매세지 데이터를 분석할 수 있다. 일부 예들에서, 채팅 메시지를 분석하는 것은 일부 사용자가 비디오 게임(112)의 세션에서 다른 사용자와 매치업 되는 데에 블랙 리스트에 올려져야 하는 지 여부를 결정하는 데에 또한 사용될 수 있다.
블록(510)에서, 사용자 클러스터링 시스템(134)은 사용자를 식별된 클러스터와 연관시킨다. 사용자를 식별된 클러스터에 연관시키는 단계는 사용자와 식별된 클러스터와의 연관성을 사용자 데이터 저장소(142)에 저장하는 단계를 포함할 수 있다.
일부 실시예들에서, 프로세스(500)는 사용자가 얼마나 비디오 게임(112)을 플레이 하는 것을 그만둘 것 같은지를 결정하는 데에 사용될 수 있다. 이러한 결정은 "이탈 비율(churn rate)" 또는 "이탈(churn)"로 종종 불릴 수 있고, 얼마나 자주 사용자가 비디오 게임들을 전환하는 지, 또는 특정한 비디오 게임을 플레이하는 것을 그만두는 지와 연관될 수 있다. 예를 들어, 하나 또는 두 개의 비디오 세션을 플레이하고 다른 비디오 게임으로 이동하는 경향이 있는 사용자는 높은 이탈 비율을 가질 수 있다. 그러한 사용자들을 식별함으로써, 특정한 사용자들에 대한 이탈의 비율을 줄이기 위한 매치 플랜 또는 매치업을 생성할 때에, 사용자를 위한 팀메이트들 또는 상대들의 선택을 변경하는 것이 가능할 수 있다. 예를 들어, 만약 사용자를 그들의 플레이 스타일에서 더 방어 지향적인 팀메이트들과 매치하는 것(예를 들어, 사용자와 비교하여, 팀메이트들이 게임 맵에 걸쳐 더 천천히 움직이는 경향이 있는 것)이 다른 매치 플랜들과 비교할 때 더 높은 비율로 사용자가 비디오 게임을 플레이하는 것을 중단하게 하거나, 매치들을 중단하게 한다는 것이 결정되었다면, 사용자는 더 빠른 플레이어들 또는 사용자는 더 공격-지향적인 플레이어들을 선호하는 사용자들의 클러스터와 연관될 수 있다.
일부 예들에서, 사용자는 상대 및 팀메이트 선호도 모두를 식별하는 단일 사용자 클러스터와 연관될 수 있다. 대안적으로, 사용자는 상대 및 팀메이트 선호도 모두를 식별하는 다중 사용자 클러스터들과 연관될 수 있다. 다른 실시예들에서, 사용자는 상대 선호도를 식별하는 하나 이상의 사용자 클러스터들과 연관되고, 팀메이트 선호도를 식별하는 하나 이상의 분리된 사용자 클러스터들과 연관될 수 있다. 일부 그러한 예들에서, 프로세스(500)는 상대 선호도를 식별하는 사용자와 연관될 하나 이상의 사용자 클러스터들을 결정하기 위해 한 번 이상 수행될 수 있고, 프로세스(500)는 팀메이트 선호도를 식별하는 사용자와 연관될 하나 이상의 사용자 클러스터들을 결정하기 위해 추가적으로 한 번 이상 수행될 수 있다. 또한, 일부 실시예들에서, 프로세스(500)는 스킬 레벨, 플레이 스타일, 사용자 위치, 사용자의 사용자 컴퓨팅 시스템(110)의 특징들, 사용자의 비디오 게임(112)의 플레이와 연관된 다른 특징들에 기초하여 사용자와 연관될 하나 이상의 사용자 클러스터를 식별하기 위해 수행될 수 있다. 이 사용자 클러스터 연관성은 다른 사용자의 선호도에 기초하여 매치 플랜동안 사용자를 다른 사용자들과 매치할 지 여부를 식별하는 것을 가능하게 한다. 따라서, 매치 플랜에 포함된 사용자의 선호도 및 다른 사용자들의 선호도 모두를 만족시키기 위한 매치 플랜을 생성하는 것을 가능하게 하기 위하여, 사용자는 사용자 선호도에 기초하여 하나 이상의 사용자 클러스터들에 연관될 수 있고, 사용자 특성들에 기초하여 추가적으로 하나 이상의 클러스터들에 연관될 수 있다.
상대 매치 메이킹 프로세스
도 6은 상대 매치 메이킹 프로세스(600)의 일 실시예를 제시하는 흐름도이다. 프로세스(600)는 비디오 게임을 플레이하기 위해 사용자를 상대와 매치할 수 있는 임의의 시스템에 의해 실행될 수 있다. 예를 들어, 프로세스(600)는 전체적으로 또는 부분적으로 그 중에서도 인터랙티브 컴퓨팅 시스템(130), 사용자 매칭 시스템(132), 사용자 클러스터링 시스템(134), 스킬 평가 시스템(136), 또는 사용자 컴퓨팅 시스템(110)에 의해 실행될 수 있다. 비록 임의의 숫자의 시스템은 전체적으로 또는 부분적으로 프로세스(600)을 실행할 수 있지만, 논의를 단순화하기 위하여, 프로세스(600)는 특정한 시스템들에 관하여 설명될 것이다. 또한, 프로세스(600)는 사용자 및/또는 사용자와 그 또는 그녀의 팀메이트들과 매치할 하나 이상의 상대들을 식별하기 위해 한 번 이상 수행될 수 있다.
프로세스(600)는 사용자 매칭 시스템(132)이 비디오 게임(112)을 플레이하려는 대기열에서 다수의 사용자들을 선택하는 블록(602)에서 시작한다. 사용자 매칭 시스템(132)은 제1 양 또는 임계 수의 사용자들을 대기열의 제1 위치에서 시작하여 대기열의 임계 위치에서 선택할 수 있다. 예를 들어, 사용자 매칭 시스템(132)은 처음 10, 20, 또는 50명의 사용자들을 대기열에서 선택할 수 있다. 대안적으로, 사용자 매칭 시스템(132)은 임계 수의 사용자들을 제1 임계 수의 사용자들을 포함하거나 포함하지 않는 대기열에서 선택할 수 있다. 예를 들어, 만약 사용자 매칭 시스템(132)은 50명의 사용자들을 선택하려 한다면, 선택된 사용자들은 처음 50명의 사용자들 일수도 있고 아닐 수도 있고, 대기열에 있을 수도 있고 아닐 수도 있다. 그러나 선택된 사용자들은 예를 들어 대기열에 첫 100명의 사용자들로부터의 50명의 사용자들의 선택을 포함할 수 있다. 대기열로부터의 사용자들의 선택은 대기열에서 사용자가 대기한 시간의 양; 블랙 리스트에 사용자의 포함; 다른 특정한 사용자와 또는 그 사용자에 대항하여 플레이 하고자 하는 사용자의 요청; 사용자의 지리적인 및/또는 네트워크 위치; 또는 사용자와 연관된 네트워크 특성들(예를 들어, 사용자의 로컬 네트워크의 속도 또는 패킷 드롭 비율(packet drop rate)) 중 적어도 하나에 부분적으로 기초할 수 있다.
블록(602)에서 선택된 각각의 사용자들에 대하여, 사용자 클러스터링 시스템(134)은 블록(604)에서 사용자와 연관된 사용자 클러스터를 식별한다. 사용자와 연관된 사용자 클러스터를 식별하는 단계는 사용자 데이터 저장소(142)로부터 사용자 클러스터들의 세트에 엑세스하는 단계를 포함할 수 있다. 사용자와 연관된 사용자 클러스터는 사용자 계정 이름, 사용자 아바타(avatar) 이름, 사용자 IP 주소, 또는 사용자와 연관된 사용자 클러스터를 식별하기 위해 사용되는 임의의 다른 식별 정보들에 적어도 부분적으로 기초하여 식별될 수 있다. 일부 경우들에서, 블록(604)은 각각의 사용자들에 대한 다중 사용자 클러스터들을 식별하는 단계를 포함할 수 있다. 예를 들어, 사용자 클러스터는 사용자의 상대 선호도와 관련하여 식별될 수 있고, 다른 사용자 클러스터는 사용자의 스킬 레벨 또는 플레이 스타일과 같은 사용자 특성들에 관련하여 식별될 수 있다.
블록(606)에서, 블록(602)에서 식별된 사용자들 각각에 대하여, 사용자 매칭 시스템(132)은 사용자와 연관된 사용자 클러스터에 적어도 부분적으로 기초하여 사용자의 상대 선호도를 결정한다. 일부 실시예들에서, 블록(604)에서의 사용자 클러스터의 식별 및/또는 블록(606)에서의 상대 선호도의 결정은 비디오 게임(112)에서 플레이할 수 있는 캐릭터의 사용자에 의한 선택에 적어도 부분적으로 기초할 수 있다. 예를 들어, 사용자는 사용자가 레인지 무기를 가진 캐릭터를 선택했을 때, 특정한 상대 선호도를 나타내는 하나의 사용자 클러스터와 연관될 수 있고, 사용자는 사용자가 난투 무기(melee weapon)을 가진 캐릭터를 선택했을 때, 다른 상대 선호도를 나타내는 다른 사용자 클러스터와 연관될 수 있다.
사용자 매칭 시스템(132)은 블록(608)에서, 블록(606)에서 결정된 사용자들 각각에 대한 상대 선호도에 부분적으로 기초하여 블록(602)에서 선택된 다수의 사용자들로부터 사용자들의 짝을 선택할 수 있다. 일부 예들에서, 블록(608)은 하나 이상의 사용자들의 짝을 선택하는 단계를 포함할 수 있다. 예를 들어, 플레이어들을 2x2, 3x3, 1x1x1, 5x5x5, or 2x2x2x2의 구성으로 매치시키는 비디오 게임에서, 블록(608)에서 하나 이상의 사용자들의 짝은 선택될 수 있다.
또한, 상대 선호도에 적어도 부분적으로 기초하여 사용자들의 짝을 선택하는 단계는 각각의 사용자들과 연관된 사용자 클러스터들에 부분적으로 기초하여 결정된 다른 사용자의 상대 선호도를 만족하거나 이와 매치되는 각각의 사용자의 특성들에 부분적으로 기초하여 사용자들의 짝에 대한 참여 점수를 생성하는 단계를 포함할 수 있다. 이 참여 점수는 각각의 사용자와 연관된 개별 참여 점수의 조합으로써 계산될 수 있다. 예를 들어, 만약 선택된 상대에 의해 10개의 선호도 중 7개의 선호도가 만족되었을 때, 사용자에 대해 7점의 참여 점수는 계산될 수 있다. 또한, 만약 사용자에 의해 상대의 10개의 선호도 중 8개의 선호도가 만족된다면 상대에 대해 8점의 참여도 점수가 계산될 수 있다. 매치에 대한 또는 사용자들의 짝에 대한 참여 점수는 7.5점의 참여 점수를 얻기 위해 두 개의 참여 점수들을 평균함으로써 계산될 수 있다.
일부 예들에서, 참여 점수가 임계 참여 점수를 만족하는 경우 사용자들의 짝은 선택될 수 있다. 예를 들어, 만약 임계 참여 점수가 7점이라면, 이전의 예시에서 사용자들의 짝은 매치를 플레이하기 위해 선택될 수 있다. 그러나, 임계 참여 점수가 8점이면, 이전 예에서의 사용자들의 짝은 매치를 플레이 하기 위해 선택되지 않을 수 있다. 임계 참여 점수는 비디오 게임을 플레이하기 위해 대기하는 대기열에서 사람의 수에 기초하거나(기초하고) 얼마나 오랫동안 선택된 사용자들의 짝에 사용자들이 대기열에 있었는지에 기초하여 변화할 수 있다. 사용자들의 팀들이 각각의 다른 사람들의 상대들에 대항하여 매치된 일부 예에서, 팀 내의 각각의 사용자들의 참여 점수는 임계 참여 점수가 만족되었는 지를 결정하기 위해 함께 종합(aggregate)될 수 있다.
상대 짝에 대한 참여 점수를 결정하는 단계는 사용자들 중 한 명에 대한 상대 선호도가 매치되거나 매치되지 않는 특성들의 하나 이상에 대해 가중치를 부여하는 단계를 포함할 수 있다. 예를 들어, 만약 사용자 클러스터가 사용자가 특정한 캐릭터를 고른 상대보다 숙련된 상대를 더 가치있게 여긴다고 나타낸다면, 사용자들의 쌍이 참여 점수 임계값을 만족하는지 여부를 결정할 때에, 상대의 스킬 레벨은 상대의 캐릭터 선택보다 더 높은 가중치가 부여될 수 있다.
블록(610)에서, 사용자 매칭 시스템(132)은 블록(608)에서 상대들로서 선택된 사용자들의 짝을 사용하는 비디오 게임(112)의 플레이할 수 있는 인스턴스를 시작한다. 일부 예들에서, 비디오 게임의 일 부분은 선택된 사용자들 각각에 대해 이미 실행되고 있을 수 있다. 예를 들어, 다른 사용자와 매치업을 요청하기 위해 사용자들이 플레이할 수 있는 캐릭터를 선택할 수 있게 하는 비디오 게임(112)의 일부는 프로세스(600)가 수행되기 전에 실행되는 상대이다. 따라서, 블록(610)은 비디오 게임(112)의 전체의 실행을 시작하기 보다는 비디오 게임(112)의 다른 부분 또는 사용자들 사이의 매치업을 시작하는 단계를 포함할 수 있다. 그러나, 특정한 실시예들에서, 블록(610)은 비디오 게임(112)의 전체를 시작하는 단계를 포함할 수 있다. 예를 들어, 개별 어플리케이션이 단계(600)를 실행하는 경우에, 블록(610)은 선택된 사용자들의 짝과 함께 비디오 게임(112)을 시작하는 단계를 포함할 수 있다.
일부 실시예들에서, 프로세스(600)는 비디오 게임(112)에서 상대들로서 플레이하는 사용자들의 단일 쌍을 선택한다. 프로세스(600)는 또 다른 비디오 게임(112)의 인스턴스에서 상대들로서 플레이하는 사용자들의 다른 쌍을 선택하기 위해 반복될 수 있다. 그러나, 일부 예들에서, 프로세스(600)의 단일 수행은 복수의 사용자들의 쌍들이 선택되고, 복수의 비디오 게임(112)의 인스턴스들이 복수의 선택된 사용자들의 쌍들에 기초하여 시작되게 할 수 있다. 예를 들어, 만약, 블록(608)에 관한 동작들을 수행하는 것이 각각이 참여 점수 임계점을 만족하는 20개의 사용자들의 쌍이 선택되도록 한다면, 20개의 비디오 게임(112)의 플레이할 수 있는 인스턴스들은 블록(610)에서 시작될 수 있다.
팀메이트 선택 프로세스의 예
도 7은 팀메이트 선택 프로세스의 일 실시예를 제시하는 흐름도이다. 프로세스(700)는 비디오 게임을 플레이하기 위해 사용자를 팀메이트와 매치할 수 있는 임의의 시스템에 의해 실행될 수 있다. 예를 들어, 프로세스(700)는 전체적으로 또는 부분적으로, 그 중에서도 인터랙티브 컴퓨팅 시스템(130), 사용자 매칭 시스템(132), 사용자 클러스터링 시스템(134), 스킬 평가 시스템(136), 사용자 컴퓨팅 시스템(110)에 의해 실행될 수 있다. 비록 임의의 숫자의 시스템들이 전체적으로 또는 부분적으로, 프로세스(700)을 실행할 수 있지만, 논의를 단순화하기 위하여, 프로세스(700)는 특정한 시스템들에 관해 설명될 것이다. 또한, 프로세스(700)는 사용자와 매치할 하나 이상의 팀메이트들을 식별하기 위해 한 번 이상 수행될 수 있다.
프로세스(700)는 사용자 매칭 시스템(132)이 비디오 게임(112)을 플레이하려는 대기열에서 다수의 사용자들을 선택한다. 일부 실시예들에서, 블록(702)는 블록(602)에 관해 위에 설명된 실시예들의 하나 이상을 포함할 수 있다. 일부 예들에서, 사용자들의 쌍은 예를 들어, 동일한 팀에 배치되도록 요청하였기 때문에, 적어도 일부의 선택된 사용자들은 순서에 위배되어 선택될 수 있다.
블록(702)에서 선택된 사용자들의 각각에 대하여 사용자 클러스터링 시스템(134)은 블록(704)에서 사용자와 연관된 사용자 클러스터를 식별한다. 일부 실시예들에서, 블록(704)은 블록(604)에 관하여 위에 설명된 하나 이상의 실시예들을 포함할 수 있다. 또한, 이미 설명된 바와 같이, 블록(704)에서 식별된 사용자 클러스터는 동일한 사용자 클러스터일 수 있고, 서로 다른 사용자 클러스터는 사용자에 대한 상대 선호도를 결정할 때에 식별될 수 있다.
블록(706)에서, 블록(702)에서 식별된 사용자들의 각각에 대하여, 사용자 매칭 시스템(132)은 사용자와 연관된 사용자 클러스터에 적어도 부분적으로 기초하여 사용자에 대한 팀메이트 선호도를 결정한다. 일부 실시예들에서, 블록(706)은 블록(606)에 관하여 위에 설명된 실시예들의 하나 이상을 포함할 수 있다. 블록(708)에서, 팀메이트가 되기를 요청한 다수의 사용자들과 함께 사용자들에 대하여, 사용자 매칭 시스템(132)은 종합된 팀메이트 선호도(aggregated teammate preferences)를 획득하기 위해 블록(706)에서 식별된 팀메이트 선호도를 종합할 수 있다. 유사하게, 팀메이트가 되기를 요청한 사용자들의 특성은 종합될 수 있다. 추가적인 팀메이트들 또는 상대들을 선택하는 경우에, 팀메이트가 되기를 요청한 사용자들은 다른 팀메이트 및/또는 상대들의 조합과 비교하여 더 높은 정도의 참여를 제공할 것 같은 추가적인 상대들 및/또는 팀메이트들을 결정하고자 하는 목적에서 함께 붙여지거나 단일 사용자로 여겨질 수 있다. 일부 실시예들에서, 블록(708)은 선택적이거나 생략될 수 있다. 예를 들어, 함께 플레이하는 것을 요청하는 사용자들이 없는 경우, 블록(708)은 선택적이거나, 생략될 수 있다.
블록(710)에서, 사용자 매칭 시스템(132)은 각각의 사용자들에 대한 팀메이트 선호도 및/또는 만약 있다면 종합된 팀메이트 선호도에 적어도 부분적으로 기초하여 다수의 사용자들로부터 사용자들의 세트를 선택할 수 있다. 일부 실시예들에서, 블록(710)은 블록(608)에 관해 설명된 실시예들을 하나 이상 포함할 수 있다.
블록(712)에서, 사용자 매칭 시스템(132)은 블록(710)에서 팀메이트들로써 선택된 사용자들의 세트를 사용하는 비디오 게임(112)의 플레이할 수 있는 인스턴스를 시작한다. 일부 실시예들에서, 블록(712)은 팀메이트들로써 선택된 사용자들의 세트에 적어도 부분적으로 기초하여 하나 이상의 컴퓨터-제어 상대들을 선택하는 단계를 포함할 수 있다. 또한, 일부 실시예들에서, 블록(712)은 블록(610)에 관해 설명된 실시예들의 하나 이상을 포함할 수 있다.
결합된 팀메이트 및 상대 선택 프로세스의 예
도 8은 결합된 팀메이트 및 상대 선택 프로세스(800)의 일 실시예의 흐름도를 제시한다. 프로세스(800)는 비디오 게임을 플레이 하기 위해 사용자를 하나 이상의 팀메이트들 및 하나 이상의 상대들과 매치할 수 있는 임의의 시스템에 의해 실행될 수 있다. 예를 들어, 프로세스(800)는 전체적으로 또는 부분적으로, 그 중에서도 인터랙티브 컴퓨팅 시스템(130), 사용자 매칭 시스템(132), 사용자 클러스터링 시스템(134), 스킬 평가 시스템(136), 사용자 컴퓨팅 시스템(110)에 의해 실행될 수 있다. 비록 임의의 수의 시스템들이, 전체적으로 또는 부분적으로 프로세스(800)을 실행할 수 있을지라도, 논의를 단순화하기 위하여, 프로세스(800)는 특정한 시스템들에 관하여 설명될 것이다.
프로세스(800)는 사용자 매칭 시스템(132)이 비디오 게임을 플레이하려는 대기열에서 다수의 사용자를 선택하는 블록(802)에서 시작한다. 일부 실시예들에서, 블록(802)은 블록(602)에 관하여 위에서 설명된 하나 이상의 실시예들을 포함할 수 있다. 일부 예들에서, 적어도 선택된 사용자들의 일부는 예를 들어, 사용자들의 짝이 동일한 팀에 배치되거나 상대들로써 매치되도록 요청하기 때문에 순서에 위배되어 선택될 수 있다.
블록(802)에서 선택된 각각의 사용자들에 대하여, 사용자 클러스터링 시스템(134)은 블록(804)에서 사용자와 연관된 상대 사용자 클러스터를 식별할 수 있다. 블록(802)에서 선택된 사용자들 각각에 대하여, 사용자 클러스터링 시스템(134)은 블록(806)에서 사용자와 연관된 팀메이트 사용자 클러스터를 식별한다. 일부 경우들에서, 블록(804)에서 사용자를 위해 선택된 상대 사용자 클러스터 및 블록(806)에서 사용자를 위해 선택된 팀메이트 사용자 클러스터는 동일한 사용자 클러스터이다. 다른 실시예들에서, 사용자 클러스터들은 다르다. 또한, 특정 실시예들에서, 블록들(804, 806)은 블록(604)에 관해 위에 설명된 하나 이상의 실시예들을 포함할 수 있다.
블록(808)에서, 사용자 매칭 시스템(132)은 사용자들 각각에 대한 상대 사용자 클러스터 및 팀메이트 사용자 클러스터에 적어도 부분적으로 기초하여 매치 플랜을 생성한다. 매치 플랜을 생성하는 단계는 비디오 게임(112)의 인스턴스를 플레이할 복수의 하나 이상의 사용자들의 세트들, 비디오 게임(112)의 인스턴스 내의 라운드 또는 매치를 선택하는 단계를 포함할 수 있다. 따라서, 예를 들어, 매치 플랜은 각각의 그룹당 두 명의 플레이어의 두 개의 그룹들, 또는 각각의 그룹당 네 명의 플레이어의 세 개의 그룹들, 또는 각각의 그룹 당 불균형한 숫자의 선수들의 조합을 포함하는, 각 그룹들 마다의 플레이어들 및 그룹들 임의의 다른 조합을 포함할 수 있다.
또한, 매치 플랜을 생성하는 단계는 상대들 및/또는 팀메이트들의 사용자 선택들을 설명하는 단계를 포함할 수 있다. 예를 들어, 비디오 게임(112)가 네 명의 플레이어의 두 개의 그룹을 서로 매치시킨다고 가정하자. 만약, 두 사용자들이 동일한 팀("팀 1")에서 반대의 팀("팀 2")에 있는 한 명의 다른 사용자에 대항하여 플레이하기를 바란다는 것을 나타낸다면, 사용자 매칭 시스템(132)은 다른 두 명의 사용자를 두 명의 사용자와 함께 팀 1에 있도록 선택할 수 있고, 세 명의 다른 사용자들은 한 명의 다른 사용자와 함께 팀 2에 있을 수 있도록 선택할 수 있다.
블록(810)에서, 사용자 매칭 시스템(132)은 매치 플랜에 포함되는 사용자들 각각에 대한 팀메이트 사용자 클러스터 및 상대 사용자 클러스터에 기초하여 매치 플랜에 대한 참여 점수 및 각각의 팀에 대한 참여 점수를 계산한다. 각각의 팀에 대한 참여 점수를 계산하는 단계는 사용자를 위한 팀메이트들이 사용자와 연관된 팀메이트 사용자 클러스터에 기초하여 사용자가 그 또는 그녀의 팀메이트들에 대해 바라는 특성과 연관되는지 여부를 팀 내의 각각의 사용자들에 대해 결정하는 단계를 포함할 수 있다. 또한, 각 팀에 대한 참여 점수를 결정하는 단계는 상대 팀의 사용자가 사용자와 연관된 상대 사용자 클러스터에 기초하여 사용자가 그 또는 그녀의 상대에 대해 바라는 특징들과 연관되는 지 여부를 팀 내의 각각의 사용자에 대해 결정하는 단계를 포함한다.
일부 예들에서, 각각의 사용자에 대해 참여 점수들을 계산하는 대신에, 팀메이트들 및/또는 상대들에 대한 참여 점수들은 팀에 대해 종합적으로 계산될 수 있다. 예를 들어, 하나의 특징은 바라는 상대들의 스킬 레벨과 관련된다고 가정하자. 팀 내의 각각의 사용자에 대한 바라는 상대들의 스킬 레벨은 평균이 구해질 수 있고, 상대팀의 개별 사용자의 스킬 레벨과 비교되거나 또는 종합적으로 비교된다. 매치 플랜에 대한 참여 점수는 각각의 팀들에 대한 참여 점수를 종합하거나(종합하고), 평균을 구하는 것에 의해 계산될 수 있다.
결정 블록(812)에서, 사용자 매칭 시스템(132)은 블록(810)에서 계산된 참여 점수들이 임계 점수를 만족하는지 여부를 결정한다. 일부 예에서, 결정 블록(812)은 매치 플랜에 대한 참여 점수가 매치 플랜 점수 임계값을 만족하는지 여부를 결정할 수 있다. 대안적으로, 또는 추가적으로, 결정 블록(812)은 팀메이트로써 사용자들의 선택 및/또는 상대로써 사용자들의 선택과 관련된 하나 이상의 참여 점수들이 참여 점수 임계값과 매치되는 지 여부를 결정할 수 있다. 여기서, 참여 점수 임계값은 매치 플랜 임계값과 다르거나 다르지 않을 수 있다.
만약, 결정 블록(812)에서 블록(810)에서 계산된 하나 이상의 참여 점수들이 대응하는 참여 점수 임계값들과 매치된다는 것이 결정되면, 사용자 매칭 시스템(132)은 매치 플랜(814)를 사용하는 비디오 게임의 플레이할 수 있는 인스턴스를 시작한다. 일부 실시예들에서, 비디오 게임의 플레이 할 수 있는 인스턴스를 시작하는 단계는 선택된 사용자들의 팀들과 함께 비디오 게임(112) 또는 매치를 시작하기 위해 사용자들의 신원(identity)을 어플리케이션 호스트 시스템(138)에 제공하는 단계를 포함할 수 있다. 또한, 일부 실시예들에서, 블록(814)은 블록(610)에 관해 이미 설명된 하나 이상의 실시예를 포함할 수 있다.
만약 블록(812)에서, 블록(810)에서 계산된 적어도 하나의 참여 점수는 대응하는 참여 점수 임계점을 만족하지 않는다면, 사용자 매칭 시스템(132)은 결정 블록(816)에서 매치 선택 시간이 시간 임계값을 초과하는지 여부를 결정한다. 만약 그러하다면, 프로세스(800)는 현재 매치 플랜 또는 가장 높은 매치 플랜 참여 점수를 사용하여 블록(814)으로 진행한다.
만약 결정 블록(816)에서 매치 선택 시간이 시간 임계량을 초과하지 않는다는 것이 결정된다면, 프로세스(800)는 대안적인 매치 플랜이 생성되는 블록(808)으로 되돌아 온다. 대안적인 매치 플랜을 생성하는 단계는 원래의 또는 이전의 매치 플랜의 한 명 이상의 사용자들을 블록(802)에서 선택된 사용자들에 포함되는 다른 사용자들로 대체하는 단계를 포함한다. 일부 예에서, 사용자 매칭 시스템(132)은 참여 점수가 참여 점수 임계값에서 가장 먼 한 명 이상의 사용자들을 대체할 수 있다. 다른 예에서, 사용자 매칭 시스템(132)은 임의로 또는 특정한 사용자 선택 알고리즘을 사용하여 사용자들을 대체할 수 있다. 만약 사용자 매칭 시스템(132)이 참여 점수 임계값들을 만족한 매치 플랜을 식별하지 않는다면, 사용자 매칭 시스템(132)은 블록(802)에서 선택된 플레이어들의 수를 증가시키거나 조절할 수 있다. 대안적으로 또는 추가적으로, 사용자 매칭 시스템(132)은 블록(802)에서 선택된 한 명 이상의 플레이어들을 대기열에 있는 다른 플레이어들로 대체할 수 있다.
특정한 실시예들에서, 사용자 매칭 시스템(132)은 하나 이상의 비디오 게임(112)의 인스턴스들을 플레이하기 위하여, 임의로 또는 특정한 선택 알고리즘을 사용하여 사용자를 선택할 수 있다. 사용자 매칭 시스템(132)은 예를 들어, 매치 플랜들을 생성하는 데에 사용되는 사용자 특성들 및 사용자들의 클러스터들의 정확성을 확인하거나 생성하기 위해, 프로세스(800)를 사용하지 않고 사용자들을 주기적으로 선택할 수 있다.
컴퓨팅 시스템의 개관
도 9는 게임 시스템으로 또한 지칭될 수 있는 사용자 컴퓨팅 시스템(110)의 일 실시예를 도시한다. 도시된 바와 같이, 사용자 컴퓨팅 시스템(110)은 여러 가지 요소들을 포함할 수 있는 단일 컴퓨팅 장치일 수 있다. 그러나, 일부 예에서, 사용자 컴퓨팅 시스템(110)은 다중 장치들을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛 및 그래픽 프로세싱 유닛을 포함하는 하나의 장치 및 디스플레이를 포함하는 다른 장치, 키보드 또는 마우스와 같은 입력 매커니즘을 포함하는 또 다른 장치를 포함할 수 있다.
사용자 컴퓨팅 시스템(110)은 게임 시스템을 실행할 수 있는 컴퓨팅 시스템의 일실시예일 수 있다. 도 9의 비 제한적인 예시에서, 사용자 컴퓨팅 시스템(110)은 터치 스크린 디스플레이(902)를 통해 사용자로부터 입력을 수신할 수 있는 터치-가능 컴퓨팅 장치이다. 그러나, 사용자 컴퓨팅 시스템(110)은 이에 한정되지 않고, 터치 스크린 디스플레이(902)를 포함하지 않는 터치가 가능하지 않은 실시예들을 포함할 수 있다.
사용자 컴퓨팅 시스템(110)은 터치 스크린 디스플레이(902) 및 터치 스크린 인터페이스(904)를 포함하고, 게임 어플리케이션(910)을 실행하도록 구성된다. 이 게임 어플리케이션은 비디오 게임(112) 또는 비디오 게임(112)의 지원 하에 또는 비디오 게임(112)과 함께 실행되는 어플리케이션일 수 있다. 비록 게임 어플리케이션(910)으로써 설명되었으나, 일부 실시예들에서, 게임 어플리케이션(910)은 교육적 소프웨어와 같이, 사용자의 능력 또는 선호도에 적어도 부분적으로 기초하여 가변적인 실행 상태를 포함할 수 있는 다른 종류의 어플리케이션일 수 있다. 사용자 컴퓨팅 시스템(110)은 터치 스크린 디스플레이(902)를 포함하지만, 다양한 입력 장치들이 추가적으로 사용되거나, 터치 스크린 디스플레이(902)를 대신하여 사용될 수 있다는 것을 알 수 있다.
사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛들(CPUs), 그래픽 프로세싱 유닛들(GPUs), 가속 프로세싱 유닛들(APUs)과 같은 하나 이상의 프로세서들을 포함할 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 하나 이상의 데이터 저장 요소들을 포함할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 게임 어플리케이션(910)을 실행하기 위한 목적을 위해 생성된 전문화된 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 비디오 게임 콘솔일 수 있다. 사용자 컴퓨팅 시스템(110)에 의해 실행되는 게임 어플리케이션(910)은 특정한 어플리케이션 프로그래밍 인터페이스(API)를 사용하여 생성되거나, 사용자 컴퓨팅 시스템(110)에 특정될 수 있는 특정한 명령어 세트로 컴파일될 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 게임 어플리케이션(910) 및 비 게임 어플리케이션들을 실행할 수 있는 일반적인 목적의 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 통합된 터치 스크린 디스플레이를 포함하는 랩탑 또는 외부 터치 스크린 디스플레이를 포함하는 데스크탑 컴퓨터일 수 있다. 사용자 컴퓨팅 시스템(110)의 예시적인 실시예의 요소들은 도 8에 관련 지어 더 자세히 설명된다.
터치 스크린 디스플레이(902)는 용량성 터치 스크린, 저항성 터치 스크린, 표면 탄성파 터치 스크린, 또는 터치 입력으로 지칭되는 사용자로부터의 촉각 입력을 수신하도록 구성된 다른 종류의 터치 스크린 기술일 수 있다. 예를 들어, 터치 입력은 스크린을 터치하는 손가락, 스크린을 터치하는 다중 손가락들, 스타일러스(stylus), 또는 터치스크린 디스플레이(902)에 터치 입력을 등록하는 데에 사용되는 다른 자극들을 통해 수신될 수 있다. 터치 스크린 인터페이스(904)는 터치 입력을 데이터로 변환하고, 그 데이터를 출력하여 운영 체제 및 게임 어플리케이션(910)과 같은 사용자 컴퓨팅 시스템(110)의 요소들에 의해 해석될 수 있도록 한다. 터치 스크린 인터페이스(904)는 촉각 터치 입력의 특징들을 터치 입력 데이터로 변환할 수 있다. 일부 터치 입력의 예시적인 특성은 모양, 사이즈, 압력, 위치, 방향, 모멘텀, 지속시간, 및/또는 특성들을 포함할 수 있다. 터치 스크린 인터페이스(904)는 예를 들어, 탭(tap)(예를 들어, 단일 위치에 터치 및 릴리즈(release)하는) 또는 스와이프(swipe)(예를 들어, 단일 터치 입력에서, 터치 스크린 상에 복수의 위치에 걸친 움직임)와 같은 터치 입력의 종류를 결정하도록 구성될 수 있다. 터치 스크린 인터페이스(904)는 동시에 또는 실질적으로 병렬로 발생하는 다중 터치 입력들과 연관된 터치 입력 데이터를 탐지하고 출력하도록 구성될 수 있다. 일부의 경우들에서, 동시의 터치 입력들은 사용자가 제1 터치를 터치 스크린 디스플레이(902)에 유지하고 이어서 터치 스크린(902)에 제2 터치를 수행하는 인스턴스들을 포함할 수 있다. 터치 스크린 인터페이스(904)는 터치 입력들의 움직임을 탐지하도록 구성될 수 있다. 터치 입력 데이터는 프로세싱을 위해 사용자 컴퓨팅 시스템(110)에 전송될 수 있다. 예를 들어, 터치 입력 데이터는 프로세싱을 위해 게임 어플리케이션(910)에 직접 전송될 수 있다.
일부 실시예들에서, 터치 입력 데이터는 게임 어플리케이션(910)에 출력되기 전에 터치 스크린 인터페이스(904), 운영 체제, 또는 다른 컴포넌트들에 의해 프로세싱 및/또는 필터링을 거칠 수 있다. 일 예로써, 원시 데이터는 터치 입력으로부터 캡쳐될 수 있다. 원시 데이터는 필터링되어 배경 잡음을 제거할 수 있고, 입력과 연관된 압력 값들이 측정될 수 있고, 터치 입력과 연관된 위치 좌표가 계산될 수 있다. 게임 어플리케이션(910)에 제공되는 터치 입력 데이터의 종류는 터치 스크린 인터페이스(904)의 특정한 실행 및 터치 스크린 인터페이스(904)와 연관된 특정 API에 의존할 수 있다. 일부 실시예에서, 터치 입력 데이터는 터치 입력의 위치 좌표를 포함할 수 있다. 터치 신호 데이터는 결정된 주파수로 출력될 수 있다. 터치 입력들을 프로세싱하는 것은 초당 여러 번 계산될 수 있고, 터치 입력 데이터는 추가적인 프로세싱을 위해 게임 어플리케이션으로 출력될 수 있다.
게임 어플리케이션(910)은 사용자 컴퓨팅 시스템(110)에 실행되도록 구성될 수 있다. 게임 어플리케이션(910)은 또한 비디오 게임, 게임, 게임 코드 및/또는 게임 프로그램으로 불릴 수 있다. 게임 어플리케이션은 사용자 컴퓨팅 시스템(110)이 사용자가 플레이하기 위한 게임을 제공하기 위해 사용할 수 있는 소프트웨어 코드를 포함한다는 것은 이해되어야 한다. 게임 어플리케이션(910)은 사용자 컴퓨팅 시스템(110)에 실행할 프로세서 명령어들을 알리는 소프트웨어 코드를 포함할 수 있지만, 상수들, 이미지들 및 다른 데이터 구조들과 관련된 데이터와 같은 게임의 플레이에 사용되는 데이터를 포함할 수 있다. 예를 들어, 도시된 실시예에서, 게임 어플리케이션은 게임 엔진(912), 게임 데이터(914), 게임 상태 정보(916)를 포함한다.
터치 스크린 인터페이스(904) 또는 운영 체제와 같은 사용자 컴퓨팅 시스템(110)의 다른 컴포넌트들은 터치 입력과 같은 사용자 입력을 게임 어플리케이션(910)에 제공할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 마우스, 키보드, 카메라, 게임 컨트롤러 등과 같은 대안적인 또는 추가적인 사용자 입력 장치들을 포함할 수 있다. 사용자는 터치 스크린 인터페이스(904) 및/또는 하나 이상의 대안적인 또는 추가적인 사용자 입력 장치들을 통해 게임 어플리케이션(910)과 상호작용할 수 있다. 게임 엔진(912)은 사용자 컴퓨팅 시스템(110) 내의 게임 어플리케이션(910)의 동작의 측면들을 실행하도록 구성될 수 있다. 게임 어플리케이션 내의 게임 플레이의 측면들의 실행은 수신된 사용자 입력, 게임 데이터(914), 및 게임 상태 정보(916)에 적어도 부분적으로 기초할 수 있다. 게임 데이터(914)는 게임 룰들, 미리 기록된 움직임 캡쳐 포즈들/경로들, 환경 설정들, 제한들, 에니메이션 참조 곡선들, 골격 모델들, 및/또는 다른 게임 어플리케이션 정보를 포함할 수 있다. 또한, 게임 데이터(914)는 게임 어플리케이션(910)의 난이도를 조절하거나 설정하는 데에 사용될 수 있는 정보를 포함할 수 있다.
게임 엔진(912)은 게임 룰에 따라 게임 내에서 게임 플레이를 실행할 수 있다. 일부 게임 룰들의 예시들은 채점, 가능한 입력들, 동작들/이벤트들, 입력에 따른 움직임 등을 포함할 수 있다. 다른 컴포넌트들은 어떠한 입력을 수용할 수 있는지, 어떻게 게임이 진행되는지, 및 게임 플레이의 다른 측면들을 제어할 수 있다. 게임 어플리케이션(910)의 실행 동안에, 게임 어플리케이션(910)은 캐릭터 상태들, 환경 상태들, 장면 객체 저장(scen object storage), 및/또는 게임 어플리케이션(910)의 실행의 상태와 연관된 다른 정보들을 포함할 수 있는 게임 상태 정보(916)를 저장할 수 있다. 예를 들어, 게임 상태 정보(916)는 캐릭터의 위치, 캐릭터의 동작, 게임 레벨 특징들, 및 게임 어플리케이션의 상태에 기여하는 다른 정보들과 같은 특정 시간 지점에 게임 어플리케이션의 상태를 식별할 수 있다.
게임 엔진(912)은 사용자 입력들을 수신하고, 동작들, 충돌들, 달리기, 던지기, 공격 및 게임 어플리케이션(910)에 적합한 다른 이벤트들과 같은 인-게임 이벤트들을 결정할 수 있다. 동작 동안, 게임 엔진(912)은 적절한 인-게임 이벤트들을 결정하기 위하여 게임 데이터(914) 및 게임 상태 정보(916)를 읽을 수 있다. 한 예시에서, 게임 엔진(912)이 캐릭터 이벤트들을 결정한 후에, 캐릭터 이벤트는 이벤트에 응답하여 캐릭터가 취해야할 적절한 움직임들을 결정하는 움직임 엔진으로 전달될 수 있고, 그러한 모션들을 에니메이션 엔진에 전달할 수 있다. 에니메이션 엔진은 캐릭터의 새로운 포즈를 결정할 수 있고, 스키닝 및 렌더링 엔진(skinning and rendering engine)에 새로운 포즈를 제공할 수 있다. 스키닝 및 렌더링 엔진은 차례로, 생물 개체, 무생물 개체, 및 배경 개체를 전체 화면으로 결합하기 위해 캐릭터 이미지를 개체 결합기(object combiner)에 제공할 수 있다. 전체 화면은 사용자에게 디스플레이하기 위한 새로운 프레임을 생성하는 렌더러(renderer)로 전달될 수 있다. 프로세스는 게임 어플리케이션의 실행 동안 각 프레임을 렌더링하기 위해 반복될 수 있다. 비록 프로세스는 캐릭터의 컨텍스트(context)로 설명되었지만, 프로세스는 프로세싱 이벤트들 및 사용자에게 디스플레이하기 위한 출력을 렌더링하는 임의의 프로세스에 적용될 수 있다.
컴퓨팅 시스템의 하드웨어 구성의 예
도 10은 도 9의 사용자 컴퓨팅 시스템(110)의 하드웨어 구성의 일실시예를 도시한다. 사용자 컴퓨팅 시스템(110)의 다른 변형들은 사용자 컴퓨팅 시스템(110)에 대한 구성 요소를 제거하거나 추가하는 것과 같이 여기에 명시적으로 제시된 예들을 대체할 수 있다. 사용자 컴퓨팅 시스템(110)은 전용 게임 장치, 스마트폰, 태블릿, 개인 컴퓨터, 데스크탑, 랩탑, 스마트 TV, 자동자 콘솔 디스플레이 등을 포함할 수 있다. 또한, (비록 도 8에 명시적으로 개시되지 않았지만) 도 9에 도시된 바와 같이 사용자 컴퓨팅 시스템(110)은 선택적으로 터치 스크린(902) 및 터치 스크린 인터페이스(904)를 포함할 수 있다.
도시된 바와 같이, 사용자 컴퓨팅 시스템(110)은 사용자 컴퓨팅 시스템(110)의 다른 컴포넌트들 및 또한 사용자 컴퓨팅 시스템(110)의 외부의 컴포넌트들과 상호작용하는 프로세싱 유닛(20)을 포함한다. 게임 미디어(12)와 통신할 수 있는 게임 미디어 리더기(22)가 포함될 수 있다. 게임 미디어 리더기(22)는 CD-ROM 또는 DVD들과 같은 광 디스크들을 읽을 수 있는 광 디스크 리더기 또는 게임 미디어(12)로부터 데이터를 수신하고 읽을 수 있는 임의의 다른 종류의 리더기일 수 있다. 일부 실시예들에서, 게임 미디어 리더기(22)는 선택적이거나 생략될 수 있다. 예를 들어, 게임 컨텐츠 또는 어플리케이션은 네트워크 입력/출력(38)을 통해 네트워크로 엑세스되어 게임 미디어 리더기(22) 및/또는 게임 미디어(12)를 선택적으로 렌더링할 수 있다.
사용자 컴퓨팅 시스템(110)은 분리된 그래픽 프로세서(24)를 포함할 수 있다. 일부 예들에서, 그래픽 프로세서(24)는 APU와 같은 프로세서 유닛(20)에 내장될 수 있다. 일부 그러한 예들에서, 그래픽 프로세서(24)는 랜덤 엑세스 메모리(RAM)를 프로세싱 유닛(20)와 공유할 수 있다. 대안적으로 또는 추가적으로, 사용자 컴퓨팅 시스템(110)은 프로세싱 유닛(20)과 분리된 이산 그래픽 프로세서(24)를 포함할 수 있다. 그러한 일부 예들에서, 그래픽 프로세서(24)는 프로세싱 유닛(20)과 분리된 RAM을 가질 수 있다.또한, 일부 예들에서, 그래픽 프로세서(24)는 하나 이상의 추가적인 그래픽 프로세서와 함께 동작하거나, 온-보드 그래픽 칩 또는 장치(on-board graphic chip or device)라고 종종 불리고, 마더 보드(mother board)에 내장될 수 있는 비 이산 또는 내장된 그래픽 프로세싱 유닛과 함께 동작할 수 있다.
사용자 컴퓨팅 시스템(110)은 입력/출력(I/O)(32), 사용자 입력/출력(user I/O)(34), 디스플레이 입력/출력(display I/O)(36), 및 네트워크 입력/출력(network I/O)(38)과 같은 입력/출력을 가능하게 하는 다양한 컴포넌트들을 또한 포함한다. 미리 설명된 바와 같이, 입력/출력 컴포넌트들은 일부의 경우에, 터치 가능 장치를 포함할 수 있다. 입력/출력(32)는 컴퓨팅 장치(800)에 저장소를 제공하기 위해 저장 요소(40) 및 장치(42)를 통해 제거 가능한 저장소 미디어(44)와 상호작용할 수 있다. 프로세싱 유닛(20)은 입력/출력(32)를 통해 게임 상태 데이터 및 임의의 공유된 데이터 파일들과 같은 데이터를 저장하기 위해 통신할 수 있다. 저장소(40) 및 제거 가능한 저장소 미디어(44)에 추가하여, 컴퓨팅 장치(800)는 또한 ROM(Read-Only Memory)(46) 및 RAM(48)을 포함하여 도시된다. RAM(48)은 게임이 플레이 될 때와 같이 자주 엑세스 되어야 하는 데이터를 위해 사용될 수 있다.
사용자 입력/출력(34)은 프로세싱 유닛(20)과 게임 컨트롤러와 같은 사용자 장치들 사이에 명령을 전송 및 수신하기 위해 사용된다. 일부 예들에서, 사용자 입력/출력(34)은 터치 스크린 입력들을 포함할 수 있다. 이미 설명된 바와 같이, 터치 스크린은 용량성 터치 스크린, 저항성 터치 스크린, 또는 사용자로부터 촉각 입력을 통해 사용자 입력을 수신하도록 구성된 다른 종류의 터치 스크린 기술일 수 있다. 디스플레이 입력/출력(36)은 플레이 되는 게임으로부터의 이미지를 디스플레이하기 위해 사용되는 입력/출력 기능들을 제공한다. 네트워크 입력/출력(38)은 네트워크를 위한 입력/출력 기능들을 위해 사용된다. 네트워크 입력/출력(38)은 게임이 온라인으로 플레이되거나 온라인으로 엑세스되는 경우와 같이 게임의 실행 동안 사용될 수 있다.
디스플레이 출력 신호들은 디스플레이 입력/출력(36)에 의해 생성될 수 있고, 그래픽, 사용자 인터페이스, 비디오, 및/또는 다른 시각적 컨텐츠와 같은 디스플레이 장치 상의 컴퓨팅 장치(800)에 의해 생성되는 시각적 컨텐츠를 디스플레이하기 위한 신호를 포함할 수 있다. 사용자 컴퓨팅 시스템(110)은 사용자에게 디스플레이하기 위한 출력일 수 있는 디스플레이 입력/출력(36)에 의해 생성되는 디스플레이 출력 신호들을 수신하도록 구성된 하나 이상의 통합된 디스플레이를 포함할 수 있다. 일부 실시예들에 따르면, 디스플레이 입력/출력(36)에 의해 생성되는 디스플레이 출력 신호들은 컴퓨팅 장치(800)의 외부에 있는 하나 이상의 디스플레이 장치들로 출력될 수 있다.
사용자 컴퓨팅 시스템(110)은 클락(50), 플래쉬 메모리(52), 및 다른 컴포넌트들과 같은 게임에 사용될 수 있는 다른 특징들을 또한 포함할 수 있다. 오디오/비디오 플레이어(56) 영화와 같은 비디오 시퀀스를 플레이하는 데에 또한 사용될 수 있다. 다른 컴포넌트들은 사용자 컴퓨팅 시스템(110)에 제공될 수 있고, 통상의 기술자는 사용자 컴퓨팅 시스템(110)의 다른 변형들을 이해할 수 있을 것이란 것은 이해되어야 한다.
프로그램 코드는 ROM(46), RAM(48), 저장소(40)(하드 디스크, 다른 자기 저장소, 광학 저장소, 고체 상태 드라이브들, 및/또는 다른 비 휘발성 저장소, 또는 이들의 조합 또는 변형을 포함할 수 있음)에 저장될 수 있다. 적어도 프로그램 코드의 일부는 프로그램 가능한 ROM(ROM, PROM, ERPOM, EEPROM 등), 저장소(40), 및/또는 게임 미디어(12)(CD-ROM, 카트리지, 메모리 칩 등, 또는 필요에 따라 다른 전자 채널 또는 네트워크를 통해 획득됨)와 같은 제거 가능한 미디어에 저장될 수 있다. 일반적으로, 프로그램 코드는 유형의 비 일시적 신호-전달 매체에 구현된 것이 발견될 수 있다.
랜덤 엑세스 메모리(RAM)(48)(그리고 아마도 다른 저장소)는 필요에 따라 변수들 및 다른 게임 및 프로세서 데이터를 저장하는 데에 사용할 수 있다. RAM은 사용되고, 게임의 플레이 도중에 생성되는 데이터를 보유하고, 그 중의 일부는 프레임 버퍼, 게임 상태 및/또는 사용자 입력을 해석하고, 게임 디스플레이들을 생성하는 데에 사용할 수 있거나 필요한 다른 데이터를 위해 저장될 수 있다. 일반적으로 RAM(48)은 휘발성 저장소이고 RAM(48)에 저장된 데이터는 사용자 컴퓨팅 시스템(110)이 꺼지거나 전원을 잃을 때, 소실된다.
사용자 컴퓨팅 시스템(110)이 게임 미디어(12)를 읽고, 게임을 제공함에 따라, 정보는 게임 미디어(12)로부터 읽혀질 수 있고, RAM(48)과 같은 메모리 장치에 저장될 수 있다. 추가적으로 저장소(40), ROM(46), 네트워크를 통해 엑세스되는 서버(미도시), 또는 제거 가능한 저장소 미디어(46)로부터의 데이터는 읽혀지고, RAM(48)으로 로드될 수 있다. 비록 데이터는 RAM(48)에서 발견되는 것으로 설명되었지만, 데이터는 RAM(48)에 저장될 필요가 없고 프로세스 유닛(20)에 엑세스 가능한 다른 메모리에 저장되거나 게임 미디어(12) 및 저장소(40)과 같은 다수의 미디어 사이에 분산될 수 있다는 것은 이해될 수 있다.
추가적인 실시예들
특정한 실시예들에서, 비디오 게임의 인스턴스를 플레이하기 위해 대기하는 사용자들의 대기열에서 적어도 복수의 사용자들을 선택하는 특정한 컴퓨터 실행 가능 명령어들과 함께 구성된 인터랙티브 컴퓨팅 시스템에 의해 실행될 수 있는 컴퓨터 구현 방법이 개시된다. 적어도 비디오 게임의 인스턴스의 제1 부분은 사용자들의 대기열에서의 적어도 하나의 사용자의 사용자 컴퓨팅 장치에 실행될 수 있고, 비디오 게임의 인스턴스의 제2 부분은 인터랙티브 컴퓨팅 시스템에 실행될 수 있다. 복수의 사용자들로부터의 제1 사용자에 대하여, 방법은 제1 사용자의 제1 사용자 신원에 적어도 부분적으로 기초하여 복수의 사용자 클러스터들로부터의 제1 사용자와 연관된 제1 사용자 클러스터를 식별하는 단계를 포함할 수 있다. 제1 사용자 클러스터는 제1 비디오 게임에 대한 매치 메이킹 선호도의 세트와 연관될 수 있다. 복수의 사용자들로부터의 제2 사용자에 대하여, 방법은 제2 사용자의 제2 사용자 신원에 적어도 부분적으로 기초하여 복수의 사용자 클러스터들로부터의 제2 사용자와 연관된 제2 사용자 클러스터를 식별하는 단계를 포함할 수 있다. 제2 사용자 클러스터는 제2 비디오 게임에 대한 매치 메이킹 선호도의 세트와 연관될 수 있다. 일부의 예에서, 방법은 제1 매치 메이킹 선호도의 세트 및 제2 매치 메이킹 선호도의 세트에 적어도 부분적으로 기초하여 복수의 사용자들로부터의 제1 사용자 및 제2 사용자를 선택하는 단계를 포함할 수 있다. 또한 방법은 제1 사용자 및 제2 사용자를 비디오 게임 인스턴스의 플레이어로써 함께 비디오 게임의 인스턴스를 시작하는 단계를 포함할 수 있다.
일부 실시예들에서, 제1 매치 메이킹 선호도의 세트 및 제2 매치 메이킹 선호도의 세트는 상대 선호도와 관련되고, 제1 사용자 및 제2 사용자는 비디오 게임의 인스턴스에서 상대들로 지정된다. 다른 실시예들에서, 제1 매치 메이킹 선호도의 세트 및 제2 매치 메이킹 선호도의 세트는 팀메이트 선호도와 관련되고, 제1 사용자 및 제2 사용자는 비디오 게임의 인스턴스에서 팀메이트들로 지정된다. 일부 예들에서, 복수의 사용자들은 사용자들의 대기열에 포함된 사용자들의 부분 집합을 포함하고, 복수의 사용자들은 하나 이상의 선택 기준에 기초하여 선택될 수 있다. 또한, 선택 기준은 대기열에서의 사용자의 시간의 길이; 사용자의 지리적인 위치; 사용자의 블랙 리스트 상의 포함 여부; 비디오 게임의 인스턴스의 제2 부분을 호스트하는 인터랙티브 컴퓨팅 시스템의 호스트 서버로부터의 지리적인 거리; 또는 호스트 서버로부터의 네트워크 거리를 포함할 수 있다. 일부 예에서, 제1 매치 메이킹 선호도의 세트 및 제2 매치 메이킹 선호도의 세트는 동일하다.
특정한 구현에서, 복수의 사용자들로부터 제1 사용자 및 제2 사용자를 선택하는 단계는 제1 매치 메이킹 선호도의 세트 및 제2 사용자와 연관된 제1 특성의 세트에 적어도 부분적으로 기초하여 제1 사용자에 대한 제1 참여 점수를 결정하는 단계를 포함한다. 또한, 방법은 제2 매치 메이킹 선호도 세트 및 제1 사용자와 연관된 제2 특성의 세트에 적어도 부분적으로 기초하여 제2 사용자에 대한 제2 참여 점수를 결정하는 단계를 포함할 수 있다.
또한, 방법은 종합된 참여 점수를 획득하기 위하여 제1 참여 점수 및 제2 참여 점수를 종합하는 단계 및 종합된 참여 점수가 참여 임계값을 만족하는지 여부를 결정하는 단계를 포함할 수 있다. 종합된 참여 점수가 참여 임계값을 만족하는 것에 응답하여, 방법은 복수의 사용자들로부터 제1 사용자 및 제2 사용자를 결정하는 단계를 포함할 수 있다. 일부 경우들에서, 제1 특성들의 세트 및 제2 특성들의 세트는 플레이 스타일; 스킬 레벨; 바라는 상대 스킬 레벨을 하나 이상 포함할 수 있다. 게다가, 제1 참여 점수는 제1 사용자가 비디오 게임을 플레이하는 것을 중단할 확률에 반대로 대응할 수 있고, 제2 참여 점수는 제2 사용자가 비디오 게임을 플레이하는 것을 중단할 확률에 반대로 대응할수 있고, 종합된 참여 점수는 제1 사용자 또는 제2 사용자 중 적어도 한 명의 사용자가 비디오 게임을 플레이하는 것을 중단할 확률에 반대로 대응할 수 있다.
일부 실시예들에서, 복수의 사용자들로부터 제1 사용자 및 제2 사용자를 선택하는 단계는 제3 사용자 및 제1 사용자가 비디오 게임의 동일한 인스턴스에 배정될 것이라는 지시(indication)을 수신하는 단계를 포함한다. 또한, 방법은 제1 매치 메이킹 선호도의 세트, 제3 사용자와 연관된 제3 매치 메이킹 선호도 세트 및 제2 사용자와 연관된 제1 특성들의 세트에 적어도 부분적으로 기초하여 제1 참여 점수를 결정하는 단계를 포함할 수 있다. 게다가, 방법은 제2 매치 메이킹 선호도의 세트, 제1 사용자와 연관된 제2 특성들의 세트 및 제3 사용자와 연관된 제3 특성들의 세트에 적어도 부분적으로 기초하여 제2 참여 점수를 결정하는 단계를 포함할 수 있다. 방법은 종합된 참여 점수를 획득하기 위하여 제1 참여 점수 및 제2 참여 점수를 종합하는 단계 및 종합된 참여 점수가 참여 임계값을 만족시키는 지 여부를 결정하는 단계를 더 포함할 수 있다. 종합된 참여 점수가 참여 임계값을 만족시키는 것을 결정하는 것에 응답하여, 방법은 복수의 사용자들로부터 제1 사용자, 제2 사용자 및 제3 사용자를 선택하는 단계를 포함할 수 있다. 일부 예에서, 방법은 시간 주기 동안 비디오 게임과 제1 사용자의 상호작용을 모니터링 함으로써 획득된 사용자 상호작용 데이터에 적어도 부분적으로 기초하여 제1 사용자를 제1 사용자 클러스터와 연관시키는 단계를 더 포함할 수 있다.
현재의 개시의 추가적인 실시예들은 비디오 게임의 사용자들에 대한 사용자 클러스터 데이터를 저장하도록 구성된 전자 데이터 저장소 및 데이터 저장소와 통신하는 하드웨어 프로세서를 포함하는 시스템과 관련된다. 하드웨어 프로세서는 비디오 게임을 플레이하기 위해 대기하는 사용자들의 대기열로부터 적어도 사용자들의 세트를 선택하는 특정한 컴퓨터 실행 가능 명령어들을 실행하도록 구성될 수 있다. 적어도 비디오 게임의 제1 부분은 사용자들의 대기열에서의 적어도 한 명의 사용자의 사용자 컴퓨팅 장치 상에 호스트될 수 있고, 비디오 게임의 제2 부분은 서버 시스템에 의해 호스트될 수 있다. 또한, 시스템은 사용자들의 세트에 기초하여 다수의 매치 플랜을 생성할 수 있다. 각각의 매치 플랜은 사용자들의 세트로부터의 제1 사용자들의 팀 및 사용자들의 세트로부터 제2 사용자들의 팀을 포함할 수 있다. 다수의 매치 플랜들로부터의 각각의 매치 플랜에 대하여, 시스템은 적어도 제2 사용자들의 팀의 사용자들의 일부, 매치 메이킹 선호도 및 사용자 클러스터 데이터로부터 획득된 특성 데이터에 연관된 특성 데이터 및 제1 사용자들의 팀의 일부 사용자들과 적어도 연관된 매치 메이킹 선호도에 적어도 부분적으로 기초하여 제1 사용자들의 팀에 대한 제1 참여 점수를 생성할 수 있다. 게다가, 시스템은 적어도 제2 사용자들의 팀의 일부 사용자들 및 제1 사용자들의 팀의 적어도 일부 사용자와 연관된 특성 데이터와 연관된 매치 메이킹 선호도에 적어도 부분적으로 기초하여 제2 사용자들의 팀에 대한 제2 참여 점수를 생성할 수 있다. 일부 예에서, 시스템은 다수의 매치 플랜들로부터의 적어도 하나의 매치 플랜에 대한 제1 참여 점수 및 제2 참여 점수가 참여 점수 임계값을 만족했는 지 여부를 결정할 수 있다. 다수의 매치 플랜들로부터의 적어도 하나의 매치 플랜에 대한 제1 참여 점수 및 제2 참여 점수가 참여 점수 임계값을 만족한 것에 응답하여, 시스템은 비디오 게임에 대한 다수의 매치 플랜들로부터 참여 점수 임계값을 만족하는 매치 플랜을 선택할 수 있다.
일부 구현들에서, 다수의 매치 플랜들로부터의 적어도 하나의 매치 플랜에 대한 제1 참여 점수 및 제2 참여 점수가 참여 점수 임계값을 만족하는 것을 결정하는 것에 응답하여, 하드웨어 프로세서는 적어도 가장 높은 참여 점수를 가지는 매치 플랜을 선택하는 특정한 컴퓨터 실행 가능 명령어들을 실행하도록 더 구성된다. 또한, 다수의 매치 플랜들로부터의 적어도 하나의 매치 플랜에 대한 제1 참여 점수 및 제2 참여 점수가 참여 점수 임계값을 만족하지 않는 것을 결정하는 것에 응답하여, 하드웨어 프로세서는 사용자들의 세트에서의 적어도 한 명의 사용자를 사용자들의 적어도 대기열에서의 다른 사용자로 대체하는 특정한 컴퓨터 실행 가능 명령어들을 실행하도록 더 구성될 수 있다. 또한, 적어도 제1 사용자 및 제2 사용자는 사용자 쌍으로 지정될 수 있고, 다수의 매치 플랜들을 생성하는 것은 다수의 매치 플랜들 각각에 대하여 사용자들의 제1 팀에 제1 사용자 및 제2 사용자를 유지하는 단계를 포함할 수 있다. 또한, 참여 점수 임계값은 사용자들의 대기열에 포함된 사용자들의 수에 적어도 부분적으로 기초하여 변할 수 있다.
현재의 개시의 다른 측면에서, 비 일시적인 컴퓨터-판독 가능한 저장 매체는 하나 이상의 컴퓨팅 장치들에 의해 실행 되었을 때, 하나 이상의 컴퓨팅 장치들이 비디오 게임을 플레이하기위해 대기하는 사용자들의 대기열로부터 복수의 사용자를 선택하는 것을 포함하는 동작들을 수행하도록 구성하는 컴퓨터 실행 가능 명령어들을 저장할 수 있다. 복수의 사용자들로부터의 제1 사용자에 대하여, 동작들은 제1 사용자의 제1 사용자 신원에 적어도 부분적으로 기초하여 복수의 사용자 클러스터들로부터의 제1 사용자와 연관된 제1 클러스터를 식별하는 단계를 포함할 수 있다. 제1 사용자 클러스터는 비디오 게임에 대한 제1 매치 메이킹 선호도와 연관될 수 있다. 복수의 사용자들로부터의 제2 사용자에 대하여, 동작들은 제2 사용자의 제2 신원에 적어도 부분적으로 기초하여 복수의 사용자 클러스터들로부터의 제2 사용자와 연관된 제2 사용자 클러스터를 식별하는 것을 포함한다. 제2 사용자 클러스터는 비디오 게임에 대한 제2 매치 메이킹 선호도의 세트와 연관될 수 있다. 또한, 동작들은 제2 매치 메이킹 선호도의 세트에 적어도 부분적으로 기초하여 복수의 사용자들로부터 제1 사용자를 선택하는 단계 및 제1 매치 메이킹 선호도에 적어도 부분적으로 기초하여 복수의 사용자들로부터의 제2 사용자를 선택하는 단계를 포함할 수 있다. 특정한 실시예들에서, 동작들은 제1 사용자 및 제2 사용자와 함께 비디오 게임의 플레이 세션을 시작하는 단계를 더 포함할 수 있다. 또한, 동작들은 시간 주기 동안에 적어도 제1 사용자의 비디오 게임에 대한 엑세스를 모니터링함으로써, 적어도 제1 사용자에 대한 사용자 상호작용 데이터를 획득함으로써, 제1 사용자를 제1 사용자 클러스터와 연관시키는 단계를 더 포함할 수 있다. 게다가, 동작들은 사용자 상호작용 데이터에 적어도 부분적으로 기초하여 제1 사용자와 연관된 매치 메이킹 선호도를 결정하는 단계 및 복수의 사용자 클러스터들에 대한 클러스터 정의에 엑세스 하는 단계를 포함할 수 있다. 각각의 클러스터 정의는 대응하는 사용자 클러스터와 연관된 사용자들에 대한 복수의 매치 메이킹 선호도들을 식별할 수 있다. 게다가, 동작들은 제1 사용에 대한 매치 메이킹 선호도들을 적어도 임계 정도로 제1 사용자 클러스터와 연관된 클러스터 정의의 매치 메이킹 선호도의 수에 매칭함으로써, 복수의 사용자 클러스터들로부터 제1 사용자 클러스터를 선택하는 단계를 포함할 수 있다. 또한, 동작들은 제1 사용자를 제1 사용자 클러스터와 연관시키는 단계를 포함할 수 있다.
일부 실시예들에서, 복수의 사용자들로부터 제1 사용자 및 제2 사용자를 선택하는 단계는 제2 사용자와 연관된 제1 특성들의 세트 및 제1 매치 메이킹 선호도의 세트에 적어도 부분적으로 기초하여 제1 사용자에 대한 제1 참여 점수를 결정하는 단계를 포함한다. 게다가, 동작들은 제1 사용자와 연관된 제2 특성들의 세트 및 제2 매치 메이킹 선호도의 세트에 적어도 부분적으로 기초하여 제2 사용자에 대한 제2 참여 점수를 결정하는 단계를 포함할 수 있다. 추가적으로, 동작들은 제1 참여 점수가 참여 임계값을 만족하는지 여부를 결정하는 단계 및 제2 참여 점수가 참여 임계값을 만족하는지 여부를 결정하는 단계를 포함할 수 있다. 동작들은 제1 참여 점수가 참여 임계값을 만족하는 것 및 제2 참여 점수가 참여 임계값을 만족하는 것을 결정하는 것에 응답하여, 제1 사용자 및 제2 사용자를 복수의 사용자들로부터 선택하는 단계를 더 포함할 수 있다.
모든 목적 또는 장점들이 여기에 설명된 임의의 특정한 실시예들에 따라 얻어지지 않을 수도 있다는 것은 이해되어야 한다. 따라서, 예를 들어, 통상의 기술자는 특정한 실시예들이 여기에 지시되거나 암시될 수 있는 다른 목적들 또는 장점들을 반드시 달성하지는 않으면서, 여기에 설명된 장점들의 그룹 또는 하나의 장점을 달성하거나 최적화하는 방법으로 동작하도록 구성될 수 있다는 것을 깨달을 수 있다.
여기에 설명된 모든 프로세스들은 하나 이상의 컴퓨터들 또는 프로세서들을 포함하는 컴퓨팅 시스템에 의해 실행되는 소프트웨어 코드 모듈들을 통해 완전히 자동화되거나 또는 그 안에 구현될 수 있다. 모드 모듈들은 임의의 종류의 비 일시적인 컴퓨터 판독가능 매체 또는 다른 컴퓨터 저장 장치에 저장될 수 있다. 방법들의 전부 또는 일부는 전문화된 컴퓨터 하드웨어에 구현될 수 있다.
여기에 설명된 것들의 변화는 이 개시로부터 분명하다. 예를 들어, 실시예들에 의존하여, 특정한 동작들, 이벤트들 또는 여기에 설명된 임의의 알고리즘의 기능들은 서로 다른 시퀀스로 동작될 수 있고, 추가되거나 병합되거나 모두 함께 생략될 수 있다(예를 들어, 알고리즘들의 실행에 반드시 모든 동작들 또는 이벤트들이 필요한 것은 아니다.). 게다가, 특정한 실시예들에서, 동작들 또는 이벤트들은 예를 들어 멀티-스레드 프로세싱, 인터럽트 프로세싱, 멀티 프로세서, 멀티 코어 또는 순차적으로가 아닌 다른 병렬적인 아키텍쳐들을 통해 동시에 수행될 수 있다. 추가적으로 서로 다른 일들 또는 프로세스들은 함께 기능할 수 있는 서로 다른 컴퓨팅 시스템들 및/또는 기계들에 의해 수행될 수 있다.
개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들 및 모듈들은 프로세싱 유닛, 프로세서, 디지털 신호 프로세서(DSP), 어플리케이션 특정 집적 회로(ASIC), 필드 프로그램할 수 있는 게이트 어레이(FPGA) 또는 다른 프로그램할 수 있는 논리 장치, 이산 게이트 또는 트렌지스터 논리, 이산 하드웨어 컴포넌트 또는 여기에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합과 같은 장치에 의해 수행되거나 구현될 수 있다. 프로세서는 마이크로 프로세서, 그러나 대체적으로, 프로세서는 컨트롤러, 마이크로 컨트롤러, 또는 상태 머신, 동일한 것들 또는 이와 유사한 것들의 조합일 수 있다. 프로세서는 컴퓨터 실행 가능 명령어들을 프로세스하도록 구성된 전기 회로를 포함할 수 있다. 다른 실시예에서, 프로세서는 컴퓨터 실행 가능 명령어들을 프로세싱 하지 않고 로직 동작들을 수행하는 다른 프로그램할 수 있는 장치들 또는 FPGA를 포함할 수 있다. 프로세서는 컴퓨팅 장치들의 조합, 예를 들어 DSP 와 마이크로프로세서의 조합, 복수의 마이크로 프로세서들, DSP 코어와 연결된 적어도 하나의 마이크로 프로세서, 또는 그러한 임의의 다른 구성들로써 구현될 수 있다. 비록, 여기에 설명된 것들은 주로 디지털 기술에 관한 것이지만, 프로세서는 주로 아날로그 컴포넌트들을 포함할 수 있다. 컴퓨팅 환경은 마이크로 프로세서에 기초한 컴퓨터 시스템, 메인 프레임 컴퓨터, 디지털 신호 프로세서, 휴대용 컴퓨팅 장치, 장치 컨트롤러 또는 가전 제품의 컴퓨터화된 엔진을 포함하는 임의의 종류의 컴퓨터 시스템을 포함할 수 있지만 이에 한정되지 않는다.
"할 수 있다(can)","할 수 있다(could)", "일 수 있다(might)" 또는 "일 수 있다(may)" 와 같은 조건부 언어는 달리 언급되지 않는다면, 특정 실시예가 포함하는 것을 전달하기 위한 맥락에 따라 달리 이해되고, 다른 실시예들은 특정한 특징들, 요소들 및/또는 단계들을 포함하지 않는다. 따라서, 그러한 조건 언어는 일반적으로 특징들, 요소들 및/또는 단계가 어떤 식으로든 하나 이상의 실시예들이 요구된다는 것을 의미하지 않으며 하나 이상의 실시예는 반드시 사용자 입력 또는 프롬프트를 사용할지 여부에 관계없이, 이들 특징들, 요소들 및/또는 단계들이 포함될 지 여부 또는 임의의 특정한 실시예로 수행될지 여부를 결정하는 논리를 포함함을 의미하지 않는다.
"X, Y, 또는 Z 중 적어도 하나"와 같은 분리어는 달리 언급되지 않는 이상, 아이템,용어 등이 X, Y, Z 중 하나이거나 또는 이들의 임의의 조합(예를 들어, X, Y, 및/또는 Z)임을 일반적으로 제시하기 위해 사용되는 것을 문맥에 따라 이해될 수 있다. 따라서, 이러한 분리어는 일반적으로 특정한 실시예가 각각이 제시되기 위해 적어도 X 중의 하나, 적어도 Y 중의 하나, 적어도 Z 중의 하나를 필요로 한다는 것을 암시하는 것을 의도하지 않는다.
여기에 설명되거나 부착된 도면에 도시된 흐름도의 임의의 프로세스의 설명, 요소, 블록들은 특정 논리 함수들 또는 요소들을 프로세스에서 구현하는 실행 가능한 명령어들의 적어도 하나를 포함하는 코드의 모듈, 구획, 부분을 잠재적으로 나타냄이 이해되어야 한다. 대체적인 구현들은 여기에 설명된 실시예들의 범위에 포함된다. 여기에서, 통상의 기술자가 이해할 수 있는 관련 기술에 따라, 요소들 또는 기능들이 삭제되거나, 도시된 것과 다른 순서(실질적으로 동시에 또는 반대의 순서)로 실행되거나 논의될 수 있다.
명백하게 언급되지 않는다면, 관사("a", "an")는 하나 이상의 설명된 아이템을 포함하는 것으로 해석 되어야 한다. 즉, "구성되는 장치"이라는 구는 하나 이상의 언급된 장치를 포함하는 것으로 의도된다. 그러한 하나 이상의 언급된 장치들은 집합적으로 언급된 사항을 수행하도록 구성될 수 있다. 예를 들어, "설명들 A, B 및 C를 수행하도록 구성된 프로세서"는 설명 B, C를 수행하도록 구성된 제2 프로세서와 함께 동작하는 설명 A를 수행하도록 구성된 제1 프로세서를 포함할 수 있다.
많은 변화와 변형이 위에 설명된 실시예들에 수행되고, 이들의 요소는 다른 수용할 수 있는 예시들로 이해된다는 것은 강조되어야 한다. 모든 그러한 변형 및 변화는 본 개시의 범위에 포함됨이 의도된다.

Claims (55)

  1. 컴퓨터로 구현되는 방법에 있어서,
    컴퓨터 실행 가능 명령어들로 구성된 인터랙티브 컴퓨팅 시스템에 의해 수행되고,
    비디오 게임의 인스턴스를 플레이하기 위해 대기하는 사용자들의 대기열로부터 복수의 사용자들을 선택하는 단계 - 상기 비디오 게임의 상기 인스턴스의 적어도 제1 부분은 상기 사용자들의 대기열 중 적어도 한 명의 사용자의 사용자 컴퓨팅 장치에 실행되고, 상기 비디오 게임의 상기 인스턴스의 제2 부분은 상기 인터랙티브 컴퓨팅 시스템에 실행됨 -;
    상기 복수의 사용자들 중 각각의 사용자에 대하여, 상기 사용자와 연관된 입력 데이터의 세트에 액세스하는 단계 - 상기 입력 데이터의 세트는, 상기 사용자의 상기 비디오 게임과의 상호작용과 연관된 사용자 상호작용 데이터를 포함함 -;
    상기 복수의 사용자들 중 각각의 사용자에 대한 상기 입력 데이터의 세트에 적어도 부분적으로 기초하여, 상기 복수의 사용자들 중 각각의 사용자에 대한 예측된 리텐션 비율을 결정하는 단계 - 상기 예측된 리텐션 비율은, 상기 복수의 사용자들 중 각각의 사용자가 상기 비디오 게임을 플레이할 시간의 양을 나타냄 -;
    상기 복수의 사용자들의 예측된 리텐션 비율들이 리텐션 임계값을 만족하는지 여부를 결정하는 단계; 및
    상기 리텐션 임계값을 만족하는 상기 예측된 리텐션 비율에 응답하여, 상기 비디오 게임의 상기 인스턴스의 플레이어로, 상기 복수의 사용자들과의 상기 비디오 게임의 상기 인스턴스를 시작하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 리텐션 임계값을 만족하지 못하는 상기 예측된 리텐션 비율들에 응답하여, 상기 비디오 게임의 상기 인스턴스를 플레이하기 위해 대기하는 상기 사용자들의 대기열로부터 새로운 복수의 사용자들을 선택하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  3. 제2항에 있어서,
    상기 복수의 사용자들 중 적어도 하나의 사용자가, 상기 새로운 복수의 사용자들에 포함되는,
    컴퓨터로 구현되는 방법.
  4. 제1항에 있어서,
    상기 복수의 사용자들은,
    상기 사용자들의 대기열에 포함되는 사용자들 중 일부를 포함하고,
    상기 복수의 사용자들은,
    하나 이상의 선택 기준에 기초하여 선택되는,
    컴퓨터로 구현되는 방법.
  5. 제4항에 있어서,
    상기 하나 이상의 선택 기준은,
    상기 대기열에서의 사용자의 시간의 길이;
    상기 사용자의 지리적 위치;
    상기 사용자의 블랙 리스트에 포함 여부;
    상기 비디오 게임의 상기 인스턴스의 상기 제2 부분을 호스트(host)하는 인터랙티브 컴퓨팅 시스템의 호스트 서버로부터의 지리적 거리; 및
    상기 호스트 서버로부터의 네트워크 거리
    중 하나 이상을 포함하는 컴퓨터로 구현되는 방법.
  6. 제1항에 있어서,
    상기 복수의 사용자들 중 각각의 사용자에 대한 예측된 리텐션 비율을 결정하는 단계는,
    파라미터 함수에, 상기 복수의 사용자들 중 각각의 사용자에 대한 입력 데이터의 세트를 제공하는 단계 - 상기 파라미터 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성됨 -; 및
    상기 파라미터 함수의 출력에 적어도 부분적으로 기초하여 상기 복수의 사용자들 중 각각의 사용자에 대한 상기 예측된 리텐션 비율을 결정하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  7. 제6항에 있어서,
    적어도,
    트레이닝 입력 데이터에 액세스하는 단계 - 상기 트레이닝 입력 데이터는 상기 비디오 게임을 플레이하는 제2 복수의 사용자들과 연관됨 -;
    상기 제2 복수의 사용자들에 대한 출력 데이터의 세트에 액세스하는 단계 - 상기 출력 데이터의 세트는 상기 제2 복수의 사용자들에 대한 리텐션 비율과 연관됨 -; 및
    상기 입력 데이터의 세트 및 상기 출력 데이터의 세트에 적어도 부분적으로 기초하여 상기 파라미터 함수를 결정하기 위해 상기 기계 학습 알고리즘을 사용하는 단계
    에 의해 상기 파라미터 함수를 생성하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  8. 제7항에 있어서,
    상기 파라미터 함수에 포함되는 변수들의 수;
    상기 파라미터 함수와 연관된 수학적 알고리즘의 복잡성; 및
    상기 출력 데이터의 세트와 비교한 상기 파라미터 함수의 출력의 정확성
    중 하나 이상에 적어도 부분적으로 기초하여 패널티를 상기 파라미터 함수와 연관시키는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  9. 제6항에 있어서,
    복수의 파라미터 함수들 중 적어도 일부의 파라미터 함수들과 연관된 패널티 값에 적어도 부분적으로 기초하여, 상기 복수의 파라미터 함수들로부터 상기 파라미터 함수를 선택하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  10. 제1항에 있어서,
    상기 복수의 사용자들 중 제1 사용자 및 제2 사용자가 상기 비디오 게임의 동일한 인스턴스를 플레이하기를 희망한다는 지시를 수신하는 단계; 및
    상기 리텐션 임계값을 만족하지 못한 상기 예측된 리텐션 비율에 응답하여, 상기 제1 사용자 및 제2 사용자를 상기 복수의 사용자들에 속하는 것으로 유지하며, 상기 복수의 사용자들의 적어도 일부를 다른 사용자들로 대체하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  11. 제1항에 있어서,
    상기 사용자 상호작용 데이터는,
    플레이 스타일, 스킬 레벨, 캐릭터 선택 히스토리 및 역할 히스토리 중 하나 이상
    을 포함하는 컴퓨터로 구현되는 방법.
  12. 제1항에 있어서,
    상기 사용자가 상기 비디오 게임과 상호작용 히스토리 임계량보다 더 적게 연관되었다고 결정하는 것에 응답하여, 특정한 사용자 상호작용 데이터의 세트를 상기 복수의 사용자들 중 한 명의 사용자와 연관시키는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  13. 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
    하나 이상의 컴퓨팅 장치들에 의해 실행되었을 때, 상기 하나 이상의 컴퓨팅 장치들이 동작들을 수행하도록 구성하는 컴퓨터 실행 가능 명령어들을 포함하고,
    상기 동작들은,
    비디오 게임의 인스턴스를 플레이하기 위한 매치 플랜을 형성하기 위하여, 상기 비디오 게임의 인스턴스를 플레이하기 위해 대기하는 사용자들의 대기열로부터 복수의 사용자들을 선택하는 동작;
    상기 복수의 사용자들 중 각각의 사용자에 대하여, 상기 비디오 게임과 상기 사용자의 상호작용과 연관된 사용자 상호작용 데이터의 세트에 액세스하는 동작;
    상기 복수의 사용자들 각각에 대한 상기 사용자 상호작용 데이터의 세트에 적어도 부분적으로 기초하여, 예측된 리텐션 비율을 결정하는 동작 - 상기 예측된 리텐션 비율은, 상기 복수의 사용자들 중 몇 명의 사용자들이 상기 비디오 게임을 중단하는지에 대한 확률에 대응함 -;
    상기 예측된 리텐션 비율이 리텐션 임계값을 만족하는지 여부를 결정하는 동작; 및
    상기 예측된 리텐션 비율이 상기 리텐션 임계값을 만족하는 것에 응답하여, 상기 비디오 게임의 상기 인스턴스를 플레이하기 위한 상기 매치 플랜을 선택하는 동작
    을 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
  14. 제13항에 있어서,
    상기 예측된 리텐션 비율을 결정하는 동작은,
    상기 매치 플랜의 각각의 사용자들에 대한 상기 사용자 상호작용 데이터의 세트를, 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성된 파라미터 함수에 제공하는 동작; 및
    상기 파라미터 함수의 출력에 적어도 부분적으로 기초하여 상기 매치 플랜에 대한 상기 예측된 리텐션 비율을 결정하는 동작
    을 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 파라미터 함수의 상기 출력은,
    상기 매치 플랜에 대한 상기 예측된 리텐션 비율; 및
    제2 리텐션 임계값을 만족시키지 못한 리텐션 비율들과 연관된 복수의 사용자들의 신원 - 상기 리텐션 임계값과 상기 제2 리텐션 임계값은 상이함 -
    을 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
  16. 컴퓨터로 구현되는 방법에 있어서,
    컴퓨터 실행 가능 명령어들로 구성된 인터랙티브 컴퓨팅 시스템에 의해 수행되고,
    비디오 게임의 인스턴스를 플레이하기 위해 대기하는 사용자들의 대기열로부터 복수의 사용자들을 적어도 선택함으로써, 매치 플랜을 생성하는 단계 - 상기 복수의 사용자들 중 제1 사용자 및 제2 사용자가 상기 비디오 게임의 인스턴스에서 함께 플레이하는 것으로 선택된 사용자 쌍으로 지정됨 -;
    상기 복수의 사용자들 중 각각의 사용자에 대하여, 상기 비디오 게임과 상기 사용자의 상호작용과 연관된 사용자 상호작용 데이터에 액세스하는 단계;
    상기 복수의 사용자들 각각에 대한 상기 사용자 상호작용 데이터의 세트에 적어도 부분적으로 기초하여, 예측된 리텐션 값을 결정하는 단계 - 상기 예측된 리텐션 값은, 상기 매치 플랜에 포함된 사용자들의 세트가 상기 비디오 게임을 플레이할 시간의 예측된 양과 연관됨 -;
    상기 매치 플랜의 상기 예측된 리텐션 값이 매치 플랜 리텐션 임계값을 만족하지 않는지 결정하는 단계; 및
    상기 비디오 게임의 인스턴스에서 함께 플레이하는 것으로 선택된 사용자 쌍으로 상기 제1 사용자 및 상기 제2 사용자를 유지하면서, 상기 사용자들의 대기열 중의 적어도 하나의 사용자를 상기 사용자들의 대기열 중의 다른 사용자로 교체함으로써, 업데이트된 매치 플랜을 생성하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  17. 제16항에 있어서,
    상기 제1 사용자 및 상기 제2 사용자는,
    팀메이트 또는 상대로 상기 비디오 게임을 함께 플레이하고 싶다는 상기 제1 사용자 및 상기 제2 사용자에 의해 지시된 희망에 적어도 부분적으로 기초하여,
    상기 대기열로부터 선택되는
    컴퓨터로 구현되는 방법.
  18. 제16항에 있어서,
    상기 업데이트된 매치 플랜에 포함된 사용자들에 대한 사용자 상호작용 데이터에 적어도 부분적으로 기초하여, 상기 업데이트된 매치 플랜에 대한 예측된 리텐션 값을 결정하는 단계;
    상기 업데이트된 매치 플랜에 대한 상기 예측된 리텐션 값이 상기 매치 플랜 리텐션 임계값을 만족하는지 결정하는 단계; 및
    상기 비디오 게임의 플레이어들로서 상기 업데이트된 매치 플랜에 포함된 상기 사용자들과 상기 비디오 게임의 적어도 일부분을 실행하도록 하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  19. 제16항에 있어서,
    적어도 상기 제1 사용자 및 상기 제2 사용자를 상기 사용자들의 대기열 중의 사용자들의 쌍으로 교체함으로써, 상기 제1 사용자 및 상기 제2 사용자를 사용자 쌍으로 유지하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  20. 제16항에 있어서,
    상기 예측된 리텐션 값을 결정하는 단계는,
    상기 매치 플랜에 포함된 각 사용자에 대해 생성된 리텐션 값을 종합하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  21. 제16항에 있어서,
    상기 예측된 리텐션 값은,
    상기 매치 플랜에 포함된 하나 이상의 사용자와 연관된 하나 이상의 예측된 사용자 리텐션 값에 기초하고,
    각 예측된 사용자 리텐션 값은,
    상기 예측된 사용자 리텐션 값과 연관된 사용자가 상기 비디오 게임을 플레이 할 예측된 시간의 양에 대응하는,
    컴퓨터로 구현되는 방법.
  22. 제16항에 있어서,
    상기 예측된 리텐션 값은 확률 값을 포함하는 컴퓨터로 구현되는 방법.
  23. 제16항에 있어서,
    상기 사용자들의 세트는,
    상기 매치 플랜에 포함된 하나 이상의 사용자
    를 포함하는 컴퓨터로 구현되는 방법.
  24. 제16항에 있어서,
    상기 예측된 리텐션 값을 결정하는 단계는,
    파라미터 함수에, 상기 복수의 사용자들 중 각각의 사용자에 대한 상기 사용자 상호작용 데이터를 제공하는 단계 - 상기 파라미터 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성됨 -; 및
    상기 파라미터 함수의 출력에 적어도 부분적으로 기초하여 상기 예측된 리텐션 값을 결정하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  25. 제24항에 있어서,
    적어도,
    트레이닝 입력 데이터에 액세스하는 단계 - 상기 트레이닝 입력 데이터는 상기 비디오 게임을 플레이하는 제2 복수의 사용자들과 연관됨 -;
    상기 제2 복수의 사용자들에 대한 출력 데이터의 세트에 액세스하는 단계 - 상기 출력 데이터의 세트는 상기 제2 복수의 사용자들에 대한 리텐션 값과 연관됨 -; 및
    상기 입력 데이터의 세트 및 상기 출력 데이터의 세트에 적어도 부분적으로 기초하여 상기 파라미터 함수를 결정하기 위해 상기 기계 학습 알고리즘을 사용하는 단계
    에 의해 상기 파라미터 함수를 생성하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  26. 제25항에 있어서,
    상기 파라미터 함수는,
    복수의 파라미터 함수 중 하나 이상의 파라미터 함수에 배정된 하나 이상의 가중치에 기초하여, 상기 복수의 파라미터 함수로부터 선택되고,
    상기 하나 이상의 가중치는,
    상기 파라미터 함수에 포함되는 변수들의 수;
    상기 파라미터 함수와 연관된 수학적 알고리즘의 복잡성; 및
    상기 출력 데이터의 세트와 비교한 상기 파라미터 함수의 출력의 정확성
    중 하나 이상에 적어도 부분적으로 기초하는
    컴퓨터로 구현되는 방법.
  27. 비디오 게임의 사용자들에 대한 사용자 상호작용 데이터를 저장하도록 구성된 전자 데이터 저장소; 및
    상기 전자 데이터 저장소와 통신하는 하드웨어 프로세서
    를 포함하고,
    상기 하드웨어 프로세서는, 적어도,
    비디오 게임의 인스턴스를 플레이하기 위해 대기하는 사용자들의 대기열로부터 복수의 사용자들을 적어도 선택하는 동작 - 상기 복수의 사용자들 중 제1 사용자 및 제2 사용자가 상기 비디오 게임의 인스턴스에서 함께 플레이하는 것으로 선택된 사용자 쌍으로 지정됨 -;
    상기 복수의 사용자들 중 적어도 일부의 사용자들에 대하여, 상기 전자 데이터 저장소로부터, 상기 비디오 게임과 상기 사용자의 상호작용과 연관된 사용자 상호작용 데이터에 액세스하는 동작;
    상기 복수의 사용자들 중 상기 적어도 일부의 사용자들에 대한 상기 사용자 상호작용 데이터에 적어도 부분적으로 기초하여, 매치 플랜을 위한 예측된 리텐션 값을 결정하는 동작 - 상기 예측된 리텐션 값은, 상기 매치 플랜에 포함된 사용자들의 세트가 상기 비디오 게임을 플레이할 시간의 예측된 양과 연관됨 -;
    상기 매치 플랜의 상기 예측된 리텐션 값이 매치 플랜 리텐션 임계값을 만족하지 않는지 결정하는 동작; 및
    상기 비디오 게임의 인스턴스에서 함께 플레이하는 것으로 선택된 사용자 쌍으로 상기 제1 사용자 및 상기 제2 사용자를 유지하면서, 상기 사용자들의 대기열 중의 적어도 하나의 사용자를 상기 사용자들의 대기열 중의 다른 사용자로 교체함으로써, 업데이트된 매치 플랜을 생성하는 동작
    을 수행하는 특정한 컴퓨터 실행 가능한 명령어들을 실행하도록 구성된, 시스템
  28. 제27항에 있어서,
    상기 하드웨어 프로세서는, 적어도,
    상기 복수의 사용자들 중 하나의 사용자가 사용자 상호작용 데이터와 연관되어 있지 않거나 또는 사용자 상호작용 데이터의 임계치보다 적게 연관되어 있다고 결정하는 동작; 및
    상기 사용자를 사용자 상호작용 데이터의 디폴트 세트에 연관시키는 동작
    를 수행하하는 특정한 컴퓨터 실행 가능한 명령어들을 실행하도록 더 구성된, 시스템
  29. 제27항에 있어서,
    상기 제1 사용자 및 상기 제2 사용자는,
    팀메이트 또는 상대로 상기 비디오 게임을 함께 플레이하고 싶다는 상기 제1 사용자 및 상기 제2 사용자에 의해 지시된 희망에 적어도 부분적으로 기초하여,
    상기 대기열로부터 선택되는
    시스템.
  30. 제27항에 있어서,
    상기 하드웨어 프로세서는, 적어도,
    상기 업데이트된 매치 플랜에 포함된 사용자들에 대한 사용자 상호작용 데이터에 적어도 부분적으로 기초하여, 상기 업데이트된 매치 플랜에 대한 예측된 리텐션 값을 결정하는 동작;
    상기 업데이트된 매치 플랜에 대한 상기 예측된 리텐션 값이 상기 매치 플랜 리텐션 임계값을 만족하는지 결정하는 동작; 및
    상기 비디오 게임의 플레이어들로서 상기 업데이트된 매치 플랜에 포함된 상기 사용자들과 상기 비디오 게임의 적어도 일부분을 실행하도록 하는 동작
    를 수행하는 특정한 컴퓨터 실행 가능한 명령어들을 실행하도록 더 구성된, 시스템
  31. 제27항에 있어서,
    상기 하드웨어 프로세서는, 적어도,
    적어도 상기 제1 사용자 및 상기 제2 사용자를 상기 사용자들의 대기열 중의 사용자들의 쌍으로 교체함으로써, 상기 제1 사용자 및 상기 제2 사용자를 사용자 쌍으로 유지하는 동작
    를 수행하는 특정한 컴퓨터 실행 가능한 명령어들을 실행하도록 더 구성된, 시스템
  32. 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
    하나 이상의 컴퓨팅 장치들에 의해 실행되었을 때, 상기 하나 이상의 컴퓨팅 장치들이 동작들을 수행하도록 구성하는 컴퓨터 실행 가능 명령어들을 포함하고,
    상기 동작들은,
    비디오 게임의 인스턴스를 플레이하기 위해 대기하는 사용자들의 대기열로부터 복수의 사용자들을 적어도 선택함으로써, 매치 플랜을 생성하는 동작 - 상기 복수의 사용자들 중 제1 사용자 및 제2 사용자가 상기 비디오 게임의 인스턴스에서 함께 플레이하는 것으로 선택된 사용자 쌍으로 지정됨 -;
    상기 복수의 사용자들 중 적어도 일부의 사용자들에 대하여, 상기 비디오 게임과 상기 사용자의 상호작용과 연관된 사용자 상호작용 데이터에 액세스하는 동작;
    상기 복수의 사용자들 중 상기 적어도 일부의 사용자들에 대한 상기 사용자 상호작용 데이터에 적어도 부분적으로 기초하여, 상기 매치 플랜을 위한 예측된 리텐션 값을 결정하는 동작 - 상기 예측된 리텐션 값은, 상기 매치 플랜에 포함된 사용자들의 세트가 상기 비디오 게임을 플레이할 시간의 예측된 양과 연관됨 -;
    상기 매치 플랜의 상기 예측된 리텐션 값이 매치 플랜 리텐션 임계값을 만족하지 않는지 결정하는 동작; 및
    상기 비디오 게임의 인스턴스에서 함께 플레이하는 것으로 선택된 사용자 쌍으로 상기 제1 사용자 및 상기 제2 사용자를 유지하면서, 상기 사용자들의 대기열 중의 적어도 하나의 사용자를 상기 사용자들의 대기열 중의 다른 사용자로 교체함으로써, 업데이트된 매치 플랜을 생성하는 동작
    을 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
  33. 제32항에 있어서,
    상기 동작들은,
    상기 업데이트된 매치 플랜에 포함된 사용자들에 대한 사용자 상호작용 데이터에 적어도 부분적으로 기초하여, 상기 업데이트된 매치 플랜에 대한 예측된 리텐션 값을 결정하는 동작;
    상기 업데이트된 매치 플랜에 대한 상기 예측된 리텐션 값이 상기 매치 플랜 리텐션 임계값을 만족하는지 결정하는 동작; 및
    상기 비디오 게임의 플레이어들로서 상기 업데이트된 매치 플랜에 포함된 상기 사용자들과 상기 비디오 게임의 적어도 일부분을 실행하도록 하는 동작
    을 더 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
  34. 제32항에 있어서,
    상기 동작들은,
    적어도 상기 제1 사용자 및 상기 제2 사용자를 상기 사용자들의 대기열 중의 사용자들의 쌍으로 교체함으로써, 상기 제1 사용자 및 상기 제2 사용자를 사용자 쌍으로 유지하는 동작
    을 더 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
  35. 제32항에 있어서,
    상기 예측된 리텐션 값을 결정하는 동작은,
    파라미터 함수에, 상기 복수의 사용자들 중 각각의 사용자에 대한 상기 사용자 상호작용 데이터를 제공하는 동작 - 상기 파라미터 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성됨 -; 및
    상기 파라미터 함수의 출력에 적어도 부분적으로 기초하여 상기 예측된 리텐션 값을 결정하는 동작
    을 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
  36. 컴퓨터로 구현되는 방법에 있어서,
    컴퓨터 실행 가능 명령어들로 구성된 인터랙티브 컴퓨팅 시스템에 의해 수행되고,
    제1 사용자 및 제2 사용자가 비디오 게임의 인스턴스를 함께 플레이하고 싶다는 지시를 수신하는 단계;
    상기 제1 사용자 및 상기 제2 사용자를 사용자 세트로 연관시키는 단계;
    상기 비디오 게임과 상기 제1 사용자의 상호작용과 연관된 제1 사용자 상호작용 데이터 및 상기 비디오 게임과 상기 제2 사용자의 상호작용과 연관된 제2 사용자 상호작용 데이터에 액세스하는 단계;
    상기 비디오 게임의 인스턴스를 상기 사용자 세트와 플레이 할 적어도 제3 사용자를 선택하는 단계;
    상기 비디오 게임과 상기 제3 사용자의 상호작용과 연관된 제3 사용자 상호작용 데이터에 액세스하는 단계;
    적어도 상기 사용자 세트와 상기 제3 사용자를 포함하는 매치 플랜을 형성하는 단계;
    제1 사용자 상호작용 데이터, 제2 사용자 상호작용 데이터, 제3 사용자 상호작용 데이터, 및 상기 제1 사용자와 상기 제2 사용자가 상기 사용자 세트에 있다는 지시에 적어도 부분적으로 기초하여, 상기 매치 플랜에 대한 매치 리텐션 값을 예측하는 단계 - 상기 매치 리텐션 값은, 상기 매치 플랜에 포함된 사용자들이 상기 비디오 게임을 플레이할 것으로 예측되는 시간의 양과 연관됨 -; 및
    상기 매치 리텐션 값이 매치 리텐션 임계값을 만족하지 않는 것에 응답하여, 업데이트된 매치 플랜을 획득하기 위하여, 상기 제3 사용자 또는 상기 사용자 세트에 포함된 사용자들의 각각 중 적어도 하나를, 상기 비디오 게임의 인스턴스를 플레이하기를 희망하는 것으로 지시한 다른 사용자로 교체하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  37. 제36항에 있어서,
    상기 제1 사용자 상호작용 데이터는,
    상기 비디오 게임의 하나 이상의 인스턴스와 상기 제1 사용자의 상호작용을 모니터링 함으로써, 획득되는,
    컴퓨터로 구현되는 방법.
  38. 제36항에 있어서,
    상기 매치 플랜을 형성하는 단계는,
    상기 매치 플랜 내에서, 적어도 상기 제1 사용자에게 제1 역할(role)을 배정하고, 상기 제2 사용자에게 제2 역할을 배정하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  39. 제38항에 있어서,
    상기 제3 사용자는,
    상기 비디오 게임의 인스턴스 내에서 특정한 역할에 배정되지 않는,
    컴퓨터로 구현되는 방법.
  40. 제38항에 있어서,
    상기 적어도 상기 제1 사용자에게 제1 역할(role)을 배정하고, 상기 제2 사용자에게 제2 역할을 배정하는 단계는,
    상기 매치 플랜 내에서 상기 제1 사용자와 상기 제2 사용자를 팀메이트로 배정하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  41. 제38항에 있어서,
    상기 적어도 상기 제1 사용자에게 제1 역할(role)을 배정하고, 상기 제2 사용자에게 제2 역할을 배정하는 단계는,
    상기 매치 플랜 내에서 상기 제1 사용자와 상기 제2 사용자를 상대로 배정하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  42. 제36항에 있어서,
    상기 매치 플랜은 제4 사용자를 포함하고,
    상기 방법은,
    상기 비디오 게임과 상기 제4 사용자의 상호작용과 연관된 제4 사용자 상호작용 데이터에 적어도 부분적으로 기초하여, 상기 제4 사용자에 대한 사용자 리텐션 값을 예측하는 단계; 및
    상기 제4 사용자에 대한 사용자 리텐션 값이 사용자 리텐션 임계값을 만족하지 않는 것에 응답하여, 상기 매치 플랜 내 상기 사용자 세트에 포함된 사용자들은 유지하면서, 상기 제4 사용자를 다른 사용자로 교체하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  43. 제42항에 있어서,
    상기 사용자 리텐션 임계값 및 상기 매치 리텐션 임계값은,
    그 값이 서로 다른,
    컴퓨터로 구현되는 방법.
  44. 제36항에 있어서,
    상기 매치 리텐션 임계값은,
    상기 매치 플랜에 포함된 사용자들의 각각에 대한 사용자 리텐션 값들의 종합
    을 포함하는 컴퓨터로 구현되는 방법.
  45. 제36항에 있어서,
    상기 매치 리텐션 값을 예측하는 단계는,
    제1 사용자 상호작용 데이터, 제2 사용자 상호작용 데이터, 제3 사용자 상호작용 데이터 및 상기 제1 사용자와 상기 제2 사용자가 상기 사용자 세트에 있다는 지시를 예측 함수에 제공하는 단계 - 상기 예측 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성됨 -; 및
    상기 예측 함수의 출력에 적어도 부분적으로 기초하여, 상기 예측된 리텐션 값을 결정하는 단계
    를 포함하는 컴퓨터로 구현되는 방법.
  46. 제45항에 있어서,
    적어도,
    상기 비디오 게임을 플레이하는 사용자들의 세트와 연관된 트레이닝 데이터에 액세스하고; 및
    상기 예측 함수를 생성하기 위하여, 상기 트레이닝 데이터를 상기 기계 학습 알고리즘에 적용함으로써,
    상기 예측 함수를 생성하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  47. 제45항에 있어서,
    상기 매치 리텐션 값을 예측하는 단계는,
    상기 제1 사용자 및 상기 제2 사용자가 상기 비디오 게임의 인스턴스를 함께 플레이하고 싶다는 지시에 기초하여, 상기 예측 함수의 파라미터의 가중치를 변경하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  48. 제36항에 있어서,
    상기 업데이트된 매치 플랜에 대응하는 업데이트된 매치 리텐션 값이 상기 매치 리텐션 임계값을 만족한다는 결정에 응답하여,
    상기 방법은,
    상기 업데이트된 매치 플랜을 이용하여 상기 비디오 게임의 인스턴스를 실행하는 단계
    를 더 포함하는 컴퓨터로 구현되는 방법.
  49. 비디오 게임의 사용자들에 대한 사용자 상호작용 데이터를 저장하도록 구성된 전자 데이터 저장소; 및
    상기 전자 데이터 저장소와 통신하는 하드웨어 프로세서
    를 포함하고,
    상기 하드웨어 프로세서는, 적어도,
    제1 사용자 및 제2 사용자가 상기 비디오 게임의 인스턴스를 함께 플레이하고 싶다는 지시를 수신하는 동작;
    상기 제1 사용자 및 상기 제2 사용자를 사용자 세트로 연관시키는 동작;
    상기 비디오 게임과 상기 제1 사용자의 상호작용에 연관된 제1 사용자 상호작용 데이터 및 상기 비디오 게임과 상기 제2 사용자의 상호작용에 연관된 제2 사용자 상호작용 데이터에 액세스하는 동작;
    상기 비디오 게임의 인스턴스를 상기 사용자 세트와 플레이 할 적어도 제3 사용자를 선택하는 동작;
    상기 비디오 게임과 상기 제3 사용자의 상호작용에 연관된 제3 사용자 상호작용 데이터에 액세스하는 동작;
    적어도 상기 사용자 세트와 상기 제3 사용자를 포함하는 매치 플랜을 형성하는 동작;
    제1 사용자 상호작용 데이터, 제2 사용자 상호작용 데이터, 제3 사용자 상호작용 데이터, 및 상기 사용자 세트의 존재에 적어도 부분적으로 기초하여, 상기 매치 플랜에 대한 매치 리텐션 값을 예측하는 동작 - 상기 매치 리텐션 값은, 상기 매치 플랜에 포함된 사용자들이 상기 비디오 게임을 플레이할 것으로 예측되는 시간의 양과 연관됨 -; 및
    상기 매치 리텐션 값이 매치 리텐션 임계값을 만족하지 않는 것으로 결정한 경우, 업데이트된 매치 플랜을 획득하기 위하여, 상기 제3 사용자 또는 상기 사용자 세트에 포함된 사용자들의 각각 중 적어도 하나를, 상기 비디오 게임의 인스턴스를 플레이하기를 희망하는 것으로 지시한 다른 사용자로 교체하는 동작
    을 수행하는 특정한 컴퓨터 실행 가능한 명령어들을 실행하도록 구성된, 시스템.
  50. 제49항에 있어서,
    상기 제1 사용자 및 상기 제2 사용자가 상기 비디오 게임의 인스턴스를 함께 플레이하고 싶다는 상기 지시에 기초하여, 상기 제1 사용자 및 상기 제2 사용자는 상대 또는 팀메이트로 상기 매치 플랜 내에서 고정된 역할이 배정되고,
    상기 제3 사용자는 상기 매치 플랜 내에서 고정된 역할에 배정되지 않는,
    시스템.
  51. 제49항에 있어서,
    상기 하드웨어 프로세서는, 적어도,
    상기 매치 리텐션 값이 상기 매치 리텐션 임계값을 만족하지 않는 것으로 결정한 경우, 상기 매치 플랜 내에 포함된 사용자들과 상기 비디오 게임의 인스턴스를 실행하는 동작
    을 수행하는 특정한 컴퓨터 실행 가능한 명령어들을 실행하도록 더 구성된, 시스템.
  52. 제49항에 있어서,
    상기 하드웨어 프로세서는, 적어도,
    상기 제3 사용자 상호작용 데이터에 적어도 부분적으로 기초하여, 상기 제3 사용자에 대한 사용자 리텐션 값을 예측하는 동작; 및
    상기 제3 사용자에 대한 상기 사용자 리텐션 값이 사용자 리텐션 임계값을 만족하지 않는 것으로 결정한 경우, 상기 업데이트된 매치 플랜을 획득하기 위하여, 상기 제3 사용자 또는 상기 사용자 세트에 포함된 사용자들의 각각 중 적어도 하나를, 상기 비디오 게임의 인스턴스를 플레이하기를 희망하는 것으로 지시한 다른 사용자로 교체하는 동작
    을 수행하는 특정한 컴퓨터 실행 가능한 명령어들을 실행하도록 더 구성된, 시스템.
  53. 제49항에 있어서,
    상기 하드웨어 프로세서는, 적어도,
    상기 제1 사용자 상호작용 데이터, 상기 제2 사용자 상호작용 데이터, 상기 제3 사용자 상호작용 데이터, 및 상기 제1 사용자와 상기 제2 사용자가 상기 사용자 세트에 있다는 지시를 예측 함수에 제공하는 동작 - 상기 예측 함수는 기계 학습 알고리즘에 적어도 부분적으로 기초하여 생성됨 -; 및
    상기 예측 함수의 출력에 적어도 부분적으로 기초하여, 상기 예측된 매치 리텐션 값을 결정하는 동작
    을 수행하는 특정한 컴퓨터 실행 가능한 명령어들을 실행하도록 더 구성된, 시스템.
  54. 제53항에 있어서,
    상기 예측 함수는,
    상기 비디오 게임을 플레이하는 사용자들의 세트와 연관된 트레이닝 데이터를 상기 기계 학습 알고리즘에 적어도 적용함으로써, 생성되는,
    시스템.
  55. 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
    하나 이상의 컴퓨팅 장치들에 의해 실행되었을 때, 상기 하나 이상의 컴퓨팅 장치들이 동작들을 수행하도록 구성하는 컴퓨터 실행 가능 명령어들을 포함하고,
    상기 동작들은,
    제1 사용자 및 제2 사용자가 비디오 게임의 인스턴스를 함께 플레이하고 싶다는 지시를 수신하는 동작;
    상기 제1 사용자 및 상기 제2 사용자를 사용자 세트로 연관시키는 동작;
    상기 비디오 게임과 상기 제1 사용자의 상호작용에 연관된 제1 사용자 상호작용 데이터 및 상기 비디오 게임과 상기 제2 사용자의 상호작용에 연관된 제2 사용자 상호작용 데이터에 액세스하는 동작;
    상기 비디오 게임의 인스턴스를 상기 사용자 세트와 플레이 할 적어도 제3 사용자를 선택하는 동작;
    상기 비디오 게임과 상기 제3 사용자의 상호작용에 연관된 제3 사용자 상호작용 데이터에 액세스하는 동작;
    적어도 상기 사용자 세트와 상기 제3 사용자를 포함하는 매치 플랜을 형성하는 동작;
    제1 사용자 상호작용 데이터, 제2 사용자 상호작용 데이터, 제3 사용자 상호작용 데이터, 및 상기 제1 사용자와 상기 제2 사용자가 상기 사용자 세트에 있다는 지시에 적어도 부분적으로 기초하여, 상기 매치 플랜에 대한 매치 리텐션 값을 예측하는 동작 - 상기 매치 리텐션 값은, 상기 매치 플랜에 포함된 사용자들이 상기 비디오 게임을 플레이할 것으로 예측되는 시간의 양과 연관됨 -; 및
    상기 매치 리텐션 값이 매치 리텐션 임계값을 만족하지 않는다는 결정에 응답하여, 업데이트된 매치 플랜을 획득하기 위하여, 상기 제3 사용자 또는 상기 사용자 세트에 포함된 사용자들의 각각 중 적어도 하나를, 상기 비디오 게임의 인스턴스를 플레이하기를 희망하는 것으로 지시한 다른 사용자로 교체하는 동작
    을 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
KR1020200136078A 2016-03-08 2020-10-20 멀티 플레이어 비디오 게임 매치 메이킹 최적화 KR102291044B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/064,115 US9993735B2 (en) 2016-03-08 2016-03-08 Multiplayer video game matchmaking optimization
US15/064,115 2016-03-08
KR1020170028348A KR102170560B1 (ko) 2016-03-08 2017-03-06 멀티 플레이어 비디오 게임 매치 메이킹 최적화

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020170028348A Division KR102170560B1 (ko) 2016-03-08 2017-03-06 멀티 플레이어 비디오 게임 매치 메이킹 최적화

Publications (2)

Publication Number Publication Date
KR20200123404A KR20200123404A (ko) 2020-10-29
KR102291044B1 true KR102291044B1 (ko) 2021-08-18

Family

ID=59788794

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020170028348A KR102170560B1 (ko) 2016-03-08 2017-03-06 멀티 플레이어 비디오 게임 매치 메이킹 최적화
KR1020200136078A KR102291044B1 (ko) 2016-03-08 2020-10-20 멀티 플레이어 비디오 게임 매치 메이킹 최적화

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020170028348A KR102170560B1 (ko) 2016-03-08 2017-03-06 멀티 플레이어 비디오 게임 매치 메이킹 최적화

Country Status (3)

Country Link
US (3) US9993735B2 (ko)
KR (2) KR102170560B1 (ko)
CN (1) CN107158708B (ko)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006124922A2 (en) 2005-05-17 2006-11-23 Super Computer International Collaborative online gaming system and method
US10456686B2 (en) 2012-09-05 2019-10-29 Zynga Inc. Methods and systems for adaptive tuning of game events
US9776091B1 (en) 2014-05-16 2017-10-03 Electronic Arts Inc. Systems and methods for hardware-based matchmaking
US9675889B2 (en) 2014-09-10 2017-06-13 Zynga Inc. Systems and methods for determining game level attributes based on player skill level prior to game play in the level
US10561944B2 (en) 2014-09-10 2020-02-18 Zynga Inc. Adjusting object adaptive modification or game level difficulty and physical gestures through level definition files
WO2016203765A1 (ja) * 2015-06-15 2016-12-22 株式会社スクウェア・エニックス ビデオゲーム処理プログラム及びビデオゲーム処理システム
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
US20170368455A1 (en) 2016-06-23 2017-12-28 King.Com Limited Method and apparatus for providing a computer implemented game
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
US10449458B2 (en) * 2016-12-30 2019-10-22 Microsoft Technology Licensing, Llc Skill matching for a multiplayer session
US10190886B2 (en) 2017-01-04 2019-01-29 Uber Technologies, Inc. Network system to determine a route based on timing data
US10832260B2 (en) * 2017-01-27 2020-11-10 Walmart Apollo Lllc Systems and methods for determining customer lifetime value
US11416792B2 (en) 2017-04-19 2022-08-16 Uber Technologies, Inc. Network system capable of grouping multiple service requests
US10728701B1 (en) * 2017-06-20 2020-07-28 Roblox Corporation Proximity friending
US10729981B1 (en) * 2017-06-23 2020-08-04 Electronic Arts Inc. Computer architecture for matching online users for an online experience
US10894215B1 (en) * 2017-06-27 2021-01-19 Amazon Technologies, Inc. Matching players for networked gaming applications
US10387161B2 (en) * 2017-09-01 2019-08-20 Facebook, Inc. Techniques for capturing state information and performing actions for threads in a multi-threaded computing environment
WO2019075132A1 (en) * 2017-10-11 2019-04-18 Lake Schaal Gary FLEXIBLE COMPUTER-BASED GAME BASED ON AUTOMATIC LEARNING
US11436554B2 (en) 2017-11-02 2022-09-06 Uber Technologies, Inc. Network computer system to implement predictive time-based determinations for fulfilling delivery orders
US10864443B2 (en) 2017-12-22 2020-12-15 Activision Publishing, Inc. Video game content aggregation, normalization, and publication systems and methods
US10953335B2 (en) * 2018-02-28 2021-03-23 Sony Interactive Entertainment Inc. Online tournament integration
CN108491453A (zh) * 2018-03-01 2018-09-04 北京峰趣互联网信息服务有限公司 数据匹配方法及系统、服务器、介质
CN108786117A (zh) * 2018-06-12 2018-11-13 北京智明星通科技股份有限公司 一种手机游戏玩家分组方法、装置和服务器
WO2019240811A1 (en) * 2018-06-15 2019-12-19 Google Llc Methods, systems, and media for coordinating multiplayer game sessions
US20200338446A1 (en) * 2018-06-29 2020-10-29 Electronic Arts Inc. Presenting incentivized hierarchical gameplay
CN108970124A (zh) * 2018-07-05 2018-12-11 腾讯科技(深圳)有限公司 组队匹配方法、装置、系统及可读介质
CN109011587B (zh) * 2018-08-31 2021-04-23 陈镇宇 一种多人竞技射击游戏的队友匹配方法和装置
US11449917B2 (en) 2018-09-05 2022-09-20 Uber Technologies, Inc. Network computing system for providing interactive menus and group recommendations
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
US10881964B1 (en) 2018-09-13 2021-01-05 Electronic Arts Inc. Automated detection of emergent behaviors in interactive agents of an interactive environment
CN109495456B (zh) * 2018-10-30 2021-06-11 腾讯科技(深圳)有限公司 匹配模块的验证方法、装置及可读存储介质
US20200129864A1 (en) * 2018-10-31 2020-04-30 International Business Machines Corporation Detecting and identifying improper online game usage
CN109453524B (zh) * 2018-11-14 2022-05-10 腾讯科技(深圳)有限公司 一种对象匹配的方法、模型训练的方法及服务器
US11397911B2 (en) 2018-11-15 2022-07-26 Uber Technologies, Inc. Network computer system to make effort-based determinations for delivery orders
CN109513215B (zh) * 2018-11-23 2022-04-12 腾讯科技(深圳)有限公司 一种对象匹配方法、模型训练方法以及服务器
GB2579613A (en) * 2018-12-06 2020-07-01 Sony Interactive Entertainment Inc Method and apparatus for determining user engagement in a videogame
CN109646960A (zh) * 2018-12-14 2019-04-19 北京智明星通科技股份有限公司 一种基于社交平台小游戏的好友推荐方法、装置、服务器
CN109603159A (zh) * 2018-12-18 2019-04-12 网易(杭州)网络有限公司 匹配游戏玩家的方法、装置及系统
WO2020180424A1 (en) 2019-03-04 2020-09-10 Iocurrents, Inc. Data compression and communication using machine learning
WO2020232467A1 (en) * 2019-05-10 2020-11-19 Slovak Christopher Artificial intelligence based video game state detection
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
CN110448913A (zh) * 2019-07-26 2019-11-15 成都龙渊网络科技有限公司 一种在服务器上控制用户对垒的方法及设备
US11216770B2 (en) 2019-09-13 2022-01-04 Uber Technologies, Inc. Optimizing service requests in transport supply-constrained sub-regions
US11712627B2 (en) 2019-11-08 2023-08-01 Activision Publishing, Inc. System and method for providing conditional access to virtual gaming items
KR102345723B1 (ko) 2019-12-06 2021-12-31 넷마블 주식회사 매칭 결정 방법을 제공하기 위한 컴퓨터 프로그램
US11154786B2 (en) * 2020-01-27 2021-10-26 Electronic Arts Inc. Systems and methods for a network-based video game application
CN111318025B (zh) * 2020-02-07 2023-04-14 网易(杭州)网络有限公司 游戏对象的匹配方法、装置、电子设备及计算机可读介质
CN111265880B (zh) * 2020-02-25 2021-07-16 北京字节跳动网络技术有限公司 一种游戏调整方法、装置、电子设备和存储介质
US11260305B2 (en) 2020-03-16 2022-03-01 International Business Machines Corporation User matching based on active game time
US11395974B1 (en) * 2020-05-04 2022-07-26 Electronic Arts Inc. Contextually aware active social matchmaking
WO2021247371A1 (en) 2020-06-05 2021-12-09 Stats Llc System and method for predicting formation in sports
TWI740637B (zh) * 2020-09-10 2021-09-21 宏碁股份有限公司 組隊遊戲的隊友推薦方法與系統
CN112245936B (zh) * 2020-10-30 2024-04-16 北京达佳互联信息技术有限公司 账号匹配方法、装置及服务器
US11478716B1 (en) * 2020-11-05 2022-10-25 Electronic Arts Inc. Deep learning for data-driven skill estimation
CN113144625B (zh) * 2020-12-31 2022-07-01 北京字跳网络技术有限公司 数据处理方法及装置、设备、存储介质
US11276127B1 (en) 2021-03-04 2022-03-15 Timothy Dirk Stevens Recommending matches using machine learning
US20220296964A1 (en) * 2021-03-16 2022-09-22 Cap Patrol Systems and methods for automated evaluation and updating of golf score indices
US11484801B2 (en) 2021-03-23 2022-11-01 Riot Games, Inc. Activity-factored team formation in multiplayer online gaming
CN113111225A (zh) * 2021-03-28 2021-07-13 根尖体育科技(北京)有限公司 用于篮球赛事的自动匹配组队方法
US11612821B2 (en) * 2021-06-03 2023-03-28 Blizzard Entertainment, Inc. Techniques for user rankings within gaming systems
CN113413608A (zh) * 2021-07-01 2021-09-21 网易(杭州)网络有限公司 游戏数据处理方法、装置、计算机设备和存储介质
CN113617033B (zh) * 2021-08-12 2023-07-25 腾讯科技(成都)有限公司 虚拟角色的选择方法、装置、终端及存储介质
US20230182005A1 (en) * 2021-12-13 2023-06-15 Board Of Regents, The University Of Texas System Controlling multicomputer interaction with deep learning and artificial intelligence
CN114640872B (zh) * 2022-04-13 2023-09-26 中国第一汽车股份有限公司 一种开机动画显示方法、装置、设备以及介质
KR102527558B1 (ko) * 2023-02-06 2023-05-02 주식회사 오피지지 인공지능 기반의 팀 매칭을 위한 게임 관리 서버, 방법 및 프로그램
CN117618918B (zh) * 2024-01-25 2024-04-19 腾讯科技(深圳)有限公司 虚拟场景处理方法、装置、电子设备及存储介质

Citations (2)

* 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
US20160005270A1 (en) 2014-07-03 2016-01-07 Activision Publishing, Inc. System and method for driving microtransactions in multiplayer video games

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 特定固有データ交換可能な対戦型コンピュータゲームシステム
WO1997035258A1 (en) 1996-03-21 1997-09-25 Mpath Interactive, Inc. Network match maker for selecting clients based on attributes of servers and communication links
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
US6829634B1 (en) 2000-07-31 2004-12-07 The Boeing Company Broadcasting network
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
US6714966B1 (en) 2000-07-31 2004-03-30 The Boeing Company Information delivery service
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
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
US20060258463A1 (en) 2005-05-13 2006-11-16 Professional Interactive Entertainment, Inc. System and method for network interactive game match-up and server selection
WO2006124922A2 (en) 2005-05-17 2006-11-23 Super Computer International 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
US8177628B2 (en) 2007-10-12 2012-05-15 Cfph, Llc Lot-to-lot roulette combination
US8210931B2 (en) 2007-10-12 2012-07-03 Cfph, Llc Game with chance element and tax indicator
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
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
JP5222863B2 (ja) 2010-02-10 2013-06-26 株式会社コナミデジタルエンタテインメント ゲームシステム、ゲームシステムの制御方法及びプログラム
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 株式会社コナミデジタルエンタテインメント ゲームシステム及びプレイヤのマッチング方法
US8851980B2 (en) 2011-06-24 2014-10-07 Intertaintech Corporation System and method for conducting online video game tournaments
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
CA2901546C (en) 2013-02-19 2021-08-03 David Walls Systems and methods for a token match game
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
US9352234B2 (en) * 2014-03-14 2016-05-31 Google Inc. Player rankings based on long term opponent 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
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 (2)

* 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
US20160005270A1 (en) 2014-07-03 2016-01-07 Activision Publishing, Inc. System and method for driving microtransactions in multiplayer video games

Also Published As

Publication number Publication date
KR20170104940A (ko) 2017-09-18
US20180369696A1 (en) 2018-12-27
CN107158708B (zh) 2021-03-02
KR20200123404A (ko) 2020-10-29
KR102170560B1 (ko) 2020-10-27
US20200269139A1 (en) 2020-08-27
CN107158708A (zh) 2017-09-15
US11141663B2 (en) 2021-10-12
US20170259178A1 (en) 2017-09-14
US9993735B2 (en) 2018-06-12
US10610786B2 (en) 2020-04-07

Similar Documents

Publication Publication Date Title
KR102291044B1 (ko) 멀티 플레이어 비디오 게임 매치 메이킹 최적화
US11344814B2 (en) Multiplayer video game matchmaking system and methods
CN107158702B (zh) 动态难度调整
CN108499108B (zh) 视频游戏应用程序内玩游戏参数的实时动态修改和优化
JP7399932B2 (ja) クラウドゲーミングネットワークを使用した人工知能(ai)モデルの訓練
KR102239062B1 (ko) 감각 기반의 동적 게임 상태 구성
US20210138348A1 (en) Seasonal reward distribution system
US11596870B2 (en) Classifying gaming activity to identify abusive behavior
US20230009378A1 (en) Automated test multiplexing system

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant