KR101265051B1 - 게임 사용자 수준에 따른 npc ai제공방법 - Google Patents

게임 사용자 수준에 따른 npc ai제공방법 Download PDF

Info

Publication number
KR101265051B1
KR101265051B1 KR1020120057788A KR20120057788A KR101265051B1 KR 101265051 B1 KR101265051 B1 KR 101265051B1 KR 1020120057788 A KR1020120057788 A KR 1020120057788A KR 20120057788 A KR20120057788 A KR 20120057788A KR 101265051 B1 KR101265051 B1 KR 101265051B1
Authority
KR
South Korea
Prior art keywords
game
level
npc
user
game user
Prior art date
Application number
KR1020120057788A
Other languages
English (en)
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 주식회사 쏘그웨어
Priority to KR1020120057788A priority Critical patent/KR101265051B1/ko
Priority to PCT/KR2012/004306 priority patent/WO2013180322A1/ko
Application granted granted Critical
Publication of KR101265051B1 publication Critical patent/KR101265051B1/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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/795Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for finding other players; for building a team; for providing a buddy list
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/798Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for assessing skills or for ranking players, e.g. for generating a hall of fame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/833Hand-to-hand fighting, e.g. martial arts competition
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/558Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history by assessing the players' skills or ranking
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 게임 사용자의 게임 능력 수준 따라 다양한 수준의 인공지능 NPC를 적용하여 제공하는 게임 사용자 수준에 따른 NPC AI 제공방법에 관한 것으로, 게임 특성에 맞는 수준의 레벨을 결정하는 단계, 상기 게임 사용자의 게임 레벨을 결정 및 게임 패턴에 따른 데이터를 저장하는 단계, 상기 게임 사용자의 게임 레벨에 따른 NPC AI의 레벨을 결정하는 단계, 상기에서 저장된 데이터 및 결정된 NPC AI의 레벨에 따라 NPC AI에 대한 파라미터를 생성하는 단계, 및 상기에서 생성된 파라미터를 게임에 적용하여 사용자 수준에 따른 NPC AI를 제공하는 단계를 포함을 제공한다.

Description

