KR20210003687A - 비디오 게임에서 플레이어 게임플레이를 모방하기 위한 커스텀 모델 - Google Patents

비디오 게임에서 플레이어 게임플레이를 모방하기 위한 커스텀 모델 Download PDF

Info

Publication number
KR20210003687A
KR20210003687A KR1020200080585A KR20200080585A KR20210003687A KR 20210003687 A KR20210003687 A KR 20210003687A KR 1020200080585 A KR1020200080585 A KR 1020200080585A KR 20200080585 A KR20200080585 A KR 20200080585A KR 20210003687 A KR20210003687 A KR 20210003687A
Authority
KR
South Korea
Prior art keywords
player
model
custom
game
trained
Prior art date
Application number
KR1020200080585A
Other languages
English (en)
Other versions
KR102360420B1 (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 KR20210003687A publication Critical patent/KR20210003687A/ko
Application granted granted Critical
Publication of KR102360420B1 publication Critical patent/KR102360420B1/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
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/497Partially or entirely replaying previous game actions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/53Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
    • A63F13/537Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
    • A63F13/5372Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen for tagging characters, objects or locations in the game scene, e.g. displaying a circle under the character controlled by the player
    • 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/55Controlling game characters or game objects based on the game progress
    • A63F13/58Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6027Methods for processing data by generating or executing the game program using adaptive systems learning from user actions, e.g. for skill level adjustment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Abstract

특정 플레이어가 캐릭터 또는 엔티티를 제어할 수 있는 방법을 모방하는 것을 목표로 하는 방식으로 비디오 게임에서 게임 내 캐릭터 또는 다른 엔티티를 제어하기 위해 기계 학습 모델을 훈련하기 위한 시스템 및 방법이 개시된다. 특정 플레이어에 대해서가 아니라 훈련된 일반 행동 모델이 획득될 수 있고, 특정 플레이어의 관찰된 게임플레이에 기초하여 맞춤화될 수 있다. 커스텀 훈련 프로세스는 일반 모델에서 레이어 또는 레벨의 적어도 서브세트를 프리징하고, 특정 플레이어에 대한 게임플레이 데이터를 사용하여 훈련된 하나 이상의 추가 레이어 또는 레벨을 생성하는 것을 포함할 수 있다.

Description

비디오 게임에서 플레이어 게임플레이를 모방하기 위한 커스텀 모델{CUSTOMIZED MODELS FOR IMITATING PLAYER GAMEPLAY IN A VIDEO GAME}
본 출원은 2019년 7월 2일에 출원된 미국 특허 출원 제16/460,871호의 이익을 주장하며, 그 전체는 참조로 본원에 포함된다.
본 개시의 측면은 특정 플레이어(player)가 캐릭터(character) 또는 엔티티(entity)를 제어하는 방법을 모방(imitate)하는 것을 목표로 하는 방식으로 비디오 게임에서 게임 내(in-game) 캐릭터 또는 다른 엔티티를 제어하는 기계 학습 모델(machine learning model) 또는 AI 에이전트(agent)를 훈련시키는 것에 관한 것이다.
비디오 게임은 종종 플레이어-제어 캐릭터(player-controlled characters)와 비플레이어 캐릭터(NPC: Non-Player Characters)를 모두 포함한다. 전통적으로 플레이어는 (예를 들어, 버튼을 가지는 컨트롤러, 방향 패드(directional pad), 조이스틱(joystick) 및/또는 기타 물리적 제어 메커니즘(physical control mechanisms)과 같은) 게임 컨트롤러, 키보드, 마우스, 터치스크린 또는 기타 입력 디바이스를 통해 제공되는 명령을 통해 자신의 플레이어-제어 캐릭터를 제어한다. 종종 멀티플레이어(multiplayer) 게임은 원격으로 위치한 여러 명의 플레이어가 같은 팀, 파티(party), 클랜(clan) 또는 기타 그룹화(grouping)와 같은 협동(cooperative) 방식으로 함께 플레이(play)할 수 있게 한다. 멀티플레이어 게임은 개별적으로 또는 팀으로 달리 경쟁하는 플레이어를 추가로 또는 대안적으로 포함할 수 있다.
많은 비디오 게임은, 플레이어-제어 가상 엔티티(entities) 또는 캐릭터 외에도 소프트웨어-제어(software-controlled) 가상 엔티티 또는 캐릭터를 포함한다. 비디오 게임에서, 이러한 소프트웨어-제어 또는 프로그램 제어(programmatically controlled) 캐릭터는 종종 컴퓨터 플레이어(computer players), 봇(bots), 인공 지능("AI": Artificial Intelligence) 유닛, AI 캐릭터 또는 비플레이어 캐릭터(NPC)라고 지칭될 수 있다. NPC는 사람 플레이어에게 사실적으로 나타나는 방식으로 (예를 들어, 게임 내 액션, 또는 다른 NPC 또는 플레이어-제어 캐릭터를 수반하는 상황과 같은) 게임 내 자극(stimuli)에 응답하도록 프로그래밍될 수 있다. 전통적으로, 주어진 NPC에 대한 행동은 일반적으로 게임 개발 프로세스의 일부로 미리 프로그래밍된다.
본 개시의 시스템, 방법 및 디바이스는 각각 여러 가지 혁신적인 측면을 가지고 있으며, 이러한 측면의 어느 하나가 혼자서 본원에 개시된 모든 바람직한 특성의 모두에 대해 설명하는 것은 아니다.
일부 실시예에서, 시스템은, 하나 이상의 비디오 게임과 연관된 일반 플레이어 행동 모델(generic player behavior model)을 저장하는 데이터 저장소(data store)를 포함할 수 있으며, 상기 일반 플레이어 행동 모델은 복수의 게임플레이 상황(gameplay situations)의 각각에서 수행되는 게임 내 액션(in-game action)의 지시(indication)를 제공하도록 구성된다. 상기 시스템은, 상기 데이터 저장소와 전자 통신하고, 컴퓨터 판독 가능한 명령을 실행하도록 구성된 컴퓨팅 시스템(computing system)을 더 포함할 수 있고, 상기 컴퓨터 판독 가능한 명령은 상기 컴퓨팅 시스템이: 상기 일반 플레이어 행동 모델을 상기 데이터 저장소로부터 탐색(retrieve)하고 - 상기 일반 플레이어 행동 모델은, 제1 플레이어의 게임플레이 데이터(gameplay data)에 대한 참조 없이, 하나 이상의 플레이어의 게임플레이 데이터에 기초한 탐색 전에 훈련되고, 상기 일반 플레이어 행동 모델은 복수의 레이어(layers)를 포함하는 기계 학습 모델임 - ; 상기 제1 플레이어에 대한 게임플레이 데이터를 획득하고 - 상기 게임플레이 데이터는 비디오 게임의 복수의 게임 상태의 각각에서 상기 제1 플레이어에 의해 수행되는 게임 내 액션을 식별함 -; 상기 일반 플레이어 행동 모델의 상기 복수의 레이어의 적어도 서브세트를, 상기 제1 플레이어와 연관된 커스텀 모델(custom model)에서 사용되는 프로즌 레이어(frozen layers)로 지정(designate)하고; 상기 제1 플레이어에 대한 상기 게임플레이 데이터를 기초로 상기 커스텀 모델에 대한 하나 이상의 커스텀 레이어(custom layers)를 생성하고 - 상기 하나 이상의 커스텀 레이어는, 적어도 하나 이상의 게임 상태에서 상기 제1 플레이어에 의해 수행될 수 있는 게임 내 액션을 예측하기 위해, 상기 일반 플레이어 행동 모델의 상기 프로즌 레이어에 적어도 부분적으로 의존함 - ; 및 상기 제1 플레이어와 연관된 훈련된 커스텀 모델을 저장하도록 구성하고, 상기 훈련된 커스텀 모델은, 상기 하나 이상의 커스텀 레이어를 포함하고, 상기 일반 플레이어 행동 모델의 상기 프로즌 레이어를 더 포함하거나 의존하되, 상기 훈련된 커스텀 모델은, 상기 비디오 게임의 게임 상태(game state)에 관한 데이터를 입력으로 수신하고, 상기 비디오 게임에서 수행되는 자동화된 액션(automated action)을 출력하도록 구성된다.
상기 컴퓨터 시스템은 다음 특징의 하나, 전부 또는 임의의 조합을 가질 수 있다. 상기 컴퓨팅 시스템은, 비디오 게임 콘솔 시스템(video game console system), 모바일 폰(mobile phone), 태블릿 디바이스(tablet device), 또는 개인용 컴퓨터(personal computer) 중 어느 하나일 수 있다. 상기 컴퓨팅 시스템은, 상기 하나 이상의 커스텀 레이어를 훈련하기에는 충분한 처리 능력을 가질 수 있지만, 상기 일반 플레이어 행동 모델의 복잡도의 레벨을 갖는 모델을 완전히 훈련하기에 불충분한 처리 능력을 가질 수 있다. 상기 훈련된 커스텀 모델에서의 상기 프로즌 레이어의 사용은, 상기 제1 플레이어에 대한 상기 게임플레이 데이터에 나타나지 않는 입력 게임 상태가 제공될 때, 출력할 자동화된 액션을 상기 훈련된 커스텀 모델이 결정하도록 할 수 있다. 상기 일반 플레이어 행동 모델은, 제1 심층 신경망(deep neural network)이고, 상기 훈련된 커스텀 모델은, 상기 제1 심층 신경망보다 더 많은 레이어를 포함하는 제2 심층 신경망이다. 상기 제2 심층 신경망의 레이어의 과반수(majority)는, 상기 제1 심층 신경망으로부터의 프로즌 레이어일 수 있고, 상기 하나 이상의 커스텀 레이어는, 상기 제1 심층 신경망의 원래의 출력 레이어와 다른 새로운 출력 레이어를 포함할 수 있다. 상기 컴퓨팅 시스템은, 제2 플레이어의 제2 컴퓨팅 시스템 상에서 동작하는 게임 애플리케이션이 상기 제1 플레이어의 게임플레이를 모방하도록 하기 위하여, 상기 제1 플레이어와 연관된 상기 커스텀 모델의 적어도 하나 이상의 커스텀 레이어를 상기 제2 플레이어의 상기 제2 컴퓨팅 시스템으로 제공하도록 더 구성될 수 있다.
일부 실시예에서, 컴퓨터 구현(computer-implemented) 방법은, 컴퓨터 하드웨어를 포함하는 컴퓨터 시스템의 제어 하에서, 상기 컴퓨터 시스템이: 일반 플레이어 행동 모델을 획득하는 단계 - 상기 일반 플레이어 행동 모델은 비디오 게임의 복수의 플레이어의 게임플레이 데이터에 기초하여 훈련되고, 상기 일반 플레이어 행동 모델은 복수의 게임플레이 상황의 각각에서 수행되는 게임 내 액션의 지시를 제공하도록 구성됨 - ; 제1 플레이어에 대한 게임플레이 데이터를 획득하는 단계 - 상기 게임플레이 데이터는 상기 비디오 게임의 복수의 게임 상태의 각각에서 상기 제1 플레이어에 의해 수행되는 게임 내 액션을 식별하고, 상기 제1 플레이어는 상기 일반 플레이어 행동 모델의 훈련과 연관된 상기 복수의 플레이어 중 하나가 아님 - ; 상기 일반 플레이어 행동 모델의 복수의 부분을 상기 제1 플레이어와 연관된 커스텀 모델로 포함(incorporate)하는 단계 - 상기 복수의 부분은 각각 상기 일반 플레이어 행동 모델 내 레벨 또는 레이어를 포함함 - ; 상기 제1 플레이어에 대한 상기 게임플레이 데이터를 기초로 상기 커스텀 모델에 대한 하나 이상의 커스텀 부분(custom portions)을 생성하는 단계 - 상기 하나 이상의 커스텀 부분을 생성하는 단계는, 특정 게임 상태에서 상기 제1 플레이어에 의해 수행될 수 있는 게임 내 액션을 예측하기 위해 상기 커스텀 모델을 훈련시키는 단계를 포함하고, 상기 훈련시키는 단계는, 상기 커스텀 모델로 포함(incorporate)된 상기 일반 플레이어 행동 모델의 상기 복수의 부분을 변경하지 않고 상기 하나 이상의 커스텀 부분을 반복적으로 업데이트하는 단계를 포함함 - ; 및 상기 훈련시키는 단계 이후에 상기 커스텀 모델을 상기 제1 플레이어와 연관된 훈련된 커스텀 모델로 저장하는 단계를 포함하는 컴퓨터 실행가능한 명령으로 구성되고, 상기 훈련된 커스텀 모델은, 상기 하나 이상의 커스텀 부분을 포함하고, 상기 일반 플레이어 행동 모델의 상기 복수의 부분을 더 포함하거나 의존하되, 상기 훈련된 커스텀 모델은, 상기 비디오 게임의 게임 상태에 관한 데이터를 입력으로 수신하고, 상기 비디오 게임에서 수행되는 자동화된 액션을 출력하도록 구성될 수 있다.
상기 컴퓨터 구현 방법은, 다음의 특징 중 하나, 전부, 또는 임의의 조합을 더 포함할 수 있다. 상기 일반 플레이어 행동 모델은 심층 신경망(deep neural network)일 수 있고, 상기 일반 플레이어 행동 모델의 상기 복수의 부분의 각각은 상기 심층 신경망에서 서로 다른 레이어일 수 있다. 상기 일반 플레이어 행동 모델은 스택형 모델(stackable model)이고, 상기 일반 플레이어 행동 모델의 상기 복수의 부분의 각각은 상기 스택형 모델에서 서로 다른 레벨이다. 입력으로 제1 게임 상태가 제공되는 상기 훈련된 커스텀 모델의 주어진 인스턴스(instance)에서, 상기 훈련된 커스텀 모델은: 상기 하나 이상의 커스텀 부분의 레벨이 상기 제1 게임 상태와 연관된 제1 자동화된 액션을 적어도 임계 신뢰도(threshold confidence)로 예측할 수 있는지 여부를 결정하고; 및 상기 적어도 임계 신뢰도로 상기 제1 자동화된 액션을 예측하는 상기 하나 이상의 커스텀 부분의 레벨에 기초하여, 상기 주어진 인스턴스에서 상기 일반 플레이어 행동 모델의 어떤 부분도 고려하지 않고, 상기 제1 자동화된 액션이 상기 비디오 게임에서 수행되도록 구성될 수 있다.
다른 실시예에서, 상기 방법은, 판별기(discriminator)에게 상기 제1 플레이어의 액션이라고 보여지는 상기 커스텀 모델의 출력에 보상하는 생산적 적대 모방 학습(generative adversarial imitation learning)을 사용하여 훈련된 상기 판별기에 기초하여, 상기 커스텀 모델에 대한 상기 하나 이상의 커스텀 부분을 업데이트하는 단계를 포함할 수 있다. 다른 실시예에서, 상기 방법은, 캐릭터가 상기 제1 플레이어의 제어하에 있는 것처럼 상기 비디오 게임의 인스턴스(instance)에서 행동하는 상기 비디오 게임의 상기 캐릭터의 제2 플레이어에 의한 선택을 수신하는 단계; 및 상기 선택에 응답하여, 상기 제1 플레이어와 연관된 상기 커스텀 모델에 의해 결정되는 상기 비디오 게임의 상기 인스턴스 내에서 상기 캐릭터가 액션(actions)을 수행하게 하는 단계를 포함할 수 있다.
일부 실시예에서, 비일시적 컴퓨터-판독 가능 저장 매체(non-transitory computer-readable storage medium)에 있어서, 상기 비일시적 컴퓨터-판독 가능 저장 매체는, 실행될 때, 컴퓨팅 시스템이 동작들(operations)을 수행하도록 구성하는 컴퓨터 판독가능 명령(computer-readable instructions)을 저장할 수 있다. 상기 동작들은, 일반 플레이어 행동 모델을 획득하는 동작 - 상기 일반 플레이어 행동 모델은 비디오 게임의 복수의 게임플레이 상황의 각각에서 수행되는 게임 내 액션의 지시를 제공하도록 구성됨 - ; 제1 플레이어에 대한 게임플레이 데이터를 획득하는 동작 - 상기 게임플레이 데이터는 상기 비디오 게임의 복수의 게임 상태의 각각에서 상기 제1 플레이어에 의해 수행되는 게임 내 액션을 식별함 - ; 상기 일반 플레이어 행동 모델의 복수의 부분을 상기 제1 플레이어와 연관된 커스텀 모델로 포함(incorporate)하는 동작 - 상기 복수의 부분은 각각 상기 일반 플레이어 행동 모델 내 레벨 또는 레이어를 포함함 - ; 상기 제1 플레이어에 대한 상기 게임플레이 데이터를 기초로 상기 커스텀 모델에 대한 하나 이상의 커스텀 부분을 생성하는 동작 - 상기 하나 이상의 커스텀 부분을 생성하는 동작은, 특정 게임 상태에서 상기 제1 플레이어에 의해 수행될 수 있는 게임 내 액션을 예측하기 위해 상기 커스텀 모델을 훈련시키는 동작을 포함하고, 상기 훈련시키는 동작은, 상기 커스텀 모델로 포함(incorporate)된 상기 일반 플레이어 행동 모델의 상기 복수의 부분의 적어도 서브세트(subset)를 변경하지 않음 - ; 및 상기 훈련시키는 동작 이후에 상기 커스텀 모델을 상기 제1 플레이어와 연관된 훈련된 커스텀 모델로 저장하는 동작을 포함할 수 있고, 상기 훈련된 커스텀 모델은, 상기 하나 이상의 커스텀 부분을 포함하고, 상기 일반 플레이어 행동 모델의 상기 복수의 부분을 더 포함하거나 의존하되, 상기 훈련된 커스텀 모델은, 상기 비디오 게임의 게임 상태에 관한 데이터를 입력으로 수신하고 상기 비디오 게임에서 수행되는 자동화된 액션을 출력하도록 구성된다.
상기 컴퓨터-판독 가능 매체는, 다음의 특징 중 하나, 전부, 또는 임의의 조합을 더 포함할 수 있다. 상기 동작들은, 다른 플레이어의 게임플레이를 모방하도록 각각 구성된 복수의 커스텀 모델을 생성하는 동작을 더 포함할 수 있고, 상기 복수의 커스텀 모델의 각각은, 서로 상기 일반 플레이어 행동 모델의 동일한 부분을 포함한다. 상기 동작들은, 실제 플레이어 경쟁자(actual player competitor)를 상대로 한 게임플레이에서 상기 복수의 커스텀 모델의 각각에 의해 제어되는 캐릭터의 상기 비디오 게임에서의 캐릭터 성공(character success)을 추적(track)하는 동작을 더 포함할 수 있다. 상기 동작들은, 상기 복수의 커스텀 모델 중 모델의 순위(ranking)를 생성하는 동작을 더 포함할 수 있고, 상기 순위는, 실제 게임플레이에서 상기 모델의 적어도 서브세트의 각각의 상대적인 게임 내 성공(relative in-game success)을 지시(indicate)한다. 상기 동작들은, 상기 비디오 게임 내에서 훈련 환경(training environment)을 실행(executing)하는 동작을 더 포함할 수 있고, 상기 훈련 환경은, 플레이어 상호 작용(player interaction)을 위해 간소화(simplified)된 게임 상태(simplified game state)를 제공하고, 상기 커스텀 모델에 대한 상기 하나 이상의 커스텀 부분을 생성하기 위한 훈련 데이터(training data)는, 상기 훈련 환경을 가진 상기 제1 플레이어로부터 수신되는 제어 입력(control input)에 기초하여 수집된다. 상기 훈련 환경 내에 제공된 게임 상태의 복잡도(complexity)는 시간이 지남에 따라 증가할 수 있다. 상기 훈련된 커스텀 모델은, 결정 트리(decision tree), 마르코프 모델(Markov model), 또는 심층 신경망 중 적어도 하나를 포함할 수 있다.
본원에 특정 실시예 및 예가 개시되더라도, 발명의 주제는 구체적으로 개시된 실시예의 예들을 넘어 다른 대체 실시예 및/또는 용도로 확장되며, 이들의 수정 및 등가물까지 확장된다.
도면 전체적으로 참조 번호는 참조된 요소들 간의 대응을 나타내는데 재-사용(re-used)된다. 도면은 본원에 기술된 주제의 실시예를 설명하기 위해 제공되며, 그 범위를 제한하지는 않는다.
도 1은 플레이어별 커스텀 행동 모델(player-specific custom behavior models)의 훈련 및 사용을 가능하게 하는 플레이어 모방 시스템의 하나 이상의 실시예를 구현하기 위한 네트워크 컴퓨팅 환경(networked computing environment)의 실시예를 도시한다.
도 2는 도 1의 네트워크 컴퓨팅 환경 내에서의 예시적인 데이터 흐름을 도시한다.
도 3은 일부 실시예에 따라 특정 플레이어의 게임 내 행동을 모방하기 위한 커스텀 플레이어 행동 모델을 생성하기 위한 예시적인 방법의 흐름도이다.
도 4는 일반 플레이어를 모방하기 위해 훈련된 멀티-레이어 기계 학습 모델(multi-layered machine learning model)의 예시적인 시각적 표현뿐만 아니라 특정 플레이어를 모방하기 위해 훈련된 대응하는 개인화(personalized) 멀티-레이어 기계 학습 모델을 제공한다.
도 5는 멀티 스택 레벨(multiple stacked levels)을 사용하여 일반 플레이어를 모방하도록 훈련된 스택형 모델의 예시적인 시각적 표현뿐만 아니라 특정 플레이어를 모방하기 위해 일반 스택형 모델을 개인화하는 대응하는 커스텀 레벨을 제공한다.
도 6은 본 개시의 측면을 구현할 수 있는 컴퓨팅 디바이스(computing device)의 실시예를 도시한다.
개요
본 개시의 측면은 특정 플레이어(player)가 캐릭터(character) 또는 엔티티(entity)를 제어하는 방법을 모방(imitate)하는 것을 목표로 하는 방식으로 비디오 게임에서 게임 내(in-game) 캐릭터 또는 다른 엔티티를 제어하는 기계 학습 모델(machine learning model) 또는 AI 에이전트(agent)를 훈련시키는 것에 관한 것이다. 특정 플레이어의 게임플레이를 믿을 수 있게 모방하는 이러한 커스텀 행동 모델(customized behavior model)을 훈련시키는 것은, 주어진 비디오 게임 내에서 발생할 수 있는 잠재적으로 매우 많은 수의 고유 게임 상태를 다루(covering)는 특정 플레이어에 대해 다량의 다양한 게임플레이 데이터를 갖지 않고는 어렵다. 또한, 본원에 설명된 것보다 대안적 기술을 사용하여 이러한 모델을 훈련시키는 것은, 종종 클라이언트 측 게이밍 콘솔 시스템(client-side gaming console system), 개인용 컴퓨터, 스마트폰 또는 다른 플레이어 디바이스일 수 있는 일반적인 게임 플레이어의 컴퓨팅 시스템을 넘어서는 컴퓨터 처리 능력이 필요할 수 있다. 본 개시의 측면들은, (특정 플레이어를 위한 훈련 데이터의 수집 동안처럼) 플레이어에 대해 필요한 시간이 적고, 커스텀 행동 모델 개발에 대해 많은 대안적인 접근 방식보다 필요한 컴퓨터 처리 시간이 적은, 상이한 플레이어의 플레이를 각각 모방(mimic or imitate)하는 많은 상이한 완전 훈련된 커스텀 행동 모델(fully trained custom behavior models)을 도출(result in)할 수 있는 모델 훈련 솔루션(model training solutions)을 제공한다.
예를 들어, 한 실시예에 따르면, 포괄적인 일반 플레이어 행동 모델 또는 AI 에이전트는, 특정 비디오 게임을 위해 많은 다른 플레이어의 플레이 세션(playing sessions)에 걸쳐 기록된 게임플레이 데이터와 같은 훈련 데이터의 큰 세트(large set)에서 잠재적으로 계산 비용이 많이 드는 훈련 프로세스에서 훈련될 수 있다. 이러한 일반 모델의 적어도 일부 부분은 프로즌(frozen)일 수 있으므로, (모델의 유형에 따른 특정 규칙, 가중치 및/또는 다른 데이터와 같은) 이러한 부분의 정보는 후속 개인화 단계 또는 특정 엔드-유저(end-user) 훈련 프로세스 동안 변경되거나 또는 손상(corrupted)되지 않을 것이다. 추가 레이어 또는 레벨은 특정 플레이어의 게임플레이 데이터를 참조하여 훈련되어, 일반 또는 일반적인 플레이어의 플레이보다 특정 플레이어의 행동을 모방하기 위해 일반 모델을 맞춤화(customize)할 수 있다. 본원에 기술된 접근 방식은, (개인화 훈련 데이터(personalized training data)에서 아직 관찰되지 않은 게임 상태에 대한 일반 행동에 의존하는 것과 같이) 특정 플레이어에 대한 개인용 훈련 데이터(personal training data)가 상대적으로 적은 처음에 사용할 수 있는 방식으로 커스텀 플레이어별 행동 모델(customized player-specific behavior model)의 생성을 가능하게 할 수 있지만, 이는 플레이어의 게임플레이의 추가 관찰 동안 특정 플레이어의 행동 쪽으로 수렴(converges)된다. 또한, 본원에 기술된 바와 같이 이러한 증분 또는 추가 레이어 또는 레벨의 훈련은, 일부 실시예에서 (플레이어의 게이밍 콘솔 시스템 또는 개인용 컴퓨터와 같은) 클라이언트 디바이스에서 전부 수행될 수 있다.
본원에 기술된 플레이어-커스텀 모델(player-customized models)은 게임 내 캐릭터 또는 엔티티를 비플레이어 캐릭터(NPC: Non-Player Character)로 제어하기 위해 사용될 수 있다. 본원에 기술된 커스텀 행동 모델(customized behavior model)의 제어하의 NPC는, 특정 실제 플레이어의 플레이를 에뮬레이트(emulates)하거나 또는 모방(mimics)하는 방식으로 비디오 게임에서 행동할 수 있다. 본 개시의 측면에 따르면, 특정 플레이어에 대한 모델은 다양한 게임 상태에 응답하여 취해지는 플레이어의 제어 명령 또는 액션(actions)을 분석하는 학습 프로세스를 기초로 하나 이상의 게임플레이 세션 동안 동적으로 구축(constructed)될 수 있다. 본원에 기술된 플레이어 모방 시스템(player imitation system)이 주어진 게임 인스턴스에서 특정 캐릭터를 제어해야 한다고 판단하는 경우(예를 들어, 이러한 플레이어 또는 다른 플레이어의 요청), 훈련된 플레이어 모방 모델은, 그가 주어진 캐릭터를 제어하고 있었을 경우 (특정 모델이 훈련되거나 또는 개인화된) 주어진 플레이어가 생성하였을 수 있는 제어(controls) 또는 액션이 되는, 그 플레이어 및/또는 다른 플레이어에게 나타나는 현재 게임 상태에 기초하여 제어 또는 액션을 에뮬레이트(emulate)하는 플레이어 모방 시스템에 의해 사용될 수 있다.
본원에서 사용되는 바와 같이, 게임 상태는 일반적으로 주어진 스냅샷 인스턴트(snapshot instant)에서 게임의 상태에 관한 데이터를 참조할 수 있으며, 게임 환경이 컴퓨터 메모리에 표현되는 방식과 게임의 유형에 따라 상이한 정보를 포함할 수 있다. 게임 상태 정보는 캐릭터 상태, 캐릭터 액션, 환경 상태, 게임의 객체 및/또는 캐릭터에 대한 위치 정보, 게임의 캐릭터 및/또는 객체에 대한 비위치(non-positional) 정보, 속도, 방향, 헬스(health) 및 기타 속성, 게임 모드, 레벨 및/또는 게임 애플리케이션의 런타임 상태와 연관된 기타 정보와 같은 게임 데이터를 포함할 수 있다. 예를 들어, 게임 상태 정보는, 가상 세계에서 상호 작용(interacting)하는 잠재적으로 많은 가상 캐릭터(virtual characters)(예를 들어, 플레이어-제어(player-controlled) 캐릭터 및 NPC 모두) 각각에 대해, 캐릭터 위치, 캐릭터 방향, 현재 캐릭터 액션, 속성, 및/또는 게임 애플리케이션의 상태에 기여하는 기타 정보를 포함할 수 있다. 게임 상태 정보는 캐릭터 이동 위치(character movement positions)와 같이 지속적으로 변경되는 동적 상태 정보(dynamic state information), 게임 내 게임 레벨(game level) 또는 맵(map)의 식별(identification)과 같은 정적 상태 정보(static state information)를 포함할 수 있다. 일부 실시예에서, 게임 상태 정보의 적어도 일부는 초 당 여러 번으로 주기적으로 업데이트될 수 있다. 일부 실시예에서, 게임 상태 정보는 이벤트 기반 기준(event-based basis)으로 업데이트될 수 있다. 일부 실시예에서 게임 상태 정보는 개별 플레이어 컴퓨팅 시스템과, 다양한 다른 플레이어의 게임 내 액션을 반영하는 게임 상태 정보와 관련하여 플레이어 컴퓨팅 시스템에 업데이트를 주기적으로 전송하는 서버 간에 비동기적으로 유지될 수 있다.
플레이어 모방 시스템(Player Imitation System) 및 동작 환경(Operating Environment)의 개요
도 1은 플레이어별 커스텀 행동 모델의 훈련 및 사용을 가능하게 하는 플레이어 모방 시스템의 하나 이상의 실시예를 구현하기 위한 네트워크 컴퓨팅 환경(networked computing environment)(100)의 실시예를 도시한다. 환경(100)은 네트워크(108), 플레이어 컴퓨팅 시스템(102), 하나 이상의 다른 플레이어 컴퓨팅 시스템(103), 및 인터랙티브 컴퓨팅 시스템(interactive computing system)(120)을 포함한다. 설명을 단순화하고 본 개시를 제한하지 않기 위해, 도 1에서 멀티 시스템(multiple systems)이 사용될 수 있지만 하나의 인터랙티브 컴퓨팅 시스템(120)만을 도시한다.
인터랙티브 컴퓨팅 시스템(120)은 애플리케이션 호스트 시스템(122), 하나 이상의 데이터 저장소(124), 플레이어 모방 시스템(130)을 포함할 수 있다. 플레이어 모방 시스템(130)은, 데이터 저장소(124)와, 및/또는 애플리케이션 호스트 시스템(122)과 통신하여, 게임 애플리케이션과 연관된 데이터를 획득하고, 게임플레이 행동 모델을 훈련하고, 본원에 설명한 바와 같이 게임 애플리케이션 내에서 자동화된 게임 제어(automated game control)를 제공할 수 있다. 플레이어 모방 시스템(130)은 네트워크(108)를 통해 플레이어 컴퓨팅 시스템(102) 및/또는 하나 이상의 다른 플레이어 컴퓨팅 시스템(103)과 추가적으로 또는 대안적으로 통신할 수 있다. 하나의 네트워크(108)만 도시되어 있지만, 여러 개의 고유한(distinct) 및/또는 분산(distributed)된 네트워크가 존재할 수 있다. 도 1에 도시된 다양한 시스템 및 다른 컴포넌트들은 그들 사이의 상호 작용 또는 통신을 포함하여, 이제 아래에서 더 자세히 설명될 것이다.
A. 인터랙티브 컴퓨팅 시스템
도시된 실시예에서, 인터랙티브 컴퓨팅 시스템(120)은 애플리케이션 호스트 시스템(122), 데이터 저장소(124), 및 플레이어 모방 시스템(130)을 포함한다. 이러한 시스템은 서로 통신할 수 있다. 예를 들어, 플레이어 모방 시스템(130)은, 플레이어 행동을 모방하기 위한 일반 및/또는 커스텀 모델을 훈련하기 위해 훈련 데이터를 수집시, 애플리케이션 호스트 시스템(application host system)(122)과 통신할 수 있다. 일부 실시예에서, 플레이어 모방 시스템(130)은 애플리케이션 호스트 시스템(122) 중 하나 이상으로부터 게임 애플리케이션과 연관된 데이터(예를 들어, 게임 상태 정보)를 획득할 수 있으며, 하나 이상의 애플리케이션 호스트 시스템(122)에 에뮬레이트된 제어 데이터를 제공할 수 있다. 애플리케이션 호스트 시스템(122)은 데이터 저장소(124)와 통신하여 게임 애플리케이션을 실행 및/또는 호스팅(host)할 수 있다. 특정 실시예에서, 인터랙티브 컴퓨팅 시스템(120)은 플레이어 컴퓨팅 시스템(102 및 103)과 같은 다양한 플레이어 컴퓨팅 시스템을 이용하는 플레이어에 의해 플레이되는 단일 플레이어(single player) 또는 멀티플레이어(multiplayer) 비디오 게임에 대한 네트워크 기반 지원(network-based support)을 제공하는 게임 서버(game server)로 간주될 수 있다.
1. 애플리케이션 호스트 시스템
애플리케이션 호스트 시스템(122)은 인터랙티브 컴퓨팅 시스템(120) 상의 호스트 애플리케이션(미도시) 및/또는 플레이어 컴퓨팅 시스템(102)에서 동작하는 게임 애플리케이션(104)의 일부를 실행하도록 구성될 수 있다. 특정 실시예에서, 애플리케이션 호스트 시스템(122)은, 호스트 애플리케이션 및/또는 게임 애플리케이션(104)의 일부를 실행하는 것에 추가하거나 이를 대신하여 다른 애플리케이션을 실행할 수 있으며, 이는 게임 애플리케이션(104)의 게임플레이 세션을 실행하는 동안 게임 애플리케이션(104)과 상호 작용 및/또는 보완(complement)할 수 있다. 플레이어 컴퓨팅 시스템에서 하나 이상의 게임 애플리케이션과 상호 작용하는 애플리케이션 호스트 시스템에서 적어도 부분적으로 기초하여 실행되는 게임의 인스턴스는, 본원에 게임의 호스팅된 인스턴스(hosted instance)로 지칭될 수 있다. 애플리케이션 호스트 시스템에 대한 자세한 내용은 아래에서 설명된다.
인터랙티브 컴퓨팅 시스템(120)은 멀티 플레이어 또는 컴퓨팅 시스템이 게임 애플리케이션(104) 및/또는 호스트 애플리케이션의 일부에 액세스하게 할 수 있다. 일부 실시예에서, 인터랙티브 컴퓨팅 시스템(120)의 애플리케이션 호스트 시스템(122)에 의해 실행되는 게임 애플리케이션(104)의 일부는 지속적 가상 세계(persistent virtual world)를 생성할 수 있다. 이러한 지속적 가상 세계 또는 가상 환경은 하나 이상의 플레이어가 가상 세계와 상호 작용하게 할 수 있고, 동기 및/또는 비동기 방식으로 서로 상호 작용하게 할 수 있다. 경우에 따라서는, 지속적인 가상 세계의 멀티 인스턴스가 인터랙티브 컴퓨팅 시스템(120)에 의해 호스팅되거나 또는 생성될 수 있다. 플레이어의 세트(set)는 지속적인 가상 세계의 하나의 인스턴스에 할당될 수 있거나 또는 액세스할 수 있는 반면에 다른 플레이어의 세트는 지속적인 가상 세계의 다른 인스턴스에 할당될 수 있거나 또는 액세스할 수 있다. 일부 게임에서는, 스포츠 비디오 게임의 인스턴스 내에서 같은 팀에 배치되거나, 또는 게임의 다양한 유형 또는 장르 중 어느 하나에서 매치(match), 미션(mission), 퀘스트(quest), 캠페인(campaign) 또는 기타 협동 모드(cooperative mode)에서 함께 그룹화되는 것과 같이, 가상 세계의 동일한 인스턴스 내에서 플레이어의 세트는 서로 협력적으로 상호 작용할 수 있다.
일부 실시예에서, 애플리케이션 호스트 시스템(122)은 게임 환경의 다양한 측면을 실행하기 위해 호스팅 시스템을 실행할 수 있다. 예를 들어, 일 실시예에서 게임 애플리케이션(104)은 1인칭 슈팅 게임(first person shooter) 또는 스포츠 게임(sports game)과 같은 경쟁 게임(competitive game)일 수 있으며, 호스트 애플리케이션 시스템(122)은 멀티플레이어 게임 인스턴스를 호스팅하거나 또는 플레이어 컴퓨팅 디바이스에 의해 호스팅되는 게임 인스턴스의 생성을 용이하게 하기 위한 전용 호스팅 서비스(dedicated hosting service)를 제공할 수 있다. 게임 인스턴스 내의 플레이어들 간의 게임 내 상호 작용은 플레이되고 있는 게임의 유형에 따라 크게 다를 수 있다. 예를 들어, 한 게임에서는 플레이어의 그룹이 협력하여 가상 도시를 구축할 수 있으며, 반면에 다른 게임에서 플레이어들은 전투 시뮬레이션(combat simulation)에서 서로를 쏘려고 시도하는 경쟁적인 측면에 놓일 수 있다. 본 개시의 측면은, 슈팅 게임(shooter games)(예를 들어, 1인칭 또는 3인칭 슈팅 게임), 서바이벌 게임(survival games), 어드벤처 게임(adventure games), 스포츠 게임, 플랫폼 게임(platform games), 롤플레잉 게임(role playing games), 시뮬레이션 게임(simulation games), 전략 게임(strategy games), 레이싱 게임(racing games) 등과 같은 비디오 게임의 거의 어떤 장르에도 혜택을 제공할 수 있다.
2. 플레이어 모방 시스템
본원에서 설명되는 바와 같이, 플레이어 모방 시스템(130)은 다른 시스템과 통신하여 일반 플레이어 행동 모델을 생성하고, 한 명 이상의 특정 플레이어에 대한 커스텀 플레이어 게임플레이 모델을 생성하고, 구성된 플레이어 모방 모델을 사용하여 플레이어의 제어를 에뮬레이트할 수 있다. 플레이어 모방 시스템(130)은 본원에 기술된 다양한 기능을 구현하기 위한 하나 이상의 시스템, 서브시스템(subsystems) 또는 컴포넌트(components)를 포함할 수 있다. 예를 들어, 플레이어 모방 시스템(130)은 훈련 환경 컴포넌트(training environment component)(132), AI 에이전트 관리 컴포넌트(AI agent management component)(132), 커스텀 게임플레이 모델링 시스템(custom gameplay modeling system)(136), 및 일반 게임플레이 모델링 시스템(generic gameplay modeling system)(138)을 포함할 수 있다. 이러한 예시적인 시스템 또는 컴포넌트는 제한되도록 할 의도가 없으며, 플레이어 모방 시스템(130)은 도시되거나 설명된 것보다 더 적거나 더 많은 시스템 또는 컴포넌트를 포함할 수 있다.
훈련 환경 컴포넌트(132)는 비디오 게임 내에서 훈련 환경의 인스턴스를 생성할 수 있으며, 이는 주어진 게임에 대한 플레이어 모방 모델에 대한 훈련 단계 동안에 상호 작용을 위해 플레이어 컴퓨팅 시스템(102)의 플레이어에게 제공될 수 있다. 아래에 설명된 바와 같이, 훈련 환경은 단순화된 게임 상태 및/또는 점진적으로 더 복잡한 게임 상태를 제공하여 모델을 훈련시키는 커리큘럼 학습 방식(curriculum learning approach)을 채용할 수 있다. 훈련 환경 컴포넌트(132)에 의해 생성된 훈련 환경 내에서 상호 작용하거나 또는 플레이하는 동안 플레이어의 입력(entered)된 제어 명령 및/또는 연관된 게임 내 액션은 모델링 훈련을 위해 기록 및 저장될 수 있다.
일반 게임플레이 모델링 시스템(138)과 커스텀 게임플레이 모델링 시스템(136)은 각각 일반 및 개인화(personalized)된 플레이어 행동 모델을 생성할 책임이 있다. 게임플레이 모델링 시스템(136 및 138)에 의해 제공되는 기능(Functionality)은 아래에서 더 자세히 설명될 것이다. AI 에이전트 관리 컴포넌트(132)는, 커스텀 또는 개인화된 플레이어 행동 모델 또는 AI 에이전트와 연관된 다양한 관리, 순위(ranking), 스코어링(scoring), 추적 및 다른 특징(features)을 수행할 수 있다. 예를 들어, AI 에이전트 관리 컴포넌트(132)는, 복수의 플레이어 컴퓨팅 시스템에 걸친 게임에서 상이한 AI 에이전트의 성공(예를 들어, 승률(win rates) 및 다양한 게임 내 통계)을 추적할 수 있으며, 다른 플레이어의 게임 인스턴스에 걸친 한 플레이어의 커스텀 모델을 사용하는 것과 관련된 다른 특징, 및/또는 대항하거나 협력하여 플레이하는 AI 에이전트를 플레이어가 검색(search)하거나 또는 탐색(browse)하게 할 수 있다.
플레이어 모방 시스템(130)과 다양한 시스템 또는 컴포넌트가 복수의 컴퓨팅 시스템(multiple computing systems)에 걸쳐 분산될 수 있다. 플레이어 모방 시스템(130)의 다양한 시스템은 서로 통신하여 데이터를 획득하고 분석하고 생성할 수 있다. 다양한 시스템이 인터랙티브 컴퓨팅 시스템(120) 및/또는 플레이어 모방 시스템(130)의 일부로 도시되지만, 각 시스템의 기능은 다른 또는 복수의 컴퓨팅 시스템 또는 디바이스에 의해 구현될 수 있다는 것을 이해할 것이다. 또한, 단일 시스템(single system)은 서로 통신하여 복수의 시스템(multiple systems)에 의해 제공되거나 구현되는 것으로 본원에서 기술된 기능을 구현할 수 있다. 마찬가지로, 인터랙티브 컴퓨팅 시스템(120)의 플레이어 모방 시스템(130)에 의해 제공하는 것으로 기술된 기능은, 대신 다른 실시예에서 플레이어 컴퓨팅 시스템(102)에서 구현될 수 있다.
플레이어 모방 시스템(130)은 모델 데이터 저장소(145)를 포함할 수 있다. 데이터 저장소(145)는 게임 상태를 입력으로 수신하도록 훈련된 모델과 같은 일반 및/또는 커스텀 플레이어 모방 모델 또는 행동 모델을 저장하고, 실제 플레이어가 게임 상태를 부여하는 예측된 액션 또는 제어 명령을 출력하도록 구성될 수 있다. 플레이어 모방 모델은 아래에서 자세히 설명되며, 하나 이상의 일반 모델과 하나 이상의 플레이어별 모델(player-specific models)을 포함할 수 있다. 데이터 저장소(145)는 복수의 컴퓨팅 디바이스에 걸쳐 분산될 수 있다(예를 들어, 도 6의 컴퓨팅 디바이스(10) 참조). 일부 실시예에서, 데이터 저장소(145)는 데이터가 상이한 위치에 저장될 수 있는 네트워크 기반 저장 시스템(network-based storage system)일 수 있다.
3. 인터랙티브 컴퓨팅 시스템의 데이터 저장소
인터랙티브 컴퓨팅 시스템(120)은 데이터 저장소(124)를 포함할 수 있다. 데이터 저장소(124)는 텔레메트리 데이터(telemetry data,), 비디오 데이터, 게임 상태 정보, 유저 데이터(user data) 등과 같은 다른 시스템에 의해 획득된 데이터를 저장하도록 구성될 수 있다. 일부 실시예에서, 데이터 저장소(124)는 유저(user)가 복수의 상이한 비디오 게임에 걸쳐 선호(preferences), 가상 캐릭터, 아바타, 업적(achievements) 및/또는 기타 데이터를 유지할 수 있도록 하는 비디오 게임 퍼블리셔(video game publisher), 게임 플랫폼 제공업체(game platform provider) 또는 기타 서비스와 연관된 유저 계정 데이터(user account data)를 저장할 수 있다. 예를 들어, 데이터 저장소(124)에 저장된 계정 식별자 데이터(account identifier data)는 플레이어 모방 시스템(130)에 의해 사용되어서, 저장된 플레이어 모방 모델을 특정 플레이어의 계정과 연관시킬 수 있다. 데이터 저장소(124)는 복수의 컴퓨팅 디바이스(multiple computing devices)에 걸쳐 분산될 수 있다(예를 들어, 도 6의 컴퓨팅 디바이스(10) 참조). 일부 실시예에서, 데이터 저장소(124)는 데이터가 상이한 위치에 저장될 수 있는 네트워크 기반 저장 시스템(network-based storage system)일 수 있다.
A. 플레이어 컴퓨팅 시스템
플레이어 컴퓨팅 시스템(102)과 다른 플레이어 컴퓨팅 시스템(103) 각각은, 비디오 게임의 다른 플레이어와 같이 다른 유저에 의해 제어될 수 있다. 플레이어 컴퓨팅 시스템(102)은 통신 네트워크(108)를 통해 통신을 설정하기 위한 하드웨어 및 소프트웨어 컴포넌트를 포함할 수 있다. 예를 들어, 플레이어 컴퓨팅 시스템(102)은 하나 이상의 네트워크(예를 들어, 인터넷 또는 인트라넷)를 통한 통신을 용이하게 하는 네트워크 장비 및 네트워크 소프트웨어 애플리케이션(예를 들어, 웹 브라우저)이 구비될 수 있다. 플레이어 컴퓨팅 시스템(102)은 중앙 처리 유닛 및 아키텍처, 메모리, 대량 저장소(mass storage), 그래픽 처리 유닛, 통신 네트워크 가용성(availability) 및 대역폭(bandwidth) 등과 같은 다양한 로컬 컴퓨팅 리소스(local computing resources)를 가질 수 있다. 또한, 플레이어 컴퓨팅 시스템(102)은 임의의 유형의 컴퓨팅 시스템을 포함할 수 있다. 예를 들어, 플레이어 컴퓨팅 시스템(102)은, 몇가지 예를 들면 데스크톱, 노트북, 게임 애플리케이션 플랫폼, 게임 콘솔 시스템(game console systems), 가상 현실 시스템, 증강 현실 시스템, 텔레비전 셋톱 박스(television set-top boxes), 텔레비전(예를 들어, 인터넷 TV), 네트워크 가능 키오스크(network-enabled kiosks), 자동차 콘솔 디바이스 전산화 가전 제품(car-console devices computerized appliances), 웨어러블 디바이스(wearable devices)(예를 들어, 컴퓨팅 기능이 있는 스마트 시계 및 안경), 및 무선 모바일 디바이스(예를 들어, 스마트 폰, PDA, 태블릿 등)와 같은 임의의 유형의 컴퓨팅 디바이스를 포함할 수 있다.
일부 실시예에서, 플레이어 컴퓨팅 시스템(102)은 아래에 기술된 컴포넌트 또는 실시예들 중 하나 이상을 포함할 수 있다. 일부 실시예에서, 다른 개별 플레이어 컴퓨팅 시스템(103)은 플레이어 컴퓨팅 시스템(102)과 유사한 컴포넌트를 포함할 수 있지만, 차이점을 가질 수도 있다(예를 들어, 한 플레이어가 모바일 디바이스에서 주어진 게임을 플레이할 수 있는 반면에, 다른 플레이어가 데스크톱 컴퓨터 또는 게임 콘솔 시스템에서 동일한 게임을 플레이할 수 있다.).
1. 게임 애플리케이션 및 호스트 애플리케이션 시스템
플레이어 컴퓨팅 시스템(102) 및 다른 플레이어 컴퓨팅 시스템(103) 각각은 하나 이상의 게임 애플리케이션(104)을 실행할 수 있으며, 이는 로컬 및/또는 분산 환경에서 저장 및/또는 실행될 수 있다. 일반적으로, 로컬(locally)로 실행되는 게임 애플리케이션(104)은 게임 애플리케이션을 실행하기 위해 게임은 외부 컴퓨팅 시스템(예를 들어, 인터랙티브 컴퓨팅 시스템(120))을 이용하거나 또는 의존하지 않는다. 경우에 따라, 로컬로 실행 가능한 게임(locally executable game)은 외부 서버와 통신하여 게임 패치(game patches), 게임 인증, 클라우드 저장(clouds saves), 커스텀 가상 캐릭터 데이터(custom virtual character data), 유저 계정 데이터(user account data) 또는 다른 특징과 같은 게임과 연관된 정보를 탐색(retrieve)할 수 있다. 분산 게임 애플리케이션(distributed game applications)에서 플레이어 컴퓨팅 시스템(102)은 게임 및 인터랙티브 컴퓨팅 시스템(120)의 일부를 실행할 수 있거나, 또는 인터랙티브 컴퓨팅 시스템(120)의 애플리케이션 호스트 시스템(120)은 게임의 다른 부분을 실행할 수 있다. 예를 들어, 게임은 플레이어 컴퓨팅 시스템(102 및 103) 각각에 의해 실행되는 클라이언트 부분(client portion)과 하나 이상의 애플리케이션 호스트 시스템(122)에 의해 실행되는 서버 부분(server portion)을 포함하는 대규모 멀티플레이어 온라인 롤플레잉 게임(MMORPG: massively multiplayer online role-playing game)일 수 있다. 본 논의의 경우, 게임 애플리케이션(104)의 유형은 로컬로 실행가능한 게임, 분산 애플리케이션, 또는 플레이어 컴퓨팅 시스템(102)에서 실행되는 부분 및 애플리케이션 호스트 시스템(122) 중 적어도 어느 하나에서 실행되는 부분을 포함하는 애플리케이션일 수 있다.
2. 커스텀 모델 컴포넌트
플레이어 컴퓨팅 시스템(102) 및 다른 플레이어 컴퓨팅 시스템(103)은 커스텀 모델 컴포넌트(105)를 포함할 수 있다. 커스텀 모델 컴포넌트(105)는 도 1에 게임 애플리케이션(104)의 일부로 도시되어 있으나, 다른 실시예에서 별도의 애플리케이션, 플러그인(plug-in) 또는 다른 형태로 포함될 수 있다. 커스텀 모델 컴포넌트(105)는 로컬 플레이어의 게임 내 행동에 기초하여 행동 모델의 커스텀 레이어 또는 레벨을 훈련해야 할 책임이 있다. 플레이어 모방 시스템(130)의 커스텀 게임플레이 모델링 시스템(136)과 플레이어 컴퓨팅 시스템(102)에서의 커스텀 모델 컴포넌트(105)는 유사한 기능을 제공할 수 있으며, 그들 중 하나만 주어진 인스턴스에 사용되거나 또는 주어진 실시예에서 제공될 수도 있다. 예를 들어, 커스텀 모델의 훈련이 클라이언트 측(예를 들어, 플레이어 컴퓨팅 시스템(102))에서 이루어지는 경우는 커스텀 모델 컴포넌트(105)를 이용하는 것을 포함할 수 있는 반면에, 서버 측에서의 커스텀 모델의 훈련은 커스텀 게임플레이 모델링 시스템(136)을 이용하는 것을 포함할 수 있다.
3. 플레이어 데이터 저장소(Player Data Store)
플레이어 컴퓨팅 시스템(102)은 데이터 저장소(126)를 포함할 수 있다. 데이터 저장소(126)는 하나 이상의 게임 애플리케이션(104)과 연관된 데이터, 인터랙티브 컴퓨팅 시스템(120)에 의해 플레이어에 대해 유지되는 계정과 연관된 로컬 계정 데이터, 게임플레이 히스토리 데이터, 및/또는 다른 게임 관련(game-related) 또는 계정 관련(account-related) 데이터를 저장하도록 구성될 수 있다. 일부 실시예에서, 데이터 저장소(126)는, 특정 플레이어가, 자기 자신의 이전 버전을 상대로 로컬로 플레이하고, 단일 플레이어 게임(single player game)의 일부를 자동-플레이(auto-play)하고, 및/또는 인터랙티브 컴퓨팅 시스템(120)에 대한 네트워크 연결이 없는 경우 다른 용도로 사용할 수 있도록 특정 플레이어에 대한 커스텀 플레이어 모방 모델 데이터의 로컬 복사본(local copies)을 선택적으로 저장할 수 있다. 데이터 저장소(126)는, 하나 이상의 커스텀 모델에 의존되거나 참조될 수 있는, 사전 훈련된(pre-trained) 일반 플레이어 행동 모델(플레이어 모방 시스템(130)에 의해 원래 생성되었을 수 있음)의 저장소를 추가적으로 포함할 수 있다. 데이터 저장소(126)는 특정 플레이어가 플레이어의 특정 친구 또는 잘 알려진(well-known) 플레이어처럼 행동하는 NPC와 대결하거나 협동적으로 플레이할 수 있게 하는 모델과 같이, 다른 플레이어의 커스텀 행동 모델을 추가로 저장할 수 있다. 데이터 저장소(126)는 복수의 컴퓨팅 디바이스에 걸쳐 분산될 수 있다(예를 들어, 도 6의 컴퓨팅 디바이스(10) 참조).
B. 기타 고려 사항
다양한 시스템이 위에서 따로 설명되었지만, 이러한 시스템들 중 하나 이상이 함께 결합될 수 있다는 점을 유의해야 한다. 예를 들어, 시스템들 중 하나 이상의 시스템은 동일한 컴퓨팅 디바이스(예를 들어, 도 6의 컴퓨팅 디바이스(10))에 의해 또는 도 1에 도시된 것과 다른 컴퓨팅 시스템에 의해 실행될 수 있다. 일부 실시예에서, 플레이어 모방 시스템(130)은 플레이어 컴퓨팅 시스템(102)과 동일한 컴퓨팅 디바이스에서 실행될 수 있다. 한편, 복수의 컴퓨팅 디바이스에 의해 하나 이상의 시스템이 실행될 수 있다. 예를 들어, 플레이어 모방 시스템(130)의 일부 또는 서브시스템은 플레이어 컴퓨팅 시스템(102)에 의해 구현될 수 있는 반면에, 다른 부분 또는 서브시스템은 서버에 의해 구현될 수 있다.
예시적인 동작 환경 내 데이터 흐름의 예
도 2는 도 1의 네트워크 컴퓨팅 환경 내 데이터 흐름의 예를 도시한다. 도시의 용이성을 위해, 도 2의 데이터 흐름은 도시된 컴포넌트 또는 시스템 사이의 개별 통신이 네트워크를 통하는지, 아니면 단일 컴퓨팅 시스템 또는 디바이스 내에서 로컬인지 여부를 지정하지 않는다. 네트워크 구성의 일 예가 도 1에 도시되어 있는 반면에, (플레이어 모방 시스템(130)의 시스템 및 컴포넌트와 같이) 도 1에 단일 컴퓨팅 시스템의 일부로 도시된 컴포넌트 또는 서브시스템이 대신 서로에 관하여 원격으로 위치될 수 있다는 점을 이해할 것이다. 유사하게는, (플레이어 컴퓨팅 시스템(102) 및 플레이어 모방 시스템(130)과 같이) 도 1에서 서로 네트워크 통신하는 것으로 도시된 다른 시스템은 일부 실시예에서 단일 컴퓨팅 시스템에서 함께 동작될 수 있거나 또는 네트워크를 통해 통신하기보다는 서로 직접 로컬 통신(direct local communication)할 수 있다.
도 2에 도시된 바와 같이, 단계(1)에서, 플레이어 컴퓨팅 시스템(103) 중 적어도 일부를 이용한 플레이어는 애플리케이션 호스트(application host)(122)를 통해 하나 이상의 호스팅된 게임을 플레이할 수 있으며, 이는 호스팅된 게임 인스턴스를 플레이하는 동안 플레이어에 의해 입력된 제어 명령 또는 게임 내 액션의 실시간 지시(indication)를 수신하는 애플리케이션 호스트 시스템(application host system)(122)을 포함한다. 단계(1)에서 대안적으로 또는 추가적으로, 플레이어 컴퓨팅 시스템(103)의 적어도 일부는 각 플레이어 컴퓨팅 시스템에서 이전 또는 최근 게임플레이 세션과 관련하여 인터랙티브 컴퓨팅 시스템(120)에 텔레메트리 데이터를 제공할 수 있다. 예를 들어, 플레이어 컴퓨팅 시스템(103)에서 동작하는 게임 애플리케이션 또는 연관된 소프트웨어는, 개별 플레이어 컴퓨팅 시스템에서 로컬로 특정 유저 게임플레이 데이터(예를 들어, 대응하는 게임 상태 데이터와 함께 플레이어에 의해 수행되는 게임 내 액션)를 기록하고, 배치 프로세스(batch process)와 같이 인터랙티브 컴퓨팅 시스템(120)에 게임플레이 데이터 및/또는 다른 텔레메트리 데이터를 업로드하거나 또는 그렇지 않으면 제공하도록 오퍼레이터(operator)에 의해 구성될 수 있다.
플레이어 컴퓨팅 시스템(103) 중 어느 하나를 이용하는 개별 플레이어는, 게임 애플리케이션의 자체 복사본을 실행하고 있는 다른 플레이어 컴퓨팅 시스템(103)에 의해 실시간으로 영향을 받는 공유된 게임 상태 정보(shared game state information)를 수신하기 위해 애플리케이션 호스트 시스템(122)과 통신하도록 구성된 온라인 멀티플레이어 게임 애플리케이션을 플레이하고 있을 수 있다. 따라서, 애플리케이션 호스트 시스템(122)은, 멀티플레이어 게임의 다른 플레이어가 플레이어 컴퓨팅 시스템(102)을 이용하는 플레이어와 동일한 가상 세계의 인스턴스와 상호작용하게 할 수 있으며, (프로그래밍 환경 변경(programmatic environment changes), NPC 액션 등뿐만 아니라) 플레이어의 상호작용 각각을 반영하기 위해 서로 다른 플레이어 컴퓨팅 시스템들 간 현재 공유되는 게임 상태를 지속적으로 업데이트할 수 있다.
플레이어 제어 명령은, 예를 들어, 제1 축(first axis)(예를 들어, 위(up)/아래(down))에 따른, 또는 제1 조이스틱(joystick)(예를 들어, 왼쪽 조이스틱)에 제공되는 방향 입력(directional inputs); 제2 축(예를 들어, 왼쪽/오른쪽)을 따라 제공되거나, 또는 제2 조이스틱(예를 들어, 오른쪽 조이스틱)에 제공되는 제2 방향 입력; 버튼(예를 들어, A, B, X, Y, Z, 왼쪽 범퍼, 오른쪽 범퍼, 시작, 선택, 터보, 마우스 클릭, 핑거 탭(finger taps) 등)이 비디오 게임에서 유닛 또는 캐릭터가 할당된 액션을 수행하도록 눌러졌는지 여부, 및/또는 다른 입력 데이터를 포함할 수 있다. 플레이어 제어 명령은, 컨트롤러(controller)를 통해, 마우스와 키보드를 통해, 음성 명령을 통해, 터치스크린을 통해, 제스처(gesture)로 등과 같이 다양한 입력 디바이스 및 입력 포맷(formats)을 통해 제공될 수 있다. 다른 실시예에서, 실제 버튼 누름(actual button presses), 마우스 클릭(mouse clicks), 제스처 또는 다른 정보는, 각 플레이어 컴퓨팅 시스템에서 로컬로 게임 애플리케이션에 의해 처리될 수 있으며, 게임 내 액션(예를 들어, 가상 캐릭터가 총을 발사 또는 90도 왼쪽 회전, 플레이어가 특정 게임 내 맵 좌표에서 부대(troops)를 배치하는 것을 선택 등)으로 전환(translated)될 수 있으며, 이러한 게임 내 액션 또는 플레이어 입력의 다른 결과는 애플리케이션 호스트 시스템에 플레이어 제어 명령으로 제공된다.
단계(2)에서, 인터랙티브 컴퓨팅 시스템(120)은 데이터 저장소(124)의 다양한 플레이어를 위해 수신되거나 또는 수집된 다양한 게임플레이 및/또는 텔레메트리 데이터(telemetry data)를 저장할 수 있다. 일부 실시예에서, 이는 수백 또는 수천 명의 서로 다른 플레이어에 걸쳐 수천 개의 게임 인스턴스 각각에 대해 텔레메트리 데이터 또는 게임 상호 작용 데이터를 저장하는 것을 포함할 수 있다. 다음으로, 단계(3)에서 데이터 저장소(124)에 저장된 게임플레이 데이터의 전부 또는 서브세트는 일반 게임플레이 모델을 훈련하기 위한 훈련 데이터로 선택될 수 있다. 예를 들어, 일반 모델이 평균 플레이어의 게임플레이를 모방하도록 의도되는 실시예에서, 평균 또는 평균에 가까운(예를 들어, 평균 미만 또는 평균 초과의 특정 퍼센트 임계치 내) 플레이어의 실제 게임플레이 히스토리의 그룹은, 훈련 데이터(평균은 승률 또는 다른 게임 내 메트릭 또는 플레이어에 대해 추적되는 통계가 참조될 수 있음)로 선택될 수 있다. 다른 실시예에서, 선택된 훈련 데이터는, 훈련된 일반 행동 모델에서 원하는 적절한 스킬 레벨(appropriate skill level)에서 플레이하려고 의도적으로 시도함으로써, 일반 모델을 훈련하는 목적을 위해 특히 게임을 한 전문가 플레이어(expert players)와 같은 특정 플레이어의 게임 세션으로부터 기록될 수 있다.
다음으로, 단계(4)에서 일반 게임플레이 모델링 시스템(138)은 선택된 훈련 데이터를 기초로 일반 플레이어 행동 모델을 훈련할 수 있다. 실시예에 따라, 일반 플레이어 행동 모델에 사용되는 모델 또는 알고리즘의 유형은 다를 수 있다. 예를 들어, 상기 모델은 하나 이상의 결정 트리, 마르코프 모델, 또는 심층 신경망, 다양한 견습 학습 알고리즘(apprenticeship learning algorithms), 역 보강 학습 알고리즘(inverse reinforcement learning algorithms), 적대 네트워크(adversarial network)(예를 들어, 생성 적대 모방 학습), 및/또는 플레이어의 관찰된 행동에 기초한 행동을 모델링하는 다른 방법을 포함할 수 있다. 일반 모델은 일반적으로 플레이어가 다양한 게임 상황 또는 게임 상태에서 취하는 경향의 제어 명령 또는 게임 내 액션을 학습하도록 훈련될 수 있다. 따라서, 훈련의 결과로, 상기 모델은 실제 플레이어가 주어진 게임 상태에서 수행할 가능성이 높은 게임 내 액션을 예측하도록 구성될 수 있다.
예를 들어, 농구 비디오 게임에서, 일반 모델은, 훈련 프로세스를 통해, 게임 내 가상 캐릭터가 공을 전달(pass)하고, 공을 던지(shoot)고, 특정 방향으로 달리고, 특정 움직임(moves)을 수행하고, 슛을 블로킹(block)하도록 점프(jump)하고, 전력 질주(sprint)하는 등의 제어 명령을 일반적인 선수가 입력하려고 하는 게임 상태를 학습(learn)할 수 있다. 이러한 예에서, 상기 모델에 의해 고려될 수 있는 관련 게임 상태 정보는 팀원(teammates)과 상대 팀(opposing team)의 캐릭터가 배치되는 위치(가상 코트(court) 및 서로에 관련된 것 모두), 분기(quarter) 및/또는 게임에서 남은 시간, 팀들 간의 현재 스코어 차이(current score difference), 샷 클락(shot clock)에 남은 시간, 남은 파울(fouls) 등과 같은 데이터를 포함할 수 있다. 가상 세계에서 캐릭터의 상대적 위치를 포함하는 게임 상태 정보를 캡처하기 뿐만 아니라, 인간 플레이어(human player)를 에뮬레이트(emulate)하기 위한 기계 학습 모델(machine learning model)을 훈련하기 위한 예는, 2018년 5월 21일 출원된 "인간 플레이스타일을 에뮬레이트하기 위한 인공 지능(ARTIFICIAL INTELLIGENCE FOR EMULATING HUMAN PLAYSTYLES)"라는 명칭의 미국 특허 출원 제15/985,347호에 기술되어 있으며, 이는 본원 전체에서 참조로 포함된다.
일반 플레이어 행동 모델이 생성되면, 단계(5)에서 모델 데이터 저장소(model data store)(145)에 저장될 수 있다. 특정 플레이어(이 예에서 플레이어 컴퓨팅 시스템(102)를 사용)가 나중에 커스텀 행동 모델을 훈련하고자 하는 시간이나 그 이전에, 훈련된 일반 모델은 모델 데이터 저장소(145)로부터 탐색되고, 단계(6)에서 플레이어 모방 시스템(130)으로부터 플레이어 컴퓨팅 시스템(102)으로 제공될 수 있다. 게임 애플리케이션(104)은 게임 애플리케이션(104) 내에 포함되거나 또는 그렇지 않으면 게임 애플리케이션의 실행과 함께 플레이어 컴퓨팅 시스템(102)에 의해 실행되는 커스텀 모델 컴포넌트(105)의 사용에 부분적으로 기초하여 특정 플레이어에 대한 일반 모델을 맞춤화(customize)하도록 구성될 수 있다. 일반 모델에서 캡처되는 행동으로부터 특정 플레이어의 관찰된 플레이의 편차를 반영하는 추가 레이어 또는 레벨을 구축하는 동안, 일반 모델의 맞춤화(customization) 또는 개인화(personalization)는 일반 모델의 레이어 또는 레벨의 적어도 일부의 손상(corruption) 또는 변경을 프리징(freezing)하거나 또는 그렇지 않으면 방지하는 것을 포함할 수 있다. 이러한 커스텀 레이어 또는 레벨의 생성은 도3-5를 참조하여 아래에서 더 설명될 것이다.
특정 플레이어의 고유한 플레이 행동을 캡처하기 위해 생성된 커스텀 레이어 또는 레벨은, 플레이어 컴퓨팅 시스템(102)에 로컬로 저장될 수 있으며, 단계(9)에서 저장을 위해 플레이어 모방 시스템(130)에 제공될 수 있다. 예를 들어, 일부 실시예에서 모델 데이터 저장소(145)는 상이한 플레이어의 관찰된 게임플레이와 관련하여 훈련을 받은 다수의 상이한 훈련된 커스텀 모델을 저장할 수 있다. 일부 실시예에서, 플레이어는 다른 플레이어와 훈련한 모델을 공유할 수 있으므로, 다른 플레이어들의 것은 그의 가상 버전(예를 들어, 주어진 플레이어가 그 캐릭터를 제어할 수 있는 방식과 유사하게 행동하는 NPC에 대함)에 대항하여 플레이할 수 있다. 일부 실시예에서, 플레이어 모방 시스템(130)은 실제 플레이어 경쟁자(competitors)에 대항하여 게임플레이에서 복수의 커스텀 모델 각각에 의해 제어되는 캐릭터의 비디오 게임 내에서 캐릭터 성공을 추적할 수 있으며, 모델들의 게임 내 성공 또는 성능에 기초하여 AI 에이전트 또는 관련 모델의 순위를 생성할 수 있다.
주어진 개인화된 훈련된 모델은 다양한 목적으로 사용될 수 있다. 예를 들어, 상기 모델은 2019년 3월 27일 출원된 "비디오 게임에서 자동 플레이어 제어 테이크오버(AUTOMATED PLAYER CONTROL TAKEOVER IN A VIDEO GAME)"라는 명칭의 미국 특허 출원 제16/367,139호에서 더 설명되는 바와 같이, 게임 중반에(mid-game) 네트워크 연결 또는 기타 제어 기능을 상실한 플레이어에 의해 캐릭터 이전 컨트롤러(character previously controller)의 자동으로 테이크오버 제어(take over control)하는 데 사용될 수 있으며, 본원에서 전체에 참조로 포함될 수 있다. 추가적으로 또는 대안적으로, 훈련된 모델은 플레이어가 자신에 대항하여(예를 들어, 자신의 이전에 훈련한 데이터(her prior training data)와 유사하게 행동하는 NPC 상대에 대해 연습하기 위해 자신의 이전에 훈련된 모델을 로드(loading)하는 것에 의함) 또는 자신과 함께(예를 들어, 게임 인스턴스에서 NPC 팀원 중 하나를 제어하기 위해 그들의 커스텀 훈련된 모델을 로드하는 것에 의함) 플레이할 수 있는 AI 에이전트로 선택할 수 있다. 일부 실시예에서, 플레이어는 다른 플레이어와 자신의 커스텀 모델을 공유할 수 있으며, 이는 과거에 수행했거나 또는 현재 수행중인 챔피언 또는 특히 숙련된 플레이어(particularly skilled players)에 대항하여 연습하거나, 또는 플레이어의 부재(absence)에서 친구와 또는 친구에 대항하여 토너먼트 또는 매치에서 플레이하는 플레이어의 가상 버전을 가능하게 하는 방식을 제공할 수 있다.
도 2는 플레이어 컴퓨팅 시스템(102)이 게임 애플리케이션(104)을 로컬로 실행하고, 플레이어 컴퓨팅 시스템에서 로컬로 커스텀 모델 컴포넌트(105)를 구현하여 일반 모델을 개인화(personalizes)하는 실시예를 참조하여 기술된 반면에, 다른 실시예에서 플레이어 컴퓨팅 시스템(102)을 사용하는 커스텀 모델을 훈련하는 플레이어는 게임의 호스팅되는 인스턴스를 플레이할 수 있다. 예를 들어, 커스텀 모델 개발(을 위한 훈련 데이터는 애플리케이션 호스트 시스템(122)을 통해 수집될 수 있으며, 모델의 커스텀 레이어는 플레이어 모방 시스템(130)의 커스텀 게임플레이 모델링 시스템(custom gameplay modeling system)(136)에 의해 생성될 수 있다.
커스텀 행동 모델을 생성하기 위한 예시적인 방법
도 3은 일부 실시예에 따라 특정 플레이어의 게임 내 동작을 모방하기 위한 커스텀 플레이어 행동 모델을 생성하기 위한 예시적인 방법(300)의 흐름도이다. 일부 실시예에서, 방법(300)은 게임 애플리케이션(104), 플레이어 모방 시스템(130), 플레이어 컴퓨팅 시스템(102), 인터랙티브 컴퓨팅 시스템(120), 또는 다른 애플리케이션 컴포넌트 또는 모듈에 의해 구현될 수 있다. 전체적으로 또는 부분적으로, 임의의 수의 시스템이 논의를 단순화하기 위한 방법(300)을 구현할 수 있지만, 방법(300)은 커스텀 모델 컴포넌트(105)와 같은 플레이어 컴퓨팅 시스템(102)의 특정 컴포넌트에 대하여 설명될 것이다. 다른 실시예에서, 커스텀 게임플레이 모델링 시스템(136)에 의해서와 같이 플레이어 모방 시스템(130)에 의해 유사한 방법이 구현될 수 있다.
예시적인 방법(300)은 블록(302)에서 시작되며, 커스텀 모델 컴포넌트(105)는 비디오 게임에 대해 완전히 훈련된 플레이어 행동 모델을 획득할 수 있으며, 상기 모델은 제1 플레이어 이외의 하나 이상의 플레이어의 게임플레이 데이터를 사용하여 훈련된 일반 모델이다. 도 2에 대하여 이전에 위에서 설명한 바와 같이, 일반 모델은 플레이어 모방 시스템(130)으로부터 수신될 수 있으며, 이는 일반 또는 평균 품질 플레이어(또는 선택된 훈련 데이터에 따라 임의의 다른 원하는 스킬 레벨)를 믿을 수 있게(believably) 모방(mimics)하거나 에뮬레이트하는 방식으로 게임 내 캐릭터를 제어하는 방법을 배우기 위해 다량의 히스토리 플레이어 행동 데이터(historical player behavior data)를 사용하여 일반 모델을 훈련했을 수 있다. 본원에서 다른 경우에서 설명한 바와 같이, 사전 훈련(pre-trained)된 일반 모델은 규칙 기반(rule-based) 스택형(stackable) 레벨, 결정 트리, 심층 신경망, 마르코프 모델, 및/또는 기타를 포함한 다양한 유형의 것일 수 있다.
블록(304)에서 커스텀 모델 컴포넌트(105)는 게임플레이 데이터가 다양한 게임 상태 각각에서 제1 플레이어에 의해 수행되는 게임 내 액션을 식별하는 경우에, 제1 플레이어에 대한 게임플레이 데이터를 수집할 수 있다. 일부 실시예에서 수집된 게임플레이 데이터는 일반적으로 게임 내 플레이어-제어 캐릭터가 특정 게임 상태에 있도록 플레이어가 야기한(예를 들어, 농구 게임에서, 다른 캐릭터가 환경 내 특정 위치에 있고, 게임 시간이 특정 시간 남아 있고 특정 스코어(score)인 경우, 플레이어는 농구 경기의 캐릭터가 가상 코트의 특정 위치에서 3 점 점프 슛을 하도록 야기함) 게임 내 액션의 기록(records), 및/또는 플레이어에 의해 입력된(플레이어는 특정 게임 상태 동안 특정 시간에 게임 컨트롤러에서 "A" 버튼을 눌렀음) 실제 제어 명령을 포함할 수 있다. 수집된 게임플레이 데이터는 플레이어가 비디오 게임을 정상적으로 플레이하는 동안 기록된 게임플레이 데이터를 포함할 수 있으며(예를 들어, 특정 게임 내 훈련 환경에 있지 않음), 및/또는 게임 개발자에 의해 설계된 게임 내 가상 훈련 환경에서 수집된 게임플레이 데이터를 포함하여, 정상 게임플레이(normal gameplay)에 기록된 게임플레이 데이터에 비해 커스텀 모델의 훈련 데이터의 품질을 향상시킬 수 있다.
비디오 게임과의 플레이어 상호 작용을 위해 훈련 환경이 제공되는 실시예에서, 게임 애플리케이션(104)은 특정 플레이어에 대한 커스텀 모델 개발의 훈련 단계 동안 상호 작용을 위해 플레이어 컴퓨팅 시스템(102)의 플레이어에게 제공되는 훈련 환경의 인스턴스를 생성할 수 있다. 훈련 환경은 훈련 환경 내에서 플레이하는 동안 플레이어 제어 입력 또는 명령에 기초하여 훈련 데이터를 수집하도록 설계된 간소화된 게임 상태를 제공할 수 있다. 예를 들어, 일반적인 게임 내 환경은 게임 내 10명의 캐릭터(예를 들어 두 팀 각각에서 5명의 캐릭터를 포함하는 5대 5게임)를 포함하는 농구 비디오 게임에서, 훈련 환경은 현재의 유일한 캐릭터가 플레이어-제어 캐릭터이고 단일 AI-제어 또는 NPC 팀원인 단순화 또는 샌드박스(sandbox) 상태를 제공할 수 있다.
제1 단순화된 게임 상태에서 훈련 데이터가 관찰되면, 훈련 환경은 일반적인 게임 상태 (예를 들어 5 대 5)를 제공하기 전에 1 대 1로부터 2 대 2, 3 대 3 및/또는 다른 단순화된 상태로 이동하는 등과 같은 플레이어 상호 작용에 대한 복잡도가 증가하는 게임 상태를 점차적으로 제공할 수 있다. 제공되는 게임 상태는 플레이어가 특정 액션을 수행하는 것이 태스크인 다른 시나리오 또는 훈련(drills)을 포함할 수 있다. 따라서, 훈련은 더 복잡한 작업을 배우기 전에 간단한 작업을 배울 수 있는 모델을 훈련할 수 있게 하는 기계 학습의 커리큘럼 학습 접근 방식(curriculum learning approaches)의 이점을 가질 수 있다.
블록(304)에서 게임플레이 데이터를 수집하기 이전에 또는 이후에 발생할 수 있는 블록(306)에서, 커스텀 모델 컴포넌트(105)는 일반 모델의 레벨 또는 레이어의 적어도 서브세트를 지정하여, 제1 플레이어의 관찰된 행동을 에뮬레이트하도록 의도되는 커스텀 모델에서 프로즌 레이어 또는 레벨로 재사용될 수 있다. 본원에서 사용되는 특정 레이어 또는 레벨을 프리징(Freezing)하는 것은, 훈련될 새 모델에서 기존 모델의 주어진 레벨 또는 레이어를 재사용하는 것을 지칭할 수 있지만, 이러한 재사용되는 레벨 또는 레이어를 새 모델에 대한 훈련 프로세스에서 정적 또는 불변인 것으로 지정할 수 있다. 예를 들어, 신경망에서, 레이어를 프리징하는 것은 노드의 레이어, 이전 레이어로부터 들어오는(incoming) 연결, 및 후속 훈련 중에 그 연관된 가중치(weights)를 고정(fixed) 또는 락(locked)인 것으로 지정하는 것을 포함할 수 있다. 다른 예로, 스택형 모델, 결정 트리 또는 다른 구조(structures)를 포함할 수 있는 규칙 기반(rule-based) 모델에 대해, 레벨을 프리징하는 것은 주어진 레벨 내에 포함되는 특정 규칙, 가중치 및/또는 논리(logic)를 변경할 수 없는(immutable) 것으로 지정하는 것을 포함할 수 있다(예를 들어, 아래에서 설명되는 바와 같이, 새로운 커스텀 레벨 및 연관된 규칙이 최종적으로 프로즌 레벨보다 우선할 수 있지만, 규칙은 모델로부터 제거되거나 삭제될 수 없다).
도 4 및 5에 대하여 아래와 같이 설명되는 바와 같이, 커스텀 모델에서 프로즌되거나 또는 그렇지 않으면 재사용되는 지정된 일반 모델의 특정 레이어 또는 레벨은 주어진 실시예에서 사용되는 모델링의 유형에 따라 달라질 수 있다. 예를 들어, 일반 모델이 심층 신경망인 경우에, 일반 모델의 노드 또는 뉴런의 최종 레이어를 제외한 모든 것이 커스텀 모델 훈련을 위해 재사용되고 프로즌될 수 있다. 아래에 설명된 스택형 모델과 관련한 실시예에서, 커스텀 모델에서의 재사용으로부터 지정된 프로즌 레벨은 전체 일반 모델을 포함할 수 있다.
블록(308)에서 커스텀 모델 컴포넌트(105)는 제1 플레이어에 대해 수집된 게임플레이 데이터를 기초로 커스텀 모델에 대한 하나 이상의 커스텀 레이어 또는 레벨을 생성할 수 있으며, 커스텀 레이어 또는 레벨은 일반 모델의 프로즌 레이어 또는 레벨과 함께 사용되어야 한다. 도 4 및 5에 대하여 아래에서 설명되는 것과 같이, 커스텀 모델에 대한 새로운 레이어 또는 레벨은 실시예 및 모델 유형에 따라 프로즌 일반 레이어 또는 레벨에 대해 상이한 상대적인 위치(relative positions) 또는 우선 순위(precedence)를 가질 수 있다. 예를 들어, 하나 이상의 새로운 출력 레이어가 심층 신경망에 추가될 수 있으므로, 이러한 새로운 레이어는 일반 모델의 최종 프로즌 레이어(last frozen layer)의 노드로부터 들어오는 연결을 갖는다(이는 "포스트픽스(postfix)" 실시예로 간주될 수 있음). 아래에 설명되는 스택형 모델과 같은 다른 실시예에서, 하나 이상의 새로운 레벨이 일반 레벨보다 우선순위 이전에 또는 우선순위로 생성되고 추가될 수 있다(이는 "프리픽스(prefix)" 실시예로 간주될 수 있음).
커스텀 모델의 훈련은 일반적으로, 플레이어로부터 관찰된 학습 입력 데이터(위에서 블록(304)에서 수집됨)를 초기 커스텀 모델(처음에는 훈련 프로세스 중 수정되는 하나 이상의 훈련되지 않은 레이어 또는 레벨과 함께 프로즌 레이어 또는 레벨을 포함할 수 있음)에 제공하는 것, 및 모델과 실시예의 형태에 따라 다양한 기계 학습 접근법을 채용하는 것을 포함할 수 있다. 입력 훈련 데이터는, 일부 실시예에서, 게임플레이 중 복수의 스냅샷 순간(snapshot moments) 각각에서 게임 상태와 연관된 특징(features)을, 이러한 순간 각각에서 플레이어에 의해 입력된 게임 내 액션 또는 제어 명령의 지시와 함께, 포함할 수 있다. 심층 신경망의 예에서, 훈련 데이터는 새로 추가된 커스텀 레이어와 연관된 연결 및 가중치를 점진적으로 조정할 수 있으며, 반면에 일반 모델 이전의 프로즌 레이어는 변경되지 않은 상태로 유지된다. 일부 실시예에서, 커스텀 모델을 훈련하는 것은, 판별기가 GAIL 모델링 라벨 내에서 훈련된 커스텀 행동 모델의 행동을 (AI 캐릭터의 인공 액션에 반대되는) 플레이어의 액션으로 보상하기 위해, 생성 적대적 모방 학습(GAIL: generative adversarial imitation learning)을 사용하는 것과 같은 보상 최대화 기술(reward maximization techniques)을 사용하는 것을 포함할 수 있다. 다른 실시예에서, 다른 형태의 보강 학습(reinforcement learning)은 커스텀 모델을 개선하기 위해 사용될 수 있다.
일부 실시예에서, 커스텀 모델을 훈련하는 것은 주어진 게임 상태 또는 유사한 게임 상태에 대한 업데이트된 플레이어 행동 통계를 반영하는 마르코프 모델을 업데이트하는 것을 포함할 수 있다. 예를 들어, 상기 모델은 플레이어가 유사한 미래의 게임 상태에서 주어진 액션이나 명령을 수행할 가능성이 이전보다 더 높은 가능성을 반영하기 위해 특정 입력 훈련 데이터를 고려하여 업데이트될 수 있다(예를 들어, 코트의 특정 부분에서 슈터(shooter)의 특정 거리 내에 방어로 서 있을 때 샷(shot)을 차단(block)하기 위해 점프(jumping)할 가능성). 상이한 모델 또는 모델 유형은 규칙이 훈련 데이터로 저장 및/또는 제공되는 게임 상태에 적용되는 다양한 레벨의 양자화(quantization), 라운딩(rounding) 또는 추상화(abstraction)를 가질 수 있다. 예를 들어, "게임 클락에서 1초 남았을 때 공을 가지고 있다"와 같이 매우 넓게 게임 상태가 상기 모델에서 식별되거나, 또는 "수비에서 공을 가진 상대를 지키고 있고, 5개의 파울을 가지고 있고, 팀이 5점 초과하여 앞서 있고, 하프 코트 근처에 서 있다" 등과 같이 보다 더 구체적으로 게임 상태가 상기 모델에서 식별될 수 있다.
블록(310)에서, 커스텀 모델의 적어도 초기 훈련이 발생하면, 커스텀 모델 컴포넌트(105)는 제1 플레이어의 게임플레이를 에뮬레이트하기 위한 훈련된 커스텀 모델을 저장할 수 있으며, 커스텀 모델은 일반 모델의 프로즌 레이어 또는 레벨을 포함하거나 의존한다. 프로즌 레이어는 일반 모델을 훈련할 때 학습된 중요한 행동을 유지해야 하므로, 커스텀 모델은 알 수 없는(unknown) 게임 상태를 발생시키는 모델 또는 커스텀 훈련 데이터의 부족으로 인해 비정상적인(unusual) 게임 내 액션을 선택하지 않고도 훈련에서 초기에(early) 사용할 수 있다. 따라서, 커스텀 모델은 훈련 기간이 길어질수록 특정 플레이어처럼 행동하는 쪽으로 서서히 수렴(converge)될 수 있는 반면에, NPC를 제어하는 실제 게임 내 사용에 적합하기 전에 특정 임계치(threshold)에 도달할 필요 없이 시간이 지남에 따라 훈련이 점진적으로 발생할 수 있다.
일부 실시예에서, 커스텀 레이어 또는 레벨이 구축되는 일반 모델에 대한 참조 또는 연관에 대해, 블록(310)에서 커스텀 레이어 또는 레벨만이 저장되므로, 복수의 커스텀 모델(multiple custom models)은 서로 다른 모델에 걸쳐 동일한 프로즌 일반 레이어 또는 레벨을 반복적으로 저장하지 않고 동일한 일반 모델에 대한 참조로 저장될 수 있다. 다른 실시예에서, 커스텀 모델은 일반 모델로부터의 프로즌 레이어 또는 레벨을 포함하는 단일 완전 모델(single complete model)로 저장될 수 있다. 커스텀 모델이 로컬로 저장되거나, 및/또는 모델 데이터 저장소(145)의 원격 저장소와 같이 다른 시스템으로 다시(back) 제공되면, 예시적인 방법(300)은 블록(312)에서 종료된다.
예시적인 멀티-레이어(Multi-Layered) 모방 모델
도 4는 특정 플레이어를 모방하도록 훈련된 대응하는 개인화된 멀티-레이어 기계 학습 모델(420)뿐만 아니라 일반 플레이어를 모방하도록 훈련된 멀티-레이어(multi-layered) 기계 학습 모델(410)의 예시적인 시각적 표현(illustrative visual representation)을 제공한다. 일 실시예에서, 모델(410)은 심층 신경망일 수 있다. 예를 들어, 일반 모델(410)의 레이어 1 내지 N 각각은, 복수의 노드 또는 뉴런(a number of nodes or neurons)을 포함할 수 있다. 기계 학습 분야에서 알려진 바와 같이, 상기 복수의 노드 또는 뉴런은, 이전 레이어(preceding layer)의 노드 또는 뉴런에 연결된, 연관된 가중치를 가진 에지 또는 연결을 가질 수 있다. 상기 제1 레이어 N은 입력 레이어(input layer)(412A)로부터 입력을 수신할 수 있고, 최종 히든 레이어(last hidden layer) N은 출력 레이어(418A)에 대한 하나 이상의 연결을 포함할 수 있다. 일반 모델이 훈련된 이후에, 예시된 실시예에서, 일반 모델(410)의 히든 레이어 1 내지 N은 특정 플레이어의 행동을 에뮬레이트하도록 훈련될 개인화(personalized)된 모델(420)을 훈련하는 데 재사용을 위해 프로즌 및 유지(retained)될 수 있다.
개인화된 모델(420)을 훈련시, 입력 레이어(412B)와 제1 프로즌 레이어(1) 사이에 에지(edges)가 생성될 수 있고, 하나 이상의 새로운 레이어(예시적인 예에서 레이어 N+1을 포함)가 생성될 수 있다. 출력 레이어(418B)에 의해 제공되는 최종 출력(예를 들어, 수행될 예측되는 게임 내 액션)과 함께, 위에서 설명한 커스텀 훈련 단계를 통해 새 레이어와 연관된 에지 및 가중치가 학습될 수 있다.
예시적인 스택형 모방(Imitation) 모델
도 5는, 특정 플레이어를 모방하기 위한 일반 스택형 모델을 개인화하는 대응하는 커스텀 레벨(도면에서 커스텀 스택형 모델로 지칭되는 일반 스택형 모델 및 커스텀 레벨의 결합된 사용)뿐만 아니라, 복수의 스택형 레벨을 사용하여 일반 플레이어를 모방하도록 훈련된 스택형 모델(510)(일반 스택형 모델(generic stackable model)이라고 지칭됨)의 예시적인 시각적 표현을 제공한다. 도 5는 연속 레벨을 통해 단일 선형 검사 경로(path of checks)를 갖는 일반 모델의 예를 제공하지만, 본원에 기술된 커스텀 행동 모델링 특징(customized behavior modeling features)의 다양한 장점은 임의의 특정 모델 유형에 특정되지 않을 수 있다는 점을 알 수 있을 것이다. 예를 들어, 전술한 바와 같이, 본원에 설명된 플레이어 모방 모델은, 결정 트리, 마르코프 모델, 다양한 앙상블(ensemble) 학습 접근법, 심층 신경망 및/또는 비디오 게임에서 AI 또는 NPC 엔티티를 제어하거나 또는 행동을 모델링하는 다른 방법과 같은 다른 실시예에서 다른 형태를 취할 수 있다. 따라서, 도 4에 대하여 아래에서 기술된 예는 일반 플레이어 행동 모델을 맞춤화하는 데 사용될 수 있는 AI 또는 행동 모델의 유형을 제한하는 것으로 판독되어서는 안 된다.
도 5에 도시된 바와 같이, 현재 게임 세션 데이터는 훈련되는 일반 스택형 모방 모델(510)에 대한 입력으로 제공될 수 있다. 예를 들어, 현재 게임 세션 데이터는, 현재 플레이되고 있는 게임의 게임 상태 데이터, 플레이어 입력, 취해진 액션, 가상 환경 데이터, 및/또는 주어진 게임 내 상황에서 플레이어의 명령 또는 액션의 선택에 영향을 줄 수 있는 임의의 다른 게임 데이터를 포함할 수 있다. 일반 모델은, 복수의 관찰된 플레이어의 히스토리(historical) 게임플레이 데이터에 걸쳐 일반(typical) 플레이어 행동을 모방(mimics), 에뮬레이트(emulates) 또는 모방(imitates)하는 방식으로 게임 내 캐릭터를 제어하도록 이전에 훈련되었을 수 있다. 훈련에서 사용되는 훈련 데이터와 주어진 인스턴스에서 제공되는 게임 상태 입력 데이터 모두는, 수신된 원시 게임 세션 데이터(raw game session data)에 적용된 양자화, 압축, 라운딩 또는 기타 조작(manipulations)을 먼저(first) 수행했을 수 있다.
도 5의 일반 스택형 모델(510)의 시각적 표현으로 도시된 바와 같이, 일반 모델은, 더 높은 우선 순위 액션 또는 상태가 상기 모델 내에서 먼저 검사(checked)되는 더 낮은 숫자의 레벨(lower numbered levels)로 저장되는 스택형 모델(stackable model)이다. 예를 들어, 레벨 1은 더 낮은 레벨에서 다른 게임 상태 인자(factors) 또는 규칙을 오버라이드(override)할 가능성이 매우 높은 게임 상태 인자 또는 규칙에 영향을 줄(implicate) 수 있다(예를 들어, 플레이어의 캐릭터가 이 특정 현재 맵 위치에서 이전에 총에 맞은 적이 없거나 또는 플레이어의 캐릭터가 이 현재 맵 위치에서 실행되지 않았다 하더라도, 플레이어의 캐릭터가 근거리에서 총에 맞았다면, 이는 실행할 응답 액션(responsive action)을 결정하기에 충분한 게임 상태 정보가 될 수 있다.) 도시된 바와 같이, 일반 모델은, 플레이어가 레벨 1 주어진 현재 게임 상태와 연관된 특정 액션을 수행할 것이라는 신뢰 스코어(confidence score), 및 레벨 1과 연관된 규칙 또는 게임 상태 정보를 먼저 결정할 수 있다. 신뢰 스코어가 임계치를 충족(meets)하는 경우, 일반 모델(510)은 레벨을 통해 진행(progressing)을 중지할 수 있고, 레벨 1에서 결정된 액션을 출력할 수 있다.
그렇지 않으면, 일반 모델(510)은 임계치를 충족하는 신뢰 스코어로 액션을 결정할 때까지 현재 게임 상태를 각 연속 스택형 레벨로 전달하여 그 레벨을 통과하여 진행할 수 있다. 일반 모델(510)의 최종 레벨(도 5에서 레벨 N으로 식별됨)이 도달되어 현재 게임 상태에 기초하여 액션을 결정하지 못하면, 디폴트(default) 또는 폴백(fallback) 액션이 결정될 수 있다. 일부 실시예에서, 폴백 액션은 아무 것도 하지 않거나 임의의 이전의 액션을 계속하는 것일 수 있다(예를 들어, 가상 캐릭터가 이미 걷고 있는 경우 현재 방향으로 계속 걸음). 다른 실시예에서, 일반 모델(510)은 주어진 일반 모델이 제안된 액션을 가지지 않을 때 액션을 결정하기 위해 상이한 모델(미도시)로 게임 상태 정보를 전달할 수 있다.
도 5에 추가로 설명된 바와 같이, 커스텀 스택형 모델(520)은 레벨 c1 내지 레벨 cN으로 도시된 복수의 레벨(a number of levels)(유사하게는 일반 커스텀 모델(510))을 포함할 수 있다. 일반 모델의 레벨에서 캡처되는 행동에 비해 (커스텀 모델이 훈련된) 특정 플레이어의 관찰된 플레이어 행동 간 차이를 캡처하기 위해 커스텀 레벨들이 생성되었을 수 있다. 이러한 경우에 일반 모델(510)은 일반 모델(510)의 레벨을 기반(build)으로 하는 커스텀 레벨 c1 내지 cN을 생성하는 맞춤화 훈련 프로세스를 시작하기 전에 프로즌되거나 또는 락된 그 레벨을 가졌을 수 있다.
특정 플레이어에 대한 훈련 프로세스 동안 커스텀 스택형 모델(520)을 업데이트하는 것은, 훈련 데이터에서 주어진 관찰된 게임 상태에 기초하여 새 규칙을 각각 포함(incorporate)하는 모델에 새로운 스택 또는 레벨을 반복적으로 추가하는 것을 포함할 수 있다. 이러한 접근법은 상기 모델의 전체 재훈련(retraining)을 구현하는 대신에 실시간으로 모델을 반복적으로 구축할 수 있다. 맞춤화 훈련 단계 동안 플레이어로부터 새로 관찰된 게임 내 액션 또는 제어 명령이, 일반 플레이어가 주어진 게임 상태에서 행동하는 방식에 대한 일반 모델의 예측으로부터 크게 벗어나지 않는 일부 인스턴스에서, 일반 모델은 새로운 커스텀 레벨을 생성하지 않고 주어진 게임 상태를 처리하는 데 의존할 수 있다.
훈련된 커스텀 모델(520)의 사용은, 게임의 실시간 인스턴스 내에서 현재 게임 상태 정보와 같은 입력 데이터를 수신하는 것을 포함할 수 있으며, 커스텀 레벨이 게임에서 성능을 위해 리턴하는 액션에서 충분한 신뢰(confidence)를 가질 때까지 커스텀 레벨(예를 들어, 레벨 c1 내지 레벨 cN)을 반복적으로 검사(checking through)하는 것을 포함할 수 있다. 커스텀 모델(520)의 모든 레벨이 주어진 입력 게임 상태 데이터에 대한 게임에서 수행하는 액션을 결정하지 못하는 경우(예를 들어, 입력 게임 상태는, 커스텀 훈련 데이터에서 관찰되지 않았거나, 또는 관찰되었지만 반응하는 플레이어 액션(responsive player action)이 일반 모델(510)로부터 실질적으로 벗어나지 않기로 훈련에서 결정됨), 입력 게임 상태 데이터가 일반 스택형 모델(510)로 전달되어 상술된 바와 같이 처리(process)될 수 있다.
컴퓨팅 디바이스의 개요
도 6은 본 개시에 따른 컴퓨팅 디바이스(10)의 실시예를 도시한다. 컴퓨팅 디바이스(10)의 다른 변형은 컴퓨팅 디바이스(10)에 컴포넌트를 제거하거나 또는 추가하는 것과 같이 본원에 명시적으로 제공되는 예에 대해 대체될 수 있다. 컴퓨팅 디바이스(10)는 게임 디바이스, 스마트폰, 태블릿, 개인용 컴퓨터, 노트북(laptop), 스마트 텔레비전(smart television), 자동차 콘솔 디스플레이(car console display), 서버 등을 포함할 수 있다. 컴퓨팅 디바이스(10)는 복수의 지리적 위치에 걸쳐 분산될 수도 있다. 예를 들어, 컴퓨팅 디바이스(10)는 클라우드-기반(cloud-based) 서버의 클러스터일 수 있다. 일부 실시예에서, 플레이어 컴퓨팅 시스템(102)은 도 6에 도시된 컴포넌트들 중 하나 이상을 포함할 수 있는 반면에, 다른 실시예에서, 인터랙티브 컴퓨팅 시스템(120)은 도 6에 도시된 컴포넌트들 중 하나 이상을 포함할 수 있다.
도시된 바와 같이, 컴퓨팅 디바이스(10)는 컴퓨팅 디바이스(10)의 다른 컴포넌트 및 컴퓨팅 디바이스(10)에 대한 외부 컴포넌트와 상호동작하는 처리 유닛(20)을 포함한다. 게임 매체(12)와 통신하는 게임 매체 리더(game media reader)(22)가 포함된다. 게임 매체 리더(22)는 CD-ROM 또는 DVD와 같은 광학 디스크(optical discs)를 판독할 수 있는 광학 디스크 판독기(optical disc reader) 또는 게임 매체(12)로부터 데이터를 수신하고 판독할 수 있는 임의의 다른 유형의 판독기일 수 있다.
컴퓨팅 디바이스(10)은 별도의 그래픽 프로세서(graphics processor)(24)를 포함할 수 있다. 일부 경우에서, 그래픽 프로세서(24)는 처리 유닛(20)에 내장(built)될 수 있다. 일부 이러한 경우에서, 그래픽 프로세서(24)는 랜덤 액세스 메모리(RAM: random access memory)를 처리 유닛(620)과 공유할 수 있다. 대안적으로 또는 부가적으로, 컴퓨팅 디바이스(10)는 처리 유닛(20)과 별도인 이산 그래픽 프로세서(discrete graphics processor)(24)를 포함할 수 있다. 일부 이러한 경우에서, 그래픽 프로세서(24)는 처리 유닛(20)과 별도인 RAM을 가질 수 있다. 컴퓨팅 디바이스(10)는 휴대용 게임 애플리케이션 디바이스, 전용 게임 콘솔 컴퓨팅 시스템, 범용 노트북 또는 데스크톱 컴퓨터, 스마트 폰, 태블릿, 자동차 콘솔 또는 기타 적합한 시스템일 수 있다.
또한, 컴퓨팅 디바이스(10)은 I/O(32), 유저 I/O(user I/O)(34), 디스플레이 I/O(display I/O)(36) 및 네트워크 I/O(network I/O)(38)와 같은 입력/출력을 가능하게 하기 위한 다양한 구성 요소를 포함한다. I/O(32)는 디바이스(42)를 통해 컴퓨팅 디바이스(10)를 위한 저장소를 제공하기 위하여 이동식 저장소 매체(removable storage media)(44) 및 저장소 엘리먼트(storage element)(40)와 상호동작한다. 처리 유닛(20)은 게임 상태 데이터 및 임의의 공유 데이터 파일과 같은 데이터를 저장하기 위해 I/O(32)를 통해 통신할 수 있다. 또한, 저장소(40) 및 이동식 저장소 매체(44)에 추가하여, 컴퓨팅 디바이스(10)는 ROM(Read-Only Memory)(46) 및 RAM(48)을 포함하여 도시된다. RAM(48)은 비디오 게임이 플레이될 때와 같이, 자주 액세스되는 데이터를 위해 사용될 수 있다.
유저 I/O(34)는 처리 유닛(20)과 게임 컨트롤러(game controllers)와 같은 유저 디바이스들 사이에서 명령을 전송 및 수신하기 위해 사용된다. 일부 실시예에서, 유저 I/O(34)는 터치스크린 입력을 포함할 수 있다. 앞서 설명된 바와 같이, 터치스크린은 정전식 터치스크린(capacitive touchscreen), 저항성 터치스크린(resistive touchscreen) 또는 플레이어로부터의 촉각 입력(tactile inputs)을 통해 유저 입력을 수신하도록 구성된 다른 유형의 터치스크린 기술일 수 있다. 디스플레이 I/O(36)는 플레이되고 있는 게임의 이미지를 디스플레이하는 데 사용되는 입력/출력 기능을 제공한다. 네트워크 I/O(38)는 네트워크에 대한 입력/출력 기능을 위해 사용된다. 네트워크 I/O(38)는 게임이 온라인으로 플레이되고 있거나 온라인으로 액세스되고 있을 때와 같이, 게임의 실행 중에 사용될 수 있다.
디스플레이 I/O(36)에 의해 생성된 디스플레이 출력 신호는 그래픽, 유저 인터페이스, 비디오 및/또는 다른 시각적 콘텐츠와 같은 디스플레이 디바이스 상에 컴퓨팅 디바이스(10)에 의해 생성된 시각적 콘텐츠를 디스플레이하기 위한 신호를 포함한다. 컴퓨팅 디바이스(10)은 디스플레이 I/O(36)에 의해 생성된 디스플레이 출력 신호를 수신하도록 구성된 하나 이상의 통합된 디스플레이를 포함할 수 있다. 일부 실시예에 따르면, 디스플레이 I/O(36)에 의해 생성된 디스플레이 출력 신호는 또한 컴퓨팅 디바이스(10) 외부의 하나 이상의 디스플레이 디바이스에 출력될 수 있다.
또한, 컴퓨팅 디바이스(10)은 클락(clock)(50), 플래시 메모리(flash memory)(52) 및 다른 구성 요소와 같은 게임과 함께 사용될 수 있는 다른 특징들을 포함할 수 있다. 오디오/비디오 플레이어(56)는 또한 무비와 같은 비디오 시퀀스(video sequence)를 플레이하는데 사용될 수 있다. 다른 구성 요소가 컴퓨팅 디바이스(10)에 제공될 수 있고, 당업자는 컴퓨팅 디바이스(10)의 다른 변형을 이해할 수 있음을 이해해야 한다.
프로그램 코드는 ROM(46), RAM(48) 또는 저장소(storage)(40)(이는 하드 디스크, 다른 자기 저장소(magnetic storage), 광학 저장소, 다른 비 휘발성 저장소 또는 이들의 조합 또는 변형을 포함할 수 있음)에 저장될 수 있다. 프로그램 코드의 적어도 일부는 저장소(40)에서, 프로그램 가능한 ROM(ROM, PROM, EPROM, EEPROM 등)에 저장될 수 있고, 및/또는 게임 매체(12)와 같은 이동식 매체(removable media)(CD-ROM, 카트리지(cartridge), 메모리 칩(memory chip) 등일 수 있거나, 필요에 따라 네트워크 또는 다른 전자 채널(electronic channel)을 통해 획득될 수 있음)에 저장될 수 있다. 일반적으로, 프로그램 코드는 유형의 비일시적 신호 베어링 매체(tangible non-transitory signal-bearing medium)로 구체화될 수 있다.
랜덤 액세스 메모리(RAM)(48)(및 가능하게는 다른 저장소)는 필요에 따라 변수 및 다른 게임 및 프로세서 데이터를 저장하는데 사용될 수 있다. RAM(48)은 사용되고, 애플리케이션의 실행 중에 생성되는 데이터를 보유하고, 그 일부는 프레임 버퍼(frame buffers), 애플리케이션 상태 정보, 및/또는 유저 입력을 해석하고 디스플레이 출력을 생성하는데 필요하거나 사용될 수 있는 다른 데이터를 위해 확보(reserved)될 수 있다. 일반적으로, RAM(48)은 휘발성 저장소이고, RAM(48) 내에 저장된 데이터는 컴퓨팅 디바이스(10)가 꺼지거나 전력을 잃을 때 손실될 수 있다.
컴퓨팅 디바이스(10)가 게임 매체(12)를 판독하고, 애플리케이션을 제공함에 따라, 정보는 게임 매체(12)로부터 판독될 수 있고 RAM(48)과 같은 메모리 디바이스에 저장될 수 있다. 또한, 저장소(40), ROM(46), 네트워크(미도시)를 통해 액세스된 서버 또는 이동식 저장소 매체(removable storage media)(44)로부터의 데이터가 판독되어 RAM(48)에 로드(loaded)될 수 있다. 데이터가 RAM(48)에서 발견되는 것으로 설명되었지만, 데이터는 RAM(48)에 저장될 필요가 없고 게임 매체(12) 및 저장소(40)와 같은 몇몇 매체들 사이에 분산되거나 처리 유닛(20)에 액세스 가능한 다른 메모리 저장될 수 있다.
반드시 모든 목적 또는 이점이 본 명세서에 설명된 임의의 특정 실시예에 따라 달성될 수 있는 것은 아님을 이해해야 한다. 따라서, 예를 들어, 당업자는 특정 실시예들이 본 명세서에서 교시되거나 제안될 수 있는 이점들 또는 다른 목적을 반드시 달성하지 않으면서 본 명세서에서 교시된 이점들의 그룹 또는 하나의 이점을 달성하거나 최적화하는 방식으로 동작하도록 구성될 수 있다는 것을 인식할 것이다.
본 명세서에 설명된 모든 프로세스는 하나 이상의 컴퓨터 또는 프로세서를 포함하는 컴퓨팅 시스템에 의해 실행되는 소프트웨어 코드 모듈(software code modules)을 통해 구현될 수 있으며 완전히 자동화될 수 있다. 코드 모듈은 임의의 유형의 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 또는 다른 컴퓨터 저장 디바이스(computer storage device)에 저장될 수 있다. 일부 또는 모든 방법은 특수한 컴퓨터 하드웨어로 구체화될 수 있다.
본 명세서에 설명된 것 이외의 많은 다른 변형이 이 발명으로부터 명백할 것이다. 예를 들어, 실시예에 따라, 본 명세서에 설명된 임의의 알고리즘의 특정 동작(acts), 이벤트 또는 함수(functions)는 상이한 시퀀스로 수행될 수 있고, 합산되거나, 병합되거나, 생략될 수 있다(예를 들어, 설명된 모든 동작(acts) 또는 이벤트는 알고리즘의 실행에 필요하지 않음). 또한, 특정 실시예에서, 동작 또는 이벤트는 예를 들어, 다중-스레드 처리(multi-threaded processing), 인터럽트 처리(interrupt processing), 또는 다중 프로세서(multiple processors) 또는 프로세서 코어(processor cores)를 통해 또는 순차적으로 수행되는 것이 아니라 다른 병렬 아키텍처(parallel architectures)를 통해 동시에 수행될 수 있다. 또한, 서로 다른 작업(tasks) 또는 프로세스가 함께 기능(function)할 수 있는 컴퓨팅 시스템 및/또는 상이한 머신에 의해 수행될 수 있다.
본 명세서에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록 및 모듈은 처리 유닛 또는 프로세서, 디지털 신호 프로세서(DSP: digital signal processor), 주문형 집적 회로(ASIC: application specific integrated circuit), 필드 프로그램 가능 게이트 어레이(FPGA: field programmable gate array) 또는 다른 프로그래머블 로직 디바이스(or other programmable logic device), 이산 게이트 또는 트랜지스터 로직(discrete gate or transistor logic), 이산 하드웨어 컴포넌트(discrete hardware components), 또는 본 명세서에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합 등과 같은 머신에 의해 구현되거나 수행될 수 있다. 프로세서는 마이크로프로세서(microprocessor)일 수 있지만, 대안적으로, 프로세서는 컨트롤러, 마이크로컨트롤러(microcontroller) 또는 상태 머신(state machine), 이들의 조합 등일 수 있다. 프로세서는 컴퓨터 실행 가능 명령어(computer-executable instructions)를 처리하도록 구성된 전기 회로를 포함할 수 있다. 다른 실시예에서, 프로세서는 컴퓨터 실행 가능 명령어들을 처리하지 않고 로직 동작들을 수행하는 FPGA 또는 다른 프로그램 가능한 디바이스를 포함한다. 또한 프로세서는 컴퓨팅 디바이스의 조합, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 결합된 하나 이상의 마이크로프로세서, 또는 임의의 다른 이러한 구성으로 구현될 수 있다. 본 명세서에서 주로 디지털 기술과 관련하여 설명되었지만, 프로세서는 또한 주로 아날로그 컴포넌트(analog components)를 포함할 수 있다. 예를 들어, 본원에 설명된 신호 처리 알고리즘의 일부 또는 전부는 아날로그 회로 또는 혼합 아날로그 및 디지털 회로로 구현될 수 있다. 컴퓨팅 환경은 예를 들어, 마이크로프로세서, 메인프레임 컴퓨터(mainframe computer), 디지털 신호 프로세서, 휴대용 컴퓨팅 디바이스, 디바이스 컨트롤러, 또는 어플라이언스(appliance) 내의 컴퓨팅 엔진(computational engine)을 기반으로 하는 컴퓨터 시스템을 포함하지만 이에 제한되지 않는 임의의 유형의 컴퓨터 시스템을 포함할 수 있다.
무엇보다, 달리 명시하지 않는 한, "할 수 있다(can)", "할 수 있을 것이다(could)", "일 것이다(might)" 또는 "일 수 있다(may)"와 같은 조건 언어(Conditional language)는, 구체적으로 다르게 기술되지 않은 한, 특정 실시예가 특정한 특징, 요소 및/또는 단계를 포함한다는 것 - 다른 실시예에서는 포함하지 않을 수 있지만 - 을 전달하기 위한 것으로 일반적으로 사용되는 컨텍스트 내에서 이해되어야 한다. 따라서, 그러한 조건 언어는 특징, 요소 및/또는 단계가 하나 이상의 실시예에 대해 어떤 방식으로든 요구된다는 것을 의미하는 것으로 일반적으로 의도된 것은 아니며, 이러한 특징, 요소 및/또는 단계가 어떤 특정 실시예에 포함되거나 어떤 특정 실시예에서 수행되는지, 유저 입력 또는 프롬프팅(prompting)을 가지거나 가지지 않고, 결정하기 위한 로직을 하나 이상의 실시예가 반드시 포함해야 한다는 것을 의미하는 것으로 일반적으로 의도된 것도 아니다.
달리 명시하지 않는 한, "X, Y 또는 Z 중 적어도 하나(at least one of X, Y, or Z)"와 같은 분리 언어(Disjunctive language)는 일반적으로 아이템, 용어 등이 존재한다는 것을 제시하는데 사용되는 컨텍스트와 함께 이해되며, X, Y 또는 Z, 또는 이들의 임의의 조합(예를 들어, X, Y 및/또는 Z) 일 수 있다. 따라서, 이러한 분리 언어는 특정 실시예가 X 중 적어도 하나, Y 중 적어도 하나 또는 Z 중 적어도 하나를 각각 존재(present)할 것을 요구한다는 것을 일반적으로 의미하도록 의도되지 않으며, 의미하지도 않는다.
본 명세서에 설명되거나 및/또는 첨부된 도면에 도시된 흐름도의 임의의 프로세스 설명, 구성 요소 또는 블록은, 프로세스에서 특정 논리 함수(specific logical functions) 또는 구성 요소를 구현하기 위한 하나 이상의 실행 가능한 명령어를 포함하는 모듈, 세그먼트 또는 코드의 부분들로 잠재적으로 나타내는 것으로서 이해되어야 한다. 당업자들이 이해할 수 있는 바와 같이, 관련된 기능(functionality)에 따라, 여기에 설명된 실시예들의 범위 내에 대안적인 구현들도 포함된다. 대안적인 구현들에서, 구성 요소(elements) 또는 기능(functions)은 삭제될 수도 있고, 실질적으로 동시에 수행되거나 또는 역순으로 수행되는 것을 포함하여, 도시되거나 설명된 순서와 다르게 수행될 수도 있다.
달리 명시하지 않는 한, "하나의(a)" 또는 "일(an)"과 같은 관사는 일반적으로 하나 이상의 설명된 아이템을 포함하도록 해석되어야 한다. 따라서, "~하도록 구성된 디바이스(a device configured to)"와 같은 문구는 하나 이상의 인용된 디바이스를 포함하도록 의도된다. 이러한 하나 이상의 열거된 디바이스는 명시된 기재 사항을 수행하도록 집합적으로 구성될 수도 있다. 예를 들어, "설명 A, B 및 C를 수행하도록 구성된 프로세서(a processor configured to carry out recitations A, B and C)"는 설명 B 및 C를 수행하도록 구성된 제2 프로세서와 함께 동작하는 설명 A를 수행하도록 구성된 제1 프로세서를 포함할 수 있다.
전술한 실시예에 많은 변형 및 수정이 이루어질 수 있으며, 구성 요소는 다른 허용 가능한 예시들 중 하나로 이해되어야 한다는 점을 강조해야 한다. 이러한 모든 수정 및 변형은 본 명세서의 범위 내에 포함되는 것으로 의도된다.

Claims (20)

  1. 하나 이상의 비디오 게임과 연관된 일반 플레이어 행동 모델(generic player behavior model)을 저장하는 데이터 저장소 - 상기 일반 플레이어 행동 모델은 복수의 게임플레이 상황의 각각에서 수행되는 게임 내 액션(in-game action)의 지시를 제공하도록 구성됨 - ; 및
    상기 데이터 저장소와 전자 통신하고, 컴퓨터 판독 가능한 명령을 실행하도록 구성된 컴퓨팅 시스템
    을 포함하고,
    상기 컴퓨터 판독 가능한 명령은 상기 컴퓨팅 시스템이:
    상기 일반 플레이어 행동 모델을 상기 데이터 저장소로부터 탐색하고 - 상기 일반 플레이어 행동 모델은, 제1 플레이어의 게임플레이 데이터에 대한 참조 없이, 하나 이상의 플레이어의 게임플레이 데이터에 기초한 탐색 전에 훈련되고, 상기 일반 플레이어 행동 모델은 복수의 레이어(layers)를 포함하는 기계 학습 모델임 - ;
    상기 제1 플레이어에 대한 게임플레이 데이터를 획득하고 - 상기 게임플레이 데이터는 비디오 게임의 복수의 게임 상태의 각각에서 상기 제1 플레이어에 의해 수행되는 게임 내 액션을 식별함 -;
    상기 일반 플레이어 행동 모델의 상기 복수의 레이어의 적어도 서브세트를, 상기 제1 플레이어와 연관된 커스텀 모델(custom model)에서 사용되는 프로즌 레이어(frozen layers)로 지정하고;
    상기 제1 플레이어에 대한 상기 게임플레이 데이터를 기초로 상기 커스텀 모델에 대한 하나 이상의 커스텀 레이어(custom layers)를 생성하고 - 상기 하나 이상의 커스텀 레이어는, 적어도 하나 이상의 게임 상태에서 상기 제1 플레이어에 의해 수행될 수 있는 게임 내 액션을 예측하기 위해, 상기 일반 플레이어 행동 모델의 상기 프로즌 레이어에 적어도 부분적으로 의존함 - ; 및
    상기 제1 플레이어와 연관된 훈련된 커스텀 모델을 저장하도록
    구성하고,
    상기 훈련된 커스텀 모델은,
    상기 하나 이상의 커스텀 레이어를 포함하고,
    상기 일반 플레이어 행동 모델의 상기 프로즌 레이어를 더 포함하거나 의존하되,
    상기 훈련된 커스텀 모델은,
    상기 비디오 게임의 게임 상태에 관한 데이터를 입력으로 수신하고, 상기 비디오 게임에서 수행되는 자동화된 액션을 출력하도록 구성되는
    시스템.
  2. 제1항에 있어서,
    상기 컴퓨팅 시스템은,
    비디오 게임 콘솔 시스템, 모바일 폰, 태블릿 디바이스, 또는 개인용 컴퓨터 중 어느 하나인,
    시스템.
  3. 제2항에 있어서,
    상기 컴퓨팅 시스템은,
    상기 하나 이상의 커스텀 레이어를 훈련하기에는 충분한 처리 능력을 가지지만,
    상기 일반 플레이어 행동 모델의 복잡도의 레벨을 갖는 모델을 완전히 훈련하기에 불충분한 처리 능력을 가지는,
    시스템.
  4. 제1항에 있어서,
    상기 훈련된 커스텀 모델에서의 상기 프로즌 레이어의 사용은,
    상기 제1 플레이어에 대한 상기 게임플레이 데이터에 나타나지 않는 입력 게임 상태가 제공될 때, 출력할 자동화된 액션을 상기 훈련된 커스텀 모델이 결정하도록 하는,
    시스템.
  5. 제1항에 있어서,
    상기 일반 플레이어 행동 모델은,
    제1 심층 신경망이고,
    상기 훈련된 커스텀 모델은,
    상기 제1 심층 신경망보다 더 많은 레이어를 포함하는 제2 심층 신경망인,
    시스템.
  6. 제5항에 있어서,
    상기 제2 심층 신경망의 레이어의 과반수는,
    상기 제1 심층 신경망으로부터의 프로즌 레이어이고,
    상기 하나 이상의 커스텀 레이어는,
    상기 제1 심층 신경망의 원래의 출력 레이어와 다른 새로운 출력 레이어
    를 포함하는 시스템.
  7. 제1항에 있어서,
    상기 컴퓨팅 시스템은,
    제2 플레이어의 제2 컴퓨팅 시스템 상에서 동작하는 게임 애플리케이션이 상기 제1 플레이어의 게임플레이를 모방하도록 하기 위하여,
    상기 제1 플레이어와 연관된 상기 커스텀 모델의 적어도 하나 이상의 커스텀 레이어를 상기 제2 플레이어의 상기 제2 컴퓨팅 시스템으로 제공하도록 더 구성되는
    시스템.
  8. 컴퓨터 구현(computer-implemented) 방법에 있어서,
    컴퓨터 하드웨어를 포함하는 컴퓨터 시스템의 제어 하에서, 상기 컴퓨터 시스템이:
    일반 플레이어 행동 모델을 획득하는 단계 - 상기 일반 플레이어 행동 모델은 비디오 게임의 복수의 플레이어의 게임플레이 데이터에 기초하여 훈련되고, 상기 일반 플레이어 행동 모델은 복수의 게임플레이 상황의 각각에서 수행되는 게임 내 액션의 지시를 제공하도록 구성됨 - ;
    제1 플레이어에 대한 게임플레이 데이터를 획득하는 단계 - 상기 게임플레이 데이터는 상기 비디오 게임의 복수의 게임 상태의 각각에서 상기 제1 플레이어에 의해 수행되는 게임 내 액션을 식별하고, 상기 제1 플레이어는 상기 일반 플레이어 행동 모델의 훈련과 연관된 상기 복수의 플레이어 중 하나가 아님 - ;
    상기 일반 플레이어 행동 모델의 복수의 부분을 상기 제1 플레이어와 연관된 커스텀 모델로 포함하는 단계 - 상기 복수의 부분은 각각 상기 일반 플레이어 행동 모델 내 레벨 또는 레이어를 포함함 - ;
    상기 제1 플레이어에 대한 상기 게임플레이 데이터를 기초로 상기 커스텀 모델에 대한 하나 이상의 커스텀 부분(custom portions)을 생성하는 단계 - 상기 하나 이상의 커스텀 부분을 생성하는 단계는, 특정 게임 상태에서 상기 제1 플레이어에 의해 수행될 수 있는 게임 내 액션을 예측하기 위해 상기 커스텀 모델을 훈련시키는 단계를 포함하고, 상기 훈련시키는 단계는, 상기 커스텀 모델로 포함된 상기 일반 플레이어 행동 모델의 상기 복수의 부분을 변경하지 않고 상기 하나 이상의 커스텀 부분을 반복적으로 업데이트하는 단계를 포함함 - ; 및
    상기 훈련시키는 단계 이후에 상기 커스텀 모델을 상기 제1 플레이어와 연관된 훈련된 커스텀 모델로 저장하는 단계
    를 포함하는 컴퓨터 실행가능한 명령으로 구성되고,
    상기 훈련된 커스텀 모델은,
    상기 하나 이상의 커스텀 부분을 포함하고,
    상기 일반 플레이어 행동 모델의 상기 복수의 부분을 더 포함하거나 의존하되,
    상기 훈련된 커스텀 모델은,
    상기 비디오 게임의 게임 상태에 관한 데이터를 입력으로 수신하고, 상기 비디오 게임에서 수행되는 자동화된 액션을 출력하도록 구성되는
    방법.
  9. 제8항에 있어서,
    상기 일반 플레이어 행동 모델은,
    심층 신경망
    을 포함하고,
    상기 일반 플레이어 행동 모델의 상기 복수의 부분의 각각은,
    상기 심층 신경망에서 서로 다른 레이어인,
    컴퓨터 구현 방법.
  10. 제8항에 있어서,
    상기 일반 플레이어 행동 모델은,
    스택형 모델(stackable model)이고,
    상기 일반 플레이어 행동 모델의 상기 복수의 부분의 각각은,
    상기 스택형 모델에서 서로 다른 레벨인,
    컴퓨터 구현 방법.
  11. 제10항에 있어서,
    입력으로 제1 게임 상태가 제공되는 상기 훈련된 커스텀 모델의 주어진 인스턴스(instance)에서,
    상기 훈련된 커스텀 모델은:
    상기 하나 이상의 커스텀 부분의 레벨이 상기 제1 게임 상태와 연관된 제1 자동화된 액션을 적어도 임계 신뢰도로 예측할 수 있는지 여부를 결정하고; 및
    상기 적어도 임계 신뢰도로 상기 제1 자동화된 액션을 예측하는 상기 하나 이상의 커스텀 부분의 레벨에 기초하여, 상기 주어진 인스턴스에서 상기 일반 플레이어 행동 모델의 어떤 부분도 고려하지 않고, 상기 제1 자동화된 액션이 상기 비디오 게임에서 수행되도록
    구성된 컴퓨터 구현 방법.
  12. 제8항에 있어서,
    판별기에게 상기 제1 플레이어의 액션이라고 보여지는 상기 커스텀 모델의 출력에 보상하는 생산적 적대 모방 학습(generative adversarial imitation learning)을 사용하여 훈련된 상기 판별기에 기초하여,
    상기 커스텀 모델에 대한 상기 하나 이상의 커스텀 부분을 업데이트하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  13. 제8항에 있어서,
    캐릭터가 상기 제1 플레이어의 제어하에 있는 것처럼 상기 비디오 게임의 인스턴스에서 행동하는 상기 비디오 게임의 상기 캐릭터의 제2 플레이어에 의한 선택을 수신하는 단계; 및
    상기 선택에 응답하여, 상기 제1 플레이어와 연관된 상기 커스텀 모델에 의해 결정되는 상기 비디오 게임의 상기 인스턴스 내에서 상기 캐릭터가 액션을 수행하게 하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  14. 비일시적 컴퓨터-판독 가능 저장 매체(non-transitory computer-readable storage medium)에 있어서,
    상기 비일시적 컴퓨터-판독 가능 저장 매체는,
    실행될 때, 컴퓨팅 시스템이 동작들을 수행하도록 구성하는 컴퓨터 판독가능 명령을 저장하고,
    상기 동작들은,
    일반 플레이어 행동 모델을 획득하는 동작 - 상기 일반 플레이어 행동 모델은 비디오 게임의 복수의 게임플레이 상황의 각각에서 수행되는 게임 내 액션의 지시를 제공하도록 구성됨 - ;
    제1 플레이어에 대한 게임플레이 데이터를 획득하는 동작 - 상기 게임플레이 데이터는 상기 비디오 게임의 복수의 게임 상태의 각각에서 상기 제1 플레이어에 의해 수행되는 게임 내 액션을 식별함 - ;
    상기 일반 플레이어 행동 모델의 복수의 부분을 상기 제1 플레이어와 연관된 커스텀 모델로 포함하는 동작 - 상기 복수의 부분은 각각 상기 일반 플레이어 행동 모델 내 레벨 또는 레이어를 포함함 - ;
    상기 제1 플레이어에 대한 상기 게임플레이 데이터를 기초로 상기 커스텀 모델에 대한 하나 이상의 커스텀 부분을 생성하는 동작 - 상기 하나 이상의 커스텀 부분을 생성하는 동작은, 특정 게임 상태에서 상기 제1 플레이어에 의해 수행될 수 있는 게임 내 액션을 예측하기 위해 상기 커스텀 모델을 훈련시키는 동작을 포함하고, 상기 훈련시키는 동작은, 상기 커스텀 모델로 포함된 상기 일반 플레이어 행동 모델의 상기 복수의 부분의 적어도 서브세트를 변경하지 않음 - ; 및
    상기 훈련시키는 동작 이후에 상기 커스텀 모델을 상기 제1 플레이어와 연관된 훈련된 커스텀 모델로 저장하는 동작
    을 포함하고,
    상기 훈련된 커스텀 모델은,
    상기 하나 이상의 커스텀 부분을 포함하고,
    상기 일반 플레이어 행동 모델의 상기 복수의 부분을 더 포함하거나 의존하되,
    상기 훈련된 커스텀 모델은,
    상기 비디오 게임의 게임 상태에 관한 데이터를 입력으로 수신하고 상기 비디오 게임에서 수행되는 자동화된 액션을 출력하도록 구성되는
    비일시적 컴퓨터-판독 가능 저장 매체.
  15. 제14항에 있어서,
    상기 동작들은,
    다른 플레이어의 게임플레이를 모방하도록 각각 구성된 복수의 커스텀 모델을 생성하는 동작
    을 더 포함하고,
    상기 복수의 커스텀 모델의 각각은,
    서로 상기 일반 플레이어 행동 모델의 동일한 부분
    을 포함하는 비일시적 컴퓨터-판독 가능 저장 매체.
  16. 제15항에 있어서,
    상기 동작들은,
    실제 플레이어 경쟁자를 상대로 한 게임플레이에서 상기 복수의 커스텀 모델의 각각에 의해 제어되는 캐릭터의 상기 비디오 게임에서의 캐릭터 성공을 추적하는 동작
    을 더 포함하는 비일시적 컴퓨터-판독 가능 저장 매체.
  17. 제16항에 있어서,
    상기 동작들은,
    상기 복수의 커스텀 모델 중 모델의 순위를 생성하는 동작
    을 더 포함하고,
    상기 순위는,
    실제 게임플레이에서 상기 모델의 적어도 서브세트의 각각의 상대적인 게임 내 성공(relative in-game success)을 지시하는,
    비일시적 컴퓨터-판독 가능 저장 매체.
  18. 제14항에 있어서,
    상기 동작들은,
    상기 비디오 게임 내에서 훈련 환경을 실행하는 동작
    을 더 포함하고,
    상기 훈련 환경은,
    플레이어 상호 작용을 위해 간소화된 게임 상태를 제공하고,
    상기 커스텀 모델에 대한 상기 하나 이상의 커스텀 부분을 생성하기 위한 훈련 데이터는,
    상기 훈련 환경을 가진 상기 제1 플레이어로부터 수신되는 제어 입력에 기초하여 수집되는
    비일시적 컴퓨터-판독 가능 저장 매체.
  19. 제18항에 있어서,
    상기 훈련 환경 내에 제공된 게임 상태의 복잡도는,
    시간이 지남에 따라 증가하는
    비일시적 컴퓨터-판독 가능 저장 매체.
  20. 제14항에 있어서,
    상기 훈련된 커스텀 모델은,
    결정 트리, 마르코프 모델(Markov model), 또는 심층 신경망 중 적어도 하나를 포함하는
    비일시적 컴퓨터-판독 가능 저장 매체.
KR1020200080585A 2019-07-02 2020-06-30 비디오 게임에서 플레이어 게임플레이를 모방하기 위한 커스텀 모델 KR102360420B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/460,871 2019-07-02
US16/460,871 US10940393B2 (en) 2019-07-02 2019-07-02 Customized models for imitating player gameplay in a video game

Publications (2)

Publication Number Publication Date
KR20210003687A true KR20210003687A (ko) 2021-01-12
KR102360420B1 KR102360420B1 (ko) 2022-02-09

Family

ID=73918839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200080585A KR102360420B1 (ko) 2019-07-02 2020-06-30 비디오 게임에서 플레이어 게임플레이를 모방하기 위한 커스텀 모델

Country Status (3)

Country Link
US (1) US10940393B2 (ko)
KR (1) KR102360420B1 (ko)
CN (1) CN112169339B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220138105A (ko) * 2021-04-05 2022-10-12 주식회사 지지큐컴퍼니 리그 오브 레전드 게임의 전장 내의 챔피언을 자동으로 플레이하는 봇의 행동을 결정하는 방법 및 이를 수행하는 컴퓨팅 시스템

Families Citing this family (28)

* 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
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
US11291919B2 (en) * 2017-05-07 2022-04-05 Interlake Research, Llc Development of virtual character in a learning game
US10713543B1 (en) 2018-06-13 2020-07-14 Electronic Arts Inc. Enhanced training of machine learning systems based on automatically generated realistic gameplay information
US11276216B2 (en) 2019-03-27 2022-03-15 Electronic Arts Inc. Virtual animal character generation from image or video data
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
US10933327B2 (en) * 2019-03-29 2021-03-02 Electronic Arts Inc. Network-based video game editing and modification distribution system
JP6985337B2 (ja) * 2019-07-10 2021-12-22 株式会社スクウェア・エニックス ゲームプログラム及びゲームシステム
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
US20210081498A1 (en) * 2019-09-17 2021-03-18 Disney Enterprises, Inc. Artificial intelligence-based roleplaying experiences based on user-selected scenarios
US11260306B2 (en) * 2020-04-23 2022-03-01 Electronic Arts Inc. Matchmaking for online gaming with simulated players
US11241622B2 (en) * 2020-05-05 2022-02-08 Electronic Arts Inc. Autoplayers for filling and testing online games
US11446570B2 (en) * 2020-05-08 2022-09-20 Electronic Arts Inc. Automated test multiplexing system
US11420115B2 (en) * 2020-09-21 2022-08-23 Zynga Inc. Automated dynamic custom game content generation
US11738272B2 (en) 2020-09-21 2023-08-29 Zynga Inc. Automated generation of custom content for computer-implemented games
US11465052B2 (en) 2020-09-21 2022-10-11 Zynga Inc. Game definition file
US11291915B1 (en) 2020-09-21 2022-04-05 Zynga Inc. Automated prediction of user response states based on traversal behavior
US11318386B2 (en) 2020-09-21 2022-05-03 Zynga Inc. Operator interface for automated game content generation
US11565182B2 (en) 2020-09-21 2023-01-31 Zynga Inc. Parametric player modeling for computer-implemented games
US11806624B2 (en) 2020-09-21 2023-11-07 Zynga Inc. On device game engine architecture
CN113144605B (zh) * 2021-03-04 2024-03-08 百果园技术(新加坡)有限公司 一种用户行为模拟方法、装置、电子设备及存储介质
US20220355211A1 (en) * 2021-05-04 2022-11-10 Sony Interactive Entertainment Inc. Controller action recognition from video frames using machine learning
CN116322916A (zh) * 2021-05-26 2023-06-23 谷歌有限责任公司 用于人工智能的高效游戏玩法训练
US20230109792A1 (en) 2021-10-13 2023-04-13 Nlevel Software Llc Software path prediction via machine learning
US20230381652A1 (en) * 2022-05-31 2023-11-30 Sony Interactive Entertainment LLC Cooperative and coached gameplay
US11887367B1 (en) 2023-04-19 2024-01-30 OpenAI Opco, LLC Using machine learning to train and use a model to perform automatic interface actions based on video and input datasets

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090092007A (ko) * 2008-02-26 2009-08-31 한국전자통신연구원 게임 캐릭터의 사용자 조작 패턴 학습 방법 및 장치
KR20130118433A (ko) * 2012-04-20 2013-10-30 (주)네오위즈게임즈 게임 자동 플레이 제어 방법 및 장치
US20140274370A1 (en) * 2013-03-13 2014-09-18 Sunil C. Shah Highly Interactive Online Multiplayer Video Games
KR101603681B1 (ko) * 2014-11-12 2016-03-16 세종대학교산학협력단 게임 플레이 데이터의 모방에 기반한 게임 캐릭터의 인공지능 생성 시스템 및 방법

Family Cites Families (48)

* 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
CN1869997A (zh) 1995-02-13 2006-11-29 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
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
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
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
JP4439572B2 (ja) 2008-07-11 2010-03-24 任天堂株式会社 ディジタルデータ補正プログラムおよびディジタルデータ補正装置
WO2010111705A2 (en) 2009-03-27 2010-09-30 Infomotion Sports Technologies, Inc. Monitoring of physical training events
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
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
KR101217361B1 (ko) 2011-09-08 2012-12-31 (주)네오위즈게임즈 스포츠 게임의 캐릭터 정보 관리 방법 및 장치
US8888601B2 (en) 2012-05-24 2014-11-18 Sap Ag Player segmentation based on predicted player interaction score
US9616329B2 (en) 2012-06-28 2017-04-11 Electronic Arts Inc. Adaptive learning system for video game enhancement
US20150142507A1 (en) 2013-11-21 2015-05-21 Ana Maria Tuta Osman Recommendation system for specifying and achieving goals
GB2585310B (en) 2014-05-21 2021-03-31 Tangible Play Inc Virtualization of tangible interface objects
US9789406B2 (en) 2014-07-03 2017-10-17 Activision Publishing, Inc. System and method for driving microtransactions in multiplayer video games
US9675889B2 (en) 2014-09-10 2017-06-13 Zynga Inc. Systems and methods for determining game level attributes based on player skill level prior to game play in the level
US10105603B2 (en) 2015-11-13 2018-10-23 Zynga Inc. Automated tuning of computer-implemented games
US20170185921A1 (en) * 2015-12-28 2017-06-29 Cloudbrain Inc. System and method for deploying customized machine learning services
US9919217B2 (en) 2016-03-08 2018-03-20 Electronic Arts Inc. Dynamic difficulty adjustment
US10226708B2 (en) * 2016-06-30 2019-03-12 Electronic Arts Inc. Interactive gameplay playback system
CN106213306A (zh) * 2016-07-27 2016-12-14 河南省淇县永达食业有限公司 一种藕片鸡皮速冻调理制品的制作方法
US10478730B1 (en) 2016-08-25 2019-11-19 Electronic Arts Inc. Computer architecture for simulation of sporting events based on real-world data
RU2719454C1 (ru) 2016-12-09 2020-04-17 Юнити Ипр Апс Системы и способы для создания, трансляции и просмотра 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
US11043071B2 (en) * 2017-03-20 2021-06-22 Konami Gaming, Inc. Casino management networked computer system and methods of operating same
US20190042743A1 (en) * 2017-12-15 2019-02-07 Intel Corporation Malware detection and classification using artificial neural network
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
CN109359120A (zh) * 2018-11-09 2019-02-19 阿里巴巴集团控股有限公司 一种模型训练中的数据更新方法、装置及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090092007A (ko) * 2008-02-26 2009-08-31 한국전자통신연구원 게임 캐릭터의 사용자 조작 패턴 학습 방법 및 장치
KR20130118433A (ko) * 2012-04-20 2013-10-30 (주)네오위즈게임즈 게임 자동 플레이 제어 방법 및 장치
US20140274370A1 (en) * 2013-03-13 2014-09-18 Sunil C. Shah Highly Interactive Online Multiplayer Video Games
KR101603681B1 (ko) * 2014-11-12 2016-03-16 세종대학교산학협력단 게임 플레이 데이터의 모방에 기반한 게임 캐릭터의 인공지능 생성 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220138105A (ko) * 2021-04-05 2022-10-12 주식회사 지지큐컴퍼니 리그 오브 레전드 게임의 전장 내의 챔피언을 자동으로 플레이하는 봇의 행동을 결정하는 방법 및 이를 수행하는 컴퓨팅 시스템
WO2022215874A3 (ko) * 2021-04-05 2023-05-25 (주)에이엄 리그 오브 레전드 게임의 전장 내의 챔피언을 자동으로 플레이하는 봇의 행동을 결정하는 방법 및 이를 수행하는 컴퓨팅 시스템

Also Published As

Publication number Publication date
CN112169339B (zh) 2024-04-19
CN112169339A (zh) 2021-01-05
US10940393B2 (en) 2021-03-09
KR102360420B1 (ko) 2022-02-09
US20210001229A1 (en) 2021-01-07

Similar Documents

Publication Publication Date Title
KR102360420B1 (ko) 비디오 게임에서 플레이어 게임플레이를 모방하기 위한 커스텀 모델
KR102397507B1 (ko) 비디오 게임에서 자동 플레이어 제어의 인계
KR102291044B1 (ko) 멀티 플레이어 비디오 게임 매치 메이킹 최적화
KR102127670B1 (ko) 멀티플레이어 비디오 게임 매치메이킹 시스템 및 방법들
US11110353B2 (en) Distributed training for machine learning of AI controlled virtual entities on video game clients
CN108463273B (zh) 基于游戏者的移动历史来进行非游戏者角色的路径寻找的游戏系统
US11724191B2 (en) Network-based video game editing and modification distribution system
KR102258278B1 (ko) 시즌별 보상 분배 시스템
US11305193B2 (en) Systems and methods for multi-user editing of virtual content
US20140370992A1 (en) Player substitution to preserve team balance
CN111744173A (zh) 动态流式传输视频游戏客户端
US10926173B2 (en) Custom voice control of video game character
US11816772B2 (en) System for customizing in-game character animations by players
US11433300B2 (en) Request distribution system
EP3769826A1 (en) System for managing user experience and method therefor
US11666826B2 (en) Modifying gameplay parameters

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right