KR102060879B1 - 비디오 게임 애플리케이션 내의 게임플레이 파라미터들의 실시간 동적 수정 및 최적화 - Google Patents

비디오 게임 애플리케이션 내의 게임플레이 파라미터들의 실시간 동적 수정 및 최적화 Download PDF

Info

Publication number
KR102060879B1
KR102060879B1 KR1020180023140A KR20180023140A KR102060879B1 KR 102060879 B1 KR102060879 B1 KR 102060879B1 KR 1020180023140 A KR1020180023140 A KR 1020180023140A KR 20180023140 A KR20180023140 A KR 20180023140A KR 102060879 B1 KR102060879 B1 KR 102060879B1
Authority
KR
South Korea
Prior art keywords
user
difficulty
game
video game
gameplay
Prior art date
Application number
KR1020180023140A
Other languages
English (en)
Other versions
KR20180099532A (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 KR20180099532A publication Critical patent/KR20180099532A/ko
Application granted granted Critical
Publication of KR102060879B1 publication Critical patent/KR102060879B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/31Communication aspects specific to video games, e.g. between several handheld game devices at close range
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F11/00Game accessories of general use, e.g. score counters, boxes
    • A63F11/0074Game concepts, rules or strategies
    • A63F2011/0076Game concepts, rules or strategies with means for changing the level of difficulty

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

여기에 제시된 실시예들은 동적 난이도 조정을 수행하기 위한 시스템들 및 방법들을 포함한다. 또한, 여기에 개시된 실시예들은 정적 및/또는 기존의 난이도 조정 프로세스들과 비교하여 사용자들에 의해 검출하기가 더 어렵거나 검출될 수 없는 프로세스들을 사용하여 동적 난이도 조정을 수행한다. 일부 실시예들에서, 히스토리컬 사용자 정보는 예를 들어 예상된 이탈율, 유지율, 사용자가 게임을 플레이 하는데 예상되는 시간의 길이, 또는 이전에 게임을 플레이 한 사용자들의 히스토리컬 세트에 대한 사용자의 예상된 게임 플레이 시간의 표시와 같은, 게임 플레이의 예상 지속 시간을 예측하는 예측 모델을 생성하는 기계 학습 시스템에 의해 이용되었다. 게임 플레이 전 또는 도중에, 예측 모델은 사용자에 대한 정보에 적용하여 게임 플레이의 사용자의 예상 지속 시간을 예측할 수 있다. 예상 지속 시간에 기초하여, 일부 실시예들에서, 시스템은 맵핑 데이터 저장소를 이용하여, 예를 들어 게임의 부분들을 덜 어렵게 만들도록 하나 이상의 게임플레이 파라미터들의 값들을 변경하는 것과 같이, 게임의 난이도를 동적으로 조정하는 방법을 결정할 수 있다.

Description

비디오 게임 애플리케이션 내의 게임플레이 파라미터들의 실시간 동적 수정 및 최적화{REALTIME DYNAMIC MODIFICATION AND OPTIMIZATION OF GAMEPLAY PARAMETERS WITHIN A VIDEO GAME APPLICATION}
소프트웨어 개발자들은 일반적으로 그들의 소프트웨어에 대해 가능한 한 오랫동안 사용자들을 참여시키고자 한다. 사용자가 소프트웨어에 참여하는 시간이 길수록, 소프트웨어가 성공할 가능성이 높다. 사용자의 참여의 길이와 소프트웨어의 성공 간의 관계는 비디오 게임들과 관련하여 특히 중요하다. 사용자가 특정 비디오 게임을 플레이하는(plays) 시간이 길수록, 사용자가 게임을 즐긴다는 가능성이 높아지고, 따라서 사용자는 게임을 계속 플레이 할 가능성이 높아진다.
종종, 너무 어렵거나 너무 쉬운 게임들은 사용자에 대한 즐거움을 덜게 할 것이다. 결과적으로, 사용자는 게임을 덜 플레이 할 가능성이 있다. 따라서, 게임 개발의 과제들 중 하나는 사용자가 더 오랜 기간 동안 계속 참여할 가능성이 있는 난이도의 게임을 설계하는 것이다.
본 개시의 시스템들, 방법들 및 장치들은 각각 혁신적인 여러 측면들을 가지며, 그 중 단일 하나가 여기에 개시된 바람직한 속성들의 전부를 단독으로 책임지는 것은 아니다. 본 명세서에서 설명된 주제의 하나 이상의 구현들의 세부 사항들은 첨부 도면들 및 이하의 설명에서 설명된다.
특정 실시예들에서, 비디오 게임 애플리케이션(video game application)의 게임플레이 파라미터(gameplay parameter)를 동적으로 조정하기 위한 컴퓨터-구현 방법은 제공된다. 상기 방법은 특정 컴퓨터-실행 가능 명령어들로 구성되는 하나 이상의 하드웨어 컴퓨팅 장치들의 제어 하에 수행될 수 있고, 상기 특정 컴퓨터-실행 가능 명령어들은 전자 하드웨어 메모리(electronic hardware memory)에 저장된다. 상기 방법은 사용자 컴퓨팅 시스템(user computing system)으로부터 네트워크를 통해, 상기 사용자 컴퓨팅 시스템에서 비디오 게임 애플리케이션의 현재 게임플레이 세션의 개시의 표시를 포함하는 게임플레이 세션 데이터 패킷(gameplay session data packet)을 수신하는 단계를 포함할 수 있다. 상기 방법은 상기 게임플레이 세션 데이터 패킷으로부터 상기 사용자 컴퓨팅 장치에 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션과 관련된 사용자 식별자를 식별하는 단계를 포함할 수 있으며, 상기 사용자 식별자는 사용자 계정과 관련된다. 상기 방법은 상기 사용자 식별자에 적어도 부분적으로 기초하여 물리적 데이터 저장소에서의 사용자 계정 데이터를 액세스하는 단계를 더 포함하고, 상기 물리적 데이터 저장소는 상기 비디오 게임 애플리케이션의 하나 이상의 게임플레이 세션들과 관련된 사용자 인터랙션 데이터(user interaction data)를 저장하는 사용자 계정 데이터 구조들을 저장하도록 구성된다. 상기 방법은 난이도 분석 모델(difficultly analysis model)을 사용하여 상기 사용자 계정 데이터의 적어도 일부분의 분석에 적어도 부분적으로 기초하여 상기 사용자와 관련된 난이도 궤적(difficulty trajectory)을 결정하는 단계를 포함하고, 상기 난이도 궤적은 상기 사용자 계정과 관련된 예측된 도전 레벨(predicted challenge level)을 나타낸다. 상기 방법은 상기 현재 게임플레이 세션과 관련된 상기 예측된 도전 레벨 및 게임플레이 세션 데이터에 적어도 부분적으로 기초하여 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션에 대한 난이도 레벨을 결정하는 단계를 더 포함할 수 있다. 상기 방법은 상기 결정된 난이도 레벨에 적어도 부분적으로 기초하여, 상기 비디오 게임 애플리케이션과 관련된 적어도 하나의 게임플레이 파라미터에 대한 값에 대한 값(a value for a value for at least one gameplay parameter)을 선택하는 단계를 더 포함할 수 있고, 상기 게임플레이 파라미터는 조정될 때 상기 비디오 게임의 상태를 수정시키는 변수를 포함한다. 상기 방법은 상기 현재 게임플레이 세션에 대해 상기 선택된 값으로 상기 게임플레이 파라미터를 조정함으로써 상기 비디오 게임 애플리케이션의 실행을 수정하는 단계를 더 포함할 수 있다.
특정 실시예들에서, 비디오 게임 애플리케이션의 게임플레이 파라미터를 동적으로 조정하기 위한 시스템은 제공된다. 상기 시스템은 상기 비디오 게임 애플리케이션의 하나 이상의 게임플레이 세션들과 관련된 사용자 인터랙션 데이터를 저장하는 사용자 계정 데이터 구조들을 저장하도록 구성되는 전자 데이터 저장소(electronic data store)를 포함할 수 있다. 상기 시스템은 상기 전자 데이터 저장소와 통신하는 하드웨어 프로세서(hardware processor)를 더 포함할 수 있고, 상기 하드웨어 프로세서는 적어도 특정 컴퓨터-실행 가능 명령어들(computer-executable instructions)을 실행하도록 구성된다. 상기 명령어들은 상기 프로세서가 사용자 컴퓨팅 시스템으로부터 네트워크를 통해, 상기 사용자 컴퓨팅 시스템에서 비디오 게임 애플리케이션의 현재 게임플레이 세션의 개시의 표시를 포함하는 게임플레이 세션 데이터 패킷을, 수신하도록 구성될 수 있다. 상기 명령어들은 상기 프로세서가 상기 게임플레이 세션 데이터 패킷으로부터 상기 사용자 컴퓨팅 장치에 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션과 관련된 사용자 식별자를 식별하도록 구성될 수 있고, 상기 사용자 식별자는 사용자 계정과 관련된다. 상기 명령어들은 상기 프로세서가 상기 사용자 식별자에 적어도 부분적으로 기초하여 물리적 데이터 저장소에서의 사용자 계정 데이터를 액세스하도록 더 구성될 수 있고, 상기 물리적 데이터 저장소는 상기 비디오 게임 애플리케이션의 하나 이상의 게임플레이 세션들과 관련된 사용자 인터랙션 데이터를 저장하는 사용자 계정 데이터 구조들을 저장하도록 구성된다. 상기 명령어들은 상기 프로세서가 난이도 분석 모델을 사용하여 상기 사용자 계정 데이터의 적어도 일부분의 분석에 적어도 부분적으로 기초하여 상기 사용자와 관련된 난이도 궤적을 결정하도록 더 구성될 수 있고, 상기 난이도 궤적은 상기 사용자 계정과 관련된 예측된 도전 레벨을 나타낸다. 상기 명령어들은 상기 프로세서가 상기 현재 게임플레이 세션과 관련된 상기 예측된 도전 레벨 및 게임플레이 세션 데이터에 적어도 부분적으로 기초하여 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션에 대한 난이도 레벨을 결정하도록 더 구성될 수 있다. 상기 명령어들은 상기 프로세서가 상기 결정된 난이도 레벨에 적어도 부분적으로 기초하여, 상기 비디오 게임 애플리케이션과 관련된 적어도 하나의 게임플레이 파라미터에 대한 값에 대한 값을 선택하도록 더 구성될 수 있고, 상기 게임플레이 파라미터는 조정될 때 상기 비디오 게임의 상태를 수정시키는 변수를 포함한다. 상기 명령어들은 상기 프로세서가 상기 현재 게임플레이 세션에 대해 상기 선택된 값으로 상기 게임플레이 파라미터를 조정함으로써 상기 비디오 게임 애플리케이션의 실행을 수정하도록 더 구성될 수 있다.
특정 실시예들에서, 비디오 게임 애플리케이션의 게임플레이 파라미터를 동적으로 조정하기 위한 컴퓨터 실행 가능 명령어들을 저장하는 비-일시적 컴퓨터-판독 가능 저장 매체(non-transitory computer-readable storage medium)는 제공된다. 상기 명령어들은 특정 컴퓨터-실행 가능 명령어들로 구성되는 하나 이상의 하드웨어 컴퓨팅 장치들의 제어 하에 있을 수 있고, 상기 특정 컴퓨터-실행 가능 명령어들은 전자 하드웨어 메모리에 저장된다. 상기 명령어들은, 사용자 컴퓨팅 시스템으로부터 네트워크를 통해, 상기 사용자 컴퓨팅 시스템에서 비디오 게임 애플리케이션의 현재 게임플레이 세션의 개시의 표시를 포함하는 게임플레이 세션 데이터 패킷을 수신하는 단계를 포함할 수 있다. 상기 명령어들은 게임플레이 세션 데이터 패킷으로부터 상기 사용자 컴퓨팅 장치에 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션과 관련된 사용자 식별자를 식별하는 단계를 더 포함할 수 있고, 상기 사용자 식별자는 사용자 계정과 관련된다. 상기 명령어들은 상기 사용자 식별자에 적어도 부분적으로 기초하여 물리적 데이터 저장소에서의 사용자 계정 데이터를 액세스하는 단계를 더 포함할 수 있고, 상기 물리적 데이터 저장소는 상기 비디오 게임 애플리케이션의 하나 이상의 게임플레이 세션들과 관련된 사용자 인터랙션 데이터를 저장하는 사용자 계정 데이터 구조들을 저장하도록 구성된다. 상기 명령어들은 난이도 분석 모델을 사용하여 상기 사용자 계정 데이터의 적어도 일부분의 분석에 적어도 부분적으로 기초하여 상기 사용자와 관련된 난이도 궤적을 결정하는 단계를 더 포함할 수 있고, 상기 난이도 궤적은 상기 사용자 계정과 관련된 예측된 도전 레벨을 나타낸다. 상기 명령어들은 상기 현재 게임플레이 세션과 관련된 상기 예측된 도전 레벨 및 게임플레이 세션 데이터에 적어도 부분적으로 기초하여 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션에 대한 난이도 레벨을 결정하는 단계를 더 포함할 수 있다. 상기 명령어들은 상기 결정된 난이도 레벨에 적어도 부분적으로 기초하여, 상기 비디오 게임 애플리케이션과 관련된 적어도 하나의 게임플레이 파라미터에 대한 값에 대한 값을 선택하는 단계를 더 포함할 수 있고, 상기 게임플레이 파라미터는 조정될 때 상기 비디오 게임의 상태를 수정시키는 변수를 포함한다. 상기 명령어들은 상기 현재 게임플레이 세션에 대해 상기 선택된 값으로 상기 게임플레이 파라미터를 조정함으로써 상기 비디오 게임 애플리케이션의 실행을 수정하는 단계를 더 포함할 수 있다.
도면들 전체에서, 참조 번호들은 참조된 요소들 사이의 대응을 나타내기 위해 재사용된다. 도면들은 여기에 기술된 주제의 실시예들을 예시하기 위해 제공되며 그의 범위를 제한하지 않는다.
도 1a는 동적 난이도 조정 시스템의 하나 이상의 실시예들을 구현할 수 있는 네트워크 컴퓨팅 환경의 일 실시예를 도시한다.
도 1b는 도 1a의 모델 생성 시스템의 일 실시예를 도시한다.
도 1c는 도 1a의 참여 분석 시스템의 일 실시예를 도시한다.
도 2는 기계 학습 프로세스의 일 실시예의 흐름도를 나타낸다.
도 3은 동적 난이도를 구현하기 위한 시스템의 블록도의 일 실시예를 도시한다.
도 4a는 일부 실시예들에 따른, 레벨-기반 게임에서의 플레이어 진행 모델(player progression model)의 일 예시를 도시한다.
도 4b는 일부 실시예들에 따른, 게임을 위해 구성될 수 있는 난이도 궤적들의 예시들을 도시하는 그래프를 도시한다
도 5는 일부 실시예들에 따른, 게임 난이도, 플레이어 진행, 및 플레이어 행동이 상호 작용 할 수 있는 방법의 다이어그램을 도시한다.
도 6은 동적 난이도 구성 프로세스의 일 실시예의 흐름도를 도시한다.
도 7은 게임 플레이 파라미터 평가 프로세스의 일 실시예의 흐름도를 도시한다.
도 8은 난이도 조정 프로세스의 일 실시예의 흐름도를 도시한다.
도 9는 난이도 레벨에 기초하여 게임을 업데이트하기 위한 프로세스의 일 실시예의 흐름도를 도시한다.
도 10은 사용자 컴퓨팅 시스템의 일 실시예를 도시하고, 이는 게임 시스템으로서 지칭 될 수 있다.
도 11은 도 10의 사용자 컴퓨팅 시스템을 위한 하드웨어 구성의 일 실시예를 도시한다.
서론
일반적으로 다수의 사용자들에게 어필(appeal)하는 비디오 게임이 바람직하다. 그러나, 상이한 사용자들은 특정 장르 또는 유형의 비디오 게임들 또는 비디오 게임들을 플레이 할 때 능력들 및/또는 기술의 상이한 레벨들을 갖는다. 또한, 비디오 게임을 플레이 하는 것이 얼마나 도전적일지에 관해서도 상이한 사용자들은 상이한 욕구를 갖는다. 예를 들어, 일부 사용자들은 비교적 도전적인 비디오 게임들을 선호한다. 이러한 사용자들의 유형들은 마스터(master)하기 위해 많은 연습이 필요한 비디오 게임에 더 많이 참여하는 경향이 있을 수 있으며 일반적으로 성공하기 전에 여러 번 비디오 게임의 동일한 부분(portion)을 반복하는 것을 꺼리지 않을 수 있다. 대조적으로, 일부 사용자들은 상대적으로 쉬운 비디오 게임들을 선호한다. 이러한 사용자들의 유형들은 장애물들이 쉽게 극복되는 게임에 더 많이 참여하는 경향이 있을 수 있으며 사용자들은 성공하기 위해 비디오 게임의 부분을 반복할 필요가 거의 없다.
위의 과제들에 대한 하나의 해결책은 비디오 게임 개발자들이 특정 비디오 게임 내 다수의 정적 난이도 레벨들을 통합하는 것이다. 그러나, 일반적으로, 예를 들어 저장 제약, 개발 시간 제약 및 많은 수의 사용자 선호도에 대한 많은 수의 난이도 레벨들을 예측하는 것의 도전과 같은 이유로 개발자가 추가할 수 있는 제한된 수의 정적 난이도 레벨들이 있다. 난이도 레벨들은 조정 가능한 게임플레이 파라미터들의 정의된 세트(defined set of adjustable gameplay parameters)를 조정함으로써 생성될 수 있다. 그러나, 정적 난이도 레벨들은 특정 사용자가 비디오 게임의 특정 측면이 도전적이지만, 비디오 게임의 다른 측면이 도전적이지 않음을 알기 때문에 비디오 게임 전체에서 일관성 없는 도전을 초래할 수 있다.
다른 해결책은 사용자 또는 사용자의 경쟁자 사이의 관계에 기초하여 사용자 또는 사용자의 경쟁자의 능력을 다양화하는 것이다. 이것은 레이싱 게임들(racing games)과 같은 경쟁적 비디오 게임들의 일부 유형들에서 사용될 수 있다. 예를 들어, 비디오 게임이 레이싱 게임인 경우, 사용자의 차량은 사용자가 못하고 있을 때 더 빨라질 수 있으며, 사용자가 잘하고 있을 때 더 느려질 수 있다. 이 해결책은 때로는 "고무 밴드 효과(rubberband effect)"라고 지칭하는 결과를 가져올 수 있다. 이 해결책은 사용자의 차량이 사용자의 경쟁자와 관련하여 차량의 위치에 기초하여 일관성 없이 작동하기 때문에 사용자가 눈에 띌 수 있다.
여기에 나타낸 실시예들은 동적 난이도 조정을 수행하기 위한 시스템들 및 방법들을 포함한다. 또한, 여기에 개시된 실시예들은 정적 및/또는 기존의 난이도 조정 프로세스들과 비교하여 검출될 수 없거나 사용자들에 의해 검출하기가 더 어려울 수 있는 프로세스들을 사용하여 동적 난이도 조정을 수행한다. 일부 실시예들에서, 히스토리컬 사용자 정보(historical user information)는 예를 들어 예상된 이탈율, 유지율, 사용자가 게임을 플레이 하는데 예상되는 시간의 길이, 또는 이전에 게임을 플레이 한 사용자들의 히스토리컬 세트(historical set)에 대한 사용자의 예상된 게임 플레이 시간의 표시와 같은, 게임 플레이의 예상 지속 시간(expected duration)을 예측하는 예측 모델을 생성하는 기계 학습 시스템(machine learning system)에 의해 이용되었다. 게임 플레이 전 또는 도중에, 예측 모델은 사용자에 관한 정보에 적용되어 사용자의 게임 플레이의 예상 지속 시간을 예측할 수 있다. 예상 지속 시간에 기초하여, 일부 실시예들에서, 시스템은 맵핑 데이터 저장소(mapping data repository)를 이용하여, 예를 들어 하나 이상의 게임플레이 파라미터들의 값들을 변경하여 게임의 부분들을 덜 어렵게 만드는 것과 같이, 게임의 난이도를 동적으로 조정하는 방법을 결정할 수 있다.
특정 실시예들에서, 여기에 개시된 시스템들은 하나 이상의 비디오 게임들에 관한 사용자 활동을 모니터링하여(monitor) 게임 난이도에 관한 사용자의 선호도 및 비디오 게임들을 플레이하는 것에 관한 사용자의 기술 레벨을 결정한다. 이 정보는 사용자의 참여 레벨과 관련된 요소들에 적어도 부분적으로 기초하여 결정될 수 있다. 예를 들어, 시간의 평균 길이 이상 동안 비디오 게임을 플레이 하고 비디오 게임을 하는 동안 돈을 소비하는 사용자는 시간의 짧은 기간 동안 비디오 게임을 플레이 하는 사용자 보다 더 높은 레벨의 참여를 할 수 있다. 다른 예시로서, 시간의 짧은 기간 동안 비디오 게임을 플레이 하지만, 상기 플레이 세션들의 평균 수 이상(above average numberof play sessions)을 플레이하는 사용자는 참여의 높은 레벨과 관련될 수 있지만, 이전 예시의 사용자와 다르게 분류될 수 있다. 일부 실시예들에서, 참여 레벨은 상이한 게임들에 대해 다르게 커스터마이징(customized) 될 수 있다. 예를 들어, 게임-내 구매가 있는 게임을 구비한 참여 레벨은 게임-내 구매가 없는 게임으로부터 다르게 결정될 수 있다.
또한, 여기에 설명된 특정 실시예들에서, 사용자들은 유사한 선호도를 갖는 다른 사용자들과 그룹화(grouped) 될 수 있다. 사용자들은 비디오 게임에서 제시하는 도전들 또는 장애물들에 관한 사용자 행동에 기반하여 그룹화 될 수 있다. 각각의 사용자들의 그룹들은 하나 이상의 비디오 게임들에 대한 난이도 선호도 또는 설정들과 관련될 수 있다. 이 정보를 사용하여, 비디오 게임의 하나 이상의 측면들은 동적으로 조정되어 난이도 레벨들의 정적 세트 보다 사용자 참여 가능성이 더 높은, 또는 사용자를 참여시킬 가능성이 가장 높은 특정 난이도 레벨을 비디오 게임의 사용자에게 제시할 수 있다. 여기에 상기 및 추가로 언급된 바와 같이, 여기에 설명된 추가의 또는 대안적인 실시예들은 하나 이상의 파라미터 함수들 또는 예측 모델들을 사용함으로써 비디오 게임의 난이도를 조정하기 위한 하나 이상의 시드들(seeds) 또는 게임플레이 파라미터 값들을 결정할 수 있다. 예를 들어, 여기에 개시된 특정 실시예들은 히스토리컬 사용자 데이터에 적합하도록 회귀 모델을 사용할 수 있다. 회귀 모델의 초기 버전을 획득한 후, 동적 난이도 분석 및/또는 조정을 용이하게 하기 위해 추가 플레이어들에 적용될 수 있다.
또한, 여기에 설명된 특정 실시예들에서, 비디오 게임에 관한 사용자의 활동은 비디오 게임에 관한 사용자의 행동을 결정하기 위해 모니터링되거나 검토될 수 있다. 이 모니터링은 실질적으로 실시간으로, 또는 사용자가 플레이 세션을 완료 한 후 시간의 일부 기간 동안 발생할 수 있다. 플레이 세션은 사용자가 비디오 게임을 플레이 하는 시간의 기간 및/또는 사용자가 비디오 게임 또는 그의 일부분을 완료하는 것을 완료하거나 실패하는 것으로 종료하는 게임을 플레이 하는 특정 시도(particular attempt)일 수 있다. 예를 들어, 하나의 플레이 세션은 사용자가 게임 플레이의 새로운 인스턴스(new instance)를 시작하고 게임 내에서 수명이 다한 사용자로 종료할 수 있다. 다른 예시로서, 하나의 플레이 세션은 사용자가 비디오 게임을 시작하고 사용자가 비디오 게임을 나갈 때 종료할 수 있다. 다른 예시로서, 플레이 세션은 사용자가 비디오 게임 내에서 레벨 또는 서브-레벨을 시작할 때마다 있을 수 있다.
일부 경우들에서, 비디오 게임에 관한 사용자의 행동을 모니터링 하는 것은 사용자의 기술 레벨과 도전 레벨의 결정을 할 수 있다. 이 정보에 적어도 부분적으로 기초하여, 비디오 게임의 난이도 또는 비디오 게임의 부분들은 사용자에 대한 관련 사용자 그룹에 기초하여 결정된 초기 난이도 레벨로부터 조정될 수 있다. 일부 실시예들에서, 하나 이상의 사용자들에 의한 게임플레이의 코스(course) 동안 비디오 게임에 의해 사용되는 게임플레이 파라미터들은 또한 모니터링 될 수 있다. 예를 들어, 하나 이상의 세션들에 걸쳐 게임플레이 파라미터들을 모니터링함으로써, 상이한 게임플레이 파라미터들과 플레이어 행동들 사이의 상관 관계가 식별될 수 있다.
유리하게는, 특정 실시예들에서, 개별 사용자들에 대한 최적 난이도 레벨들을 예측하고 비디오 게임들에 관한 개별적인 사용자 동작들에 기초하여 난이도 레벨들을 조정하기 위하여 비디오 게임들을 플레이 하는 것과 유사한 특성들을 갖는 사용자들을 그룹화하는 예측 모델을 사용함으로써, 난이도 레벨을 결정하기 위해 사용자 행동을 모니터링하지 않는 시스템들에 비해 난이도 레벨의 더 세밀한 관리가 가능하다. 또한, 본 개시가 비디오 게임에 의해 제시되는 난이도 레벨 또는 도전을 수정하는 비디오 게임의 설정을 조정하는 것에 초점을 맞추었지만, 본 개시는 그 자체로 제한되지 않는다. 본 개시의 실시예들은 비디오 게임의 다양한 측면들을 수정하는데 사용될 수 있으며, 이는 비디오 게임의 난이도 레벨에 영향을 미칠 수도 있고 또는 그렇지 않을 수도 있다. 예를 들어, 무기들이 랜덤으로(randomly) 드롭되는(dropped) 게임에서, 사용자가 특정 게임-내 무기를 사용하여 게임을 플레이 하는 것을 선호하는 것으로 결정되면, 게임은 조정되어 선호하는 무기를 더 자주 사용자에게 제시할 수 있다. 모든 무기들이 균등하게 균형 잡히는 것과 같이, 일부 경우들에서, 드롭되는 무기의 유형은 비디오 게임의 난이도에 영향을 미치지 않을 수 있으므로, 이러한 조정은 난이도 레벨 선호도 보다 사용자 플레이 스타일 또는 선호도에 기초할 수 있다. 사용자에 의해 감지될 수도 있고 또는 그렇지 않을 수도 있는, 수정될 수 있는 비디오 게임의 특징들의 일부 다른 비-제한적인 예시들은 게임-내 캐릭터에 여분의 속도를 제공하는 것, 게임-내 캐릭터의 투구 정확성을 향상시키는 것, 게임-내 캐릭터가 점프 할 수 있는 거리 또는 높이를 향상시키는 것, 컨트롤(controls)의 응답성을 조정하는 것 등을 포함할 수 있다. 일부 경우들에서, 조정은 추가적으로 또는 대안적으로 게임-내 캐릭터의 능력을 향상시키는 것 보다 게임-내 캐릭터의 능력을 감소시키는 것을 포함할 수 있다. 예를 들어, 게임-내 캐릭터는 더 빠르게 만들 수 있지만, 촬영 정확성은 떨어진다. 일부 실시예들에서, 플레이어가 이용할 수 있는 게임-내 자원들의 양은 조정될 수 있다(예를 들어, 생명들, 물약들(potions), 게임-내 통화).
또한, 여기에 제시된 시스템들의 실시예들은 사용자가 비디오 게임 내에서 성공적으로 도전들을 완료하고 있는지 여부 및 사용자의 기술 레벨에 적어도 부분적으로 기초하여 비디오 게임의 난이도 레벨을 실질적으로 실시간으로 조정할 수 있다. 그러나, 본 개시는 그 자체로 제한되지 않는다. 예를 들어, 비디오 게임의 난이도 레벨은 사용자 선호도에 적어도 부분적으로 기초하여 조정될 수 있으며, 이는 사용자의 능력에 대응할 수도 있고 또는 그렇지 않을 수도 있다. 예를 들어, 일부 사용자들은 비디오 게임 또는 그 안에 목표들을 성공적으로 완료했는지 여부에 관계없이 가장 어려운 설정으로 비디오 게임들을 플레이하는 것을 선호할 수 있다. 비디오 게임을 플레이하는 것과 관련하여 사용자 동작들을 추적함으로써, 비디오 게임의 난이도 레벨은 특정 사용자의 선호도 및/또는 스킬 레벨과 일치하도록 조정될 수 있다.
설명을 단순화하기 위해, 본 개시는 주로 비디오 게임과 관련하여 설명된다. 그러나, 본 개시는 애플리케이션들의 다른 유형들에 적용될 수 있으므로 제한되지 않는다. 예를 들어, 여기에 개시된 실시예들은 교육 애플리케이션들 또는 애플리케이션과의 사용자 상호 작용의 히스토리(history)에 기초하여 수정될 수 있는 다른 애플리케이션들에 적용될 수 있다. 또한, 본 개시는 비디오 게임의 유형에 관해 제한되지 않는다. 여기에서 "비디오 게임"이라는 용어의 사용은 게임들의 모든 유형들을 포함하며, 웹 기반 게임들, 콘솔 게임들(console games), 개인용 컴퓨터(PC) 게임들, 컴퓨터 게임들, 모바일 장치들용 게임들(예를 들어, 스마트폰들, 포터블 콘솔들(portable consoles), 게임 기계들, 또는 가상 현실 안경들, 증강 현실 안경들 또는 스마트 시계들과 같은 웨어러블 장치들(wearable devices)), 또는 가상 현실 게임들, 뿐만 아니라 게임들의 다른 유형들을 포함할 수 있지만 이에 제한되지 않는다.
네트워크 컴퓨팅 환경 예시
도 1a는 동적 난이도 조정 시스템의 하나 이상의 실시예들을 구현할 수 있는 네트워크 컴퓨팅 환경(100)의 일 실시예를 도시한다. 네트워크 컴퓨팅 환경(100)은 네트워크(104)를 통해 인터랙티브 컴퓨팅 시스템(interactive computing system)(130)과 통신할 수 있는 사용자 컴퓨팅 시스템(110)을 포함한다. 또한, 네트워크 컴퓨팅 환경(100)은 다수의 추가 사용자 컴퓨팅 시스템들(102)을 포함할 수 있다. 사용자 컴퓨팅 시스템들(102)의 적어도 일부는 사용자 컴퓨팅 시스템(110)과 동일하게 또는 유사하게 구성될 수 있다.
비디오 게임 애플리케이션
사용자 컴퓨팅 시스템(110)은, 또한 비디오 게임으로 지칭되는, 비디오 게임 애플리케이션(112)을 포함하거나 호스트 할 수 있다. 일부 경우들에서, 비디오 게임(112)은 사용자 컴퓨팅 시스템(110) 상에서 전체적으로 실행할 수 있다. 다른 경우들에서, 비디오 게임(112)은 사용자 컴퓨팅 시스템(110)에서 적어도 부분적으로 그리고 인터랙티브 컴퓨팅 시스템(130)에서 적어도 부분적으로 실행할 수 있다. 일부 경우들에, 비디오 게임(112)은 인터랙티브 컴퓨팅 시스템(130)에서 전체적으로 실행할 수 있지만, 사용자는 사용자 컴퓨팅 시스템(110)을 통해 비디오 게임(112)과 상호 작용할 수 있다. 예를 들어, 게임은 인터랙티브 컴퓨팅 시스템(130)의 부분으로서 포함될 수 있는 하나 이상의 인터랙티브 호스트 시스템들(application host systems)(미도시)에 의해 실행되는 서버 부분(server portion) 및 사용자 컴퓨팅 시스템(110)에 의해 실행되는 클라이언트 부분(client portion)을 포함하는 대량 멀티플레이어 온라인 역할-플레잉 게임(MMORPG; massively multiplayeronline role-playing game)일 수 있다. 다른 예시로서, 비디오 게임(112)은 인터랙티브 컴퓨팅 시스템(130)과 상호 작용하지 않고 사용자 컴퓨팅 시스템(110)에서 플레이되는 어드벤처 게임(adventure game)일 수 있다.
게임플레이 파라미터들
비디오 게임(112)은 비디오 게임(112)의 일부 측면을 설명하는(예를 들어, 비디오 게임(112)의 상태를 수정 또는 영향을 미치는) 다수의 게임플레이 파라미터들(114)을 포함할 수 있다. 일반적으로, 게임플레이 파라미터들(114)은 비디오 게임(112)의 실행 또는 작동에 영향을 미치는 변수들이다. 일부 경우들에서, 게임플레이 파라미터들(114)은 비디오 게임(112)의 실행을 직접 수정하는 상태 변수들이다. 다른 경우들에서, 게임플레이 파라미터들(114)은 비디오 게임(112) 내의 발생의 확률(probability of an occurrence) 또는 비디오 게임(112) 내의 랜덤(또는 의사 랜덤(pseudorandom)) 구성 또는 이벤트를 변경할 수 있는 시드들 또는 시드 변수들이다. 예를 들어, 하나의 시드는 비디오 게임(112)에서의 레벨 레이아웃(level layout)의 생성에 대응하고 영향을 줄 수 있다. 다른 예시로서, 하나의 시드는 사용자가 비디오 게임(112)을 플레이 할 때 드롭된 아이템들의 유형들 또는 아이템 드롭들의 발생의 횟수에 대응하고 영향을 줄 수 있다. 일부 경우들에서, 시트 값은 랜덤 또는 의사 랜덤 수 생성기를 초기화하거나 영향을 미치는 값이다. 일부 이러한 경우들에서, 시드 값에 기초하여 생성된 랜덤 수(random number)는 비디오 게임(112)의 하나 이상의 기능들에 의해 이용되어 비디오 게임(112)의 작동에 영향을 미칠 수 있다. 게임플레이 파라미터들은 비디오 게임(112)의 실행을 수정할 수 있는 변수의 임의의 유형을 포함할 수 있다. 일부 실시예들에서, 게임플레이 파라미터들은 비디오 게임을 플레이하는 사용자의 능력에 영향을 미칠 수 있지만, 게임-내 리소스들(resources)(예를 들어, 추가 생명들, 물약들) 또는 통화와 같은, 비디오 게임의 실행을 수정하지 않아도 되는 다른 변수들을 포함할 수 있다. 시스템은 비디오 게임(112)을 변경할 수 있는 게임플레이 파라미터의 임의의 유형을 조정함으로써 비디오 게임의 실행을 수정할 수 있고, 특정 게임플레이 파라미터에 기초하여 이탈율의 분석을 수행할 수 있다.
일반적으로, 게임플레이 파라미터들(114)은 비디오 게임(112)의 난이도 레벨과 관련된 변수들이다. 게임플레이 파라미터들(114)은 비디오 게임(112)의 작동을 수정하는 변수들의 서브세트(subset)를 포함 할 수 있고, 비디오 게임(112)은 수정을 위해 이용 가능하지 않고 및/또는 비디오 게임(112)의 난이도 레벨의 설정에 포함되지 않는 변수들을 포함할 수 있다. 또한, 게임플레이 파라미터들(114)은 사용자에 의해 지각할 수 없거나 사용자에 의해 지각하기 어려운 방식으로 비디오 게임(112)을 수정하는 변수들을 포함할 수 있다. 일부 경우들에서, 비디오 게임(112)에 대한 수정이 사용자에 의해 지각될 수 있는지 여부는 특정 비디오 게임에 달려 있을 수 있다. 예를 들어, 하나의 게임플레이 파라미터(114)가 비디오 게임(112)에서의 적(enemy)의 수명의 양과 관련된다고 가정한다. 일부 경우들에서, 게임플레이 파라미터(114)에 할당된 값을 수정하는 것은, 사용자에 의해 검출 가능할 수 있고, 예를 들어, 적의 건강이 사용자에게 수치적으로 제시되기 때문이다. 이러한 경우들에서, 적의 건강은 비디오 게임(112)의 난이도 레벨에서 수정되지 않고 유지될 수 있지만, 비디오 게임(112)의 난이도 레벨은 상이한 게임플레이 파라미터(114)를 통해 수정될 수 있다. 그러나, 일부 경우들에서, 적의 건강을 수정하는 것은 사용자에 의해 검출 가능하지 않을 수 있고, 예를 들어 적의 건강이 사용자에게 제시되지 않기 때문이다.
사용자 인터랙션 히스토리 저장소
일부 실시예들에서, 비디오 게임(112)은 사용자 인터랙션 히스토리 저장소(116)를 포함할 수 있다. 사용자 인터랙션 히스토리 저장소(116)는 비디오 게임(112)과의 사용자의 히스토리컬 인터랙션에 관한 데이터 또는 정보를 저장할 수 있다. 이 사용자 인터랙션 정보 또는 데이터는 비디오 게임(112)과 관련된 정보의 임의의 유형을 포함할 수 있다. 사용자 인터랙션 히스토리는 비디오 게임(112)과의 사용자의 참여의 레벨(user's level of engagement with the video game) 및/또는 비디오 게임(112)의 난이도를 결정하는데 사용될 수 있다. 예를 들어, 사용자 인터랙션 정보의 일부 비-제한적인 예시들은 비디오 게임(112) 내의 사용자에 의해 취해진 동작들에 관한 정보; 비디오 게임(112) 내의 사용자의 진행의 측정치; 사용자가 비디오 게임(112) 내의 특정 동작들을 수행하는 것 또는 비디오 게임(112) 내의 특정 목표들을 완료하는 것을 성공했는지의 여부; 사용자가 특정 목표들을 완료하는 데 얼마나 걸렸는지; 사용자가 특정 목표들을 완료하는 데 얼마나 많은 시도들이 있었는지; 사용자가 비디오 게임(112)에 관해 얼마나 많은 돈을 소비했는지, 이는 비디오 게임(112)에 대한 액세스를 획득하기 위해 소비된 돈의 양 및 비디오 게임(112)에 대한 액세스를 획득하기 위해 소비된 돈을 제외한 비디오 게임(112)에 관해 소비된 돈의 양 중 하나 또는 둘 모두를 포함할 수 있음; 사용자가 비디오 게임(112)에 얼마나 자주 액세스하는지; 사용자가 비디오 게임(112)을 얼마나 오랫동안 플레이하는지; 등을 포함할 수 있다. 사용자 컴퓨팅 시스템(110)은 네트워크(104)를 통해 인터랙티브 컴퓨팅 시스템(130)과 사용자 인터랙션 정보를 공유할 수 있다. 일부 실시예들에서, 사용자 인터랙션 정보의 일부 또는 전부는 비디오 게임(112)에 의해 저장되지 않지만, 대신에 인터랙티브 컴퓨팅 시스템(130)에 의해 및/또는 비디오 게임(112)에 대한 외부의 사용자 컴퓨팅 시스템(110)의 다른 부분에 의해 결정되거나 제공된다. 일부 실시예들에서, 사용자 인터랙션 히스토리 저장소(116)는 선택적이거나 생략될 수 있다.
사용자 컴퓨팅 시스템
사용자 컴퓨팅 시스템(110)은 통신 네트워크(104)를 통해 통신을 설정하기 위한 하드웨어 및 소프트웨어 구성 요소들을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 네트워크(예를 들어, 인터넷) 또는 인트라넷(intranet)을 통한 통신을 용이하게 하는 네트워킹 장비 및 네트워크 소프트웨어 애플리케이션들(예를 들어, 웹 브라우저(web browser))를 구비할 수 있다. 사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛들(central processing units) 및 아키텍처들(central processing units and architectures), 메모리, 대용량 저장소, 그래픽 프로세싱 유닛들(graphics processing units), 통신 네트워크 가용성(availability) 및 대역폭, 등과 같은, 다양한 로컬 컴퓨팅 리소스들을 가질 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 컴퓨팅 시스템의 임의의 유형을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 데스크톱들(desktops), 랩탑들(laptops), 비디오 게임 플랫폼들(video game platforms), 텔레비전 셋-톱 박스들(television set-top boxes), 텔레비전들(예를 들어, 인터넷 TV들), 네트워크-가능 키오스크들(network-enabled kiosks), 차량-콘솔 장치들(car-console devices), 컴퓨터화된 가전 기기들(computerized appliances), 웨이어블 장치들(예를 들어, 컴퓨팅 기능을 구비한 스마트 시계들 및 안경들), 및 무선 모바일 장치들(예를 들어, 스마트 폰들, PDA들, 태블릿들 등)를 포함하지만, 몇 가지 예시일 뿐이다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 도 10 및 도 11과 관련하여 후술되는 실시예들 중 하나 이상을 포함할 수 있다.
이전에 설명된 바와 같이, 비디오 게임(112)과의 사용자의 참여의 레벨을 유지하거나 증가시키는 것이 바람직할 수 있다. 비디오 게임(112)과의 사용자의 참여의 레벨을 유지 또는 증가시키기 위한 하나의 해결책은 비디오 게임(112)을 플레이 할 때 사용자와 관련된 사용자의 스킬 및/또는 도전 레벨에 적어도 부분적으로 기초하여 비디오 게임(112)의 난이도 레벨을 동적으로 설정 또는 조정하도록 구성된 난이도 구성 시스템(difficulty configuration system)(예를 들어, 난이도 구성 시스템(132))을 이용하는 것을 포함할 수 있다. 인터랙티브 컴퓨팅 시스템(130)은 특정 사용자에 대한 비디오 게임(112)에 대한 난이도의 레벨을 결정할 수 있고, 결정에 기초하여 비디오 게임(112)의 난이도를 수정할 수 있다. 아래에서 더 상세히 설명되는 난이도 레벨의 결정은 비디오 게임(112) 및/또는 사용자에 의해 액세스 할 수 있는 다른 비디오 게임에 관한 사용자 인터랙션 정보에 적어도 부분적으로 기초하여 만들어질 수 있다.
인터랙티브 컴퓨팅 시스템
인터랙티브 컴퓨팅 시스템(130)의 실시예들은 특정 사용자에 대한 비디오 게임(112)에 대한 난이도 레벨의 결정 및 결정에 기초한 난이도 레벨의 수정을 용이하게 하는 다수의 시스템들 또는 서브시스템들(subsystems)을 포함할 수 있다. 이러한 시스템들 또는 서브시스템들은 난이도 구성 시스템(132), 사용자 그룹핑 시스템(user grouping system)(134), 게임플레이 평가 시스템(136), 사용자 데이터 저장소(138), 참여 분석 시스템(engagement analysis system)(140), 맵핑 데이터 저장소(144) 및 모델 생성 시스템(model generation system)(146)을 포함할 수 있다. 이 시스템들의 각각은 하드웨어 및 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 또한, 이 시스템들의 각각은 컴퓨터 하드웨어를 포함하는 단일 컴퓨팅 시스템에서 또는 하나 이상의 개별 또는 분산 컴퓨팅 시스템들에서 구현될 수 있다. 또한, 이 시스템들이 도 1a에 인터랙티브 컴퓨팅 시스템(130)에 저장되거나 실행되는 것으로 도시되지만, 일부 실시예들에서, 이 시스템들의 일부 또는 전부는 사용자 컴퓨팅 시스템(110) 또는 다른 시스템에 저장되고 실행될 수 있음이 인식된다.
일부 실시예들에서, 사용자 컴퓨팅 시스템(110)이 네트워크(104)를 통해 인터랙티브 컴퓨팅 시스템(130)과 연결되거나 통신할 때, 인터랙티브 컴퓨팅 시스템(130)은 여기에 설명된 프로세스들을 수행할 수 있다. 그러나, 사용자 컴퓨팅 시스템(110) 및 인터랙티브 컴퓨팅 시스템(130)이 통신하지 않는 일부 경우들에서, 사용자 컴퓨팅 시스템(110)은 사용자 인터랙션 히스토리 저장소(116)에 저장될 수 있는 사용자의 정보를 사용하여 여기에 설명된 특정 프로세스들을 수행 할 수 있다.
사용자 데이터 저장소
사용자 데이터 저장소(138)의 실시예들은 비디오 게임(112) 및/또는 하나 이상의 다른 비디오 게임들과의 하나 이상의 사용자의 인터랙션과 관련된 사용자 인터랙션 정보를 저장할 수 있다. 이 사용자 인터랙션 정보는 비디오 게임(112)의 하나 이상의 플레이 세션들(play sessions)에 걸쳐 획득될 수 있다. 또한, 사용자 데이터 저장소(138)는 사용자 그룹핑 시스템(134)에 의해 생성된 하나 이상의 사용자 그룹들과 관련된 사용자 그룹 정보를 저장할 수 있다. 일부 경우들에서, 사용자 데이터 저장소(138)에 저장된 데이터의 적어도 일부는 사용자 컴퓨팅 시스템(110)의 저장소에 저장될 수 있다. 여기에 설명된 저장소들의 각각은 비-휘발성 메모리 또는 휘발성 및 비휘발성 메모리의 조합을 포함할 수 있다.
일부 실시예들에서, 사용자 데이터 저장소(138)는 획득된 사용자 인터랙션 정보에 기초하여, 특정 사용자에 각각 대응하는 하나 이상의 사용자 프로파일들을 저장할 수 있다. 예를 들어, 특정 사용자에 대한 사용자 프로파일은 복수의 플레이 세션들에 걸쳐 사용자에 대한 사용자 인터랙션 정보를 수집하고 취합하는데 사용될 수 있다.
일부 실시예들에서, 특정 사용자에 대한 사용자 프로파일은 또한 수집된 사용자 데이터를 취합함으로써 사용자의 하나 이상의 속성들을 정의할 수 있다. 속성들은, 사용자의 결정된 스킬 레벨, 사용자가 게임을 플레이 한 시간의 총 길이, 평균 세션 시간, 높은 스코어(high score), 평균 스코어, 킬들/죽음들(kills/deaths), 레벨 당 평균 시도들, 레벨에 대한 시도들의 최대 횟수 및/또는 등등과 같은, 비디오 게임(112)에 관한 사용자의 행동의 측면을 포함하는 값의 임의의 유형에 대응할 수 있다. 일부 실시예들에서, 사용자 프로파일은 각 게임에 대한 각 사용자에 대해 구성될 수 있다. 다른 실시예들에서, 사용자 프로파일은 다수의 게임들에 대한 특정 사용자에 대응하고, 사용자와 관련된 모든 게임들에 대한 사용자에 대한 제1 속성들의 세트, 및 특정 게임들에 대한 특정한 사용자에 대한 제2 속성들의 세트를 포함할 수 있다.
난이도 구성 시스템
난이도 구성 시스템(132)의 실시예들은 비디오 게임(112)의 난이도 레벨을 설정 또는 조정할 수 있다. 일부 경우들에서, 난이도 구성 시스템(132)은 하나 이상의 게임 플레이 파라미터들(114)에 대한 값들을 조정 또는 제공함으로써 비디오 게임(112)의 난이도 레벨을 조정 또는 설정할 수 있다. 일부 경우들에서, 난이도 구성 시스템(132)은 난이도 레벨의 설정 또는 조정이 이루어질 때마다 모든 이용 가능한 게임플레이 파라미터(114)를 설정 또는 조정한다. 다른 경우들에서, 난이도 구성 시스템(132)은 비디오 게임(112)의 난이도 레벨을 설정 또는 조정할 때 이용 가능한 게임플레이 파라미터들(114)의 서브세트를 설정 또는 조정할 수 있다.
일부 경우들에서, 난이도 구성 시스템(132)은 제약들 없이 비디오 게임(112)의 일부분의 난이도를 수정할 수 있다. 일부 다른 경우들에서, 난이도 구성 시스템(132)은 비디오 게임(112)의 일부분의 난이도를 제약들의 일 세트 내에서 수정할 수 있다. 예를 들어, 제약들은 개발자, 규칙들의 일 세트에 의해 특정될 수 있고 및/또는 비디오 게임(112)의 부분들에 특정적일 수 있다. 예를 들어, 일부 경우들에서, 난이도 구성 시스템(132)은 비디오 게임(112)의 선행 부분에 기초하여 비디오 게임(112)의 후속 부분의 난이도 레벨을 조정할 수 있어 난이도에서의 변경은 선행 부분의 난이도에 비해 난이도 임계치를 초과하지 않는다. 일부 실시예들에서, 난이도 구성 시스템(132)은 (예를 들어, 사용자 데이터 저장소(138)로부터의) 사용자에 대한 히스토리컬 데이터에 기초하여 비디오 게임(112)의 부분들의 난이도를 조정할 수 있다. 일부 실시예들에서, 난이도 구성 시스템(132)은 하나 이상의 게임플레이 파라미터들의 값들을 조정함으로써 난이도 레벨을 조정할 수 있으며, 여기서 게임플레이 파라미터들의 값들은 게임플레이 파라미터 평가 시스템(gameplay parameter evaluation system)(136)(아래에서 더 상세하게 설명되는)을 사용하여 상이한 난이도 레벨들로 맵핑될(mapped) 수 있다. 난이도 구성 시스템(132)은 토너먼트 도중(duringa tournament)과 같은 일부 상황들에서 완전히 턴 오프되도록(turnedoff) 구성될 수 있다.
모델 생성 시스템
모델 생성 시스템(146)의 실시예들은 하나 이상의 기계 학습 알고리즘들을 사용하여 하나 이상의 예측 모델 또는 파라미터 함수들을 생성할 수 있다. 이들 예측 모델들 중 하나 이상은, 사용자 인터랙션 정보, 사용자 속성들(예를 들어, 사용자의 사용자 프로파일에 기초한), 게임플레이 파라미터 값들 및/또는 등등과 같은, 입력들의 세트에 기초하여 예상되는 값 또는 발생을 결정하는데 사용될 수 있다.
예를 들어, 예측 모델은 게임과의 사용자 참여의 레벨을 나타내는 하나 이상의 메트릭스(metrics)을 결정하는 데 사용될 수 있다. 예를 들어, 하나 이상의 메트릭스는, 예를 들어, 사용자에 대한 히스토리컬 사용자 인터랙션 정보(historical user interaction information)와 같은, 예측 모델에 대한 하나 이상의 입력들에 기초하여 사용자가 비디오 게임(112)을 플레이하는 것을 중단할 확률 또는 예상된 이탈율을 포함할 수 있다. 다른 실시예에서, 예측 모델은, 사용자가 완료를 위해 게임을 플레이 할 확률 및 게임과의 사용자의 참여를 증가시키기 위하여, 게임을 플레이할 때 사용자가 직면하는 것을 선호할 수 있는, 도전 레벨 또는 도전의 예측된 레벨을 결정하는데 사용될 수 있다. 다른 예시로서, 예측 모델은 예측 모델에 대한 하나 이상의 입력들에 기초하여 비디오 게임에 대한 게임-내 아이템들 구매시 사용자에 의해 소비된 돈의 예상된 양을 결정하는데 사용될 수 있다. 일부 경우들에서, 예측 모델은 예측 모델로 지칭될 수 있고, 예를 들면 출력이 사용자가 비디오 게임(112)을 계속해서 플레이하는 예측과 같은, 동작 또는 이벤트의 예측일 수 있거나 관련될 수 있기 때문이다.
일부 실시예들에서, 예측 모델들은 복수의 사용자들 또는 자동화된 루틴들(automatedroutines)(아래에서 더 상세히 설명되는 "봇들(bots)")로부터의 데이터를 분석함으로써 생성될 수 있다. 사용자 또는 봇 데이터는 사용자 플레이 세션들의 길이/빈도, 사용자/봇 스코어들, 사용자/봇 게임플레이 인터랙션들 및/또는 등등과 같은, 봇 정보 및/또는 사용자 인터랙션 정보의 임의의 유형에 대응할 수 있다. 사용자 및/또는 봇 데이터의 서로 다른 유형들 간의 관계들은 사용자 및/또는 봇 데이터의 어떤 유형이 예상된 값 또는 발생을 예측하는데 사용될 수 있는지를 결정하도록 식별될 수 있다. 예를 들어, 사용자 데이터의 특정 유형들은 사용자 참여의 레벨을 높게 나타내는(indicative) 것으로 발견될 수 있고(예를 들어, 사용자 플레이 세션들의 빈도, 사용자 소비, 및/또는 이와 유사한 것), 반면 사용자 데이터의 다른 유형들은 사용자 참여의 레벨을 적게 나타내는 것으로 발견될 수 있다. 다수의 알고리즘들의 상이한 유형들은 모델 생성 시스템(146)에 의해 사용될 수 있다. 예를 들어, 여기에서 특정 실시예들은 로지스틱 회귀 알고리즘(logistical regression algorithm)을 사용할 수 있다. 그러나, 그 중에서도, 선형 회귀 알고리즘, 이산 선택 알고리즘, 또는 일반화된 선형 알고리즘과 같은, 다른 알고리즘도 가능하다.
일부 실시예들에서, 모델 생성 시스템(146)은 인터랙티브 컴퓨팅 시스템(130)으로부터의 별개 시스템에 구현될 수 있다. 예를 들어, 하나 또는 예측 모델들(160)은 인터랙티브 컴퓨팅 시스템(130)으로부터 별개인 시스템에 생성되고, (예를 들어, 참여 분석 시스템(140) 및/또는 난이도 구성 시스템(132)에 의해) 인터랙티브 컴퓨팅 시스템(130)에 의한 사용을 위해 인터랙티브 컴퓨팅 시스템(130)에 의해 수신될 수 있다.
기계 학습 알고리즘들은 모델 생성 시스템(146)에 의해 수신된 새로운 입력에 기초하여 시간이 지남에 따라 모델들을 적응적으로 개발 및 업데이트하도록 구성될 수 있다. 예를 들어, 새로운 사용자 정보가 이용 가능할 때 모델들은 주기적으로 재생성될 수 있어 사용자 정보가 시간이 지남에 따라 발달할(evolves) 때 모델에서의 예측을 더 정확하게 유지할 수 있다. 모델 생성 시스템(146)은 여기에서 더 상세하게 설명된다. 모델이 생성된 후, 그것은 참여 분석 시스템(140)에 제공될 수 있다.
파라미터 함수들 또는 예측 모델들을 생성하고 업데이트하는데 사용될 수 있는 기계 학습 알고리즘들의 일부 비-제한적인 예시들은, 회귀 알고리즘(예를 들어, 보통 최소 자승 회귀(Ordinary Least Squares Regression)과 같은), 인스턴스-기반 알고리즘들(instance-based algorithms)(예를 들어, 학습 벡터 양자화(Learning Vector Quantization)와 같은), 의사 결정 트리 알고리즘들(decision tree algorithms)(예를 들어, 분류 및 회귀 트리들), 베이지안 알고리즘들(Bayesian algorithms)(예를 들어, 나이브 베이즈(Naive Bayes)와 같은), 클러스터링 알고리즘들(clustering algorithms)(예를 들어, k-평균 클러스터링(k-means clustering)과 같은), 연관 규칙 학습 알고리즘들(association rulelearning algorithms)(예를 들어, 선험적 알고리즘들(Apriori algorithms)과 같은), 인공 신경망 알고리즘들(artificial neural network algorithms)(예를 들어, 퍼셉트론(Perceptron)과 같은), 깊이 학습 알고리즘들(deep learning algorithms)(예를 들어, 깊이 볼츠만 기계(Deep Boltzmann Machine)와 같은), 차원성 감소 알고리즘들(dimensionality reduction algorithms)(예를 들어, 주성분 분석(Principal Component Analysis)), 앙상블 알고리즘들(ensemble algorithms)(예를 들어, 스택 일반화(Stacked Generalization)와 같은), 및/또는 다른 기계 학습 알고리즘들을 포함하는, 감독 및 비-감독 기계 학습 알고리즘들(supervisedand non-supervised machine learning algorithms)을 포함할 수 있다.
도 1b는 도 1a의 모델 생성 시스템(146)의 일 실시예를 도시한다. 모델 생성 시스템(146)은 다수의 사용자들에 대한 히스토리컬 데이터(152)에 기초하여 하나 이상의 예측 모델들(160)을 결정하는데 사용될 수 있다. 일반적으로, 필수적이지는 않지만, 히스토리컬 데이터(152)는 수백, 수천, 수십만 또는 그 이상의 사용자들과 같은, 다수의 사용자들과 관련된 데이터를 포함한다. 그러나, 본 개시는 그 자체로 제한되지 않으며, 사용자들의 수는 사용자들의 임의의 수를 포함할 수 있다.
일부 실시예들에서, 히스토리컬 데이터(152)는 완료하도록 게임을 플레이 한 적이 있는 사용자들에 대한 데이터를 포함할 수 있으며, 이는 다른 사용자들이 완료될 때까지 게임을 플레이 할 가능성이 있는지를 예측하기 위한 가장 유용할 수 있는 정보의 유형(예를 들어, 사용자들 행동들, 게임플레이 설정들 등)을 결정하는데 사용될 수 있다. 일부 실시예들에서, 히스토리컬 데이터(152)는 하나 이상의 봇들로부터의 데이터를 포함할 수 있다.
또한, 히스토리컬 데이터(152)는, 예를 들어, 애플리케이션 호스트 시스템(미도시) 및/또는 하나 이상의 사용자 컴퓨팅 시스템(102)과 같은, 하나 이상의 데이터 소스들로부터 수신된 데이터를 포함할 수 있다. 또한, 히스토리컬 데이터(152)는 다른 데이터 소스들로부터의 데이터, 상이한 데이터 유형들, 및 비디오 게임(112)과의 하나 이상의 사용자의 인터랙션에 의해 생성된 임의의 데이터를 포함할 수 있다. 일부 실시예들에서, 히스토리컬 데이터(152)는 수백만의 데이터 포인트들과 같은 데이터 포인트들의 매우 많은 수를 포함할 수 있고, 이는 하나 이상의 데이터 세트들로 취합될 수 있다. 일부 경우들에서, 히스토리컬 데이터 (152)는 사용자 데이터 저장소(138)로부터 액세스될 수 있다. 일부 실시예들에서, 히스토리컬 데이터(152)는 비디오 게임에 대한 히스토리컬 정보로 제한되지만, 다른 실시예들에서는, 히스토리컬 데이터(152)는 하나 이상의 다른 비디오 게임들로부터의 정보를 포함할 수 있다. 또한, 일부 실시예들에서, 히스토리컬 데이터의 하나 이상의 서브세트들은, 예를 들어 지난 6 개월로부터의 데이터만 포함하도록 제한되거나, 특정 지리적 영역 또는 시간대와 연관된 사용자들로 제한되는 것과 같은, 날짜 기준 또는 다른 기준에 의해 제한된다.
또한, 모델 생성 시스템(146)은, 일부 경우들에서, 피드백 데이터(feedback data)(154)를 수신할 수 있다. 이 데이터는, 관리자와 같은, 사용자가 모델 생성 시스템(146)에 추가 입력을 제공할 수 있게 하는 감독 모델 생성 프로세스의 부분으로서 수신될 수 있다. 예를 들어, 히스토리컬 데이터(152)에 이상이 존재하는 경우, 사용자는 모델 생성 시스템(146)이 태그된 데이터를 다르게 처리할 수 있게 하는 비정상적인 데이터를 태그 할 수 있고, 예를 들어 데이터에 다른 가중치를 적용하거나 모델 생성 프로세스로부터 데이터를 제외하는 것과 같다.
또한, 모델 생성 시스템(146)은 제어 데이터(control data)(156)를 수신할 수 있다. 이 제어 데이터(156)는 모델 생성 시스템(146)이 모델을 결정하기 위한 하나 이상의 특징들 또는 특성들을 식별할 수 있다. 또한, 일부 경우들에서, 제어 데이터(156)는 제어 데이터(156)에서 식별된 하나 이상의 특징들에 대한 값을 나타낼 수 있다. 예를 들어, 제어 데이터(156)는, 예측 모델이 히스토리컬 데이터(152)를 사용하여 생성되어 사용자들이 비디오 게임(112)을 플레이한 시간의 길이를 결정하는 것을 나타낸다. 사용자가 게임을 플레이한 시간의 양이 공지되면, 이 데이터는 제어 데이터(156)의 부분으로서 또는 히스토리컬 데이터(152)의 부분으로서 제공될 수 있다. 다른 예시로서, 예를 들어, 사용자들이 시간의 임계 기간 동안 비디오 게임(112)을 플레이했는지 또는 시간의 특정 임계 기간 후에 비디오 게임(112)을 계속 플레이하는지 여부에 기초하여, 결정된 바와 같은 유지율을 추정하기 위해 예측 모델이 생성되어야 하는 경우, 제어 데이터(156)는 데이터가 히스토리컬 데이터(152)에 포함되는 사용자들에 대한 유지율을 포함할 수 있다.
모델 생성 시스템(146)은 일반적으로 예측 모델(160)의 생성을 위한 모델 생성 규칙 세트(170)를 포함할 수 있다. 규칙 세트(170)는 하나 이상의 파라미터들(162)을 포함할 수 있다. 파라미터들의 각 세트(162)는 파라미터 함수를 획득하도록 하나 이상의 수학적 함수들을 사용하여 조합될 수 있다. 또한, 하나 이상의 특정 파라미터들은 가중치들(164)에 의해 가중될 수 있다. 일부 경우들에서, 파라미터 함수는 가중치들의 각각의 세트(164)와 파라미터들의 세트를 조합함으로써 획득될 수 있다. 예측 모델(160) 및/또는 예측 모델들(160)의 각각의 파라미터들(162)은, 히스토리컬 데이터(152), 피드백 데이터(154), 및 제어 데이터(156)와 같은, 특정 입력 데이터에 기초하여 트레이닝 프로세스(training process) 동안 도출되고, 출력 기준이 정의될 수 있으며, 이는 트레이닝 목적들을 위해 사용되는, 제어 데이터(156)와 함께 포함될 수 있다. 모델 생성 규칙 세트(170)는 모델 생성 시스템(146)이 유지율을 결정하는 것과 같은, 정의된 목적 함수에 기초하여 모델을 생성하는데 사용하는 특정 기계 학습 규칙들 및/또는 알고리즘들을 정의할 수 있다. 일부 실시예들에서, 초기 파라미터들(162) 및 가중치들(164)은 모델 생성 프로세스의 개시 동안 수동으로 제공될 수 있다. 파라미터들(162) 및 가중치들(164)은 예측 모델(160)을 생성하기 위해 모델 생성 단계 동안 업데이트되고 수정될 수 있다.
모델 생성 시스템(146)은 데이터의 다양한 특성들 및 파라미터들에 따라 히스토리컬 데이터 세트들을 필터링(filter)하고 분류(categorize)할 수 있다. 예를 들어, 데이터는 데이터 소스(예를 들어, 게임 애플리케이션 데이터, 호스트 애플리케이션 데이터, 또는 사용자 프로파일 데이터와 같은), 정보 유형(예를 들어, 게임플레이 정보, 거래 정보, 인터랙션 정보, 게임 계좌 정보와 같은), 또는 데이터와 관련된 다른 카테고리들에 의해 분류될 수 있다. 모델 생성 시스템(146)은 추가 프로세싱을 위해 정보를 식별하기 위해 정보를 필터링 할 수 있다. 일부 실시예들에서, 모델 생성 시스템(146)은 추가 프로세싱 전에 복수의 데이터 유형들 또는 카테고리들로 히스토리컬 데이터(152)를 필터링하고 분리하도록 구성된다. 또한, 일부 경우들에서, 히스토리컬 데이터(152)의 일부는 모델 생성 시스템(146)에 의해 결정된 임계 관련성을 만족시키지 않는 관련성과 관련되는 데이터에 기초하여 히스토리컬 데이터(152)로부터 필터링되거나 제거될 수 있다.
예측 모델(160)이 생성된 후에, 모델은 비디오 게임(112)의 난이도를 조정하기 위해 참여 분석 시스템(140) 및/또는 난이도 구성 시스템(132)의 실행시간 동안 사용될 수 있다. 일부 경우들에서, 난이도의 조정은 역동적일 수 있고 비디오 게임(112)과의 사용자의 인터랙션 동안 발생할 수 있다. 또한, 일부 경우들에서, 난이도 조정은 실시간 또는 거의 실시간으로 발생할 수 있다.
참여 분석 시스템
참여 분석 시스템(140)은 모델 생성 시스템(140)에 의해 생성된 예측 모델에 대한 사용자에 대한 사용자 인터랙션 데이터의 적용에 기초하여 사용자에 대한 예측된 이탈 또는 유지율을 결정하기 위한 하나 이상의 시스템들을 포함할 수 있다. 일부 경우들에서, 난이도 구성 시스템(132)은 참여 분석 시스템(140)에 의해 결정된 예측 유지율을 사용하여 비디오 게임(112)의 난이도에 대한 조정을 결정할 수 있다. 일부 실시예들에서 난이도에 대한 조정들은 맵핑 데이터 저장소(144)에서의 데이터를 사용하여 결정되어 게임의 어떤 특징들을 변경할지 및 특징들을 어떻게 변경할지를 결정한다.
도 1c는 도 1a의 참여 분석 시스템(140)의 일 실시예를 도시한다. 참여 분석 시스템(140)은 모델 생성 시스템(146)에 의해 생성된 예측 모델들(160) 중 하나 이상을 적용하거나 사용할 수 있다. 별도의 시스템으로 도시되었지만, 일부 경우들에서, 참여 분석 시스템(140)은 난이도 설정 시스템(132)의 부분으로서 포함될 수 있다. 참여 분석 시스템(140)은 입력 데이터(172)를 처리하기 위해 하나 이상의 예측 모델들(160A, 160B, 160N)(이는 집합적으로 "예측 모델들(160)" 또는 단수로 "예측 모델(160)"로 지칭될 수 있음)을 사용하여 출력 데이터(174)를 획득할 수 있다.
참여 분석 시스템(140)은 게임 플레이 동안 예측 모델(들)(160)을 적용할 수 있다. 일부 실시예들에서, 예측 모델들(160)은 전체 게임의 난이도를 조정하는 방법을 결정하기 위해 게임의 시작시에 적용된다. 다른 실시예들에서, 예측 모델들(160)은 게임 중에 상이한 시간들에 및/또는 게임에서의 상이한 스테이지들(stages)에서 적용된다. 비디오 게임(112)의 하나 이상의 부분들에 대한 난이도 레벨의 결정 동안, 참여 분석 시스템(140)은 하나 이상의 예측 모델들(160)에 적용될 수 있는 입력 데이터(172)를 수신한다. 입력 데이터(172)는 비디오 게임(112)을 플레이하는 사용자와 관련된 데이터의 하나 이상의 피스들을 포함할 수 있다. 이 데이터는 비디오 게임(112)에 대한 사용자 인터랙션 데이터, 사용자에 대한 프로파일 데이터, 및 사용자에 대한 도전의 예측된 레벨, 사용자에 대한 유지율 또는 이탈율 및/또는 등등을 결정하도록 예측 모델(160)에 적용될 수 있는 임의의 다른 데이터를 포함할 수 있다. 일부 실시예들에서, 입력 데이터(172)는 참여 분석 시스템(140)에 제공되기 전에 필터링 될 수 있다.
일부 실시예들에서, 단일 예측 모델(160)은 참여 분석 시스템(140)에 대해 존재할 수 있다. 그러나, 도시된 바와 같이, 참여 분석 시스템(140)이 다수의 예측 모델들(160)을 포함하는 것이 가능하다. 참여 분석 시스템(140)은, 입력 데이터(172)와 관련된 추가 식별자들 및/또는 입력 데이터(172)에 기초하여 사용하는, 임의의 모델들(160A-N)과 같은, 검출 모델(detection model)을 결정할 수 있다. 추가적으로, 선택된 예측 모델(162)은 입력 데이터(172)로서 제공된 특정 데이터에 기초하여 선택될 수 있다. 입력 데이터(172)의 부분으로서 데이터의 특정 유형들의 가용성은 예측 모델(160)의 선택에 영향을 미칠 수 있다. 예를 들어, 입력 데이터의 부분으로서 인구통계학적 데이터(demographic data)(예를 들어, 연령, 성별, 제1 언어)의 포함은 예측 모델(160A)의 사용을 초래할 수 있다. 그러나, 특정 사용자에 대해 인구통계학적 데이터가 이용 가능하지 않다면, 예측 모델(160B)이 대신 사용될 수 있다.
출력 데이터(174)는 사용자가 비디오 게임(112)을 계속 플레이하도록 비디오 게임과의 사용자 참여를 증가시키도록 게임의 난이도가 구성되는 사용자와 관련된 도전 레벨(challenge level) 또는 도전의 예측된 레벨(predicted level of challenge)일 수 있다. 출력 데이터(174)는, 유지율 또는 이탈율과 같은, 다른 파라미터들에 대해서 최적화되도록 구성될 수 있다. 예를 들어, 일부 실시예들에서, 출력 데이터(174)는 예측된 이탈율 또는 예측된 보유율을 포함할 수 있다.
여기에 사용된 바와 같이, "도전의 예측된 레벨" 또는 "도전 레벨"이라는 용어들은 게임플레이의 코스 전체에서 사용자의 참여의 레벨을 유지하는 비디오 게임의 상대적인 난이도 레벨을 지칭할 수 있다. 일부 실시예들에서, 도전의 예측된 레벨은 0 및 100 사이의 점수로 표현되어 게임의 어려움의 레벨을 나타내어 사용자에 대한 참여를 증가시키는 것을 도울 것이다. 일부 실시 예에서, 도전의 예측된 레벨은 사용자의 기술 레벨과 게임의 난이도 사이의 관계를 나타낼 수 있다. 예를 들어, 기술의 낮은 레벨을 갖는 제1 사용자와 기술의 높은 레벨을 갖는 제2 사용자 모두는 도전의 동일한 예측된 레벨과 관련될 수 있다. 그러나, 제1 사용자에게 도전의 예측된 레벨을 제공하기 위한 실제 난이도는 제2 사용자에 대한 것보다 낮을 수 있다.
일부 실시예들에서, 유지율은 임계 시간 기간 내에 비디오 게임(112)을 플레이하는 것을 중단 할 사용자들의 예측된 백분율을 나타내는 0 및 100 사이일 수 있다. 일부 경우들에서, 출력 데이터(174)는 또한 유지율에 대한 이유를 식별할 수 있다. 예를 들어, 참여 분석 시스템(140)은 특정 사용자에 대한 90% 유지율이 비디오 게임(112)을 플레이하는 동안 소비된 돈의 양에 적어도 부분적으로 기초한다는 것을 나타낼 수 있다. 그러나, 참여 분석 시스템(140)은 다른 사용자에 대한 80% 유지율이 적어도 부분적으로 사용자가 위치하는 지리적 영역에서의 동결 온도(freezing temperature)에 기초될 수 있다. 다른 예시로서, 참여 분석 시스템(140)은 사용자에 대한 20% 유지율이 25 % 미만의 승률에 적어도 부분적으로 기초할 수 있음을 나타낼 수 있다.
예측 모델(160A, 160B, 160N)은, 일반적으로 각각, 하나 이상의 파라미터들(162A, 162B, 162N)의 세트를 포함할 수 있다(이는 "파라미터(162)"로 집합적으로 지칭될 수 있음). 파라미터들의 각 세트(162)(파라미터들(162A)와 같은)는 하나 이상의 수학적 함수들을 사용하여 조합되어 파라미터 함수를 획득할 수 있다. 또한, 파라미터들(162A, 162B, 162N)로부터의 하나 이상의 특정 파라미터들은 가중치들(164A, 164B, 164N)(집합적으로 "가중치들(164)"로 지칭될 수 있음)에 의해 가중될 수 있다. 일부 경우들에서, 파라미터 함수는 파라미터들의 세트(파라미터(162A)와 같은)를 가중치(164)의 각각의 세트(가중치들(164A)와 같은)와 조합함으로써 파라미터 함수를 획득할 수 있다.
맵핑 데이터 저장소
맵핑 데이터 저장소(144)는 비디오 게임(112)의 난이도 레벨과 예측 모델의 출력 사이의 하나 이상의 맵핑들을 포함할 수 있으며, 이는, 예를 들어, 비디오 게임(112)의 나이도 조정을 위해 비디오 게임(112)을 수정하는 방법을 결정하는 난이도 구성 시스템(132)에 의해 사용될 수 있다. 예를 들어, 사용자의 예측된 도전 레벨이 "높다"면, 맵핑 데이터 저장소(144)는 게임을 플레이하기 더 어렵게 만드는 하나 이상의 게임플레이 파라미터들에 대한 값들의 세트를 링크(link)할 수 있다. 또한, 난이도 구성 시스템(132)은 도전의 예측된 레벨을 유지하기 위하여, 사용자가 게임을 통해 계속 진행함에 따라 게임을 계속 조정할 수 있다. 맵핑은 비디오 게임(112)의 난이도를 수정하는데 사용될 수 있는 하나 이상의 게임플레이 파라미터들 또는 시드들에 대한 하나 이상의 값들과 파라미터 함수의 출력 사이에 있을 수 있다.
또한, 비디오 게임(112)의 파라미터 함수들의 생성 및 적용 및 난이도 레벨을 조정하는데 있어서의 그것들의 사용은 참여 분석 시스템(140)과 관련하여 아래에서 더 상세히 설명될 것이다. 특정 실시예들에서, 난이도 구성 시스템(132)은 모델 생성 시스템(146)일 수도 있고 포함할 수도 있다. 또한, 일부 경우들에서, 난이도 구성 시스템(132)은 참여 분석 시스템(140) 일 수도 있고 포함 할 수도 있다.
사용자 그룹핑 시스템
사용자 그룹핑 시스템(134)은 비디오 게임(112)에 관한 사용자의 기술 레벨 또는 사용자에 의해 액세스되는 다른 비디오 게임들과 같은, 각 사용자와 관련된 정보에 적어도 부분적으로 기초하여 사용자들의 세트를 그룹들로 그룹화 또는 분할할 수 있다. 사용자 그룹핑 시스템(134)은 비디오 게임(112)에 대한 사용자의 참여 레벨 또는 사용자들에 의해 액세스되는 다른 비디오 게임에 영향을 미치는 하나 이상의 사용자들과 관련된 하나 이상의 기준에 기초하여 사용자들을 그룹화할 수 있다. 일부 실시예들에서, 사용자 그룹핑 시스템(134)은 사용자 그룹핑 시스템(134)에 의해 식별되거나 생성된 각 사용자 그룹과 관련시키기 위해 난이도 선호도의 세트를 식별하거나 결정할 수 있다.
게임플레이 파라미터 평가 시스템
전술한 바와 같이, 참여 분석 시스템(140)의 하나 이상의 출력들에 기초하여 게임의 난이도 레벨을 구성 할 수 있는 것이 바람직할 수 있다. 일부 실시예들에서, 게임의 난이도 레벨은 하나의 또는 더 많은 게임플레이 파라미터들에 대한 값들을 설정함으로써 구성될 수 있다. 그러나, 게임플레이 파라미터 값들을 조정함으로써 게임의 난이도 레벨을 조정할 수 있기 위해서는, 다른 게임플레이 파라미터 값들을 난이도 레벨들과 연관시킬 필요가 있을 수 있다.
게임플레이 평가 시스템(136)은 비디오 게임의 실행에 영향을 미칠 수 있는 파라미터들(예를 들어, 비디오 게임의 게임플레이의 난이도) 또는 다른 조정 가능한 측면들 및/또는 시드 값들과 같은, 게임플레이 파라미터 값들의 비디오 게임(112)에 의해 제공되는 도전 또는 난이도를 평가할 수 있다. 예를 들어, 게임플레이 평가 시스템(136)은 특정 파라미터 값들 및/또는 시드 값들이 이용될 때 사용자들이 비디오 게임(112)을 얼마나 잘 플레이하는지에 기초하여 비디오 게임(던전(dungeon)과 같은)의 특정 레벨 또는 부분에 얼마나 도전하는지를 결정할 수 있다. 유리하게는, 특정 실시예들에서, 특정 게임플레이 파라미터 값, 범위 또는 게임플레이 파라미터 값들, 및/또는 복수의 게임플레이 값들의 조합에 의해 제공되는 도전을 평가함으로써, 비디오 게임(112)의 난이도 레벨은 게임플레이 파라미터 값들을 특정 난이도 레벨에 대해 조정함으로써 정제될(refined) 수 있다. 예를 들어, 특정 게임플레이 파라미터 값, 값들의 범위, 및/또는 복수의 게임플레이 값들의 조합이 사용자들이 더 높은 비율(예를 들어, 80%)로 실패하게 하는 것으로 결정되면, 게임플레이 파라미터 값(들)은 사용자들이 더 낮은 비율(예를 들어, 20%)로 실패하게 하는 게임플레이 파라미터 값(들)에 대한 다른 설정보다 더 어려운 난이도 레벨과 관련될 수 있다.
일부 실시예들에서, 게임플레이 파라미터는 시드 값에 대응할 수 있다. 예를 들어, 일부 실시예들에서, 게임의 레벨은 선택된 시드 값에 기초하여 생성될 수 있다. 상이한 시드 값들은 난이도의 상이한 레벨들 또는 카테고리와 관련될 수 있다. 일부 실시예들에서, 주어진 시드의 초기 난이도 레벨은 공지되지 않을 수 있다. 그러나, 비디오 게임(112)을 플레이하는 사용자들의 그룹과 관련된 데이터와 같은, 게임플레이 데이터가 수신될 때, 시드를 사용하여 생성된 비디오 게임의 레벨들에서 성공한 사용자들이 어떻게 성공하는지에 기초하여 시드의 난이도 레벨은 추론될 수 있다.
일부 실시예들에서, 특정 게임플레이 파라미터 값들(예를 들어, 시드 값들)과 관련된 난이도의 레벨은 게임플레이를 시뮬레이트하기(simulating) 위해 (인간 사용자들과는 대조적으로) 하나 이상의 자동화된 에이전트들(automatedagents)과 관련된 데이터를 사용함으로써 평가될 수 있다. 하나 이상의 자동화된 에이전트들("봇들"이라고도 지칭함)은 에이전트와 관련된 정의된 루틴에 기초하는 특정 게임플레이 파라미터 값(특정 시드 값과 같은)을 사용하여 생성된 레벨의 게임플레이 상태들을 통해 플레이를 시도하는데 사용될 수 있다. 일부 실시예들에서, 상이한 봇들은 게임플레이 행동들의 상이한 유형들에 대응하는 루틴들의 상이한 유형과 관련될 수 있다. 예를 들어, 봇의 제1 유형은 게임플레이의 코스 중에 랜덤 동작들을 취하는 것을 시뮬레이트하도록 프로그램밍 될(programmed) 수 있는 반면, 봇의 제2 유형은 게임플레이 동작들의 특정 유형들을 다른 것들보다 우선 순위로 정하도록 프로그래밍 될 수 있다. 일부 실시예들에서, 봇의 상이한 유형들은 상이한 기술 레벨들과 관련될 수 있다. 게임플레이 파라미터에 기초하여 게임플레이 레벨들에서 복수의 상이한 시간들에 복수의 봇들의 상이한 유형들을 실행하는 것은, 게임플레이 파라미터와 관련된 난이도 레벨을 결정하는 것을 도울 수 있다.
예를 들어, 일부 실시예들에서, 상이한 기술 레벨들(예를 들어, 상이한 행동 루틴들)을 구비한 많은 상이한 봇들은, 비디오 게임의 부분의 난이도 레벨 또는 다른 속성 또는 게임플레이 파라미터 값들과 관련된 난이도를 평가하기 위하여, 특정 게임플레이 파라미터 값들을 갖는 비디오 게임의 일 부분에서 실행될 수 있다. 봇 기술 레벨, 게임의 부분을 완료하기 위해 봇에 의해 사용되는 이동들(moves) 또는 리소스들의 수, 게임의 부분을 완료하기 위해 봇에 의한 시간, 게임의 부분을 완료하기 위해 봇에 의한 시도들의 수 또는 성공률, 게임의 부분을 플레이 할 때 봇에 의해 달성된 스코어, 및/또는 기타 등등은, 게임의 부분과 관련된 하나 이상의 게임플레이 파라미터 값들의 또는 게임의 부분과 관련된 다른 속성 또는 난이도 레벨을 평가하는데 기록되고 사용될 수 있다. 일부 실시예들에서, 기록된 메트릭스는 사용자의 기술 레벨을 평가하는 것과 같이, 예측 모델(160)을 생성 또는 수정하는데 사용될 수 있다.
네트워크
네트워크(104)는 통신 네트워크의 임의의 유형을 포함할 수 있다. 예를 들어, 네트워크(104)는 하나 이상의 광역 네트워크(WAN), 근거리 네트워크(LAN), 셀룰러 네트워크(cellular network), 애드혹 네트워크(ad hoc network), 위성 네트워크, 유선 네트워크, 무선 네트워크, 및 등등을 포함할 수 있다. 또한, 일부 경우들에서, 네트워크(104)는 인터넷을 포함할 수 있다.
기계 학습 프로세스 예시
도 2는 기계 학습 프로세스(200)의 일 실시예의 흐름도를 나타낸다. 프로세스(200)는 하나 이상의 파라미터들을 포함하는 하나 이상의 파라미터 함수들 또는 예측 모델들을 생성할 수 있는 임의의 시스템에 의해 구현될 수 있다. 일부 경우들에서, 프로세스(200)는 히스토리컬 데이터 또는 다른 공지된 데이터에 기초하여 하나 이상의 파라미터 함수들 또는 예측 모델들을 개발하기 위한 트레이닝 프로세스로서 기능한다. 전체 또는 부분적으로, 프로세스(200)는, 예를 들어, 그 중에서도, 인터랙티브 컴퓨팅 시스템(130), 난이도 구성 시스템(132), 사용자 그룹핑 시스템(134), 참여 분석 시스템(140), 모델 생성 시스템(146), 또는 사용자 컴퓨팅 시스템(110)에 의해 구현될 수 있다. 설명을 단순화하기 위해, 임의의 수의 시스템들이, 전체적으로 또는 부분적으로, 프로세스(200)를 구현할 수 있지만, 프로세스(200)는 특정 시스템들과 관련하여 설명될 것이다. 또한, 프로세스(200)는 시간이 지남에 따라 반복적으로 업데이트되거나 수행될 수 있다는 것을 이해해야 한다. 예를 들어, 프로세스(200)는 새로운 비디오 게임의 추가 또는 출시(release)로, 또는 비디오 게임(112)을 분석 또는 플레이하기 위해 이용 가능한 새로운 사용자들의 임계 수의 추가로 월 1 회 반복될 수 있다. 그러나, 프로세스(200)는 더 많거나 더 적게(more or less) 종종 수행될 수 있다.
프로세스(200)는 모델 생성 시스템(146)이 비디오 게임(112)의 다수의 사용자들에 대한 사용자 인터랙션 데이터를 포함하는 히스토리컬 데이터(152)를 수신하는 블록(202)에서 시작한다. 이 히스토리컬 데이터(152)는 모델 생성 시스템(146)에 대한 트레이닝 데이터로서 기능할 수 있고 연령, 지리적 위치, 성별 또는 사회 경제적 분류와 같은, 사용자 인구통계학적 또는 특성들을 포함할 수 있다. 대안으로, 또는 부가적으로, 히스토리컬 데이터(152)는 하나 이상의 사용자들의 플레이 스타일(play style)에 관한 정보; 비디오 게임(112)을 플레이하는데 소비된 돈의 양; 비디오 게임(112)에 관한 사용자 성공 또는 실패 정보(예를 들어, 사용자 승률); 비디오 게임(112)을 플레이하는 플레이 빈도; 특정 선택 게임 요소들(예를 들어, 사용 가능한 부스트들(boosts), 레벨 스킵들(level skips), 게임-내 힌트들(in-game hints), 파워 업들(power ups) 등)을 사용하는 빈도; 비디오 게임(112)에 대한 게임-내 아이템들을 구매하는데 소비된 실제 돈의 양(예를 들어, 미국 달러 또는 유럽 유로); 기타 등등을 포함할 수 있다. 또한, 일부 경우들에서, 히스토리컬 데이터(152)는 비디오 게임(112)을 플레이 한 봇들 또는 사용자들에 의해 사용되는 하나 이상의 시드 값들과 같은, 비디오 게임(112)에 관련된 데이터를 포함할 수 있다. 히스토리컬 데이터(152)의 부분으로서 수신될 수 있는 비디오 게임(112)에 관한 데이터의 추가적 예시들은 비디오 게임(112)의 하나 이상의 게임플레이 파라미터들 또는 상태 변수들에 대한 설정들, 사용자들에 의해 사용되는 비디오 게임(112)에 대한 하나 이상의 난이도 레벨들의 아이덴티티(identity), 비디오 게임(112)의 유형, 기타 등등을 포함할 수 있다.
일부 실시예들에서, 히스토리컬 데이터(152)는 또한 하나 이상의 자동화된 루틴들 또는 봇들과 관련된 데이터를 포함할 수 있다. 예를 들어, 히스토리컬 데이터(152)는 모델 생성 시스템(146)에 대한 트레이닝 데이터로서 기능할 수 있고, 봇 유형들 또는 특성들(예를 들어, 봇 기술 레벨, 봇에 관련된 규칙들 또는 루틴들), 봇 게임플레이를 평가할 때 사용되는 게임플레이 파라미터 값들, 봇 게임플레이 데이터(예를 들어, 비디오 게임의 부분을 플레이 할 때 봇에 의해 사용되는 다른 게임-내 리소스들, 이동들, 단계들의 수, 비디오 게임의 부분들을 완료 할 때의 봇 성공/실패율, 및/또는 등등)를 포함할 수 있다.
블록(204)에서, 모델 생성 시스템(146)은 제공된 히스토리컬 데이터에 기초하여 다수의 사용자들에 대한 공지된 출력을 나타내는 제어 데이터(156)를 수신한다. 이 제어 데이터(156)는 모델 생성 시스템(146)이 모델을 생성하기 위해 사용할 하나 이상의 특징들 또는 특성들을 나타낼 수 있다. 대안으로 또는 부가적으로, 제어 데이터(156)는 수신된 히스토리컬 데이터(152)와 관련된 특징들 또는 특성들에 대한 값을 포함할 수 있다. 예를 들어, 제어 데이터(156)는, 모델 생성 시스템(146)에 의해 생성될 모델에 의해 예측될 원하는 특징으로서, 난이도 레벨, 이탈율 또는 유지율을 결정할 수 있다. 난이도 레벨은 사용자의 참여 레벨을 증가시킬 게임의 난이도 레벨에 대응할 수 있다. 이탈율 또는 보유율은 비디오 게임(112)의 플레이를 중단하는 히스토리컬 데이터(152)와 연관된 사용자들의 백분율에 대응할 수 있다. 또한, 제어 데이터(156)는 히스토리컬 데이터와 관련된 난이도 레벨 및/또는 유지율을 식별할 수 있다. 예를 들어, 제어 데이터(156)는 히스토리컬 데이터(152)에 포함된 데이터를 가진 특정 사용자들에게는 난이도의 높은 레벨이 바람직하다는 것을 나타낼 수 있다. 다른 예시에서, 제어 데이터(156)는 히스토리컬 데이터(152)에 포함되는 데이터를 가진 특정 사용자들에 대해 유지율이 60%임을 나타낼 수 있다. 일부 실시예들에서, 제어 데이터(156)는 모델 생성 시스템(146)에 의해 생성될 모델에 의해 예측되는 다수의 특성들 또는 특징들을 포함할 수 있다. 예를 들어, 제어 데이터(156)는 유지율 및 유지율에 대한 이유(블록(202)에서 히스토리컬 데이터(152)의 부분으로서 제공된 데이터를 가진 사용자들에 대해 너무 낮거나 또는 너무 어려운 비디오 게임(112)의 난이도와 같은), 또는 데이터가 히스토리컬 데이터(152)로서 제공된 사용자들에 의해 소비된 평균 화폐 양 및 유지율 모두를 식별할 수 있다.
블록(206)에서, 모델 생성 시스템(146)은 히스토리컬 데이터(152) 및/또는 제어 데이터(156)에 기초하여 하나 이상의 예측 모델들(160)을 생성한다. 예측 모델들(160)은, 일부 경우들에서, 제어 데이터(156) 및 히스토리컬 데이터(152)에 기초하여 예측 모델(160)을 생성하는 모델 생성 규칙세트(170) 또는 수학적 알고리즘을 사용하여 조합될 수 있는 하나 이상의 변수들 또는 파라미터들(162)을 포함할 수 있다.
일부 실시예들에서, 히스토리컬 데이터(152)는 어떤 정보의 유형들이 사용자에 대한 예측을 결정하는데 가장 유용한지를 결정하기 위하여, 사용자와 관련된 어떤 정보의 유형이 원하는 예측의 값들과의 상관 관계들을 나타내는지를 결정하기 위해 분석될 수 있다. 예를 들어, 일부 실시예들에서, 완료될 게임을 플레이 한 사용자들과 관련된 정보는 분석되어 어떤 정보의 유형들(예를 들어, 사용자 행동들, 게임플레이 설정들 등)이 다른 사용자들이 완료될 때까지 게임을 플레이 할 가능성이 있는지 여부를 예측하는데 가장 유용할 수 있다.
또한, 특정 실시예들에서, 블록(206)은 하나 이상의 피드백 데이터(154)를 적용하는 단계를 포함할 수 있다. 예를 들어, 예측 모델(160)이 감독 기계 학습 프로세스의 부분으로서 생성되는 경우, 사용자(예를 들어, 관리자)는 예측 모델 (160)이 생성 될 때 및/또는 예측 모델(160) 생성 프로세스를 정제하도록 모델 생성 시스템 (146)에 하나 이상의 입력들을 제공할 수 있다. 예를 들어, 사용자는 특정 지역 또는 지리적 영역에 정전(power outage)이 있음을 알고 있을 수 있다. 그러한 경우에, 사용자는 정전 동안 영향 받은 지리적 지역으로부터의 사용자들에 대응할 수 있는 히스토리컬 데이터(152)의 부분의 가중치를 감소시키기 위해 피드백 데이터(154)를 공급할 수 있다. 또한, 일부 경우들에서, 변수들 또는 파라미터들 중 하나 이상은, 예를 들어, 가중치들(164)을 사용하여 가중될 수 있다. 변수에 대한 가중치의 값은 히스토리컬 데이터(152), 제어 데이터(156) 및/또는 임계 불일치(threshold discrepancy) 내의 만족들, 또는 만족하는 예측 모델(160)을 생성하는데 있어 변수가 갖는 영향에 적어도 부분적으로 기초할 수 있다. 일부 경우들에서, 변수들 및 가중치들의 조합은 예측 모델(160)을 생성하는데 사용될 수 있다.
동적 난이도 조정 시스템 인터랙션들 예시
도 3은 일부 실시예들에 따른, 사용자 컴퓨팅 시스템(110), 참여 분석 시스템(140), 및 난이도 구성 시스템(132) 간의 인터랙션들의 블록도를 도시한다. 상술한 바와 같이, 사용자는 사용자 컴퓨팅 시스템(110)에서 비디오 게임을 플레이 할 수 있다. 예를 들어, 비디오 게임은 도 1a에 도시된 비디오 게임(112)에 대응할 수 있다.
사용자 컴퓨팅 시스템(110)에서의 사용자가 비디오 게임(112)을 플레이 함에 따라, 사용자 데이터는 생성되고 인터랙티브 컴퓨팅 시스템(130)의 사용자 데이터 저장소(138)에 저장될 수 있다. 사용자 데이터는 사용자 id, 사용자 프로파일 정보, 사용자 인구통계학적 정보 및/또는 기타 등등과 같은, 사용자의 아이덴티티에 관한 정보를 포함할 수 있다. 또한, 사용자 데이터는 게임플레이의 코스 동안 수행된 사용자 동작들, 게임플레이의 코스 동안 사용자에 의해 도달된 게임 상태들, 사용자에 의해 완료된 게임플레이의 레벨, 및/또는 다른 게임 플레이 통계들(예를 들어, 스코어, 승리/패배 기록, 특정 동작들이나 레벨들을 완료하려는 시도들, 및/또는 기타 등등)의 표시들을 포함할 수 있다.
일부 실시예들에서, 사용자 데이터는 수집되어 사용자가 비디오 게임(112)을 플레이 할 때 실질적으로 실시간으로 사용자 데이터 저장소(138)에 저장될 수 있다. 다른 실시예들에서, 사용자 데이터는 사용자 컴퓨팅 시스템(110)과 관련된 저장소(예를 들어, 사용자 인터랙션 히스토리(116))에 저장될 수 있으며, 정의된 간격들(예를 들어, 플레이 세션의 종료에, 플레이 세션 동안 지정된 시간들에, 및/또는 그와 같은 것)로 사용자 데이터 저장소(138)로 단지 전송 및 저장된다.
사용자 데이터 저장소(138)는 복수의 상이한 사용자들에 대한 복수의 플레이 세션들에 걸쳐 수집된 플레이어 데이터를 포함할 수 있다. 예를 들어, 일부 실시예들에서, 사용자가 비디오 게임(112)을 처음 플레이 할 때, 계정 정보 또는 다른 식별 정보는 사용자에 대해 수집될 수 있다. 사용자가 게임을 할 때마다 사용자 데이터는 사용자에 대해 수집될 수 있다. 이와 같이, 사용자 데이터 저장소(138)는 복수의 게임의 사용자들에 대한 취합된 히스토리컬 데이터(예를 들어, 히스토리컬 데이터(152))를 포함 할 수 있다.
일부 실시예들에서, 사용자 데이터 저장소(138)는 정의된 루틴들("봇들")(미도시)을 실행하는 하나 이상의 자동화된 에이전트들로부터의 데이터를 더 포함할 수 있다. 각각의 봇은 비디오 게임(112)의 복수의 게임플레이 상태들을 통해 스텝핑(stepping)함으로써 게임플레이를 시뮬레이트하는데 사용될 수 있다. 일부 실시예들에서, 상이한 봇들은 비디오 게임(112)의 특정 부분의 비디오 게임(112)의 게임플레이 상태들을 통해 스텝핑하기 위한 상이한 규칙들 또는 절차들과 관련될 수 있다. 일부 실시예들에서, 봇들은 게임플레이 파라미터 값들과 관련된 난이도 레벨을 평가하기 위하여, 특정 게임플레이 파라미터 값들과 관련된 비디오 게임(112)의 특정 부분들의 게임플레이 상태들을 통해 스텝핑하도록 구성될 수 있다.
일부 실시예들에서, 전술한 바와 같이, 사용자 데이터 저장소(138)에 저장된 특정 사용자에 대한 사용자 데이터는 사용자와 관련된 데이터를 취합하는 사용자 프로파일을 구성하는데 사용될 수 있다. 예를 들어, 사용자 프로파일은 수집된 사용자 데이터를 취합함으로써 사용자의 하나 이상의 속성들을 정의할 수 있다. 속성들은 비디오 게임(112)에 관한 사용자의 행동의 측면, 예컨대 사용자의 결정된 기술 레벨, 사용자가 게임을 플레이 한 총 시간의 길이, 평균 세션 시간, 높은 스코어, 평균 스코어, 킬들/죽음들, 레벨 당 평균 시도들, 레벨에 대한 시도들의 최대 횟수, 및/또는 등등을 나타내는 값의 임의의 유형에 대응할 수 있다. 일부 실시예들에서, 사용자 프로파일은 각 게임에 대한 각 사용자에 대해 구성 될 수있다. 다른 실시예들에서, 사용자 프로파일은 다수의 게임들에 대한 특정 사용자에 대응할 수 있고, 사용자와 관련된 모든 게임들에 대한 사용자에 대한 제1 속성들의 세트 및 특정 게임들에 특정한 사용자에 대한 제2 속성들의 세트를 포함할 수 있다.
일부 실시예들에서, 사용자 프로파일 속성들은 도 1b에 도시된 바와 같이 하나 이상의 예측 모델들(160)을 히스토리컬 데이터(152)로 구성하기 위해 모델 생성 시스템(146)에 의해 사용되는 히스토리컬 데이터(152)에 대응할 수 있다. 예를 들어, 상술한 바와 같이, 모델 생성 시스템(146)은, 예측 모델(160)을 생성하기 위해, 어느 사용자 속성들이 하나 이상의 출력 데이터(174)의 유형들을 예측하는데 가장 관련이 있는지를 결정하기 위하여 복수의 상이한 사용자 프로파일들의 속성들을 분석할 수 있다. 일부 실시예들에서, 사용자 프로파일 속성들은 도 1c에 도시된 바와 같이 예측 모델(160)에 대한 입력 데이터(172)로서 사용될 수 있다. 예를 들어, 예측 모델(160)은 사용자 프로파일 속성들을 수신하고 예측(예를 들어, 예상된 이탈율, 예상된 도전의 레벨, 및/또는 기타 등등)을 생성하기 위해 이것들을 사용할 수 있다.
일부 실시예들에서, 사용자 데이터 저장소(138)의 데이터(예를 들어, 특정 사용자에 대한 사용자 프로파일)는 하나 이상의 예측을 생성하기 위해 참여 분석 시스템(140)의 하나 이상의 예측 모델들(160)에 의해 사용될 수 있다. 예측 모델들(160)은, 난이도 최적화 모델(304), 및 사용자가 게임을 플레이하는 것을 멈추게 할 가능성을 나타내는, 사용자에 대한 유지 또는 이탈 표시기(retention or churn indicator)(310)를 계산하는데 사용되는 이탈 예측기(churn predictor)(302)를 포함할 수 있다.
난이도 최적화 모델(304)은 게임을 플레이 하는 사용자에 대한 도전의 레벨(308)을 결정하도록 구성될 수 있다. 예를 들어, 사용자들의 상이한 유형들은 더 많거나 더 적게 어려울 수 있는 게임들을 플레이하는 것을 선호할 수 있다. 제1 사용자의 유형은 더 쉬운 게임을 플레이 하는 것을 선호할 수 있으며, 시도들의 특정 횟수 내에 게임 내에서의 목표들을 달성할 수 없는 경우 게임에 좌절감을 느끼고 게임을 중단할 수 있다. 반면에, 제2 사용자의 유형은 게임에 의해 도전 받는 것을 즐기고, 사용자가 그들의 첫 시도에서 게임의 특정 목표들을 완료할 수 없는 경우 게임으로부터의 즐거움을 증가시킬 수 있다. 일부 실시예들에서, 사용자(308)에 대한 도전의 예측된 레벨은 게임 내의 다양한 상태들에서 사용자에 대한 최적의 승률을 사용하여 표시될 수 있다. 예를 들어, 게임에서의 특정 상태에 있는 사용자에 대한 승률이 높으면 도전의 낮은 레벨을 표시할 수 있지만, 상태에 있는 사용자의 승률이 낮으면 도전의 더 낮은 레벨을 표시할 수 있다.
난이도 최적화 모델(304)은 사용자 프로파일로부터의 데이터를 사용하여 사용자의 예상된 행동을 결정할 수 있다. 예를 들어, 사용자가 게임에서 특정 레벨을 특정 횟수 시도했지만 여전히 게임을 계속 플레이하는 것으로 공지된다면, 난이도 최적화 모델(304)은 사용자가 게임을 플레이 할 때 도전의 특정 정도(308)를 받아 들일 수 있음을 예측할 수 있다. 사용자의 사용자 프로파일 데이터는, 사용자가 어떻게 행동 할 것으로 예상되는지를 평가하기 위하여, 다른 사용자들과 관련된 히스토리컬 데이터와 비교될 수 있다.
일부 실시예들에서, 사용자는 유사한 속성 값들(예를 들어, 유사 기술 레벨들, 유사 게임플레이 행동, 게임에 대한 유사 소비의 양 및/또는 등등과 같은)을 갖는 복수의 사용자들을 포함하는 사용자 풀 또는 그룹(user pool or group)과 관련될 수 있고, 여기서 사용자에 대한 도전의 레벨(308)은 그룹과 관련된 도전의 레벨에 기초하여 결정될 수 있다. 일부 실시예들에서, 사용자들은 난이도 최적화 모델(304)에 의해 특정된 속성 값들에 기초하여, 사용자 그룹핑 시스템(134)을 사용하여 그룹화 될 수 있다.
일부 실시예들에서, 난이도 최적화 모델(304)은 사용자에 대한 난이도 궤적을 결정할 수 있다. 예를 들어, 사용자가 게임을 통해 진행할 때, 그것은 게임이 종종 더 어려워지거나 더 복잡해질 것으로 예상될 수 있다. 반면에, 그것은 게임을 플레이 하는 사용자가 기술을 증가시키고 및/또는 그들이 게임을 통해 진행할 때 게임의 더 나은 이해를 얻음이 예상될 수도 있다. 이와 같이, 난이도 궤적에 기초하여 게임의 난이도를 변경함으로써, 그것은 게임을 플레이 할 때 사용자에게 제시되는 도전의 레벨(308)이 바람직한 레벨로 유지될 수 있음이 가능할 수 있다. 예를 들어, 난이도 궤적은 사용자의 기술 레벨의 예상된 증가율에 기초하여 게임의 난이도 레벨이 증가하도록 구성될 수 있어, 게임플레이의 코스에서 사용자에게 제시되는 도전의 레벨(308)은 바람직한 레벨(예를 들어, 상대적으로 일정하거나 게임이 진행됨에 따라 서서히 증가함)로 유지될 수 있다. 난이도 궤적은 비디오 게임(112)에서 사용자에 의해 직면한 현재 난이도를 결정하고, 게임들과 관련된 하나 이상의 게임플레이 파라미터들(114)을 변경함으로써, 비디오 게임(112)의 난이도가 게임이 진행됨에 따라 증가 또는 감소할 수 있는 속도를 제어하는데 사용될 수 있다.
일부 실시예들에서, 난이도 구성 시스템(132)은 하나 이상의 예측 모델들의 출력을 사용하여 사용자에 대한 비디오 게임(112)의 난이도 레벨을 조정하기 위해 게임플레이 파라미터 조정(312)을 동적으로 결정할 수 있다. 예를 들어, 게임의 난이도는 (이탈 예측 모델(302)로부터의) 예측된 이탈 표시기(310) 또는 (난이도 최적화 모델(304)로부터의) 난이도 궤적 또는 예측된 도전의 레벨(308)에 기초하여 변경될 수 있다. 일부 실시예들에서, 난이도 구성 시스템(132)은 난이도 최적화 모델(310)에 의해 예측된 도전 레벨 출력을 난이도 레벨 또는 게임플레이 파라미터 값과 맵핑하기 위해 맵핑 데이터 저장소(144)를 사용할 수 있다. 예를 들어, 사용자의 기술 레벨에 기초하여, 예측된 도전의 레벨(308)은 게임에서의 현재 상태에서 사용자에 대한 난이도 레벨을 결정하는데 사용될 수 있다. 난이도 레벨은 원하는 난이도 레벨과 관련된 특정 게임플레이 파라미터 값(예를 들어, 시드 값)을 선택하는데 사용될 수 있다.
일부 실시예들에서, 난이도 구성 시스템(132)은 이탈 예측 모델(304)의 출력에 기초하여 게임플레이 파라미터 조정(312)을 특정할 수 있다. 예를 들어, 이탈 예측 모델(308)이 사용자가 이탈할 가능성이 있다고 지시하면(예를 들어, 이탈 표시기(310)가 임계 값을 만족함), 난이도 구성 시스템(132)은, 사용자가 짧은 기간에 이탈하는 것을 방지하기 위하여 난이도를 더 낮추도록 구성된 게임플레이 파라미터 조정(312)을 특정할 수 있다(예를 들어, 사용자가 게임에서의 다음 레벨로 나아갈 수 있게 허용함).
한편, 난이도 최적화 모델(304)에 기초한 동적 조정(312)은, 예를 들어, 난이도 최적화 모델(304)에 의해 결정될 때 사용자의 도전의 레벨(308)에 기초하여, 사용자에 대한 난이도 궤적을 높이거나 낮추어줌으로써, 사용자에 대한 게임플레이에 더 장기적인 영향들을 미칠 수 있다. 예를 들어, 사용자가 게임을 통해 신속하게 진행하지만(예를 들어, 레벨 당 시도들의 수가 낮을 때), 게임에 대한 관심을 잃어 가고 있는 것처럼 보인다면(예를 들어, 게임 세션들의 길이 또는 빈도가 감소함), 난이도 최적화 모델(304)은 사용자에 의해 직면되는 현재 도전의 레벨보다 더 높은 도전의 레벨(308)을 예측할 수 있다. 이에 응답하여, 난이도 구성 시스템(132)은, 사용자에게 더 많은 도전을 제시하기 위하여, 게임의 난이도 궤적을 높이기 위해 게임플레이 파라미터 조정(312)을 특정할 수 있다.
사용자가 게임을 계속 플레이 할 때, 난이도 최적화 모델(304)은 사용자에 대한 추가 사용자 데이터가 수신됨에 따라 사용자에 대한 도전의 레벨(308) 또는 난이도 궤적을 조정할 수 있다. 예를 들어, 수신된 사용자 데이터는 사용자가 게임의 특정 부분에서 정상보다 더 많은 도전을 경험하고 있음을 나타낼 수 있다. 이것은 사용자의 기술이 게임의 난이도 궤적에 비해 예상대로 향상되지 않았거나, 게임의 특정 부분이 예상보다 어려워졌음을 나타낼 수 있다. 이와 같이, 난이도 궤적은 수신된 사용자 데이터에 기초하여 조정될 수 있다. 예를 들어, 사용자의 기술 증가가 게임의 난이도 궤적을 따라 가지 못했다고 결정되면, 난이도 궤적은 사용자와 관련된 예측된 도전의 레벨을 유지하기 위하여 더 낮아질 수 있다.
일부 실시예들에서, 난이도 구성 시스템(132)은 또한 게임 개발자가 게임의 하나 이상의 측면들을 조정하는 것을 고려하는 검토를 위해, 레포트들(reports), 데이터 세트들(data sets), 플래그들(flags), 표시기들 또는 피드백을 생성할 수 있다. 예를 들어, 권고 시스템(recommendation system)(314)은, 게임의 특정 부분들이 의도한 것보다 더 많거나 더 적게 어렵다는 것을 결정하기 위하여, 복수의 사용자들에 대한 난이도 구성 시스템(132)에 의해 결정된 게임 난이도 설정들뿐만 아니라, 복수의 사용자들과 관련된 사용자 데이터 저장소(138)로부터의 사용자 데이터를 분석할 수 있다. 예를 들어, 다수의 사용자들이 게임의 특정 부분에서 예상되는 것보다 더 많거나 더 적은 시도들을 하고 있고, 게임 부분에서 해자하는 등의 검출에 응답하여, 게임의 부분이 예상보다 더 많거나 더 적게 어려다는 것을 결정할 수 있다. 이와 같이, 권고 시스템(314)은 게임 개발자의 부분의 난이도 레벨이 예상대로는 아님을 나타내는 리포트들 또는 권고를 게임 개발자에게 제시하기 위해 생성할 수 있다. 일부 실시예들에서, 권고는 게임의 부분과 관련된 하나 이상의 게임플레이 파라미터들을 특정할 수 있다. 게임 개발자는, 권고를 볼 때, 비디오 게임(112)에서 게임을 업데이트하기 위해 검출된 문제를 처리하는 게임 업데이트(316)를 생성함으로써 게임의 부분의 난이도 레벨을 조정하기로 결정할 수 있다.
플레이어 진행 모델 예시
일부 실시예들에서, 사용자가 게임을 통해 진행하는 방법은 플레이어 진행 모델을 사용하여 모델링 될 수 있다. 도 4a는 레벨-기반 게임에서의 플레이어 진행 모델(400)의 일 예시를 도시한다. 일부 실시예들에서, 레벨-기반 게임에서, 사용자는 플레이어가 현재 레벨을 이기거나 완료하는 경우에만 더 높은 레벨들로 진행 및 잠금 해제를 할 수 있다. 이와 같이, 게임 내에서의 사용자의 진행은 그들이 현재 있는 게임의 레벨에 의해 측정될 수 있다. 도 4a에 도시 된 모델(400)이 주로 레벨-기반 게임들에서의 진행을 나타낼 수 있지만, 모델은 일반화된 다른 게임 유형들이 될 수도 있음을 이해할 것이다. 일부 실시예들에서, 도 4a에 도시된 모델(400)은 도 3에 도시된 바와 같이 난이도 최적화 모델(304)의 부분으로서 구현될 수 있다.
도 4a에 도시된 바와 같이, 사용자의 현재 진행 상태는 두 개의 차원들을 사용하여 정의될 수 있다: 레벨 및 시도(trial)(특정 레벨에서 이길 때 플레이어에 의해 만들어진 시도들의 수를 나타내는). 예를 들어, 사용자가 특정 레벨(예컨대, 레벨 k)에 있고 레벨에서 특정 수(예컨대, 시도 t)를 가질 때, 사용자는 더 높은 레벨로 나아가거나(예컨대, 레벨 k+1) 또는 반복된 시도들의 현재 레벨을 유지할(예컨대, 시도 t+1) 수 있다. t 번째 시도에서 k 번째 레벨에서 게임을 플레이 하는 사용자의 상태는 s k,t 로서 표시될 수 있다.
도 4a는 상이한 상태들 사이의 사용자의 가능한 진행들의 일 예시를 도시한다. 예를 들어, 초기 상태 sk,t (402)에서 사용자가 레벨 k를 완료하면, 그들은 다음 레벨(상태 sk+1,1 404)의 제1 시도 상태로 나아갈 수 있다. 그러나, 사용자가 레벨 완료를 실패하면, 그들은 동일한 레벨(상태 sk,t+1 406)의 다음 시도 상태로 이동할 수 있다. 또한, 사용자가 게임을 플레이하는 것을 중단하고 절대로 게임으로 돌아 가지 않는 이탈 상태(408)가 존재할 수 있다. 사용자는 임의의 다른 상태로부터 이탈 상태로 들어갈 수 있다.
일부 실시예들에서, 사용자의 플레이어 진행 모델에서의 상태 전이들은 (사용자가 다음 레벨로 나아갈 수 있는 시도 t에서 현재 레벨 k 를 완료할 수 있는 확률을 나타내는) 승률 wk,t 및 (사용자가 주어진 레벨 k 및 시도 t에서 이탈할 수 있는 가능성을 나타내는) 이탈율 ck,t 에 기초하여 모델링 될 수 있다. 일부 실시예들에서, 이탈율 ck,t 는 (사용자가 시도 t에서 주어진 레벨 k를 성공적으로 완료한 후 이탈할 확률을 나타내는) 승리 이탈율(win churn rate)
Figure 112019068753698-pat00001
및 (시도 t에서 레벨 k를 완료하는 데 실패한 시도 후에 사용자가 이탈할 확률을 나타내는) 패배 이탈율(loss churn rate)
Figure 112019068753698-pat00002
를 포함할 수 있다. 일부 실시예들에서, 승률 wk,t 은 게임의 시도 t 및 레벨 k에서 사용자에 의해 경험된 도전의 레벨을 나타낼 수 있다(예를 들어, 사용자에 대한 도전의 레벨이 낮다는 것을 나타내는 높은 승률, 및 사용자에 대한 도전의 레벨이 높다는 것을 나타내는 낮은 승률).
이와 같이, 사용자가 다음 레벨 상태(404)로 진행할 확률(예를 들어, 그들이 게임의 레벨을 성공적으로 완료하고 이탈하지 않는 경우)은 다음과 같이 표현될 수 있다:
Figure 112018019862436-pat00003
한편, 사용자가 레벨을 완료하는데 있어서 실패한 시도 후에 현재 레벨을 재시도 할(상태 406) 확률은 다음과 같이 표현될 수 있다:
Figure 112018019862436-pat00004
레벨을 완료할 때 레벨 또는 실패한 시도를 성공적으로 완료한 후에, 사용자가 이탈 상태(408)에 도달할 확률은 다음과 같이 표현 될 수 있다:
Figure 112018019862436-pat00005
일부 실시예들에서, 동적 난이도 조정은 사용자 참여를 증가시키고 이탈 상태에 진입하는 사용자들의 확률을 최소화하기 위하여 승률
Figure 112019068753698-pat00006
의 값들을 구성하는데 사용될 수 있다.
전술한 바와 같이, 사용자의 참여는 게임 세션들의 빈도, 길이, 및 플레이된 시간의 양 및/또는 기타 등등과 같은, 다양한 상이한 메트릭스를 사용하여 측정될 수 있다. 일부 실시예들에서, 사용자 참여는 사용자에 의해 플레이된 라운드들의 수에 의해 측정될 수 있으며, 각 라운드는 레벨을 완료하기 위해 사용자에 의한 시도(성공 또는 실패)를 지칭할 수 있다. 사용자가 전체 게임의 코스를 통해 플레이 할 것으로 예상될 수 있는 라운드들의 수가 높아질수록, 그들의 참여 레벨이 높아지고 그들이 이탈할 가능성이 줄어든다.
일부 실시예들에서, 메트릭 R은 사용자가 전체 게임의 코스 동안 플레이 할 것으로 예상할 수 있는 다수의 라운드들을 표현하는데 사용될 수 있다. 메트릭 Rk,t 는 사용자가 특정 상태 sk,t 에 도달한 후에 재생되는 라운드들의 예상 총 수를 나타내는데 사용될 수 있다. 도 4a에 도시된 바와 같이, 주어진 상태 sk,t 에 대해, 사용자는 둘의 다른 비-이탈 상태들, sk+1,t (사용자가 레벨 k를 성공적으로 완료한 경우) 및 sk,t (사용자가 레벨 k를 완료하는데 실패한 경우)로 전이만 될 수 있다. 이와 같이, Rk,t 는 상태들 사이의 전이 확률들에 기초하여, Rk+1,t Rk,t+1 의 가중치 합으로서 계산될 수 있다. 예를 들어, Rk,t 는 다음과 같이 표현될 수 있다:
Figure 112018019862436-pat00007
Figure 112019068753698-pat00008
Figure 112019068753698-pat00009
에 대해 상기 수학식들을 사용하면, Rk,t 는 이탈율 c 및 승률 w의 함수로서 다음과 같이 표현될 수 있다:
Figure 112018019862436-pat00010
복수의 상태들에 걸친 최적의 승률들의 세트는 전체 게임의 코스 동안 이탈를 감소시키고 사용자 참여를 최대화시키기 위하여 결정될 수 있다. 예를 들어, 최적의 승률들의 세트는 다음과 같이 계산될 수 있다:
Figure 112018019862436-pat00011
여기서 W는 복수의 상이한 상태들에 대해 승률들의 세트
Figure 112018019862436-pat00012
에 대응한다. 일부 실시예들에서, 각
Figure 112018019862436-pat00013
는 하나 이상의 게임 디자인 또는 콘텐츠 제약들에 기초하여, 상한선과 하한선 사이에서 제한될 수 있다(예를 들어,
Figure 112018019862436-pat00014
).
각 게임 진행 상태에서 특정 사용자에 대한 최적의 승률
Figure 112019068753698-pat00015
을 결정함으로써, 사용자의 참여(예를 들어, 플레이될 라운들들의 예상 수 Rk,t 에 의해 표시되는 바와 같이)가 향상될 수 있고, 사용자가 게임을 플레이하는 코스에 대해 이탈할 가능성이 적어질 수 있다. 일부 실시예들에서, 상이한 상태들에서의 사용자에 대한 예상 이탈율은 사용자들을 게임을 플레이 한 다른 유사한 사용자들과 비교함으로써 결정될 수 있다. 예를 들어, 전술한 바와 같이, 사용자는 공유된 특성들에 기초하여 다른 사용자들 또는 사용자들 그룹들과 관련될 수 있으며, 이는 개인 또는 인구통계학적 특성들뿐만 아니라, 플레이 세션들의 길이 및 빈도, 특정 레벨들에 대한 시도들의 수, 사용자 기술 레벨 및/또는 등등과 같은 게임플레이 특성들을 포함할 수 있다. 상이한 게임플레이 상태들에서 사용자들의 상이한 유형들에 대한 히스토리컬 이탈율은 추적 및 유지될 수 있으며, 예측된 이탈율을 개별 사용자들에 대해 결정될 수 있다. 사용자가 게임을 통해 계속 진행함에 따라, 사용자에 대한 하나 이상의 모니터링된 게임플레이 특성들에 기초하여, 사용자의 상이한 상태들에 대한 그들의 예측된 이탈율은 조정될 수 있다.
일부 실시예들에서, 난이도 최적화 모델(304)은 게임을 플레이하는 사용자에 대한 난이도 레벨들 또는 베이스라인 승률들(baseline win rates)의 초기 세트를 결정할 수 있다. 추가 사용자 정보가 획득되고 사용자가 다른 사용자들 또는 사용자 그룹들과 관련 및 비교될 수 있기 때문에 사용자에 대한 난이도 레벨들 또는 승률들은 업데이트될 수 있다. 일부 실시예들에서, 베이스라인 승률들 또는 난이도 레벨들은 게임을 플레이 한 모든 사용자들에 대한 취합된 데이터에 기초하여 결정될 수 있지만, 업데이트된 승률들 또는 난이도 레벨들은 개별 플레이어 히스토리에 기초하여 특정 사용자에 대해 개인화 될 수 있다.
난이도 궤적들 예시
전술한 바와 같이, 사용자에 대한 도전의 레벨을 나타내는 최적의 승률은 다양한 게임플레이 상태들에 대해 결정될 수 있다. 사용자가 게임을 진행할 때, 사용자에 대한 도전의 레벨 및 사용자의 기술 레벨은 사용자에 대한 난이도 궤적을 결정하는데 사용될 수 있다.
도 4b는 일부 실시예들에 따라, 게임을 위해 구성될 수 있는 난이도 궤적의 예시들을 도시하는 그래프(410)를 도시한다. 상술한 바와 같이, 일부 실시예들에서, 게임의 사용자에 대한 난이도 궤적은 난이도 최적화 모델(310) 및/또는 난이도 구성 시스템(132) 또는 다른 예측 모델(160)을 사용하여 구성 될 수 있다. 도 4에 도시된 바와 같이, 그래프(410)는 x-축 상의 게임 진행의 레벨에 대한 y-축 상의 난이도 레벨을 나타낼 수 있다. 전술한 바와 같이, 게임 진행의 레벨은 사용자에 의해 도달된 게임에서의 레벨, 사용자의 플레이어 레벨, 사용자에 의해 플레이된 총 시간, 사용자에 의해 플레이된 매치들(matches) 또는 라운드들의 수 및/또는 기타 등등과 같은 사용자에 관한 하나 이상의 요소들에 의해 표시될 수 있다. 일부 실시예들에서, 게임 진행이 어떻게 측정될 수 있는지는 게임의 유형에 기초하여 결정될 수 있다. 예를 들어, 일부 게임들은 이산 게임플레이 레벨들(예컨대, 레벨-기반 게임들)로 분할될 수 있다. 반면에, 일부 게임들은 이산 게임플레이 레벨들을 가질 수 없지만, 대신 플레이어들이 게임을 통해 진행할 때 플레이어 레벨을 추적할 수 있다.
일부 실시예들에서, 게임은 난이도가 낮은 게임플레이(412)의 초기 기간(예를 들어, 레벨들의 수, 시간 및/또는 기타 등등)을 가질 수 있다. 이것은 사용자에게 게임의 메카닉들(mechanics)(예를 들어, 튜토리얼(tutorial))을 가르치는 데 사용될 수 있다. 일부 실시예들에서, 이 초기 기간("튜토리얼 기간"이라고도 함)은 모든 사용자들에 대해 동일한 난이도(예컨대, 모든 사용자들에 대한 승률이 100%에 가까울 수 있는 낮은 난이도 레벨)를 갖도록 구성될 수 있다. 일부 실시예들에서, 비록 튜토리얼 기간 동안 아무런 난이도 조정이 수행되지 않더라도, 사용자가 튜토리얼 기간을 통해 진행함에 따라 사용자 데이터(예를 들어, 비디오 게임과의 사용자 인터랙션들을 포함함)가 사용자에 대해 수집될 수 있다.
튜토리얼 기간(412) 이후의 시점에서, 사용자에게 더 많은 도전들을 제공하기 위하여, 게임의 난이도는 증가하기 시작할 수 있다. 사용자 데이터가 사용자에 대해 획득되고 사용자 프로파일 및 사용자의 속성들을 업데이트하는데 사용되기 때문에, 사용자는 특정 난이도 궤적(예를 들어, 궤적들(414A, 414B, 414C))과 관련될 수 있다. 일부 실시예들에서, 사용자에게 예측된 도전의 레벨을 제공하도록 예상되는 난이도 궤적을 식별하기 위하여, 사용자의 속성들은 게임을 플레이 한 다른 사용자들의 것들과 비교될 수 있다. 일부 실시예들에서, 예측된 도전의 레벨은 게임의 코스에서 사용자의 참여 레벨을 최대화하기 위해 사용자에 대해 계산된 최적의 승률에 대응할 수 있다.
일부 실시예들에서, 사용자가 게임을 계속 플레이 할 때, 사용자에 대해 수집된 데이터는 사용자 행동에서의 변경들을 나타낼 수 있다. 예를 들어, 사용자의 참여의 레벨이 낮아졌지만(예를 들어, 플레이 세션들의 길이, 플레이 세션들의 빈도 및/또는 기타 등등에 기초하여), 사용자가 현재 각 레벨을 통해 진행하기 위하여 더 적은 시도들을 하고 있는 것으로(예를 들어, 사용자에 대한 승률 상승을 나타냄) 결정될 수 있다. 이와 같이, 사용자에 의해 직면하는 도전의 레벨이 사용자의 참여를 유지하기에 불충분하고, 사용자와 관련된 난이도 궤적이 그에 따라 조정될 수 있는 것으로 추정될 수 있다(예를 들어, 궤적(414B) 내지 궤적(414A)). 일부 실시예들에서, 사용자의 난이도 궤적은 실질적으로 실시간으로 조정될 수 있다. 다른 실시예들에서, 사용자의 난이도 궤적은 제 시간에 특정 시점들에서 조정될 수 있다(예를 들어, 게임플레이의 레벨들 사이에서, 플레이 세션의 시작 또는 종료에서, 및/또는 기타 등등).
난이도 조정 사이클
도 5는, 일부 실시예들에 따라, 게임 난이도, 플레이어 진행, 및 플레이어 행동이 어떻게 인터랙트할 수 있는지를 나타내는 난이도 조정 사이클의 다이어그램을 도시한다. 게임의 난이도의 레벨은 게임을 통해 진행하는 플레이어의 능력에 영향을 줄 수 있다. 플레이어 스코어, 플레이어에 의해 완료된 레벨들, 플레이어 승리/패배 기록, 및/또는 기타 등등과 같은, 플레이어 진행의 표시기는 게임이 플레이하기에 얼마나 어려운가에 의해 영향을 받을 수 있다. 예를 들어, 게임이 더 쉬울 때, 플레이어는 단지 작은 양의 게임-내 리소스들(예를 들어, 히트 포인트들, 금, 및/또는 기타 등등)을 씀으로써 또는 단지 적은 수의 시도들 후에 게임의 레벨을 완료할 수 있다. 반면에, 게임이 더 어려워지면, 플레이어는 게임의 레벨을 완료할 수 있기 전에 많은 시도들을 하거나, 또는 더 많은 양의 게임-내 리소스들을 써야 할 수 있다. 일부 실시예들에서, 게임을 통한 플레이어의 진행은 사용자가 게임을 플레이 함에 따라 사용자 데이터의 수집을 통해 직접 측정될 수 있다.
게임을 통한 플레이어의 진행이 게임과 관련된 플레이어의 행동에 영향을 줄 수 있다. 상이한 플레이어들은 게임을 통해 진행하는 그들의 능력에 다르게 반응할 수 있다. 예를 들어, 게임을 플레이 할 때 도전 받기를 선호하는 플레이어는 게임을 통해 빠르게 진행할 수 없을 때 참여의 증가된 레벨(increased level of engagement)을 경험할 수 있고, 반면 그들이 게임을 통해 너무 빠르게 진행할 수 있을 때 참여의 감소된 레벨을 경험할 수 있다. 반면에, 플레이어들의 다른 유형들은 반대 효과를 경험할 수 있다. 일부 실시예들에서, 플레이어 행동의 측면들(예를 들어, 참여의 레벨)은, 플레이어 세션들의 빈도 및 지속 시간과 같은, 사용자 데이터의 수집을 통해 측정될 수 있으며, 이는 특정 게임에 대한 플레이어의 참여의 레벨을 나타낸다. 예를 들어, 플레이 세션들이 시간에 따라 짧아 지거나 짧아지는 경향이 있는 플레이어는 참여의 낮은 레벨을 경험하는 것으로 결정될 수 있고, 일관된 플레이 세션들 또는 증가하는 빈도 또는 지속 시간의 플레이 세션들을 갖는 플레이어는 참여의 높은 레벨을 경험하는 것으로서 결정될 수 있다.
전술한 바와 같이, 게임의 난이도는 사용자 행동(예를 들어, 난이도 최적화 모델(304)을 사용하는)을 나타내는 수집된 사용자 데이터에 기초하여 구성될 수 있다. 특정 사용자의 행동이 게임을 통한 사용자의 플레이어 진행에 의해 어떻게 영향을 받을 수 있는지 식별함으로써, 게임의 난이도 레벨은 게임과의 참여의 사용자의 레벨을 최대화하는 방식으로 사용자가 게임을 통해 진행할 수 있도록 구성될 수 있다. 예를 들어, 난이도 레벨은 게임에서의 특정 상태에서 사용자에 대한 최적의 승률을 달성하기 위하여 최적화될 수 있다. 일부 실시예들에서, 난이도 레벨은 사용자의 기술 레벨 및 최적의 승률에 기초하여 결정될 수 있다.
이와 같이, 도 5에 도시된 바와 같이, 게임 난이도 레벨은 게임을 통한 사용자의 진행에 영향을 줄 수 있으며, 이는 게임에 관한 사용자의 행동에 영향을 미친다. 따라서, 게임의 난이도가 동적으로 설정되고 조정되어 게임을 플레이 하는 사용자의 행동에 영향을 미칠 수 있다.
동적 난이도 구성 프로세스 예시
도 6은 동적 난이도 구성 프로세스(600)의 일 실시예의 흐름도를 나타낸다. 프로세스(600)는 사용자에 대한 비디오 게임의 난이도를 동적으로 조정하는데 사용될 수 있는 임의의 시스템에 의해 구현될 수 있다. 예를 들어, 프로세스(600)는, 전체적으로 또는 부분적으로, 사용자 컴퓨팅 시스템(110) 및 인터랙티브 컴퓨팅 시스템(130)에 의해 수행될 수 있다(예를 들어, 난이도 구성 시스템(132)을 사용하여 예측 모델(160)에 기초하여 난이도 궤적을 결정하며, 이는 하나 이상의 게임플레이 파라미터들(114)을 조작하는데 사용될 수 있음). 임의의 수의 시스템들이, 전체적으로 또는 부분적으로, 프로세스(600)를 구현할 수 있지만, 설명을 단순화하기 위해, 프로세스(600)는 특정 시스템들에 대해 설명될 것이다. 또한, 프로세스(600)는 시간이 지남에 따라 반복적으로 업데이트되거나 수행될 수 있음을 이해할 것이다. 예를 들어, 프로세스(600)는 비디오 게임(112)의 각 플레이 세션마다, 비디오 게임(112)의 각 라운드마다, 매주, 매월, 플레이 세션들의 매 임계 수마다, 목표를 완료하기 위해 사용자가 패배하거나 실패하는 매 임계 회수마다, 임계 레벨 아래로 승률이 떨어질 때마다(each time a win ratio drops below a threshold level), 및 기타 등등에 반복될 수 있다. 그러나, 프로세스(600)는 더 많거나 더 적은 빈도로 수행될 수 있다.
프로세스(600)는 인터랙티브 컴퓨팅 시스템(130)이 사용자를 식별하는 블록 (602)에서 시작한다. 일부 실시예들에서, 사용자는 사용자 컴퓨팅 시스템(110)에서 게임 세션을 시작하는 사용자에 응답하여 식별될 수 있다. 일부 실시예들에서, 계정 이름, 패스워드(password), IP 어드레스(IP address) "G/또는 기타 등등과 같은, 사용자의 식별 정보(집합적으로 사용자 식별자로 지칭됨)는 수신되어 사용자를 식별하는데 사용될 수 있다.
블록(604)에서, 사용자가 식별된 후(예를 들어, 사용자 식별자를 사용하여), 인터랙티브 컴퓨팅 시스템(130)은 시간 기간이 지남에 따라 게임과 사용자의 인터랙션들을 모니터링하거나 기록할 수 있다. 예를 들어, 사용자와 관련된 사용자 데이터는 사용자에 의한 게임 플레이 세션의 코스 동안 수집되고, 사용자 데이터 저장소(138)에 저장될 수 있다. 일부 실시예들에서, 사용자 데이터는 수집되어 사용자 데이터 저장소(138)에 실질적으로 실시간으로 저장될 수 있으며(예를 들어, 사용자가 세션 동안 게임을 플레이 할 때), 다른 실시예들에서, 사용자 데이터는 정의된 인터벌들(intervals)로(예를 들어, 지정된 시간에, 세션의 종료에, 및/또는 기타 등등)에 사용자 데이터 저장소(138)에 전송 및 저장될 수 있다. 사용자 데이터는 사용자가 게임들과 인터랙트하는 방법에 관련된 임의의 데이터(예를 들어, 게임플레이의 코스에서 수행된 사용자 동작들, 시간 플레이, 레벨 클리어(levels cleared), 승리/손실 율, 레벨 당 사용자 시도들 및/또는 기타 등등)을 포함할 수 있다. 일부 실시예들에서, 수집된 사용자 데이터는 사용자 프로파일을 구성하거나 업데이트하는데 사용될 수 있다. 사용자 프로파일은 게임을 통한 사용자의 진행 및/또는 게임과 관련한 사용자의 행동(예를 들어, 플레이된 총 시간, 평균 세션 길이, 평균 세션 빈도, 평균 스코어, 레벨 당 시도들의 평균 수, 및/또는 기타 등등)을 나타내는 수집된 사용자 데이터에 기초하여 사용자에 대한 복수의 속성들을 유지할 수 있다. 일부 실시예들에서, 사용자 프로파일은 데이터의 입력 세트(예를 들어, 하나 이상의 사용자 속성들, 수집된 사용자 데이터(304) 및/또는 기타 등등을 포함하는)를 형성하는데 사용될 수 있다.
블록(606)에서, 난이도 최적화 모델(304)은, 게임과의 사용자의 모니터링된 인터랙션들에 기초하여, 다른 사용자들의 사용자 데이터와 사용자에 대한 사용자 데이터를 비교할 수 있다. 일부 실시예들에서, 사용자에 대한 사용자 프로파일과 관련된 계산된 속성들은 다른 사용자들의 것과 비교될 수 있다. 일부 실시예들에서, 사용자 그룹핑 시스템(134)은 난이도 최적화 모델(304)에 의해 특정된 바와 같이 사용자의 하나 이상의 속성들을 사용하여, 비교를 수행할 수 있다.
일부 실시예들에서, 사용자를 다른 사용자들과 비교할 때, 사용자를 사용자 그룹과 연관시키면, 사용자에 대한 히스토리컬 데이터가 고려될 수 있다. 일부 실시예들에서, 사용자에 대한 모든 히스토리컬 데이터가 고려될 수 있는 반면에, 다른 실시예들에서는, 임계 연령을 만족하거나 특정 임계 시간 기간보다 더 최근인 사용자에 대한 히스토리컬 데이터만이 고려될 수 있다(예를 들어, 지난 주, 과거 열 개의 플레이 세션들 및/또는 기타 등등).
일부 실시예들에서, 사용자는 사용자 그룹과 관련될 수 있다(예를 들어, 사용자 그룹핑 시스템(134)을 사용하여). 사용자 그룹은 게임 진행 및 사용자 행동 특성들과 같은, 특정 공통 특성들을 가지는 하나 이상의 사용자들의 임의의 집합을 지칭할 수 있다. 예를 들어, 사용자는 사용자들의 그룹과 관련될 수 있으며, 여기서 그룹의 사용자들은 평균적으로 게임에서의 특정 레벨에서 유사한 수의 시도들을 만든 것으로 기록되고, 응답으로 게임플레이 행동에서의 유사한 변경을 경험한다(예를 들어, 세션들의 빈도 증가/감소, 및/또는 기타 등등). 이와 같이, 특정 사용자 그룹의 사용자들은 게임을 플레이 할 때 동일하거나 유사한 예측된 도전 레벨을 가질 수 있다. 사용자를 사용자 그룹과 관련시킴으로써, 사용자에 의해 선호되는 예측된 도전 레벨은 결정될 수 있다.
일부 실시예들에서, 사용자 그룹과 사용자를 관련시키는 것 및/또는 다른 사용자들과 사용자를 비교하는 것은 난이도 최적화 모델(304)과 같은 예측 모델(160)이 사용자에 대한 예측된 도전 레벨을 결정할 수 있게 한다. 예를 들어, 일부 실시예들에서, 특정 유사한 속성들을 갖는 상이한 사용자들은 유사한 예측된 도전의 레벨들을 가질 수 있다. 난이도 최적화 모델(304)은 사용자에 대한 예측된 도전 레벨을 결정하는 것에 가장 관련이 있는 사용자 데이터의 유형들(예를 들어, 게임과의 사용자 인터랙션)을 식별할 수 있다. 예를 들어, 난이도 최적화 모델(304)에 대해, 제1 사용자 속성은 사용자의 예측된 도전 레벨과 강하게 상관되지만, 제2 사용자 속성은 사용자의 예측된 도전 레벨과 거의 또는 전혀 상관이 없음을 알 수 있다. 이와 같이, 사용자는 제1 사용자 속성에 기초하여 다른 사용자들과 비교될 수 있지만 제2 사용자 속성에는 비교될 수 없다.
일부 실시예들에서, 비디오 게임의 상이한 난이도 레벨들에 대해 사용자가 히스토리컬하게(historically) 어떻게 응답했는지가 시간이 지남에 따라 추적될 수 있다. 예를 들어, 특정 그룹의 사용자들이 특정 난이도 레벨들에 직면했을 때 게임을 플레이하는 것을 이탈 또는 중지 할 가능성이 있지만, 다른 난이도 레벨들에서 참여를 유지할 가능성이 높다고 결정될 수 있다.
일부 실시예들에서, 사용자들이 상이한 난이도 레벨들에 어떻게 응답하는지는 게임의 상이한 부분들에서 추적될 수 있다. 예를 들어, 시간이 지남에 따른 사용자 행동을 추적함으로써, 게임을 플레이하기를 처음 시작할 때 특정 특성들을 나타내는 사용자들은 게임이 진행됨에 따라 특정 난이도 레벨들을 선호할 가능성이 더 높다고 결정될 수 있다. 게임을 통해 진행 한 사용자들에게 난이도의 궤적을 추적함으로써, 난이도 궤적들은 게임으로 진행되지 않을 수 있는 다른 사용자들에 대해 결정될 수 있다.
블록(608)에서, 난이도 최적화 모델(304)은 사용자에 대한 난이도 궤적을 결정한다. 일부 실시예들에서, 난이도 궤적은 게임의 현재 난이도에 기초하고 현재 난이도에 응답하여 사용자 행동이 기록될 수 있다(예를 들어, 사용자에 대한 사용자 프로파일에 기초하여). 일부 실시예들에서, 난이도 궤적은 다른 사용자들과의 사용자 비교 또는 사용자 그룹과의 사용자의 연관성에 응답하여 결정될 수 있다. 예를 들어, 사용자에 대해 결정된 난이도 궤적은 동일한 사용자 그룹의 사용자들 및/또는 다른 사용자들과 관련된 난이도 궤적들에 기초할 수 있다. 일부 실시예들에서, 난이도 궤적은 난이도 최적화 모델(304) 대신 난이도 구성 시스템(132)에 의해 결정될 수 있다. 일부 실시예들에서, 난이도 궤적은 사용자에 대한 결정된 최적의 승률의 세트에 기초할 수 있다.
블록(610)에서, 난이도 구성 시스템(132)은 결정된 난이도 궤적에 기초하여, 사용자에 대한 게임의 난이도를 동적으로 조정할 수 있다. 일부 실시예들에서, 게임의 난이도 레벨을 조정하는 단계는 원하는 난이도 레벨에 대응하는 특정 난이도 기반 게임플레이 파라미터 값을 선택하는 단계 또는 비디오 게임(112)의 하나 이상의 게임플레이 파라미터들(114)를 조정하는 단계를 포함할 수있다. 사용자가 게임을 통해 진행을 계속함에 따라, 게임의 난이도는 결정된 난이도 궤적에 따라 계속 조정될 수 있다.
일부 실시예들에서, 프로세스는 블록(604)으로 되돌아 가서, 게임과 사용자의 인터랙션들은 계속 모니터링될 수 있다. 일부 실시예들에서, 추가 수집된 사용자 데이터는 저장되어 사용자에 대한 사용자 프로파일을 업데이트하는데 사용될 수 있다. 결과적으로, 플레이어와 관련된 난이도 궤적은 변경되거나 업데이트 될 수 있다.
일부 경우들에서, 상기 실시예들 중 하나 이상은 플레이어에 대한 이탈율 또는 유지율을 예측하기 위한 예측 모델링 사용과 조합될 수 있다. 예를 들어, 이탈 예측은 사용자가 이탈할 가능성이 있다는 표시에 응답하여 게임의 현재 난이도를 조정하는 데 사용될 수 있고, 난이도 궤적은 사용자에 대한 장기간 난이도 경향들을 조정하는 데 사용될 수 있다.
게임플레이 파라미터 평가 프로세스 예시
도 7은 게임플레이 파라미터 값 평가 프로세스(700)의 일 실시예의 흐름도를 나타낸다. 프로세스(700)는 비디오 게임(112)의 부분에 관한 특정 시드 값의 사용에 적어도 부분적으로 기초하여 비디오 게임(112)의 부분의 난이도를 평가할 수 있는 임의의 시스템에 의해 구현될 수 있다. 예를 들어, 전체적으로 또는 부분적으로, 프로세스(700)는, 그 중에서도, 인터랙티브 컴퓨팅 시스템(130), 게임플레이 평가 시스템(136), 난이도 구성 시스템(132), 또는 사용자 컴퓨팅 시스템(110)에 의해 구현될 수 있다. 임의의 수의 시스템들은, 전부 또는 부분적으로, 프로세스(700)를 구현할 수 있지만, 설명을 단순화하기 위해, 프로세스(700)는 특정 시스템들에 대해 설명될 것이다.
프로세스(700)를 사용하여 평가된 게임플레이 파라미터는 비디오 게임(112)의 다수의 측면들 또는 부분들의 생성에 관련될 수 있다. 예를 들어, 게임플레이 파라미터는 게임-내 세계 또는 레벨의 초기 구성을 결정하는데 사용되는 시드에 대응할 수 있다. 다른 예시로서, 게임플레이 파라미터는 비디오 게임(112) 내의 하나 이상의 플레이 가능한 또는 플레이 불가능한 캐릭터들(characters)의 능력들을 결정하는데 사용될 수 있다.
프로세스(700)는 게임플레이 평가 시스템(136)이 비디오 게임(112)의 부분 또는 비디오 게임(112)을 구성하기 위한 다수의 게임플레이 파라미터 값들을 식별하는 블록(702)에서 시작한다. 일부 경우들에서, 특정 게임플레이 파라미터의 값들의 수의 각각은 비디오 게임(112)의 동일한 부분을 구성하는 것과 관련될 수 있다. 예를 들어, 게임의 특정 레벨의 측면을 구성하는데 사용되는 특정 게임플레이 파라미터는 레벨의 측면을 구성하는 복수의 가능한 게임플레이 파라미터 값들과 관련될 수 있다.
블록(702)에서 식별된 각각의 게임플레이 파라미터 값에 대해, 게임플레이 평가 시스템(136)은 블록(704)에서 게임플레이 파라미터 값과 관련된 진행 데이터를 획득하도록 시간이 지남에 따라 비디오 게임(112)을 플레이하거나 액세스하는 하나 이상의 사용자들의 세트(set of one or more users)의 진행에 관한 데이터를 모니터링 또는 수신한다. 일부 경우들에서, 각 게임플레이 파라미터 값은 상이한 사용자들의 세트로 평가될 것이며, 예를 들어, 단지 하나의 게임플레이 파라미터 값이 비디오 게임들의 일부 유형들에 대한 특정 사용자의 특정 계정을 구비한 특정 플레이 세션 동안 사용될 수 있기 때문이다. 예를 들어, 게임플레이 파라미터 값이 특정 레벨의 레이아웃과 관련된다면, 특정 레벨의 레이아웃은 특정 사용자에 대해 일단 설정되면 변경되지 않을 수도 있다. 따라서, 특정 사용자는 게임 플레이 파라미터의 다른 값을 접할 수 없다. 그러나, 일부 다른 경우들에서, 각각의 게임플레이 파라미터 값이 동일한 사용자들의 세트로 평가될 수 있으며, 예를 들어, 게임플레이 파라미터 값들은 비디오 게임의 플레이 세션들 동안 반복적으로 사용되기 때문이다. 예를 들어, 게임플레이 파라미터 값이 카드 배틀 게임(card battle game)에서 카드들의 시작 세트(starting set of cards)와 관련된다면, 사용자가 라운드를 플레이 할 때마다 카드들의 시작 세트가 생성되어, 특정 사용자와 함께 다수의 상이한 게임플레이 파라미터 값들이 평가될 수 있는 기회를 제공한다.
일부 구현예들에서, 블록(704)에서 모니터링된 사용자들의 세트는 사용자들의 세트와 관련된 사용자 그룹 또는 사용자들의 세트와 관련된 기술 레벨에 기초하여 선택된다. 예를 들어, 게임플레이 파라미터 값들의 각각은 대략 동일한 기술 레벨을 갖는 것으로 결정되는 사용자들에 의해 평가될 수 있다. 대안적으로, 게임플레이 파라미터 값들의 각각은 기술의 다양한 정도를 구비한 다수의 사용자들에 의해 평가될 수 있다.
블록(704)에서 획득된 진행 데이터는 모니터링된 사용자들이 특정 게임플레이 파라미터 값을 구비한 비디오 게임(112)을 플레이하게 만든 진행의 양을 반영할 수 있다. 예를 들어, 진행 데이터는 특정 사용자 또는 사용자 세트가 특정 게임플레이 파라미터 값을 구비한 목표를 완료하는데 실패했는지 또는 특정 게임플레이 파라미터 값을 구비한 목표를 완료했는지 여부를 나타낼 수 있다. 일부 실시예들에서, 진행 데이터는 특정 게임플레이 파라미터 값을 구비한 특정 목적(object)을 완료하기 위해 사용자들에 의해 만들어진 시도들의 수, 목표와 관련된 실패/성공 률, 목표를 완료한 시간, 목표를 완료하기 위해 취해진 동작들의 수, 목표 완료와 관련된 소비, 목표 완료와 관련된 스코어, 및/또는 기타 등등과 같은, 메트릭스의 다른 유형들을 포함할 수 있다. 일부 실시예들에서, 진행 데이터는 실질적으로 실시간으로 수집 및 저장될 수 있거나, 지정된 시간(예를 들어, 일정한 인터벌들, 플레이 세션의 종료, 등)에 저장될 수 있다.
일부 실시예들에서, 게임플레이 파라미터 값들은 정의된 루틴들("봇들")을 실행하는 자동화된 에이전트들을 사용하여 평가될 수 있다. 각 루틴은 비디오 게임(112)의 복수의 게임플레이 상태들을 통해 스텝핑함으로써 게임플레이를 시뮬레이트하는데 사용될 수 있다. 일부 실시예들에서, 상이한 자동화된 루틴들은 비디오 게임(112)의 게임플레이 상태들을 통해 스텝핑하기 위한 상이한 규칙들 또는 절차들과 관련될 수 있다. 예를 들어, 일부 실시예들에서, 제1 루틴은 랜덤 방식으로 게임플레이 상태들을 통해 스텝할 수 있는 반면, 제2 루틴은 특정 상태들을 리드(lead)할 수 있는 게임플레이 동작들의 유형들 또는 상태들의 특정 유형들을 우선 순위하도록 구성될 수 있다. 일부 실시예들에서, 각각의 자동화된 루틴은, 그들이 비디오 게임(112)에서 목표들을 얼마나 잘 완료할 수 있는지에 기초하여, 기술 레벨과 관련될 수 있다. 일부 실시예에서, 자동화된 루틴의 각 유형은, 루틴과 관련된 진행 데이터를 수집하기 위하여, 게임플레이 파라미터 값을 사용하여 구성된 비디오 게임(112)에 대해 실행될 수 있다. 일부 실시예들에서, 게임플레이 파라미터 값들은 실제 사용자들 및 자동화된 루틴들의 조합을 사용하여 평가될 수 있다.
블록(706)에서, 평가된 각각의 게임플레이 파라미터 값에 대해, 게임플레이 파라미터 평가 시스템(136)은 사용자들의 세트들의 각각으로부터 각 사용자와 관련된 기술 데이터에 기초하여 진행 데이터를 정규화한다. 다시 말해, 일부 경우들에서, 각 게임플레이 파라미터 값들의 각각에 대해 획득된 진행 데이터가 정규화되어, 상이한 사용자들의 상이한 기술 레벨들은 게임플레이 파라미터 값들의 평가에 영향을 미치지 않도록 할 수 있다. 대안적으로, 또는 부가적으로, 게임플레이 파라미터 값에 대해 특정 사용자에 대해 획득된 진행 데이터는, 예를 들어 사용자 그룹핑 시스템(134)에 의해, 결정된 바와 같이 사용자의 기술 레벨에 기초하여 가중될 수 있다. 일부 경우들에서, 특정 사용자의 기술 레벨은 비디오 게임(112)을 플레이하면서 얻은 포인트들 또는 특정 사용자의 기술들을 모니터링하기 위한 일부 다른 메트릭에 기초하여 결정될 수 있다.
일부 실시예들에서, 사용자 기술 레벨들에 기초한 게임플레이 파라미터 값과 관련된 수집된 진행 데이터를 정규화 및/또는 가중함으로써, 게임플레이 파라미터 값과 관련된 난이도는 더 정확하게 결정될 수 있다. 예를 들어, 게임플레이 파라미터 값을 사용하여 구성된 목표의 높은 실패율들을 나타내는 사용자들의 진행 데이터는 사용자들이 높은 기술 레벨인 경우에 게임플레이 파라미터 값과 관련된 높은 난이도 레벨을 나타낼 수 있으며, 사용자들이 낮은 기술 레벨인 것과 대조적이다.
일부 실시예들에서, 블록(706)은 선택적이거나 생략될 수 있다. 예를 들어, 특정 게임플레이 파라미터의 각 값을 평가하기 위해 데이터 수집을 위해 선택된 사용자들의 세트가 특정 사용자 그룹과 관련되거나 기술 레벨의 임계 차이 미만을 갖는 것으로 결정되는 경우들에서, 진행 데이터를 정규화 할 필요가 없을 수 있고 블록(706)은 생략될 수 있다.
블록(708)에서, 게임플레이 평가 시스템(136)은 관련된 진행 데이터에 기초하여 각 게임플레이 파라미터 값과 관련된 난이도를 결정한다. 난이도는 비디오 게임(112)의 부분 또는 목표와 관련된 특정 게임플레이 파라미터 값이 사용될 때 비디오 게임(112)의 부분 또는 목표를 완료하는데 성공 또는 실패한 사용자들의 수 또는 백분율에 기초하여 결정될 수 있다. 유리하게는, 특정 실시예들에서, 게임플레이 파라미터 값들의 난이도를 평가함으로써, 관련된 난이도 레벨들에 기초하여 게임플레이 파라미터 값들의 세트들을 그룹화하는 것이 가능하다. 예를 들어, 각 게임플레이 파라미터 값은 "쉬운", "중간" 또는 "어려운"과 같이, 분류될 수 있다. 따라서, 일부 경우들에서, 특정 사용자가 더 쉬운 비디오 게임들을 플레이하는 것을 선호한다고 결정되면, 더 낮은 난이도 레벨과 관련된 게임플레이 파라미터 값은 비디오 게임(112)의 부분을 생성하는데 사용될 수 있다.
또한, 프로세스(700)는 개발자들이 특정 게임플레이 파라미터 값과 관련된 난이도의 레벨을 확인하고 특정 게임플레이 파라미터 값의 분류에 대한 조정을 할 수 있게 한다. 예를 들어, 특정 게임플레이 파라미터 값은 쉬운 난이도 레벨을 선택한 플레이어들과 함께 사용될 수 있다. 그러나, 프로세스(700)를 사용하여 특정 시드 값을 갖는 다수의 사용자들에 대한 다수의 플레이 세션들을 평가 한 후에, 게임플레이 파라미터 값이, 비디오 게임(112)의 부분이 다른 시드 값들과 관련될 때 보다 상당히 더 도전하게 하는 비디오 게임(112)의 부분을 유발하는 것으로 결정될 수 있다. 그러한 경우, 특정 게임플레이 파라미터 값은 더 어려운 난이도 레벨을 선호하거나 선택한 플레이어들과 함께 사용하기 위해 재분류 될 수 있고, 쉬운 난이도 레벨을 선호하거나 선택한 플레이어들과 함께 사용하기 위해 가용성로부터 제거될 수 있다.
일부 실시예들에서, 개발자는 특정 게임플레이 파라미터 값이 사용된 사용자들과 관련된 데이터를 디스플레이하는 사용자 인터페이스와 함께 제시될 수 있다. 데이터는 게임의 부분에서 사용자들의 이탈율, 게임의 부분을 완료하는 사용자들에 의한 시도들의 평균 수, 게임플레이 파라미터 값과 관련된 게임의 부분을 얼마나 많은 사용자들이 완료했는지, 및/또는 기타 등등과 같은, 하나 이상의 사용자 메트릭스를 포함할 수 있다. 개발자는 이 데이터를 사용하여 게임플레이 파라미터 값과 관련된 게임의 부분이 예상된 것보다 더 많게 또는 더 적게 어려운지 아닌지 여부를 결정할 수 있다. 예를 들어, 개발자가 많은 수의 플레이어들이 게임의 부분을 완료하기 위해 예상된 시도의 수보다 더 많이 필요로 하거나 이탈하는 것을 사용자 인터페이스를 사용하여 결정하면, 특정 게임플레이 파라미터 값은 너무 높은 난이도 레벨과 관련되는 것으로 추정될 수 있고, 그에 따라 조정되거나 더 적절한 난이도 레벨과 관련될 수 있다.
난이도 궤적에 기초한 사용자들에 대한 난이도 레벨 조정
전술한 바와 같이, 난이도 궤적은 사용자에 대한 예측된 도전의 레벨을 유지하기 위하여, 게임의 상이한 부분들에 걸쳐 특정 사용자에 대한 게임의 난이도 레벨을 설정하는데 사용될 수 있다. 도 8은 특정 사용자의 비디오 게임의 난이도 레벨을 조정하기 위한 프로세스의 흐름도의 일 실시예를 제공한다. 프로세스(800)는 사용자에 대한 비디오 게임의 난이도를 동적으로 조정하는데 사용될 수 있는 임의의 시스템에 의해 구현될 수 있다. 예를 들어, 프로세스(800)는, 전체적으로 또는 부분적으로, 인터랙티브 컴퓨팅 시스템(130) 및 사용자 컴퓨팅 시스템(110)에 의해 수행될 수 있다(예를 들어, 난이도 구성 시스템(132)을 사용하여 예측 모델(160)에 기초하여 난이도 궤적을 결정하며, 이는 하나 이상의 게임플레이 파라미터들(114)을 조작하는데 사용될 수 있음). 임의의 수의 시스템들이, 전부 또는 부분적으로, 프로세스(800)를 구현할 수 있지만, 설명을 단순화하기 위해, 프로세스(800)는 특정 시스템들에 대해 설명될 것이다. 또한, 프로세스(800)는 시간이 지남에 따라 반복적으로 업데이트되거나 수행될 수 있음을 이해할 것이다. 예를 들어, 프로세스(800)는 비디오 게임(112)의 각 플레이 세션마다, 비디오 게임(112)의 각각의 라운드마다, 매주, 매월, 플레이 세션들의 매 임계 수마다, 목표를 완료하는데 사용자 손실들 또는 실패들 시간의 매 임계 수마다, 임계 레벨 아래로 떨어지는 승률 각 시간, 및 기타 등등에 반복될 수 있다. 그러나, 프로세스(600)는 더 많거나 더 적은 빈도로 수행될 수 있다.
블록(802)에서, 난이도 최적화 모델(304)은 사용자에 대한 예측된 도전의 레벨을 식별한다. 상술한 바와 같이, 일부 실시예들에서, 예측된 도전의 레벨은 게임플레이의 코스를 통해 사용자의 참여 레벨을 유지하는 상대적인 난이도의 레벨을 나타낼 수 있다. 일부 실시예들에서, 예측된 도전의 레벨은 사용자 데이터 저장소(138)에 저장된 하나 이상의 사용자 속성들에 기초하여 결정될 수 있다. 일부 실시예들에서, 예측된 도전의 레벨은
블록(804)에서, 난이도 최적화 모델(304)은 사용자와 관련된 기술 레벨을 식별할 수 있다. 일부 실시예들에서, 사용자의 기술 레벨은 스코어, 승리/패배 기록, 게임에서의 목표의 완료, 게임에서 장애들(objections)을 완료하려는 시도의 수 및/또는 기타 등등과 같은, 다양한 수집된 사용자 데이터(304)에 기초할 수 있다.
블록(806)에서, 난이도 최적화 모델(304)은 예측된 도전의 레벨 및 사용자 기술 레벨을 사용하여 사용자에 대한 난이도 궤적을 결정한다. 난이도 궤도는 게임의 여러 부분에서 사용자의 난이도를 나타낼 수 있습니다. 일부 실시예들에서, 난이도 궤적의 난이도 레벨은 사용자의 기술 레벨 및 예측된 도전의 레벨에 기초하여 설정될 수 있다. 일부 실시예들에서, 난이도 레벨은 예측된 도전의 레벨과 사용자의 기술 레벨의 합 또는 취합으로서 표현될 수 있다. 예를 들어, 낮은 기술이지만 높은 예측된 도전의 레벨의 제1 플레이어에 대한 난이도 레벨은 일부 실시예들에서 높은 기술이지만 낮은 예측된 도전의 레벨의 플레이어의 난이도 레벨과 유사할 수 있지만, 높은 도전의 레벨을 가진 높은 기술의 플레이어의 난이도 레벨보다 더 낮을 수 있다. 일부 실시예들에서, 난이도 궤적은 사용자의 예상된 미래 기술 레벨에 기초하여 사용자에 대한 게임의 일부 부분들의 난이도 레벨들을 나타낼 수 있다.
블록(808)에서, 게임의 부분에 대한 게임플레이 파라미터의 값은 사용자에 대해 조정될 수 있다. 일부 실시예들에서, 게임의 부분은 난이도 레벨과 관련될 수 있다(예를 들어, 결정된 난이도 궤적에 기초함). 게임의 부분의 난이도 레벨을 조정하기 위하여, 게임의 부분과 관련된 게임플레이 파라미터가 식별될 수 있다. 게임플레이 파라미터는 복수의 상이한 가능한 값들을 가질 수 있다. 각 값은 난이도 레벨과 관련될 수 있다. 일부 실시예들에서, 각 게임플레이 파라미터 값의 난이도 레벨은 도 7에 도시된 프로세스를 사용하여 결정될 수 있다. 따라서, 난이도 최적화기(310)는 난이도의 대응하는 레벨을 갖고 부분과 관련된 게임플레이 파라미터의 값을 선택함으로써 게임의 부분의 난이도 레벨을 설정할 수 있다.
난이도 레벨에 기초한 게임 업데이트
일부 실시예들에서, 난이도 최적화 모델(304)에 의해 분석된 복수의 사용자들의 수집된 사용자 데이터는 게임의 난이도를 업데이트 및 향상시키기 위하여 게임 개발자에 의해 사용될 수 있다. 예를 들어, 일부 실시예들에서, 게임의 특정 부분들은 많은 플레이어들에 대한 난이도의 예상하지 못한 변경을 포함할 수 있다. 많은 사용자들이 게임의 특정 부분에서 예상보다 좋지 않은 수행을 하는 것으로 검출되면(예를 들어, 낮은 스코어, 더 많은 시도들이 진행에 요구되는, 및/또는 기타 등등), 플래그는 게임의 부분이 의도한 것보다 더 어렵다는 것을 나타내도록 설정될 수 있다. 예상되는 난이도 궤적으로부터의 이 편차들은 적절한 변경들이 이루어질 수 있도록 게임 개발자의 주의를 끌 수 있다.
도 9는 일부 실시예들에 따라, 난이도 레벨에 기초하여 게임을 업데이트하기 위한 프로세스의 흐름도를 나타낸다. 프로세스(900)는 비디오 게임의 난이도 및 비디오 게임과의 사용자 인터랙션들에 관한 데이터를 수집하는데 사용될 수 있는 임의의 시스템에 의해 구현될 수 있다. 예를 들어, 프로세스(900)은, 전체적으로 또는 부분적으로, 사용자 컴퓨팅 시스템(110) 및 인터랙티브 컴퓨팅 시스템(130)에 의해 수행 될 수 있다(예를 들어, 사용자 인터랙션 히스토리(116)와 함께 난이도 구성 시스템(132)을 사용하여 사용자들이 상이한 난이도 레벨들 및 게임의 상이한 부분들에 어떻게 반응 하는지를 결정함). 임의의 수의 시스템들이, 전체적으로 또는 부분적으로 프로세스(900)를 구현할 수 있지만, 설명을 단순화하기 위해, 프로세스(900)는 특정 시스템들에 대해 설명될 것이다. 또한, 프로세스(900)는 시간이 지남에 따라 반복적으로 업데이트되거나 수행될 수 있음을 이해할 것이다. 예를 들어, 프로세스(900)는 비디오 게임(112)의 각 플레이 세션마다, 비디오 게임(112)의 각 라운드마다, 매주, 매월, 플레이 세션들의 매 임계 수마다, 목표를 완료하기 위해 사용자가 패배하거나 실패하는 매 임계 회수마다, 임계 레벨 아래로 승률이 떨어질 때마다, 및 기타 등등에 반복될 수 있다. 그러나, 프로세스(600)는 더 많거나 더 적은 빈도로 수행될 수 있다.
블록(902)에서, 권고 시스템(314)은 복수의 사용자들과 관련된 취합된 사용자 데이터를 수신할 수 있다. 일부 실시예들에서, 데이터는 복수의 사용자들에 대한 사용자 프로파일 데이터뿐만 아니라, 복수의 사용자들과 관련된 난이도 조정 데이터 및/또는 난이도 궤적 데이터를 포함할 수 있다.
일부 실시예들에서, 하나 이상의 봇들과 관련된 데이터가 또한 수신될 수 있다. 예를 들어, 데이터는 봇 행동 계획(bot behavioral scheme), 봇 스킬 레벨, 및/또는 기타 등등과 같은, 하나 이상의 봇들의 속성들, 뿐만 아니라 봇 게임플레이 성능과 관련된 데이터를 포함할 수 있다.
블록(904)에서, 권고 시스템(314)은 난이 설정들과 사용자 데이터 사이의 하나 이상의 관계들을 결정할 수 있다. 일부 실시예들에서, 관계는 복수의 사용자들에 대한 예상된 난이도 궤적과 복수의 사용자들의 검출된 행동 사이의 편차에 대응할 수 있다. 예를 들어, 사용자에 대한 난이도 궤적은 사용자에 대해 게임의 특정 부분에서 도전의 특정 정도에 직면하도록 의도할 수 있다. 그러나, 사용자의 검출된 행동(예를 들어, 승리/패배 기록, 시도들의 수, 및/또는 기타 등등)은 사용자가 게임의 특정 부분에서 과다- 또는 과소-도전되고(over- or under-challenged) 있고, 게임의 부분이 예상보다 더 많거나 더 적게 어렵다는 것을 나타낼 수 있다. 예를 들어, 사용자들이 그들의 게임의 부분의 각 난이도 레벨들이 나타내는 것보다 더 자주 게임의 특정 부분에서 실패하고 있다고 결정될 수 있다. 일부 실시예들에서, 많은 사용자들이, 게임의 특정 부분에 도달할 때, 그들의 어려운 궤적의 변경을 경험하고, 이는 게임의 부분에서의 비정상적인 난이도를 나타내는 것으로 결정될 수 있다.
일부 실시예들에서, 게임의 부분의 비정상적인 난이도는 실제 행동이 임계 값을 충족하는지와 게임의 부분에서의 복수의 사용자들의 예상된 행동 사이의 차이에 응답하여 자동으로 식별될 수 있다. 행동은 게임의 부분을 완료할 때 성공률, 게임의 부분을 완료하기 위해 소비된 게임-내 리소스들 또는 이동들의 양, 게임의 부분을 완료 할 때 스코어, 게임의 부분을 완료할 때 플레이 세션들의 빈도 및/또는 길이, 게임의 부분에서의 이탈율, 및/또는 기타 등등을 포함할 수 있다. 예를 들어, 게임의 부분은 특정 난이도 궤적을 갖는 사용자들이 게임의 부분을 완료하기 위하여 전형적으로 게임-내 리소스들 또는 이동들의 특정 양을 소비할 것을 예상될 수 있도록 구성될 수 있다. 게임의 부분을 완료하는데 사용자들에 의해 소비된 실제 리소스들의 양이 임계량에 의해 예상된 양보다 큰 경우, 게임의 부분은 비정상적으로 어려울 수 있다. 일부 실시예들에서, 게임의 부분의 비정상적인 난이도 레벨을 나타내는 플래그가 설정될 수 있다.
일부 실시예들에서, 난이도 설정과 봇 데이터 사이의 하나 이상의 관계들은 결정될 수 있다. 예를 들어, 특정 게임플레이 파라미터 값과 관련된 게임의 특정 부분은 특정 난이도 레벨을 가질 것으로 예상될 수 있다. 하나 이상의 봇들이 게임의 부분에서 어떻게 수행할 수 있었는지를 나타내는 봇 데이터는 게임의 부분이 예상보다 더 많이 또는 더 적게 어려운지를 결정하는데 사용될 수 있다. 예를 들어, 게임의 특정 부분은 전형적으로 완료하는 시간의 특정 양 특정 행동 또는 기술 레벨을 갖는 봇들을 요구할 수 있다. 하나 이상의 봇들이 상당히 적은 시간 내에 게임의 부분을 완료할 수 있다고 결정되면, 게임의 부분이 예상보다 덜 어렵다고 결정될 수 있다.
블록(906)에서, 권고 시스템(314)은, 사용자 데이터와 난이도 설정들 사이의 결정된 관계에 기초하여, 게임 개발자에게 하나 이상의 설계 제안들(design suggestions)을 생성할 수 있다. 예를 들어, 전술한 바와 같이, 결정(determination)은 게임의 특정 부분이 예상보다 다소 어렵다고 만들어질 수 있다. 결과적으로, 설계 제안은 게임 개발자가 게임의 특정 부분을 더 어렵게 또는 덜 어렵게 만들고, 더 많은 사용자들이 게임을 플레이 하여 예상된 난이도 궤적을 유지할 수 있도록 할 수 있다. 일부 실시예들에서, 하나 이상의 설계 제안들은 결정된 관계들과 관련된 게임의 특정 부분과 관련된 하나 이상의 특정 게임플레이 파라미터들을 특정할 수 있다. 예를 들어, 게임의 부분이 예상보다 어렵다고 결정되면, 제안은 게임의 부분의 난이도를 변경하도록 게임 개발자에 의해 수정될 수 있는 게임의 부분과 관련된 하나 이상의 게임플레이 파라미터들을 식별할 수 있다. 예를 들어, 제안은 원하는 난이도 레벨과 관련된 특정 게임플레이 파라미터 값들로 게임의 부분을 제한하는 단계, 조정된 게임플레이 파라미터 값들과 관련된 난이도 레벨을 변경하기 위해 비디오 게임 상의 특정 게임플레이 파라미터 값들의 효과를 조정하는 단계, 및/또는 기타 등등을 포함할 수 있다.
블록(908)에서, 게임은 게임 개발자로부터 하나 이상의 설계 변경들을 수신한다. 일부 실시예들에서, 설계 변경은 하나 이상의 게임플레이 파라미터 값들(예를 들어, 게임플레이 파라미터 값이 비디오 게임의 상태에 얼마나 영향을 미치는지)을 조정하거나 하나 이상의 게임플레이 파라미터를 특정 값들로 제한할 수 있다. 블록(910)에서, 게임은 수신된 변경들에 기초하여 업데이트된다.
컴퓨팅 시스템의 개요
도 10은 사용자 컴퓨팅 시스템(110)의 일 실시예를 도시하며, 이는 게이밍 시스템(gaming system)으로도 지칭될 수 있다. 도시된 바와 같이, 사용자 컴퓨팅 시스템(110)은 다수의 요소들을 포함할 수 있는 단일 컴퓨팅 장치일 수 있다. 그러나, 일부 경우들에서, 사용자 컴퓨팅 시스템(110)은 다수의 장치들을 포함할 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛 및 그래픽 프로세싱 유닛을 포함하는 하나의 장치, 디스플레이를 포함하는 다른 장치, 및 키보드 또는 마우스와 같은, 입력 메카니즘을 포함하는 다른 장치를 포함할 수 있다.
사용자 컴퓨팅 시스템(110)은 게임 시스템을 실행할 수 있는 컴퓨팅 시스템의 일 실시예일 수 있다. 도 8의 비-제한적인 예시에서, 사용자 컴퓨팅 시스템(110)은 터치스크린 디스플레이(1002)를 통해 사용자로부터 입력을 수신할 수 있는 터치-가능한 컴퓨팅 장치이다. 그러나, 사용자 컴퓨팅 시스템(110)은 그 자체로 제한되지 않으며 비-터치 가능한 실시예들을 포함할 수 있으며, 이는 터치스크린 디스플레이(1002)를 포함하지 않는다.
사용자 컴퓨팅 시스템(110)은 터치스크린 디스플레이(1002) 및 터치스크린 인터페이스(1004)를 포함하고, 게임 애플리케이션(1010)을 실행하도록 구성된다. 이 게임 애플리케이션은 비디오 게임(112) 또는 비디오 게임 실행 환경과 같은, 비디오 게임(112)과 함께 또는 그 지원 하에 실행하는 애플리케이션일 수 있다. 게임 애플리케이션(1010)으로 설명되었지만, 일부 실시예들에서 애플리케이션(1010)은 교육 소프트웨어와 같은 사용자의 선호도 또는 성능에 적어도 부분적으로 기초하여 가변 실행 상태를 가질 수 있는 애플리케이션의 다른 유형일 수 있다. 사용자 컴퓨팅 시스템(110)이 터치스크린 디스플레이(1002)를 포함하지만, 터치스크린 디스플레이(1002)에 추가하여 또는 대신하여 다양한 입력 장치들이 사용될 수 있다는 것이 인식된다.
사용자 컴퓨팅 시스템(110)은 중앙 프로세싱 유닛들(central processing units)((CPU들), 그래픽 프로세싱 유닛들(graphics processing units)(GPU들), 및 가속 프로세싱 유닛들(accelerated processing units)(APU들)과 같은 하나 이상의 프로세서들을 포함할 수 있다. 또한, 사용자 컴퓨팅 시스템(110)은 하나 이상의 데이터 저장 요소들을 포함할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 게임 애플리케이션(1010) 실행의 목적을 위해 생성된 특수 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 비디오 게임 콘솔일 수 있다. 사용자 컴퓨팅 시스템(110)에 의해 실행되는 게임 애플리케이션들(1010)은 특정 애플리케이션 프로그래밍 인터페이스(application programming interface)(API)를 사용하여 생성되거나 사용자 컴퓨팅 시스템(110)에 특정될 수 있는 특정 명령어 세트로 컴파일(compiled) 될 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110)은 게임 애플리케이션들(1010) 및 비-게임 애플리케이션들을 실행할 수 있는 범용 컴퓨팅 장치일 수 있다. 예를 들어, 사용자 컴퓨팅 시스템(110)은 통합된 터치스크린 디스플레이를 구비한 랩탑 또는 외부 터치스크린 디스플레이를 구비한 데스크탑 컴퓨터일 수 있다. 사용자 컴퓨팅 시스템(110)의 일 예시적인 실시예의 구성 요소들은 도 9와 관련하여 더 상세히 설명된다.
터치스크린 디스플레이(1002)는 정전식 터치스크린(capacitive touchscreen), 저항성 터치스크린(resistive touchscreen), 표면 탄성파 터치스크린(surfaceacoustic wave touchscreen), 또는 사용자로부터, 터치 입력들로도 지칭되는, 촉각 입력들(tactile inputs)을 수신하도록 구성되는 터치스크린 기술의 다른 유형일 수 있다. 예를 들어, 터치 입력들은 스크린을 터치하는 손가락, 스크린을 터치하는 다수의 손가락들, 스타일러스(stylus), 또는 터치스크린 디스플레이(1002) 상에 터치 입력을 등록하는데 사용될 수 있는 다른 자극물들(stimuli)을 통해 수신될 수 있다. 터치스크린 인터페이스(1004)는 터치 입력을 데이터로 변환하고, 운영 시스템(operating system) 및 게임 애플리케이션(1010)과 같은 사용자 컴퓨팅 시스템(110)의 구성 요소들에 의해 해석될 수 있도록 데이터를 출력할 수 있다. 터치스크린 인터페이스(1004)는 촉각 터치 입력 터치의 특성들을 터치 입력 데이터로 변환할 수 있다. 터치 입력의 일부 예시적인 특성들은 형상, 크기, 압력, 위치, 방향, 운동량(momentum), 지속 시간 및/또는 다른 특성들을 포함할 수 있다. 터치스크린 인터페이스(1004)는 예를 들어 탭(tap)(예를 들어, 단일 위치에서의 터치 및 릴리스) 또는 스와이프(swipe)(예를 들어, 단일 터치 입력에서 터치스크린상의 복수의 위치들을 통한 이동)와 같은, 터치 입력의 유형을 결정하도록 구성될 수 있다. 터치스크린 인터페이스(1004)는 동시에 또는 실질적으로 병렬로 발생하는 다수의 터치 입력들과 관련된 터치 입력 데이터를 검출 및 출력하도록 구성될 수 있다. 일부 경우들에서, 동시 터치 입력들은 사용자가 터치스크린 디스플레이(1002) 상에서 제1 터치를 유지하는 인스턴스들(instances)을 포함할 수 있으며, 그 후 터치스크린 디스플레이(1002) 상에서 제2 터치를 수행할 수 있다. 터치스크린 인터페이스(1004)는 터치 입력들의 움직임을 검출하도록 구성될 수 있다. 터치 입력 데이터는 프로세싱을 위해 사용자 컴퓨팅 시스템(110)의 구성 요소들로 전송될 수 있다. 예를 들어, 터치 입력 데이터는 프로세싱을 위해 게임 애플리케이션(1010)에 직접 전송될 수 있다.
일부 실시예들에서, 터치 입력 데이터는 게임 애플리케이션(1010)에 출력되기 전에 터치스크린 인터페이스(1004), 운영 시스템, 또는 다른 구성 요소들에 의한 프로세싱 및/또는 필터링을 거칠 수 있다. 일 예시로서, 원시 터치 입력 데이터(, raw touch input data)는 터치 입력으로부터 캡쳐될(captured) 수 있다. 원시 데이터를 필터링하여 배경 잡음을 제거할 수 있고, 입력과 관련된 압력 값들을 측정할 수 있으며, 터치 입력과 관련된 위치 좌표들을 계산할 수 있다. 게임 애플리케이션(1010)에 제공된 터치 입력 데이터의 유형은 터치스크린 인터페이스(1004)의 특정 구현 및 터치스크린 인터페이스(1004)와 관련된 특정 API에 좌우될 수 있다. 일부 실시예들에서, 터치 입력 데이터는 터치 입력의 위치 좌표들을 포함할 수 있다. 터치 신호 데이터는 정의된 빈로로 출력될 수 있다. 터치 입력들을 프로세싱하는 것은 초당 여러 번 계산될 수 있으며 터치 입력 데이터는 추가 프로세싱을 위해 게임 애플리케이션에 출력될 수 있다.
게임 애플리케이션(1010)은 사용자 컴퓨팅 시스템(110) 상에서 실행되도록 구성 될 수 있다. 게임 애플리케이션(1010)은 또한 비디오 게임, 게임, 게임 코드 및/또는 게임 프로그램으로서 지칭될 수 있다. 게임 애플리케이션은 사용자 컴퓨팅 시스템(110)이 사용자가 게임을 플레이하기 위해 사용할 수 있는 소프트웨어 코드(software code)를 포함하는 것으로 이해될 수 있다. 게임 애플리케이션(1010)은 사용자 컴퓨팅 시스템 (110)에게 실행하도록 프로세서 명령어들을 알리는 소프트웨어 코드를 포함할 수 있지만, 상수들(constants), 이미지들 및 다른 데이터 구조들과 관련된 데이터와 같이, 게임의 플레이에 사용되는 데이터를 포함할 수도 있다. 예를 들어, 도시된 실시예에서, 게임 애플리케이션은 게임 엔진(game engine)(912), 게임 데이터(game data)(914), 및 게임 상태 정보(game state information)(916)를 포함한다.
터치스크린 인터페이스(1004) 또는 운영 시스템과 같은 사용자 컴퓨팅 시스템(110)의 다른 구성 요소는 터치 입력들과 같은 사용자 입력을 게임 애플리케이션(1010)에 제공할 수 있다. 일부 실시예들에서, 사용자 컴퓨팅 시스템(110) 마우스, 키보드, 카메라, 게임 제어기 등과 같은 대안 또는 추가 사용자 입력 장치들을 포함할 수 있다. 사용자는 터치스크린 인터페이스(1004) 및/또는 하나 이상의 대안 또는 추가 사용자 입력 장치들을 통해 게임 애플리케이션(1010)과 인터랙트 할 수 있다. 게임 엔진(912)은 사용자 컴퓨팅 시스템(110) 내의 게임 애플리케이션(1010)의 작동의 측면들을 실행하도록 구성될 수 있다. 게임 애플리케이션 내의 게임플레이의 측면들의 실행은, 적어도 부분적으로, 수신된 사용자 입력, 게임 데이터(914), 및 게임 상태 정보(916)에 기초할 수 있다. 게임 데이터(914)는 게임 규칙들, 사전 기록된 모션 캡쳐 포즈들/경로들, 환경 설정들, 제약들, 애니메이션 기준 곡선들(animation reference curves), 골격 모델들(skeleton models) 및/또는 다른 게임 애플리케이션 정보를 포함할 수 있다. 또한, 게임 데이터(914)는 게임 애플리케이션(1010)의 난이도를 설정 또는 조정하는데 사용되는 정보를 포함할 수 있다.
게임 엔진(912)은 게임 규칙들에 따라 게임 내에서 게임플레이를 실행할 수 있다. 게임 규칙들의 일부 예시들은 채점 규칙들, 가능한 입력들, 동작들/이벤트들, 입력들에 응답한 움직임, 등을 포함할 수 있다. 다른 구성 요소들은 허용되는 입력들이 무엇인지 및 어떻게 게임을 진행하는지, 및 게임플레이의 다른 측면들을 제어할 수 있다. 게임 애플리케이션(1010)의 실행 동안, 게임 애플리케이션(1010)은 게임 상태 정보(916)를 저장할 수 있고, 이는 캐릭터 상태들, 환경 상태들, 장면 객체 저장(scene object storage), 및/또는 게임 애플리케이션(1010)의 실행의 상태와 관련된 다른 정보를 포함할 수 있다. 예를 들어, 게임 상태 정보(916)는 캐릭터 위치, 캐릭터 동작, 게임 레벨 속성들, 및 게임 애플리케이션의 상태에 기여하는 다른 정보와 같은, 특정 시점에서 게임 애플리케이션의 상태를 식별할 수 있다.
게임 엔진(912)은 사용자 입력들을 수신하고, 게임 애플리케이션(1010)에 적합한 동작들, 충돌들, 달리기들, 던짐들(throws), 공격들 및 다른 이벤트들과 같은, 게임-내 이벤트들을 결정할 수 있다. 작동 중에, 게임 엔진(912)은 적합한 게임-내 이벤트들을 결정하기 위하여 게임 데이터(914) 및 게임 상태 정보(916)를 판독할 수 있다. 일 예시에서, 게임 엔진(912)이 캐릭터 이벤트들을 결정한 후에, 캐릭터 이벤트들은 캐릭터들이 이벤트들에 응답하여 만들 수 있는 적절한 모션들을 결정할 수 있는 움직임 엔진(movement engine)으로 전달될 수 있고, 그 모션들을 애니메이션 엔진(animation engine)에 전달할 수 있다. 애니메이션 엔진은 캐릭터들에 대한 새로운 포즈들을 결정하고 스키닝 및 렌더링 엔진(skinning and rendering engine)에 새로운 포즈를 제공할 수 있다. 스키닝 및 렌더링 엔진은 생물(animate), 무생물(inanimate) 및 배경 객체들(objects)을 전체 장면으로 조합하기 위하여 객체 결합기(object combiner)에 캐릭터 이미지들을 제공할 수 있다. 전체 장면은 렌더러(renderer)로 전달될 수 있으며, 이는 사용자에게 디스플레이 할 새 프레임을 생성할 수 있다. 프로세스는 게임 애플리케이션의 실행 동안 각 프레임을 렌더링하기 위해 반복될 수 있다. 프로세스가 캐릭터의 컨텍스트(context)로 설명되었지만, 프로세스는 이벤트들을 프로세싱하고 사용자에게 디스플레이하기 위해 출력을 렌더링하는 임의의 프로세스에 적용될 수 있다.
컴퓨팅 시스템의 하드웨어 구성 예시
도 11은 도 10의 사용자 컴퓨팅 시스템(110)에 대한 하드웨어 구성의 일 실시예를 도시한다. 사용자 컴퓨팅 시스템(110)의 다른 변형들은 사용자 컴퓨팅 시스템(110)에 대한 구성 요소들을 제거 또는 추가하는 것과 같이, 여기에 명시적으로 제시된 예시들을 대체할 수 있다. 사용자 컴퓨팅 시스템(110)은 전용 게임 장치, 스마트 폰, 태블릿, 개인 컴퓨터, 데스크탑, 랩톱, 스마트 텔레비전, 자동차 콘솔 디스플레이 등을 포함할 수 있다. 또한, (도 11에 명시적으로 도시되지는 않았지만) 도 10과 관련하여 설명된 바와 같이, 사용자 컴퓨팅 시스템(110)은 선택적으로 터치스크린 디스플레이(1002) 및 터치스크린 인터페이스(1004)를 포함할 수 있다.
도시된 바와 같이, 사용자 컴퓨팅 시스템(110)은 사용자 컴퓨팅 시스템(110)의 다른 구성 요소들 및 사용자 컴퓨팅 시스템(110) 외부의 구성 요소들과도 인터랙트하는 프로세싱 유닛(20)을 포함한다. 게임 매체(12)와 통신할 수 있는 게임 매체 판독기(game media reader)(22)가 포함될 수 있다. 게임 매체 판독기(22)는 CD-ROM 또는 DVD들과 같은 광 디스크들을 판독할 수 있는 광 디스크 판독기, 또는 게임 매체(12)로부터 데이터를 수신 및 판독할 수 있는 판독기일 수 있다. 일부 실시예들에서, 게임 매체 판독기(22)는 선택적이거나 생략될 수 있다. 예를 들어, 게임 콘텐츠 또는 애플리케이션들은 네트워크 I/O(38)를 통해 네트워크를 통해 액세스되어 게임 매체 판독기(22) 및/또는 게임 매체(12)를 선택적으로 렌더링할 수 있다.
사용자 컴퓨팅 시스템(110)은 별도의 그래픽 프로세서(24)를 포함할 수 있다. 일부 경우들에서, 그래픽 프로세서(24)는 APU와 같은 프로세싱 유닛(20)에 내장될 수 있다. 이러한 경우들에서, 그래픽 프로세서(24)는 프로세싱 유닛(20)과 랜덤 액세스 메모리(RAM; Random Access Memory)를 공유할 수 있다. 대안적으로 또는 부가적으로, 사용자 컴퓨팅 시스템(110)은 프로세싱 유닛(20)으로부터 분리된 이산 그래픽 프로세서(discrete graphics processor)(24)를 포함할 수 있다. 일부 이러한 경우들에서, 그래픽 프로세서(24)는 프로세싱 유닛(20)으로부터 별도의 RAM을 가질 수 있다. 또한, 일부 경우들에서, 그래픽 프로세서(24)는 하나 이상의 추가 그래픽 프로세서들 및/또는 임베디드 또는 비-이산적인 그래픽 프로세싱 유닛과 함께 동작할 수 있으며, 이는 마더보드(motherboard)에 임베디드(embedded) 될 수 있으며 온-보드 그래픽 칩(on-board graphics chip) 또는 장치라고 지칭된다.
또한 사용자 컴퓨팅 시스템(110)은 I/O(32), 사용자 I/O(34), 디스플레이 I/O(36), 및 네트워크 I/O(38)와 같은, 입력/출력을 가능하게 하는 다양한 구성 요소들을 포함한다. 전술 한 바와 같이, 입력/출력 구성 요소들은, 일부 경우에서, 터치-가능 장치들을 포함할 수 있다. I/O(32)는 컴퓨팅 장치(110)에 대한 저장소를 제공하기 위하여 저장 요소(40)과, 및 장치(42)를 통해, 이동식 저장 매체(removable storage media)(44)와 인터랙트한다. 프로세싱 유닛(20)은 I/O(32)를 통해 통신하여 게임 상태 데이터 및 임의의 공유 데이터 파일들과 같은, 데이터를 저장할 수 있다. 저장소(40) 및 이동식 저장 매체(44) 이외에, ROM(판독 전용 메모리)(46) 및 RAM(48)을 포함하는 컴퓨팅 장치(110)가 또한 도시된다. RAM(48)은, 게임이 플레이 될 때와 같이, 자주 액세스되는 데이터에 사용될 수 있다.
사용자 I/O(34)는 프로세싱 유닛(20)과 게임 제어기와 같은 사용자 장치 사이에서 명령들을 송신 및 수신하는데 사용된다. 일부 실시예들에서, 사용자 I/O(34)는 터치스크린 입력들을 포함할 수 있다. 전술한 바와 같이, 터치스크린은 정전식 터치스크린, 저항성 터치스크린, 또는 사용자로부터 촉각 입력들을 통해 사용자 입력을 수신하도록 구성되는 터치스크린 기술의 다른 유형일 수 있다. 디스플레이 I/O(36)는 플레이 되는 게임으로부터 이미지들을 디스플레이 하는 데 사용되는 입력/출력 기능들을 제공한다. 네트워크 I/O(38)는 네트워크에 대한 입력/출력 기능들을 위해 사용된다. 네트워크 I/O(38)는, 게임이 온라인으로 플레이되거나 온라인으로 액세스 될 때와 같이, 게임의 실행 동안 사용될 수 있다.
디스플레이 출력 신호들은 디스플레이 I/O(36)에 의해 생성될 수 있고, 그래픽, 사용자 인터페이스, 비디오 및/또는 다른 시각적 콘텐츠와 같은, 디스플레이 장치 상에 컴퓨팅 장치(800)에 의해 생산된 시각적 콘텐츠를 디스플레이하기 위한 신호들을 포함할 수 있다. 사용자 컴퓨팅 시스템(110)은 디스플레이 I/O(36)에 의해 생산된 디스플레이 출력 신호들을 수신하도록 구성된 하나 이상의 통합된 디스플레이들을 포함할 수 있으며, 이는 사용자에게 디스플레이하기 위해 출력될 수 있다. 일부 실시예들에 따라, 디스플레이 I/O(36)에 의해 생산된 디스플레이 출력 신호들은 또한 컴퓨팅 장치(800) 외부의 하나 이상의 디스플레이 장치들로 출력될 수 있다.
또한 사용자 컴퓨팅 시스템(110)은 클록(50), 플래시 메모리(52) 및 다른 구성 요소들과 같은, 게임에 사용될 수 있는 다른 특징들을 포함할 수 있다. 오디오/비디오 플레이어(56)는 또한 영화와 같은 비디오 시퀀스를 플레이하는데 사용될 수 있다. 다른 구성 요소들이 사용자 컴퓨팅 시스템(110)에 제공될 수 있고 당업자는 사용자 컴퓨팅 시스템(110)의 다른 변형들을 이해할 수 있음을 이해할 수 있다.
프로그램 코드는 ROM(46), RAM(48) 또는 저장소(40)(하드 디스크, 다른 자기 저장소, 광학 저장소, 고체 상태 드라이브(solid state drives) 및/또는 다른 비-휘발성 저장소, 또는 이들의 조합 또는 변형을 포함할 수 있음)에 저장될 수 있다. 프로그램 코드의 적어도 일부는 프로그램 가능한(ROM, PROM, EPROM, EEPROM 등) ROM, 저장소(40), 및/또는 게임 매체(12)에 저장될 수 있다(이는 CD-ROM, 카트리지(cartridge), 메모리 칩(memory chip) 등 일 수 있거나, 필요에 따라 네트워크 또는 다른 전자 채널(electronic channel)을 통해 획득될 수 있음). 일반적으로, 프로그램 코드는 유형의 비-일시적 신호 전달 매체(tangible non-transitory signal-bearing medium)에서 구현될 수 있습니다.
랜덤 액세스 메모리(RAM)(48) (및 가능하게는 다른 저장소)는 필요에 따라 변수들 및 다른 게임 및 프로세서 데이터를 저장하는데 사용될 수 있다. RAM은 사용되며 게임의 플레이 중에 생성되는 데이터를 홀드하며(holds), 그의 부분은 프레임 버퍼, 게임 상태 및/또는 사용자 입력을 해석하고 게임 디스플레이를 생성하기 위해 필요하거나 사용할 수 있는 다른 데이터를 위해 보유될 수 있다. 일반적으로, RAM(48)은 휘발성 저장소이고, RAM(48) 내에 저장된 데이터는 사용자 컴퓨팅 시스템(110)이 꺼지거나 전력을 잃을 때 손실될 수 있다.
사용자 컴퓨팅 시스템(110)이 게임 미디어(12)를 판독하고 게임을 제공함에 따라, 정보는 게임 매체(12)로부터 판독되어 RAM(48)과 같은 메모리 장치에 저장될 수 있다. 추가적으로, 저장소(40), ROM(46), 네트워크를 통해 액세스되는 서버들(미도시), 이동식 저장 매체(46)로부터의 데이터는 판독되어 RAM(48)으로 로딩될 수 있다. 데이터가 RAM(48)에서 발견되는 것으로 설명되었지만, 데이터는 RAM(48)에 저장될 필요가 없고 프로세싱 유닛(20)에 액세스 가능한 다른 메모리에 저장되거나 게임 매체(12) 및 저장소(40)와 같은 몇몇 매체들 사이에 분배될 수 있음을 이해할 것이다.
추가 실시예들
반드시 모든 목적들 또는 이점들이 여기에 설명된 임의의 특정 실시예들에 따라 달성될 필요는 없다는 것을 이해해야 한다. 따라서, 예를 들어, 당업자는 특정 실시예들이 여기에 교시되거나 제안된 바와 같이 다른 목적들 또는 이점들을 반드시 달성하지 않으면서 본원에서 교시된 이점들 또는 장점들의 그룹을 달성하거나 최적화하는 방식으로 작동하도록 구성될 수 있다는 것을 인식할 것이다.
여기에 설명된 모든 프로세스들은, 하나 이상의 컴퓨터들 또는 프로세서들을 포함하는 컴퓨팅 시스템에 의해 실행되는 소프트웨어 코드 모듈들(software code modules)을 통해, 구현될 수 있고 완전히 자동화될 수 있다. 코드 모듈들은 비-일시적 컴퓨터 판독-가능 매체 또는 다른 컴퓨터 저장 장치의 임의의 유형에 저장될 수 있다. 일부 또는 모든 방법들은 특수한 컴퓨터 하드웨어에서 구현될 수 있다.
여기에 설명된 것 이외의 많은 다른 변형들이 이 개시로부터 명백할 것이다. 예를 들어, 실시예에 따라, 여기에 설명된 임의의 알고리즘들의 특정 동작들, 이벤트들 또는 기능들은 상이한 시퀀스로 수행될 수 있고, 추가, 병합 또는 전부 생략될 수 있다(예를 들어, 설명된 모든 동작들 또는 이벤트들이 알고리즘의 실행에 필요한 것은 아님). 또한, 특정 실시예들에서, 동작들 또는 이벤트들은, 예를 들어, 순차적이라기 보다는, 멀티-스레드 프로세싱, 인터럽트 프로세싱, 또는 다중 프로세서들 또는 프로세서 코어들을 통해, 또는 다른 병렬 아키텍처들을 통해, 동시에 수행될 수 있다. 또한, 상이한 작업들 또는 프로세스들이 함께 기능할 수 있는 상이한 기계들 및/또는 컴퓨팅 시스템들에 의해 수행될 수 있다.
여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들 및 모듈들은, 프로세싱 유닛 또는 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC; application specific integrated circuit), 필드 프로그램 가능 게이트 어레이(FPGA; field programmable gate array) 또는 다른 프로그래 가능 로직 장치, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 구성 요소들, 또는 여기에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합에 의해 구현될 수 있다. 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 제어기, 마이크로제어기(microcontroller) 또는 상태 기계(state machine), 이들의 조합 등일 수 있다. 프로세서는 컴퓨터-실행 가능 명령어들을 처리하도록 구성된 전기 회로를 포함할 수 있다. 다른 실시예에서, 프로세서는 컴퓨터-실행 가능 명령어들을 프로세싱 하지 않고 로직 작동들을 수행하는 FPGA 또는 다른 프로그램 가능한 장치를 포함한다. 프로세서는 컴퓨팅 장치들의 조합, 예를 들어, DSP와 마이크로 프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성들로서 구현될 수도 있다. 여기에서 주로 디지털 기술과 관련하여 설명되었지만, 프로세서는 또한 주로 아날로그 구성 요소들을 포함할 수 있다. 컴퓨팅 환경은 마이크로프로세서 기반 컴퓨터 시스템, 메인프레임 컴퓨터, 디지털 신호 프로세서, 휴대용 컴퓨팅 장치, 장치 제어기, 또는 전자 기기 내의 계산 엔진 등등을 포함하지만, 이에 한정되지 않는 컴퓨터 시스템의 임의의 유형을 포함할 수 있다.
다른 말로 표현하자면, 달리 명시하지 않는 한, "할 수 있다(can)", "할 수 있다(could)", "할 수 있다(might)"또는 "할 수 있다(may)"와 같은 조건부 언어는 일반적으로 특정 실시예들이 포함하는 것을 전달하는데 사용된 맥락 내에서 달리 이해되고, 다른 실시예들은 특정 특징들, 요소들 및/또는 단계들을 포함하지 않는다. 따라서, 이러한 조건부 언어는 하나 이상의 실시예들에 대해 특징들, 요소들 및/또는 단계들이 임의의 방식으로든 요구되거나, 또는 하나 이상의 실시예들이, 이들 특징들, 요소들 및/또는 단계들이 임의의 특정 실시예에 포함되거나 수행될 것인지 여부를 사용자 입력 또는 프롬프팅(prompting)과 또는 없이, 결정하기 위한 로직을 반드시 포함한다는 것을 암시하도록 일반적으로 의도되지 않는다.
"X, Y 또는 Z 중 적어도 하나"라는 문구와 같은 분리성 언어는, 달리 명시하지 않는 한, 일반적으로 아이템, 용어 등이 X, Y 또는 Z 또는 이들의 임의의 조합(예를 들어, X, Y 및/또는 Z)일 수 있음을 제시하는데 사용된 문맥으로 이해된다. 따라서, 이러한 분리성 언어는 특정 실시예들이 각 제시되는 X 중 적어도 하나, Y 중 적어도 하나, 또는 Z 중 적어도 하나를 필요로 한다는 것을 일반적으로 암시해야 하는 것이 아니며, 그렇게 의도되지 않는다.
첨부된 도면들에 도시된 및/또는 여기에 설명되는 흐름도에서의 임의의 프로세스 설명들, 요소들 또는 블록들은 프로세스에서 특정 논리 기능들 또는 요소들을 구현하기 위한 하나 이상의 실행 가능 명령어들을 포함하는 코드의 부분들, 세그먼트들, 또는 모듈들을 잠재적으로 나타내는 것으로 이해될 수 있다. 대안 구현예들은 요소들 또는 기능들이 삭제되거나, 도시된 것으로부터 순서대로 실행되거나, 또는 논의될 수 있는 여기에 설명된 실시예들의 범위 내에 포함되며, 실질적으로 동시에 또는 역순서로 포함하고, 당업자에 의해 이해할 수 있는 관련 기능들에 따른다.
다르게 명시되지 않는 한, "일(a)"또는 "일(an)"과 같은 항목들은 일반적으로 하나 이상의 설명된 아이템들을 포함하도록 해석될 수 있다. 따라서, "에 구성되는 장치(a device configured to)"와 같은 문구는 하나 이상의 인용된 장치들을 포함하도록 의도된다. 이러한 하나 이상의 열거된 장치는 명시된 기재 사항들을 수행하도록 집합적으로 구성 될 수도 있다. 예를 들어, "기재 사항들 A, B 및 C를 수행하도록 구성된 프로세서"는 기재 사항들 B 및 C를 수행하도록 구성된 제2 프로세서와 함께 작동하는 기재 사항 A를 수행하도록 구성된 제1 프로세서를 포함할 수 있다.
전술한 실시예들에 많은 변형들 및 수정들이 이루어질 수 있으며, 그 요소들은 다른 허용 가능한 예시들 중 하나로 이해되어야 한다는 점이 강조될 수 있다. 이러한 모든 수정들 및 변형은 본 개시의 범위 내에 포함되는 것으로 의도된다.

Claims (20)

  1. 컴퓨터-구현 방법에 있어서,
    특정 컴퓨터-실행 가능 명령어들로 구성되는 하나 이상의 하드웨어 컴퓨팅 장치들의 제어 하에 있고, 상기 특정 컴퓨터-실행 가능 명령어들은 전자 하드웨어 메모리에 저장되고,
    사용자 컴퓨팅 시스템으로부터 네트워크를 통해, 상기 사용자 컴퓨팅 시스템에서 비디오 게임 애플리케이션의 현재 게임플레이 세션의 개시의 표시를 포함하는 게임플레이 세션 데이터 패킷을 수신하는 단계;
    상기 게임플레이 세션 데이터 패킷으로부터 상기 사용자 컴퓨팅 시스템에 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션과 관련된 사용자 식별자를 식별하는 단계 - 상기 사용자 식별자는 사용자 계정과 관련됨 -;
    상기 사용자 식별자에 적어도 부분적으로 기초하여 물리적 데이터 저장소에서의 사용자 계정 데이터를 액세스하는 단계 - 상기 물리적 데이터 저장소는 상기 비디오 게임 애플리케이션의 하나 이상의 게임플레이 세션들과 관련된 사용자 인터랙션 데이터를 저장하는 사용자 계정 데이터 구조들을 저장하도록 구성됨 -;
    상기 현재 게임플레이 세션에서 주어진 레벨에서의 시도가 성공한 후에 비디오 게임의 플레이를 중단할 확률을 나타내는 승리 이탈율(win churn rate) 및 상기 현재 게임플레이 세션에서 주어진 레벨에서의 시도가 실패한 후에 비디오 게임의 플레이를 중단할 확률을 나타내는 패배 이탈율(loss churn rate)를 포함하는 이탈율(churn rate)을 결정하는 단계;
    난이도 분석 모델을 사용하여 상기 사용자 계정 데이터의 적어도 일부분, 상기 패배 이탈율, 및 상기 승리 이탈율의 분석에 적어도 부분적으로 기초하여 상기 사용자의 게임 진행과 관련된 난이도 궤적을 결정하는 단계 - 상기 난이도 궤적은 상기 사용자 계정과 관련된 예측된 도전 레벨을 나타냄 -;
    상기 현재 게임플레이 세션과 관련된 상기 예측된 도전 레벨, 상기 이탈율, 및 게임플레이 세션 데이터에 적어도 부분적으로 기초하여 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션에 대한 난이도 레벨을 결정하는 단계;
    상기 결정된 난이도 레벨에 적어도 부분적으로 기초하여, 상기 비디오 게임 애플리케이션과 관련된 적어도 하나의 게임플레이 파라미터에 대한 값을 선택하는 단계 - 상기 게임플레이 파라미터는 조정될 때 상기 비디오 게임의 상태를 수정시키는 변수를 포함함 -; 및
    상기 현재 게임플레이 세션에 대해 상기 선택된 값으로 상기 게임플레이 파라미터를 조정함으로써 상기 비디오 게임 애플리케이션의 실행을 수정하는 단계
    를 포함하는 컴퓨터-구현 방법.
  2. 제1항에 있어서,
    상기 사용자 인터랙션 데이터는 임계 에이지 시간 기간(threshold age time period) 보다 더 최근인 최근 사용자 인터랙션 데이터(recent user interaction data) 및 상기 임계 에이지 시간 기간 보다 덜 최근인 히스토리컬 사용자 인터랙션 데이터(historical user interaction data)를 포함하는
    컴퓨터-구현 방법.
  3. 제1항에 있어서,
    상기 결정된 난이도 레벨은 상기 사용자 계정과 관련된 기술 레벨에 적어도 부분적으로 기초하여 더 결정되는
    컴퓨터-구현 방법.
  4. 제1항에 있어서,
    상기 난이도 궤적은 상기 비디오 게임의 복수의 상이한 부분들에 대해 복수의 결정된 난이도 레벨들을 나타내는
    컴퓨터-구현 방법.
  5. 제1항에 있어서,
    상기 게임플레이 파라미터 값은 상기 비디오 게임 애플리케이션 내 게임플레이 레벨을 생성하도록 사용된 시드 데이터를 식별하는 시드 값인
    컴퓨터-구현 방법.
  6. 제1항에 있어서,
    상기 현재 게임플레이 세션에 대해 상기 선택된 값으로 상기 게임플레이 파라미터를 조정함으로써 상기 비디오 게임 애플리케이션의 실행을 수정하는 단계는 상기 현재 게임플레이 세션 동안 각 게임플레이 레벨의 개시 전에 발생하는
    컴퓨터-구현 방법.
  7. 제1항에 있어서,
    상기 사용자와 관련된 검출된 난이도의 레벨과 상기 난이도 궤적 사이의 관계를 결정하는 단계;
    상기 결정된 관계에 기초하여, 하나 이상의 설계 권고들을 생성하는 단계; 및
    상기 하나 이상의 설계 권고에 기초하여 상기 비디오 게임 애플리케이션을 업데이트 하는 단계
    를 더 포함하는 컴퓨터-구현 방법.
  8. 시스템에 있어서,
    비디오 게임 애플리케이션의 하나 이상의 게임플레이 세션들과 관련된 사용자 인터랙션 데이터를 저장하는 사용자 계정 데이터 구조들을 저장하도록 구성되는 전자 데이터 저장소;
    상기 전자 데이터 저장소와 통신하는 하드웨어 프로세서
    를 포함하고,
    상기 하드웨어 프로세서는 적어도 특정 컴퓨터-실행 가능 명령어들을 실행하도록 구성되는:
    사용자 컴퓨팅 시스템으로부터 네트워크를 통해, 상기 사용자 컴퓨팅 시스템에서 비디오 게임 애플리케이션의 현재 게임플레이 세션의 개시의 표시를 포함하는 게임플레이 세션 데이터 패킷을, 수신하고;
    상기 게임플레이 세션 데이터 패킷으로부터 상기 사용자 컴퓨팅 시스템에 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션과 관련된 사용자 식별자를 식별하고, 상기 사용자 식별자는 사용자 계정과 관련됨;
    상기 사용자 식별자에 적어도 부분적으로 기초하여 물리적 데이터 저장소에서의 사용자 계정 데이터를 액세스하고, 상기 물리적 데이터 저장소는 상기 비디오 게임 애플리케이션의 하나 이상의 게임플레이 세션들과 관련된 사용자 인터랙션 데이터를 저장하는 사용자 계정 데이터 구조들을 저장하도록 구성됨;
    상기 현재 게임플레이 세션에서 주어진 레벨에서의 시도가 성공한 후에 비디오 게임의 플레이를 중단할 확률을 나타내는 승리 이탈율(win churn rate) 및 상기 현재 게임플레이 세션에서 주어진 레벨에서의 시도가 실패한 후에 비디오 게임의 플레이를 중단할 확률을 나타내는 패배 이탈율(loss churn rate)을 포함하는 이탈율(churn rate)을 결정하며;
    난이도 분석 모델을 사용하여 상기 사용자 계정 데이터의 적어도 일부분, 상기 패배 이탈율, 및 상기 승리 이탈율의 분석에 적어도 부분적으로 기초하여 상기 사용자의 게임 진행과 관련된 난이도 궤적을 결정하고, 상기 난이도 궤적은 상기 사용자 계정과 관련된 예측된 도전 레벨을 나타냄;
    상기 현재 게임플레이 세션과 관련된 상기 예측된 도전 레벨, 상기 이탈율, 및 게임플레이 세션 데이터에 적어도 부분적으로 기초하여 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션에 대한 난이도 레벨을 결정하고;
    상기 결정된 난이도 레벨에 적어도 부분적으로 기초하여, 상기 비디오 게임 애플리케이션과 관련된 적어도 하나의 게임플레이 파라미터에 대한 값에 대한 값을 선택하고, 상기 게임플레이 파라미터는 조정될 때 상기 비디오 게임의 상태를 수정시키는 변수를 포함함; 및
    상기 현재 게임플레이 세션에 대해 상기 선택된 값으로 상기 게임플레이 파라미터를 조정함으로써 상기 비디오 게임 애플리케이션의 실행을 수정함
    을 포함하는 시스템.
  9. 제8항에 있어서,
    상기 사용자 인터랙션 데이터는 임계 에이지 시간 기간 보다 더 최근인 최근 사용자 인터랙션 데이터 및 상기 임계 에이지 시간 기간 보다 덜 최근인 히스토리컬 사용자 인터랙션 데이터를 포함하는
    시스템.
  10. 제8항에 있어서,
    상기 결정된 난이도 레벨은 상기 사용자 계정과 관련된 기술 레벨에 적어도 부분적으로 기초하여 더 결정되는
    시스템.
  11. 제8항에 있어서,
    상기 난이도 궤적은 상기 비디오 게임의 목수의 상이한 부분들에 대해 복수의 미리 결정된 난이도 레벨들을 나타내는
    시스템.
  12. 제8항에 있어서,
    상기 게임플레이 파라미터 값은 상기 비디오 게임 애플리케이션 내 게임플레이 레벨을 생성하도록 사용된 시드 데이터를 식별하는 시드 값인
    시스템.
  13. 제8항에 있어서,
    상기 현재 게임플레이 세션에 대해 상기 선택된 값으로 상기 게임플레이 파라미터를 조정함으로써 상기 비디오 게임 애플리케이션의 실행의 수정은 상기 현재 게임플레이 세션 동안 각 게임플레이 레벨의 개시 전에 발생하는
    시스템.
  14. 제8항에 있어서,
    상기 하드웨어 프로세서는,
    상기 사용자와 관련된 검출된 난이도의 레벨과 상기 난이도 궤적 사이의 관계를 결정하고;
    상기 결정된 관계에 기초하여, 하나 이상의 설계 권고들을 생성하고; 및
    상기 하나 이상의 설계 권고에 기초하여 상기 비디오 게임 애플리케이션을 업데이트 하는
    시스템.
  15. 하나 이상의 컴퓨팅 장치들에 의해 실행될 때, 하나 이상의 컴퓨팅 장치가 다음을 포함하는 작동들을 수행하도록 구성되는 컴퓨터 실행 가능 명령어들을 저장하는 비-일시적 컴퓨터-판독 가능 저장 매체에 있어서,
    특정 컴퓨터-실행 가능 명령어들로 구성되는 하나 이상의 하드웨어 컴퓨팅 장치들의 제어 하에 있고, 상기 특정 컴퓨터-실행 가능 명령어들은 전자 하드웨어 메모리에 저장되고,
    사용자 컴퓨팅 시스템으로부터 네트워크를 통해, 상기 사용자 컴퓨팅 시스템에서 비디오 게임 애플리케이션의 현재 게임플레이 세션의 개시의 표시를 포함하는 게임플레이 세션 데이터 패킷을 수신하는 단계;
    상기 게임플레이 세션 데이터 패킷으로부터 상기 사용자 컴퓨팅 시스템에 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션과 관련된 사용자 식별자를 식별하는 단계 - 상기 사용자 식별자는 사용자 계정과 관련됨 -;
    상기 사용자 식별자에 적어도 부분적으로 기초하여 물리적 데이터 저장소에서의 사용자 계정 데이터를 액세스하는 단계 - 상기 물리적 데이터 저장소는 상기 비디오 게임 애플리케이션의 하나 이상의 게임플레이 세션들과 관련된 사용자 인터랙션 데이터를 저장하는 사용자 계정 데이터 구조들을 저장하도록 구성됨 -;
    상기 현재 게임플레이 세션에서 주어진 레벨에서의 시도가 성공한 후에 비디오 게임의 플레이를 중단할 확률을 나타내는 승리 이탈율(win churn rate) 및 상기 현재 게임플레이 세션에서 주어진 레벨에서의 시도가 실패한 후에 비디오 게임의 플레이를 중단할 확률을 나타내는 패배 이탈율(loss churn rate)를 포함하는 이탈율(churn rate)을 결정하는 단계;
    난이도 분석 모델을 사용하여 상기 사용자 계정 데이터의 적어도 일부분, 상기 패배 이탈율, 및 상기 승리 이탈율의 분석에 적어도 부분적으로 기초하여 상기 사용자의 게임 진행과 관련된 난이도 궤적을 결정하는 단계 - 상기 난이도 궤적은 상기 사용자 계정과 관련된 예측된 도전 레벨을 나타냄 -;
    상기 현재 게임플레이 세션과 관련된 상기 예측된 도전 레벨, 상기 이탈율, 및 게임플레이 세션 데이터에 적어도 부분적으로 기초하여 상기 비디오 게임 애플리케이션의 현재 게임플레이 세션에 대한 난이도 레벨을 결정하는 단계;
    상기 결정된 난이도 레벨에 적어도 부분적으로 기초하여, 상기 비디오 게임 애플리케이션과 관련된 적어도 하나의 게임플레이 파라미터에 대한 값에 대한 값을 선택하는 단계 - 상기 게임플레이 파라미터는 조정될 때 상기 비디오 게임의 상태를 수정시키는 변수를 포함함 -; 및
    상기 현재 게임플레이 세션에 대해 상기 선택된 값으로 상기 게임플레이 파라미터를 조정함으로써 상기 비디오 게임 애플리케이션의 실행을 수정하는 단계
    를 포함하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  16. 제15항에 있어서,
    상기 사용자 인터랙션 데이터는 임계 에이지 시간 기간 보다 더 최근인 최근 사용자 인터랙션 데이터 및 상기 임계 에이지 시간 기간 보다 덜 최근인 히스토리컬 사용자 인터랙션 데이터를 포함하는
    비-일시적 컴퓨터-판독 가능 저장 매체.
  17. 제15항에 있어서,
    상기 결정된 난이도 레벨은 상기 사용자 계정과 관련된 기술 레벨에 적어도 부분적으로 기초하여 더 결정되는
    비-일시적 컴퓨터-판독 가능 저장 매체.
  18. 제15항에 있어서,
    상기 난이도 궤적은 상기 비디오 게임의 복수의 상이한 부분들에 대해 복수의 결정된 난이도 레벨들을 나타내는
    비-일시적 컴퓨터-판독 가능 저장 매체.
  19. 제15항에 있어서,
    상기 게임플레이 파라미터 값은 상기 비디오 게임 애플리케이션 내 게임플레이 레벨을 생성하도록 사용된 시드 데이터를 식별하는 시드 값인
    비-일시적 컴퓨터-판독 가능 저장 매체.
  20. 제15항에 있어서,
    상기 현재 게임플레이 세션에 대해 상기 선택된 값으로 상기 게임플레이 파라미터를 조정함으로써 상기 비디오 게임 애플리케이션의 실행을 수정하는 단계는 상기 현재 게임플레이 세션 동안 각 게임플레이 레벨의 개시 전에 발생하는
    비-일시적 컴퓨터-판독 가능 저장 매체.
KR1020180023140A 2017-02-28 2018-02-26 비디오 게임 애플리케이션 내의 게임플레이 파라미터들의 실시간 동적 수정 및 최적화 KR102060879B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/445,784 US10357718B2 (en) 2017-02-28 2017-02-28 Realtime dynamic modification and optimization of gameplay parameters within a video game application
US15/445,784 2017-02-28

Publications (2)

Publication Number Publication Date
KR20180099532A KR20180099532A (ko) 2018-09-05
KR102060879B1 true KR102060879B1 (ko) 2019-12-30

Family

ID=63245552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180023140A KR102060879B1 (ko) 2017-02-28 2018-02-26 비디오 게임 애플리케이션 내의 게임플레이 파라미터들의 실시간 동적 수정 및 최적화

Country Status (3)

Country Link
US (2) US10357718B2 (ko)
KR (1) KR102060879B1 (ko)
CN (1) CN108499108B (ko)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9919217B2 (en) 2016-03-08 2018-03-20 Electronic Arts Inc. Dynamic difficulty adjustment
US20180053433A1 (en) * 2016-08-19 2018-02-22 Robert Dunn System and method for providing an adaptive scenario-based user experience
US10384133B1 (en) 2016-12-30 2019-08-20 Electronic Arts Inc. Systems and methods for automatically measuring a video game difficulty
US10357718B2 (en) 2017-02-28 2019-07-23 Electronic Arts Inc. Realtime dynamic modification and optimization of gameplay parameters within a video game application
US10343069B2 (en) * 2017-04-11 2019-07-09 Sony Interactive Entertainment LLC Systems and methods for executing a training program based on player DNA
US20180361254A1 (en) * 2017-06-15 2018-12-20 Cognant Llc System and method for controlling player success in a multiplayer online game
CN111565809A (zh) * 2017-10-11 2020-08-21 华纳兄弟娱乐公司 基于机器学习的灵活计算机游戏
US10572231B1 (en) * 2018-01-05 2020-02-25 Amazon Technologies, Inc. Component grouping for application development
JP6405479B1 (ja) * 2018-02-19 2018-10-17 株式会社コナミデジタルエンタテインメント ゲームシステム、ゲーム端末、及びプログラム
GB2572168A (en) * 2018-03-21 2019-09-25 Sony Interactive Entertainment Inc Activity search method and apparatus
GB2572548A (en) * 2018-03-28 2019-10-09 Sony Interactive Entertainment Inc Content generation system
US10839215B2 (en) 2018-05-21 2020-11-17 Electronic Arts Inc. Artificial intelligence for emulating human playstyles
US10713543B1 (en) 2018-06-13 2020-07-14 Electronic Arts Inc. Enhanced training of machine learning systems based on automatically generated realistic gameplay information
CN109395385B (zh) * 2018-09-13 2021-05-25 深圳市腾讯信息技术有限公司 虚拟场景的配置方法和装置、存储介质、电子装置
KR102063813B1 (ko) * 2018-10-05 2020-01-08 엔에이치엔 주식회사 스테이지형 턴제 게임 제공 장치 및 시스템
WO2020086337A1 (en) 2018-10-22 2020-04-30 Sony Interactive Entertainment LLC Data model for uniform data platform
JP7259025B2 (ja) 2018-10-25 2023-04-17 ソニー・インタラクティブエンタテインメント エルエルシー ゲーム内オブジェクトのクロスプラットフォーム消費
CN109107162B (zh) * 2018-11-01 2021-11-19 杭州勺子网络科技有限公司 游戏难度调节方法及装置
US10918946B2 (en) * 2018-11-05 2021-02-16 Sony Interactive Entertainment LLC In-game information platform
US10576380B1 (en) * 2018-11-05 2020-03-03 Sony Interactive Entertainment LLC Artificial intelligence (AI) model training using cloud gaming network
TWI696929B (zh) * 2018-11-07 2020-06-21 遊戲橘子數位科技股份有限公司 遊戲行為的資料庫建立及其分析方法
CN109529351B (zh) * 2018-11-19 2023-03-24 网易(杭州)网络有限公司 游戏中虚拟对象的行为能力控制方法、装置及存储介质
CN109364490A (zh) * 2018-12-05 2019-02-22 网易(杭州)网络有限公司 卡牌游戏测试方法、装置及存储介质
CN109692479B (zh) * 2018-12-11 2022-09-16 咪咕互动娱乐有限公司 一种游戏视频的生成方法、装置及计算机可读存储介质
CN109858956B (zh) * 2019-01-14 2023-12-12 珠海金山数字网络科技有限公司 一种基于大数据的游戏物品推送方法及系统
CN109876454A (zh) * 2019-01-14 2019-06-14 珠海金山网络游戏科技有限公司 一种游戏动态修正方法及系统
CN109966739B (zh) * 2019-01-17 2022-11-11 珠海金山数字网络科技有限公司 一种优化游戏运行的方法及系统
CN109806584A (zh) * 2019-01-24 2019-05-28 网易(杭州)网络有限公司 游戏场景生成方法及装置、电子设备、存储介质
KR102668095B1 (ko) * 2019-01-31 2024-05-22 한국전자통신연구원 게이머 행동 예측 모델에 기반한 게임 운영 시나리오 생성 방법 및 시스템
KR102573962B1 (ko) * 2019-02-20 2023-09-01 포메이션, 인크. 최종 사용자 게임 경험을 맞춤화하기 위한 방법 및 시스템
CN109847367A (zh) * 2019-03-06 2019-06-07 网易(杭州)网络有限公司 一种游戏胜率的预测方法、模型生成方法和装置
US11065549B2 (en) * 2019-03-15 2021-07-20 Sony Interactive Entertainment Inc. AI modeling for video game coaching and matchmaking
US11331581B2 (en) * 2019-03-19 2022-05-17 modl.ai ApS Experience based game development and methods for use therewith
US11276216B2 (en) 2019-03-27 2022-03-15 Electronic Arts Inc. Virtual animal character generation from image or video data
US10918941B2 (en) * 2019-03-27 2021-02-16 Electronic Arts Inc. Predictive execution of distributed game engines
US10953334B2 (en) 2019-03-27 2021-03-23 Electronic Arts Inc. Virtual character generation from image or video data
US10946281B2 (en) 2019-03-29 2021-03-16 Nvidia Corporation Using playstyle patterns to generate virtual representations of game players
KR102199466B1 (ko) * 2019-04-16 2021-01-06 넷마블 주식회사 게임 환경 변경 방법
CN111841009A (zh) * 2019-04-30 2020-10-30 北京达佳互联信息技术有限公司 控制游戏难度的方法、装置、电子设备及介质
CN110141868A (zh) * 2019-05-27 2019-08-20 合肥常春藤移动科技有限公司 一种用于竞速类游戏应用的ai追逐方法
US11033824B2 (en) * 2019-06-14 2021-06-15 Roblox Corporation Predictive data preloading
US10940393B2 (en) 2019-07-02 2021-03-09 Electronic Arts Inc. Customized models for imitating player gameplay in a video game
US11308428B2 (en) * 2019-07-09 2022-04-19 International Business Machines Corporation Machine learning-based resource customization to increase user satisfaction
US11110353B2 (en) 2019-07-10 2021-09-07 Electronic Arts Inc. Distributed training for machine learning of AI controlled virtual entities on video game clients
US11068284B2 (en) 2019-07-25 2021-07-20 Huuuge Global Ltd. System for managing user experience and method therefor
CN110496387B (zh) * 2019-08-23 2023-08-29 Oppo(重庆)智能科技有限公司 游戏优化方法、装置、移动终端及存储介质
CN112439193B (zh) * 2019-09-04 2024-02-23 网易(杭州)网络有限公司 一种游戏难度匹配方法及装置
US11144315B2 (en) * 2019-09-06 2021-10-12 Roblox Corporation Determining quality of an electronic game based on developer engagement metrics
US20210081498A1 (en) * 2019-09-17 2021-03-18 Disney Enterprises, Inc. Artificial intelligence-based roleplaying experiences based on user-selected scenarios
GB2590891A (en) * 2019-10-24 2021-07-14 Sony Interactive Entertainment Europe Ltd Apparatus and method of user analysis and content selection
CN110879730B (zh) * 2019-11-14 2023-10-24 腾讯科技(深圳)有限公司 自动调整游戏配置的方法、装置、电子设备及存储介质
CN111035935A (zh) * 2019-12-17 2020-04-21 詹万宇 一种基于用户行为的游戏辅助方法及系统
CN111191136A (zh) * 2019-12-30 2020-05-22 华为技术有限公司 一种信息推荐方法以及相关设备
KR102330040B1 (ko) * 2019-12-30 2021-11-23 동국대학교 산학협력단 게임 요소와 게임 컨텐츠 소모 시간과의 연관성 정량화를 통한 게임 난이도 조절 방법
CN111176758B (zh) * 2019-12-31 2021-06-22 腾讯科技(深圳)有限公司 配置参数的推荐方法、装置、终端及存储介质
CN111249737B (zh) * 2020-01-17 2021-07-06 腾讯科技(深圳)有限公司 一种游戏测试的方法、相关装置、设备及存储介质
US11541317B2 (en) * 2020-02-06 2023-01-03 Sony Interactive Entertainment Inc. Automated weapon selection for new players using AI
KR102263438B1 (ko) * 2020-02-06 2021-06-10 엔에이치엔 주식회사 딥러닝 기반의 게임 플레이 서버를 이용한 게임 난이도 예측 방법 및 그 장치
CN111330269B (zh) * 2020-02-26 2021-03-26 北京字节跳动网络技术有限公司 应用难度调整和策略确定方法、装置、系统、设备及介质
US11623154B2 (en) * 2020-03-31 2023-04-11 Sony Interactive Entertainment Inc. Driving virtual influencers based on predicted gaming activity and spectator characteristics
CN111450533B (zh) * 2020-03-31 2022-06-24 腾讯科技(深圳)有限公司 虚拟场景中的虚拟对象控制方法、装置、终端及存储介质
US20210312301A1 (en) * 2020-04-01 2021-10-07 Sony Interactive Entertainment Inc. Human performance capturing for artificial intelligence recommendations
CN111617478B (zh) * 2020-05-29 2023-03-03 腾讯科技(深圳)有限公司 游戏阵容强度的预测方法、装置、电子设备及存储介质
WO2021262733A1 (en) * 2020-06-24 2021-12-30 Insolent Games Inc. System and method for executing and manipulating a storyline
KR102421698B1 (ko) * 2020-07-30 2022-07-15 한국과학기술원 원버튼 게임의 난이도 설계방법 및 장치
CN112221153A (zh) * 2020-10-27 2021-01-15 北京字节跳动网络技术有限公司 一种游戏参数的获取方法、装置、终端设备和存储介质
CN112546632A (zh) * 2020-12-09 2021-03-26 百果园技术(新加坡)有限公司 游戏地图参数调整方法、装置、设备和存储介质
KR102579332B1 (ko) * 2020-12-16 2023-09-15 주식회사 투파이브듀 동적 학습 콘텐츠와 결합된 맞춤형 게임 서비스 제공 시스템 및 방법
KR102246617B1 (ko) * 2021-03-16 2021-04-30 넷마블 주식회사 화면 분석 방법
US11789761B2 (en) * 2021-05-12 2023-10-17 Skillz Platform, Inc. System and method for segmenting users of a client application
CN113384900B (zh) * 2021-07-06 2022-09-30 在线途游(北京)科技有限公司 一种场景控制方法及装置
KR102592559B1 (ko) * 2021-08-11 2023-10-20 넷마블 주식회사 게임 내 허들(huddle)을 탐지하는 방법
WO2023041968A1 (en) * 2021-09-16 2023-03-23 Sensetime International Pte. Ltd. Message processing method, apparatus and device, and storage medium
AU2021240199A1 (en) * 2021-09-16 2023-03-30 Sensetime International Pte. Ltd. Message processing method, apparatus and device, and storage medium
US20230109792A1 (en) 2021-10-13 2023-04-13 Nlevel Software Llc Software path prediction via machine learning
CN114225391B (zh) * 2021-12-20 2022-12-13 广州博冠信息科技有限公司 通关游戏控制方法、装置、终端和存储介质
CN114247148B (zh) * 2021-12-22 2023-08-15 广州银汉科技有限公司 智能分析开发平台
GB2614880A (en) * 2022-01-19 2023-07-26 Sony Interactive Entertainment Inc Data processing
CN114404996A (zh) * 2022-01-26 2022-04-29 厦门雅基软件有限公司 资源数据处理方法、系统、编辑器、电子设备及存储介质
CN114832385A (zh) * 2022-03-29 2022-08-02 山东赤子城网络技术有限公司 一种游戏动态调整方法和系统
US20230310995A1 (en) * 2022-03-31 2023-10-05 Advanced Micro Devices, Inc. Detecting personal-space violations in artificial intelligence based non-player characters
US20230385967A1 (en) * 2022-05-31 2023-11-30 Sony Interactive Entertainment LLC Secure matchmaking, asset transfer, and usability reconfiguration platform
US11806630B1 (en) 2022-05-31 2023-11-07 Sony Interactive Entertainment LLC Profile-based detection of unintended controller errors
US20230381662A1 (en) * 2022-05-31 2023-11-30 Sony Interactive Entertainment LLC Adaptive difficulty calibration for skills-based activities in virtual environments
GB2623106A (en) * 2022-10-06 2024-04-10 Sony Interactive Entertainment Inc User accessibility system and method
US20240139629A1 (en) * 2022-10-31 2024-05-02 Samsung Electronics Co., Ltd. Effective multi-scale multi-granular targeting for game users
CN115951786B (zh) * 2023-03-14 2023-05-12 环球数科集团有限公司 一种利用aigc技术的多结局创意社交游戏的创作方法
CN116173513B (zh) * 2023-04-24 2023-07-25 深圳市乐易网络股份有限公司 一种智能化游戏推送系统及方法
CN116650973A (zh) * 2023-07-28 2023-08-29 深圳易帆互动科技有限公司 一种游戏内容动态调整方法、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160067612A1 (en) * 2014-09-10 2016-03-10 Alexandros Ntoulas Automated game modification based on playing style

Family Cites Families (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274801A (en) 1988-04-29 1993-12-28 International Business Machines Corp. Artifical intelligence delivery system
US5683082A (en) 1992-08-04 1997-11-04 Kabushiki Kaisha Ace Denken Gaming system controlling termination of playing and degree of playing difficulty
US6285380B1 (en) 1994-08-02 2001-09-04 New York University Method and system for scripting interactive animated actors
CN100452071C (zh) 1995-02-13 2009-01-14 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US6106395A (en) 1997-03-04 2000-08-22 Intel Corporation Adaptive gaming behavior based on player profiling
US8540575B2 (en) 2002-10-08 2013-09-24 White Knuckle Gaming, Llc Method and system for increased realism in video games
US20040152512A1 (en) 2003-02-05 2004-08-05 Collodi David J. Video game with customizable character appearance
JP4057945B2 (ja) 2003-04-25 2008-03-05 株式会社バンダイナムコゲームス プログラム、情報記憶媒体及びゲーム装置
US20050130725A1 (en) 2003-12-15 2005-06-16 International Business Machines Corporation Combined virtual and video game
US7296007B1 (en) 2004-07-06 2007-11-13 Ailive, Inc. Real time context learning by software agents
KR100766545B1 (ko) 2005-09-08 2007-10-11 엔에이치엔(주) 게이머의 입력 패턴을 복사하여 게임을 수행하는 게임 ai제어 방법 및 게임 ai 제어 시스템
US9117329B2 (en) 2005-09-12 2015-08-25 Bally Gaming, Inc. Gaming system for data management and collection and related methods
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
US9250703B2 (en) 2006-03-06 2016-02-02 Sony Computer Entertainment Inc. Interface with gaze detection and voice input
US8142282B2 (en) 2006-11-15 2012-03-27 Microsoft Corporation Console integrated downloadable game service
US9522332B2 (en) 2006-12-13 2016-12-20 Voodoo Gaming Llc Video games including real-life attributes and/or fantasy team settings
US8128476B1 (en) 2007-02-02 2012-03-06 Popcap Games, Inc. Electronic game, such as a computer game involving removing pegs
US8907193B2 (en) 2007-02-20 2014-12-09 Ubisoft Entertainment Instrument game system and method
JP5427343B2 (ja) 2007-04-20 2014-02-26 任天堂株式会社 ゲームコントローラ
US8475274B2 (en) 2007-04-26 2013-07-02 Sony Computer Entertainment America Llc Method and apparatus for dynamically adjusting game or other simulation difficulty
US20080268961A1 (en) 2007-04-30 2008-10-30 Michael Brook Method of creating video in a virtual world and method of distributing and using same
US8197313B2 (en) 2007-10-29 2012-06-12 Microsoft Corporation User to user game referrals
EP2263190A2 (en) 2008-02-13 2010-12-22 Ubisoft Entertainment S.A. Live-action image capture
KR20090092007A (ko) 2008-02-26 2009-08-31 한국전자통신연구원 게임 캐릭터의 사용자 조작 패턴 학습 방법 및 장치
US8443350B2 (en) 2008-06-06 2013-05-14 Cornell University System and method for scaling simulations and games
JP4439572B2 (ja) 2008-07-11 2010-03-24 任天堂株式会社 ディジタルデータ補正プログラムおよびディジタルデータ補正装置
US20100144444A1 (en) 2008-12-04 2010-06-10 Disney Enterprises, Inc. Real-time, video game playtesting
CA2757238C (en) 2009-03-27 2019-06-25 Infomotion Sports Technologies, Inc. Monitoring of physical training events
US8803889B2 (en) 2009-05-29 2014-08-12 Microsoft Corporation Systems and methods for applying animations or motions to a character
US9159151B2 (en) 2009-07-13 2015-10-13 Microsoft Technology Licensing, Llc Bringing a visual representation to life via learned input from the user
US20110035280A1 (en) 2009-08-04 2011-02-10 Visa U.S.A. Inc. Systems and Methods for Targeted Advertisement Delivery
US20110295649A1 (en) 2010-05-31 2011-12-01 International Business Machines Corporation Automatic churn prediction
US20120083330A1 (en) 2010-10-05 2012-04-05 Zynga Game Network, Inc. System and Method for Generating Achievement Objects Encapsulating Captured Event Playback
US20120115581A1 (en) 2010-11-05 2012-05-10 Wms Gaming Inc. Wagering games, methods and systems including skill-based components
JP5587800B2 (ja) 2011-01-12 2014-09-10 株式会社スクウェア・エニックス ネットワークゲームシステム、ゲーム装置、サーバ装置、及びプログラム
JP5581232B2 (ja) 2011-01-12 2014-08-27 株式会社スクウェア・エニックス ネットワークゲームシステム、及びサーバ装置
JP6302614B2 (ja) 2011-02-25 2018-03-28 任天堂株式会社 通信システム、情報処理装置、プログラム及び情報処理方法
US8977585B2 (en) 2011-03-09 2015-03-10 Sportsvision, Inc. Simulation system
US8267764B1 (en) 2011-04-21 2012-09-18 Wms Gaming Inc. Wagering game having enhancements to queued outcomes
JP5068873B2 (ja) * 2011-05-13 2012-11-07 株式会社三共 遊技機
US9013489B2 (en) 2011-06-06 2015-04-21 Microsoft Technology Licensing, Llc Generation of avatar reflecting player appearance
KR101217361B1 (ko) 2011-09-08 2012-12-31 (주)네오위즈게임즈 스포츠 게임의 캐릭터 정보 관리 방법 및 장치
US8535163B2 (en) 2012-01-10 2013-09-17 Zynga Inc. Low-friction synchronous interaction in multiplayer online game
US10937239B2 (en) 2012-02-23 2021-03-02 Charles D. Huston System and method for creating an environment and for sharing an event
KR101495757B1 (ko) 2012-04-20 2015-03-04 (주)네오위즈게임즈 게임 자동 플레이 제어 방법 및 장치
US8814701B2 (en) 2012-05-24 2014-08-26 Sap Ag Artificial intelligence avatar to engage players during game play
EP2864961A4 (en) 2012-06-21 2016-03-23 Microsoft Technology Licensing Llc AVATAR CONSTRUCTION USING A DEPTH CAMERA
US9616329B2 (en) 2012-06-28 2017-04-11 Electronic Arts Inc. Adaptive learning system for video game enhancement
DE102013203667B4 (de) 2013-03-04 2024-02-22 Adidas Ag Kabine zum Ausprobieren eines oder mehrerer Bekleidungsstücke
US9056252B2 (en) 2013-03-13 2015-06-16 Sugarcane Development, Inc. Highly interactive online multiplayer video games
JP5869544B2 (ja) * 2013-10-10 2016-02-24 株式会社 ディー・エヌ・エー サーバー装置、及び、プログラム
US20150142507A1 (en) 2013-11-21 2015-05-21 Ana Maria Tuta Osman Recommendation system for specifying and achieving goals
US9524582B2 (en) 2014-01-28 2016-12-20 Siemens Healthcare Gmbh Method and system for constructing personalized avatars using a parameterized deformable mesh
US10013710B2 (en) 2014-04-17 2018-07-03 Ebay Inc. Fashion preference analysis
CN106575354B (zh) 2014-05-21 2021-11-05 汤杰宝游戏公司 有形界面对象的虚拟化
US10286326B2 (en) 2014-07-03 2019-05-14 Activision Publishing, Inc. Soft reservation system and method for multiplayer video games
KR101603681B1 (ko) 2014-11-12 2016-03-16 세종대학교산학협력단 게임 플레이 데이터의 모방에 기반한 게임 캐릭터의 인공지능 생성 시스템 및 방법
US9734594B2 (en) 2015-08-26 2017-08-15 Electronics Arts Inc. Producing three-dimensional representation based on images of an object
US10169891B2 (en) 2015-08-26 2019-01-01 Electronic Arts Inc. Producing three-dimensional representation based on images of a person
US20170124753A1 (en) 2015-11-03 2017-05-04 Electronic Arts Inc. Producing cut-out meshes for generating texture maps for three-dimensional surfaces
US10105603B2 (en) 2015-11-13 2018-10-23 Zynga Inc. Automated tuning of computer-implemented games
CN105413170A (zh) * 2015-11-26 2016-03-23 北京像素软件科技股份有限公司 一种游戏难度的动态调整方法及装置
US9919217B2 (en) 2016-03-08 2018-03-20 Electronic Arts Inc. Dynamic difficulty adjustment
EP3429471A4 (en) 2016-03-18 2019-07-31 President and Fellows of Harvard College AUTOMATIC CLASSIFICATION OF ANIMAL BEHAVIOR
US20170312634A1 (en) 2016-04-28 2017-11-02 Uraniom System and method for personalized avatar generation, especially for computer games
US10226708B2 (en) 2016-06-30 2019-03-12 Electronic Arts Inc. Interactive gameplay playback system
US10478730B1 (en) 2016-08-25 2019-11-19 Electronic Arts Inc. Computer architecture for simulation of sporting events based on real-world data
CN106422295B (zh) * 2016-09-27 2020-03-17 珠海格力智能装备有限公司 对弈难度等级的处理方法及装置、机器人
CN106390456B (zh) 2016-09-30 2018-09-18 腾讯科技(深圳)有限公司 游戏中角色行为的生成方法和装置
US10004984B2 (en) 2016-10-31 2018-06-26 Disney Enterprises, Inc. Interactive in-room show and game system
JP6746801B2 (ja) 2016-12-09 2020-08-26 ユニティ アイピーアール エイピーエスUnity Ipr Aps 3dコンテンツの作成、放送、および視聴
US20180161673A1 (en) 2016-12-13 2018-06-14 Microsoft Technology Licensing, Llc Using telemetry data in a distributed computing environment to address complex problems
US10384133B1 (en) 2016-12-30 2019-08-20 Electronic Arts Inc. Systems and methods for automatically measuring a video game difficulty
US10357718B2 (en) 2017-02-28 2019-07-23 Electronic Arts Inc. Realtime dynamic modification and optimization of gameplay parameters within a video game application
US11763143B2 (en) 2017-04-19 2023-09-19 AIBrain Corporation Adding deep learning based AI control
CN107376353B (zh) * 2017-07-14 2018-09-04 腾讯科技(深圳)有限公司 关卡配置方法及装置
EP3665653A4 (en) 2017-09-11 2021-09-29 Track160, Ltd. METHOD FOR REPRESENTING THREE-DIMENSIONAL ANIMATED GRAPHICS FROM VIDEOS
JP7169358B2 (ja) 2017-12-22 2022-11-10 マジック リープ, インコーポレイテッド 高速立体再構成のための視点依存ブリック選択
US10614310B2 (en) 2018-03-22 2020-04-07 Viisights Solutions Ltd. Behavior recognition
US10839215B2 (en) 2018-05-21 2020-11-17 Electronic Arts Inc. Artificial intelligence for emulating human playstyles
US10713543B1 (en) 2018-06-13 2020-07-14 Electronic Arts Inc. Enhanced training of machine learning systems based on automatically generated realistic gameplay information
US10569176B2 (en) 2018-06-22 2020-02-25 Yacht Club Games, LLC Video game gameplay having nuanced character movements and dynamic movement indicators
WO2020068878A1 (en) 2018-09-24 2020-04-02 Magic Leap, Inc. Methods and systems for three-dimensional model sharing
US10953334B2 (en) 2019-03-27 2021-03-23 Electronic Arts Inc. Virtual character generation from image or video data
US11276216B2 (en) 2019-03-27 2022-03-15 Electronic Arts Inc. Virtual animal character generation from image or video data
US10940393B2 (en) 2019-07-02 2021-03-09 Electronic Arts Inc. Customized models for imitating player gameplay in a video game
US11110353B2 (en) 2019-07-10 2021-09-07 Electronic Arts Inc. Distributed training for machine learning of AI controlled virtual entities on video game clients

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160067612A1 (en) * 2014-09-10 2016-03-10 Alexandros Ntoulas Automated game modification based on playing style

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Defining the All-Important Difficulty Curve", Chris Pruett, The Journal of Education, Community and Values, vol. 8, pp.36-40(2008)*

Also Published As

Publication number Publication date
US10357718B2 (en) 2019-07-23
US20180243656A1 (en) 2018-08-30
US20200078685A1 (en) 2020-03-12
KR20180099532A (ko) 2018-09-05
CN108499108A (zh) 2018-09-07
CN108499108B (zh) 2021-12-24
US11413539B2 (en) 2022-08-16

Similar Documents

Publication Publication Date Title
KR102060879B1 (ko) 비디오 게임 애플리케이션 내의 게임플레이 파라미터들의 실시간 동적 수정 및 최적화
US11369880B2 (en) Dynamic difficulty adjustment
US11141663B2 (en) Multiplayer video game matchmaking optimization
KR102239062B1 (ko) 감각 기반의 동적 게임 상태 구성
US10751629B2 (en) Multiplayer video game matchmaking system and methods
US11458399B2 (en) Systems and methods for automatically measuring a video game difficulty
US20230009378A1 (en) Automated test multiplexing system

Legal Events

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