게임 사용자 수준에 따른 NPC AI제공방법{METHOD FOR PROVIDING NON PLAYER CHARACTER ARTIFICIAL INTELLIGENCE ACCORDING TO GAME USER LEVEL}
본 발명은 게임 사용자 수준에 따른 NPC AI 제공방법에 관한 것으로, 더욱 상세하게는 게임 사용자의 게임 능력 수준 따라 다양한 수준의 인공지능 NPC를 적용하여 제공하는 게임 사용자 수준에 따른 NPC AI 제공방법에 관한 것이다.
일반적으로, 게임에서 NPC의 역할은 다양하게 있다. 그 중 가장 중요한 것은 게임 사용자의 상대방 역할을 수행하는 것이다. 게임 개발자들은 인공지능 기법을 이용하여 등장 캐릭터의 지능적인 행동을 구현하여왔다. 게임유저는 게임에서 상대방이 서툰 행동을 하는 것을 원하지 않는다. 비록 게임의 상대방이 서툰 행동을 하여 게임에 이겼다고 해도 그 즐거움이 크지 않기 때문이다. 오히려, 게임에 흥미를 잃고 쉽게 싫증을 내기 쉽다.
예를 들어, 대전 액션 게임에서 게이머가 조종하는 캐릭터가 멀리 있는데 상대방 캐릭터가 다가오지 않고 멀리서 엉뚱한 행동만 하고 있다면 게임 사용자는 게임에 흥미를 잃거나 게임을 지루해 할 것이다.
그래서, 많은 게임 사용자는 상대방의 캐릭터가 또는 몹이 지능적으로 행동하길 원하고 이를 요구해오고 있다.
게임에서 사용되는 인공지능 기법은 FSM(Finite State Machine), FuSM(Fuzzy State Machine)와 같은 전통적인 기법에서부터, 인공생명, 신경망 등에 이르기까지 다양한 기법이 있다.
이와 같은 방법을 사용한다 하더라도 결국에는 게임 개발자가 기획자의 의도에 맞추어 일일이 코딩작업으로 NPC AI를 구현해야 했다.
관련 선행기술로는 한국공개특허 제2010-0104898호(공개일:2010.09.29., 명칭: 게임 밸런싱을 위한 프리셋 조절 방법 및 런타임 게임 밸런싱 조절 방법) 가 있다.
본 발명은 게임을 플레이하는 게임 사용자의 수준에 따라 게임 사용자와 겨루는 NPC의 레벨을 조절하는 사용자 수준에 따른 NPC AI 제공방법을 제공하기 위한 것이다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않는다.
상기 과제를 달성하기 위한 본 발명의 사용자 수준에 따른 NPC AI 제공방법은, 유전자 알고리즘(Genetic Algorithm)을 이용하여 게임 사용자 수준에 따른 NPC AI(Non Player Character Artificial Intelligence) 생성 방법에 있어서, 게임 특성에 맞는 수준의 레벨을 결정하는 단계; 상기 게임 사용자의 게임 레벨을 결정 및 게임 패턴에 따른 데이터를 저장하는 단계; 상기 게임 사용자의 게임 레벨에 따른 NPC AI의 레벨을 결정하는 단계; 상기에서 저장된 데이터 및 결정된 NPC AI의 레벨에 따라 NPC AI에 대한 파라미터를 생성하는 단계; 및 상기에서 생성된 파라미터를 게임에 적용하여 사용자 수준에 따른 NPC AI를 제공하는 단계;를 포함할 수 있다.
구체적으로, 상기 게임 패턴은 게임 사용자가 제어하는 캐릭터의 행동 및 게임의 상태를 포함할 수 있다.
또한, 상기 게임 레벨은 NPC의 점수, 게임 사용자의 점수, NPC가 게임 사용자에게 입힌 데미지, 게임 사용자가 NPC에 입힌 데미지, NPC의 적중률, 및 게임 사용자의 적중률 중 어느 하나 이상으로 결정될 수 있다.
또한, 상기 NPC AI에 대한 파라미터를 생성하는 생성방법은, 상기 NPC AI에서 수준을 변경할 수 있는 파라미터를 선정하는 단계; 상기에서 선정한 파라미터를 초기화하는 단계; 상기에서 저장된 게임 사용자의 게임 패턴에 따른 데이터와 게임 특성에 맞는 수준의 레벨의 적합도를 계산하는 단계; 상기 적합도에 비례하여 임의로 부모를 선택하여 유전 연산자(Genetic Operator)에 의해 파라미터를 연산하는 단계; 및 상기 적합도가 미리 설정한 값 이상이면, 연산된 파라미터를 생성하는 단계;를 포함할 수 있다.
또한, 상기 파라미터는 NPC를 지능적으로 행동시키기 위해 가변되는 값 또는 정보를 의미할 수 있다.
또한, 상기 적합도가 미리 설정한 값 미만이면, 적합도가 미리 설정한 값 이상이 될 때까지 반복하여 파라미터 연산을 수행하는 단계;를 더 포함할 수 있다.
또한, 상기에서 임의로 부모를 선택하는 방법은, 적합도 비례 선택법, 룰렛 선택법, 기대치 선택법, 순위 선택법, 및 토너먼트 선택법 중 어느 하나 이상을 이용하여 선택될 수 있다.
또한, 상기 유전 연산자는 교배(crossover), 돌연변이(Mutation), 역위(Inversion), 치환(Displacement), 중복(Duplication), 추가(Addition), 제거(Deletion) 중 어느 하나 이상을 채택할 수 있다.
이상에서 설명한 바와 같이 본 발명은 게임 개발자가 모든 케이스의 경우에 대한 알고리즘을 구현하지 않음으로 개발 시간이 단축되는 효과가 있다.
본 발명은 게임 사용자의 수준에 따른 인공지능적인 NPC를 제공하여 게임 사용자의 흥미를 유발할 수 있는 효과가 있다.
본 발명은 게임 사용자의 수준에 NPC를 맞추지 않더라도 다양한 경우의 NPC 행동을 생성하여 얻을 수 있어 많은 게임 사용자에게 다양한 행동 패턴을 갖는 NPC를 제공할 수 있는 효과가 있다.
또한 게임 개발 단계에도 적용 가능하여, 게임 개발 시 다양한 수준의 NPC를 쉽고 빠르게 만들어 게임에 포함시킬 수 있다.
도 1은 본 발명의 실시예에 따른 게임 사용자 수준에 따른 NPC AI 제공방법을 나타낸 흐름도이다.
도 2는 본 발명의 실시예에 따른 게임 사용자 수준에 따른 NPC AI 제공방법의 NPC AI 생성방법을 나타낸 흐름도이다.
도 3은 도 2의 NPC AI 생성방법에 있어서 선택될 수 있는 파라미터들의 예시를 나타낸 도면이다.
도 4는 교배연산을 나타낸 도면이다.
도 5는 본 발명의 실시예를 설명하기 위한 이미지이다.
도 6는 도 5의 실시예에 따른 선택될 수 있는 파라미터들의 예시를 나타낸 도면이다.
도 7은 개체의 적합도에 대한 일 실시예를 나타낸 그래프이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다. 도면들 중 동일한 구성요소들은 가능한 어느 곳에서든지 동일한 부호로 표시한다. 또한 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 게임 사용자 수준에 따른 NPC AI 제공방법을 나타낸 흐름도로서, 게임 사용자 수준에 따른 NPC AI 제공방법은 다음과 같다.
여기서, NPC AI(Non Player Character Artificial Intelligence)는 플레이어가 없는 인공지능형 캐릭터를 의미하며, 이하에서 'NPC AI'로 칭한다.
먼저, 게임 특성에 맞는 수준의 레벨이 결정된다(S110). 이때, 게임마다 수준을 결정하는 기준이 상이하기 때문에 각 게임의 특성에 맞게 수준을 결정하게 되며, 게임 특성에 맞는 수준은 개발자에 의해 결정될 수 있다.
즉, 어떤 게임은 100점이 높은 점수에 속할 수 있으나, 어떤 게임은 100점이 낮은 점수에 속할 수 있기 때문에 각 게임에 해당하는 기준으로 레벨을 결정할 수 있는 기준을 정함이 바람직하다.
이하의 [표 1]은 임의의 게임에 대한 실시예에 따른 수준의 레벨을 나열한 것이다.
<-200 -199 ~ -100 -99 ~ 100 101~200 >201
매우 낮은 레벨 낮은 레벨 동등한 레벨 높은 레벨 매우 높은 레벨
예를들어, 상기 표 1과 같이, 어떠한 게임에서 -200보다 작은 포인트를 획득한 경우 매우 낮은 레벨로 분류하고, -199 내지 -100사이의 포인트를 획득한 경우 낮은 레벨로 분류하며, -99 내지 100은 NPC와 동등한 레벨로 분류하고, 101 내지 200은 NPC보다 높은 레벨, 201이상은 매우 높은 레벨로 분류 될 수 있다.
본 발명의 실시예에서는 5개의 분류로 구분하였으나, 게임의 종류나 개발자에 따라 3개 내지 10개의 분류로 구분할 수도 있다.
이어, 상기 게임 사용자의 게임 레벨을 결정 및 게임 패턴에 따른 데이터를 저장한다(S120). 이때, 게임 사용자의 게임 레벨은 NPC의 점수, 게임 사용자의 점수, NPC가 게임 사용자에게 입힌 데미지, 게임 사용자가 NPC에 입힌 데미지, NPC의 적중률, 및 게임 사용자의 적중률 중 어느 하나 이상으로 결정하며, 게임 레벨로 사용자의 게임 수준을 나타낼 수 있다.
즉, 게임 사용자의 게임 레벨은 게임 사용자가 일정 시간동안 게임을 플레이하면서 얻어진 결과로 상기 S110에서 결정된 수준의 레벨 분류에 따라 결정될 수 있다.
또한, 게임 패턴은 게임 사용자가 제어하는 캐릭터의 게임 행동 및 게임 상태를 포함할 수 있다.
여기서, 사용자의 게임 행동은 사용자가 게임 상에서 행했던 모든 조작 또는 게임 사용자 캐릭터의 행동들을 나타내며, 게임 상태는 게임에서 사용자가 조작하는 캐릭터를 제외한 모든 정보를 포함한다.
게임 사용자의 게임 패턴에 따른 데이터를 저장하는 단계에서는 게임 사용자는 기본 NPC와 겨루게 되고, 미리 설정된 시간 동안의 게임 패턴을 저장함이 바람직하다.
이어, 상기 게임 사용자의 게임 레벨에 따른 NPC AI의 레벨을 결정한다(S130). 이때, 게임 사용자의 상기 게임 레벨을 통해 NPC AI의 레벨을 게임 사용자보다 낮은 레벨 수준으로 할지, 게임 사용자와 동등한 레벨 수준으로 할지, 게임 사용자보다 높은 레벨 수준으로 할지 NPC AI의 레벨을 결정한다.
이 단계에서 결정되는 NPC AI의 레벨을 통해 게임 사용자 수준에 맞는 NPC AI를 결정할 수 있다.
또한, 이 단계에서 결정되는 NPC AI의 레벨은 게임 사용자의 레벨을 미리 알기 전에 게임 사용자와 동등한 레벨을 가질지, 약한 레벨을 가질지, 강한 레벨을 가질지는 상기 S120 단계 이전에 결정될 수도 있다.
이어, 상기에서 저장된 데이터 및 결정된 NPC AI의 레벨에 따라 NPC AI에 대한 파라미터를 생성한다(S140). 이때, 파라미터는 지능형 NPC를 행동할 수 있도록 부여되는 값으로, NPC를 지능적으로 행동시키기 위해 가변되는 값 또는 정보들을 의미한다.
여기서, NPC AI에 대한 파라미터를 생성하는 생성방법은 하기에서 다시 설명하기로 한다.
마지막으로, 상기에서 생성된 파라미터를 게임에 적용하여 사용자 수준에 따른 NPC AI를 제공한다(S150). 이때, 게임에 적용된 NPC AI는 설정된 레벨에 맞춰져
도 2에 도시한 바와 같이, NPC AI에 대한 파라미터를 생성하는 생성방법(S140)은 하기와 같다.
먼저, 상기 NPC AI에서 수준을 변경할 수 있는 파라미터를 선정한다(S141). 이때, 파라미터는 도 3에 도시한 바와 같이, FSM(Finite State Machine)와 같이 구현되어 있을 때, 거리를 나타내는 파라미터나, 공격 시간을 나타내는 파라미터와 같이 변경이 가능한 파라미터를 변경이 가능한 파라미터를 선정할 수 있다.
도 3에서는 거리, 공격시간을 나타냈으나 공격횟수, 힘의 세기와 같이 수치적인 파라미터들을 선정할 수 있다.
이어서, 상기에서 선정한 파라미터를 초기화한다(S142).이때, 파라미터의 초기화는 유전자 알고리즘에서의 각 개체의 초기화를 의미한다. 본 발명에서의 개체에는 앞 단계에서 선정한 파라미터들이 포함되어 있다. 미리 선정한 개체군의 개수만큼 개체를 생성한 다음 각 개체에 포함되는 파라미터의 값을 미리 정의한 값 또는 랜덤 값으로 초기화 한다.
이어서, 상기에서 저장된 게임 사용자의 게임 패턴에 따른 데이터와 게임 특성에 맞는 수준의 레벨의 적합도를 계산한다(S143). 이때, 적합도를 계산하는 방법은 다음과 같다.
먼저, 게임 사용자의 일정 시간의 행동을 저장한 데이터를 입력하면 게임을 실행하여 앞 단계에서 선정한 수준를 결정하는 기준의 값을 계산하는 함수를 만든다.
이 함수에는 게임 동작에 수반하는 그래픽, 사운드, 네트워크 등의 요소는 포함할 필요는 없고, 단지 기준의 값만을 계산할 수 있으면 된다.
이와 같은 함수가 만들어졌다면, 저장한 게임 사용자의 일정 시간의 행동을 저장한 데이터와 각 개체의 값을 기준의 값을 계산하는 함수에 반영하여 결과값을 계산한다. 이 결과값을 [표 1]과 같은 수준의 레벨과 만들고자 하는 AI 수준의 레벨을 비교하여, 만들고자 하는 AI의 단계와의 차이에 반비례하여 적합도를 선정한다.
이어서, 상기 적합도에 비례하여 임의로 부모를 선택하여 유전 연산자(Genetic Operator)에 의해 파라미터를 연산한다(S144). 여기서, 부모라 함은 다음 세대의 자식을 선택하기 위해 선택된 두 개체를 의미한다.
상기에서 임의로 부모를 선택하는 방법은, 적합도 비례 선택법, 룰렛 선택법, 기대치 선택법, 순위 선택법, 및 토너먼트 선택법 중 어느 하나 이상을 이용하여 선택되며, 적합도에 비례하여 임의로 부모를 선택한다는 의미는 적합도 비례 선택법을 사용하여 부모를 선택하였다는 의미이다.
또한, 유전자 연산자는 교배(crossover), 돌연변이(Mutation), 역위(Inversion), 치환(Displacement), 중복(Duplication), 추가(Addition), 제거(Deletion) 중 어느 하나 이상을 채택하여 파라미터를 연산한다.
상기 유전자 연산자 중 교배 및 돌연변이에 대해 간단히 설명하면 다음과 같다.
교배는 2개의 파라미터간에 염색체를 부분적으로 서로 바꿈으로써 새로운 개체를 생성하는 것이다. 이 때 부모의 형질이 자손에게 적절히 계승되어야 하며 이것을 형질 유전성 (character preservingness) 또는 교배 근접(crossover neighborhood)이라 하며, 도 4와 같이, 1 포인트 교배는 임의의 위치를 선정한 후 내용을 교환하는 방법이고, 2 포인트 교배는 임의의 두 위치를 선정한 후 사이의 내용을 교환하는 방법을 나타낸다.
이와 같이 서로의 위치를 바꿈으로써 새로운 파라미터(개체)를 생성하게 된다.
돌연변이는 개체의 각 유전자좌의 유전자에 대하여 일정한 돌연변이 확률을 적용하여 대립 유전자의 값으로 바꾸는 것이다. 개체에 근접한 새로운 개체를 생성하는 국소적인 랜덤 탐색의 일종이다. 또한 집단에서 잃어버린 유전형질을 복구하여 다양성을 유지하기 위한 수단으로도 사용된다.
그리고, 상기 적합도가 미리 설정한 값 이상이면, 연산된 파라미터를 생성한다(S145). 이때, 적합도가 미리 설정한 값 미만이면, 적합도가 미리 설정한 값 이상이 될 때까지 반복하여 파라미터 연산을 수행한다.
[실시예]
일반적으로 알려져 있는 게임 스트리트 파이터와 같은 2인 대전 액션 게임을 통해 상기와 같은 본 발명의 내용을 적용하여 설명하면 다음과 같다.
도 5와 같이, 게임 스트리트 파이터를 실행하고 다음과 같은 가정을 한다.
(이때, 도 5에 도시된 게임 스트리트 파이터는 저작권이 있는 게임이나, 본 발명의 설명을 돕고자 채택하였습니다.)
첫째, 좌측의 남자 캐릭터는 게임 사용자가 컨트롤하는 캐릭터이고, 우측의 여자 캐릭터는 NPC이다.
둘째, 각 캐릭터의 체력 게이지는 0부터 100이로, 0이 되면 KO패이다.
셋째, NPC는 FSM으로 구현되었다.
넷째, 게임 사용자의 캐릭터인 남자 캐릭터는 NPC인 여자 캐릭터보다 기술이 떨어지며, 여자 캐릭터로부터 많은 데미지를 입는다.
다섯째, NPC의 캐릭터를 게임 사용자와 동등한 수준으로 낮춘 AI를 원한다.
상기와 같은 가정으로 게임 사용자 수준에 따른 NPC AI를 제공하기 위해 먼저, 타겟 게임의 특성에 맞추어 수준의 레벨을 결정한다. 이때, 일정 시간 동안 대결 후 남은 NPC의 체력을 기준으로 3단계로 구분하면 아래의 [표 2]와 같다.
<-50 -49 ~ 50 >51
낮은 수준 보통 수준 높은 수준
이후, 일정시간 동안 게임 사용자의 게임 플레이를 통해 게임 레벨을 결정하고 게임 패턴을 저장한다. 여기서, 게임 레벨은 일정시간동안 대결 후, NPC의 남은 체력 - 게임 사용자의 남은 체력으로 차가 40인 경우 게임 사용자는 보통 수준에 해당하며, 가정에서 게임 사용자와 동등한 수준을 원하기 때문에 게임 사용자의 레벨에 따라 상기 3단계 중 보통 수준으로 결정된다.
상기와 같은 정보를 이용하여 NPC AI를 생성하면, NPC AI의 수준에 영향을 줄 수 있는 파라미터를 선정한다. 이때, 도 6를 통해 NPC AI의 수준에 영향을 줄 수 있는 2, 5, 3 등의 숫자로 파라미터를 표현할 수 있다.
표현된 파라미터로 초기값(2, 5, 3)으로 초기화 할 수 있다.
또한, 일정 시간동안 저장된 게임 사용자의 게임 패턴을 게임에 입력하여 설정된 레벨을 계산한다. 이후 생성하고자 하는 NPC AI 레벨에 근접할수록 적합도를 높게하고, 멀수록 적합도를 낮게 설정한다.
예를 들어, 설정된 레벨이 높은 수준이면 적합도를 낮게하고, 보통 수준으로 나왔으면 적합도를 높게 설정한다. 이때, 레벨로 설정할 수도 있고 체력 게이지로 계산할 수 도 있다.
또한, 적합도에 비례하여 랜덤으로 부모를 선택한다. 이때, 부모의 선택은 적합도의 랭킹에 비례하여 랜덤으로 선택할 수도 있고, 토너먼트 형식으로 부모를 선택할 수 도 있다.
개체에 따라 아래의 [표 3]와 같이 적합도가 계산 되었다면, 도 7에 나타낸 바와 같이 적합도의 비율에 따라 랜덤으로 부모를 선택하게 된다. 본 실시예에서는 비율에 맞추어 나타냈으나 적합도에 따라 비율이 차이가 있을 수 있다.
개체번호 적합도
1 10
2 20
3 5
4 45
5 20
선택된 부모를 유전자 알고리즘에 따른 교배 및 돌연변이 연산으로 파라미터를 연산한다. 여기서, 교배 연산의 경우 파라미터 내에 3개의 값이 있기 때문에 1포인트 교배 연산을 사용하였으며, 돌연변이 연산의 경우 각 값이 정수이므로 각 값 별로 확률에 따라 수행되며, 각 값에 랜덤으로 더하거나 뺀다. 이때, 랜덤 값의 범위는 -5~ 5로 설정한다.
여기서, 최상의 적합도가 나오면, 파라미터를 생성하고, 게임에 적용하도록 한다.
따라서, 본 발명은 게임 개발자가 모든 케이스의 경우에 대한 알고리즘을 구현하지 않음으로 개발 시간이 단축되는 효과가 있으며, 게임 사용자의 수준에 따른 인공지능적인 NPC를 제공하여 게임 사용자의 흥미를 유발할 수 있는 효과가 있다.
또한, 본 발명은 게임 사용자의 수준에 NPC를 맞추지 않더라도 다양한 경우의 NPC 행동을 생성하여 얻을 수 있어 많은 게임 사용자에게 다양한 행동 패턴을 갖는 NPC를 제공할 수 있는 효과가 있다.
상기와 같은 게임 사용자 수준에 따른 NPC AI제공방법은 위에서 설명된 실시예들의 구성과 작동 방식에 한정되는 것이 아니다. 상기 실시예들은 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 다양한 변형이 이루어질 수 있도록 구성될 수도 있다.

Claims (8)

  1. 유전자 알고리즘(Genetic Algorithm)을 이용하여 게임 사용자 수준에 따른 NPC AI(Non Player Character Artificial Intelligence) 생성 방법에 있어서,
    게임 특성에 맞는 수준의 레벨이 결정되는 단계;
    상기 게임 사용자의 게임 레벨을 결정 및 게임 패턴에 따른 데이터를 저장하는 단계;
    상기 게임 사용자의 게임 레벨에 따른 NPC AI의 레벨을 결정하는 단계;
    상기에서 저장된 데이터 및 결정된 NPC AI의 레벨에 따라 NPC AI에 대한 파라미터를 생성하는 단계; 및
    상기에서 생성된 파라미터를 게임에 적용하여 사용자 수준에 따른 NPC AI를 제공하는 단계;를 포함하며,
    상기 NPC AI에 대한 파라미터를 생성하는 생성방법은,
    상기 NPC AI에서 수준을 변경할 수 있는 파라미터를 선정하는 단계;
    상기에서 선정한 파라미터를 초기화하는 단계;
    상기에서 저장된 게임 사용자의 게임 패턴에 따른 데이터와 게임 특성에 맞는 수준의 레벨의 적합도를 계산하는 단계;
    상기 적합도에 비례하여 임의로 부모를 선택하여 유전 연산자(Genetic Operator)에 의해 파라미터를 연산하는 단계; 및
    상기 적합도가 미리 설정한 값 이상이면, 연산된 파라미터를 생성하는 단계;를 포함하는 게임 사용자 수준에 따른 NPC AI 제공방법.
  2. 청구항 1에 있어서,
    상기 게임 패턴은 게임 사용자가 제어하는 캐릭터의 행동 및 게임의 상태를 포함하는 게임 사용자 수준에 따른 NPC AI 제공방법.
  3. 청구항 1에 있어서,
    상기 게임 레벨은 NPC의 점수, 게임 사용자의 점수, NPC가 게임 사용자에게 입힌 데미지, 게임 사용자가 NPC에 입힌 데미지, NPC의 적중률, 및 게임 사용자의 적중률 중 어느 하나 이상으로 결정되는 게임 사용자 수준에 따른 NPC AI 제공방법.
  4. 삭제
  5. 청구항 1에 있어서,
    상기 파라미터는 NPC를 지능적으로 행동시키기 위해 가변되는 값 또는 정보를 의미하는 게임 사용자 수준에 따른 NPC AI 제공방법.
  6. 청구항 1에 있어서,
    상기 적합도가 미리 설정한 값 미만이면, 적합도가 미리 설정한 값 이상이 될 때까지 반복하여 파라미터 연산을 수행하는 단계;를 더 포함하는 게임 사용자 수준에 따른 NPC AI 제공방법.
  7. 청구항 1에 있어서,
    상기에서 임의로 부모를 선택하는 방법은, 적합도 비례 선택법, 룰렛 선택법, 기대치 선택법, 순위 선택법, 및 토너먼트 선택법 중 어느 하나 이상을 이용하여 선택되는 게임 사용자 수준에 따른 NPC AI 제공방법.
  8. 청구항 1에 있어서,
    상기 유전 연산자는 교배(crossover), 돌연변이(Mutation), 역위(Inversion), 치환(Displacement), 중복(Duplication), 추가(Addition), 제거(Deletion) 중 어느 하나 이상을 채택하는 게임 사용자 수준에 따른 NPC AI 제공방법.
KR1020120057788A 2012-05-30 2012-05-30 게임 사용자 수준에 따른 npc ai제공방법 KR101265051B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120057788A KR101265051B1 (ko) 2012-05-30 2012-05-30 게임 사용자 수준에 따른 npc ai제공방법
PCT/KR2012/004306 WO2013180322A1 (ko) 2012-05-30 2012-05-31 게임 사용자 수준에 따른 npc ai제공방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120057788A KR101265051B1 (ko) 2012-05-30 2012-05-30 게임 사용자 수준에 따른 npc ai제공방법

Publications (1)

Publication Number Publication Date
KR101265051B1 true KR101265051B1 (ko) 2013-05-16

Family

ID=48666347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120057788A KR101265051B1 (ko) 2012-05-30 2012-05-30 게임 사용자 수준에 따른 npc ai제공방법

Country Status (2)

Country Link
KR (1) KR101265051B1 (ko)
WO (1) WO2013180322A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101519992B1 (ko) * 2013-07-24 2015-05-15 (주)위메이드엔터테인먼트 게임 서버에서 온라인 대전형 게임의 PvP(Player versus Player) 모드의 대전 상대를 매칭하는 방법, 게임 서버 및 상기 방법을 기록한 컴퓨터 판독 가능 저장매체
KR101826081B1 (ko) * 2016-06-03 2018-02-06 주식회사 엑스엘게임즈 온라인 게임의 핵툴 대응 장치, 시스템 및 방법
CN108031121A (zh) * 2017-12-27 2018-05-15 苏州蜗牛数字科技股份有限公司 实现vr游戏中npc的ai行为的方法
KR20210082590A (ko) 2019-12-26 2021-07-06 주식회사 더재미 Ai기반의 온라인 대전게임의 대전 상대 매칭 방법, 서버 및 상기 방법을 기록한 컴퓨터 판독 가능한 저장매체

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107890674A (zh) * 2017-11-13 2018-04-10 杭州电魂网络科技股份有限公司 Ai行为调用方法和装置
CN109200583A (zh) * 2018-08-02 2019-01-15 苏州蜗牛数字科技股份有限公司 控制游戏npc行为的方法、***及存储介质
CN109529351B (zh) * 2018-11-19 2023-03-24 网易(杭州)网络有限公司 游戏中虚拟对象的行为能力控制方法、装置及存储介质
CN111450533B (zh) * 2020-03-31 2022-06-24 腾讯科技(深圳)有限公司 虚拟场景中的虚拟对象控制方法、装置、终端及存储介质
CN111672120A (zh) * 2020-06-06 2020-09-18 腾讯科技(深圳)有限公司 虚拟对象控制方法、装置、计算机设备及存储介质
CN111803959B (zh) * 2020-07-21 2022-05-31 腾讯科技(深圳)有限公司 对象控制方法、装置、游戏服务器及介质
CN116943204A (zh) * 2022-11-22 2023-10-27 腾讯科技(深圳)有限公司 虚拟对象的控制方法、装置和存储介质及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100718334B1 (ko) * 2004-08-30 2007-05-14 중앙대학교 산학협력단 인공지능기법을 이용한 사용자 상호작용 게임 난이도조절방법
EP2032224A2 (en) * 2006-06-26 2009-03-11 Icosystem Corporation Methods and systems for interactive customization of avatars and other animate or inanimate items in video games
US8069124B2 (en) * 2008-03-26 2011-11-29 Intel Corporation Combining speculative physics modeling with goal-based artificial intelligence
KR101231798B1 (ko) * 2009-04-30 2013-02-08 한국전자통신연구원 게임 난이도 조절 장치 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101519992B1 (ko) * 2013-07-24 2015-05-15 (주)위메이드엔터테인먼트 게임 서버에서 온라인 대전형 게임의 PvP(Player versus Player) 모드의 대전 상대를 매칭하는 방법, 게임 서버 및 상기 방법을 기록한 컴퓨터 판독 가능 저장매체
KR101826081B1 (ko) * 2016-06-03 2018-02-06 주식회사 엑스엘게임즈 온라인 게임의 핵툴 대응 장치, 시스템 및 방법
CN108031121A (zh) * 2017-12-27 2018-05-15 苏州蜗牛数字科技股份有限公司 实现vr游戏中npc的ai行为的方法
CN108031121B (zh) * 2017-12-27 2021-05-28 苏州蜗牛数字科技股份有限公司 实现vr游戏中npc的ai行为的方法
KR20210082590A (ko) 2019-12-26 2021-07-06 주식회사 더재미 Ai기반의 온라인 대전게임의 대전 상대 매칭 방법, 서버 및 상기 방법을 기록한 컴퓨터 판독 가능한 저장매체

Also Published As

Publication number Publication date
WO2013180322A1 (ko) 2013-12-05

Similar Documents

Publication Publication Date Title
KR101265051B1 (ko) 게임 사용자 수준에 따른 npc ai제공방법
Cardamone et al. Evolving interesting maps for a first person shooter
Khalifa et al. General video game rule generation
Liapis et al. Towards a generic method of evaluating game levels
Jacobsen et al. Monte mario: platforming with mcts
Nielsen et al. General video game evaluation using relative algorithm performance profiles
Liapis et al. Enhancements to constrained novelty search: Two-population novelty search for generating game content
US20100279762A1 (en) Apparatus and method for adjusting difficulty level of game
Liapis et al. Generating map sketches for strategy games
de Mesentier Silva et al. Evolving the hearthstone meta
Karavolos et al. Using a surrogate model of gameplay for automated level design
Mugrai et al. Automated playtesting of matching tile games
Hawkins et al. Dynamic difficulty balancing for cautious players and risk takers
JP6748170B2 (ja) ビデオゲーム処理プログラム、ビデオゲーム処理装置及びビデオゲーム処理方法
Demediuk et al. Challenging ai: Evaluating the effect of mcts-driven dynamic difficulty adjustment on player enjoyment
US11007441B2 (en) Systems and methods for evolving content for computer games
KR101204318B1 (ko) 온라인 게임에서의 아이템 강화 시스템 및 그 방법
JP7320212B2 (ja) ゲームプログラム、情報処理装置、ゲーム処理方法、およびゲームシステム
KR100718334B1 (ko) 인공지능기법을 이용한 사용자 상호작용 게임 난이도조절방법
Susanto et al. Maze generation based on difficulty using genetic algorithm with gene pool
JP2006149934A (ja) プログラム、情報記憶媒体及びゲーム装置
JP7417913B2 (ja) 情報処理システムおよび情報処理プログラム
Norton et al. Monsters of Darwin: A strategic game based on artificial intelligence and genetic algorithms
KR20210061691A (ko) 게임 내 랜덤 맵 생성 방법 및 시스템
Guarneri et al. GOLEM: Generator Of Life Embedded into MMOs.

Legal Events

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

Payment date: 20160510

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180510

Year of fee payment: 6