KR102487081B1 - 게임에서 난이도를 결정하기 위한 방법, 장치, 및 컴퓨터 프로그램 - Google Patents

게임에서 난이도를 결정하기 위한 방법, 장치, 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102487081B1
KR102487081B1 KR1020170153979A KR20170153979A KR102487081B1 KR 102487081 B1 KR102487081 B1 KR 102487081B1 KR 1020170153979 A KR1020170153979 A KR 1020170153979A KR 20170153979 A KR20170153979 A KR 20170153979A KR 102487081 B1 KR102487081 B1 KR 102487081B1
Authority
KR
South Korea
Prior art keywords
game
generation
child generation
computer program
fitness
Prior art date
Application number
KR1020170153979A
Other languages
English (en)
Other versions
KR20190056726A (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 주식회사 넥슨코리아
Priority to KR1020170153979A priority Critical patent/KR102487081B1/ko
Publication of KR20190056726A publication Critical patent/KR20190056726A/ko
Application granted granted Critical
Publication of KR102487081B1 publication Critical patent/KR102487081B1/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
    • A63F11/00Game accessories of general use, e.g. score counters, boxes
    • A63F11/0074Game concepts, rules or strategies
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F11/00Game accessories of general use, e.g. score counters, boxes
    • A63F11/0074Game concepts, rules or strategies
    • A63F2011/0076Game concepts, rules or strategies with means for changing the level of difficulty

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 개시는, 게임에서 논플레이어 캐릭터 (non-player character: NPC) 의 행동 패턴을 정의하는 N개의 해를 이용하여 부모세대를 구성하는 단계; 유전 알고리즘을 통해 상기 부모세대로부터 시작하여 M번째 자식세대를 구성하는 단계; 상기 M번째 자식세대의 해에 기초하여 상기 NPC 를 제어하는 단계; 및 N 및 M 중 적어도 하나에 기초하여 결정된 난이도에 기초하여 상기 게임을 사용자에게 제공하는 단계를 포함하는 방법을 하드웨어와 결합되어 실행시키기 위해 매체에 저장된 컴퓨터 프로그램을 제공할 수 있다 (N 및 M 은 양의 정수임).

Description

게임에서 난이도를 결정하기 위한 방법, 장치, 및 컴퓨터 프로그램 {METHOD, APPARATUS AND COMPUTER PROGRAM FOR DETERMINING DIFFICULTY LEVEL IN GAME}
본 개시는 게임에서 난이도를 결정하기 위한 방법, 장치, 및 컴퓨터 프로그램에 관하며, 게임의 난이도는 유전 알고리즘을 이용하여 결정될 수 있다.
게임의 적절한 난이도는 사용자의 게임에 대한 몰입감을 향상시킬 수 있다. 사용자들의 게임 실력이 상이하므로, 일반적으로 게임의 난이도를 조절할 수 있는 옵션이 사용자에게 제공되거나, 게임이 진행될수록 난이도가 높아진다.
하지만, 사용자들은 자신의 실력이 어느 수준인지 알기가 어려우므로, 자신에게 적합한 난이도를 선택하는데 어려움을 겪을 수 있다. 만약 사용자가 자신의 실력에 비해 너무 어려운 난이도를 선택하거나, 너무 쉬운 난이도를 선택하면, 사용자는 게임에 대한 흥미를 잃을 수 있다. 따라서, 사용자에게 적합한 난이도로 게임을 제공할 필요가 있다.
한편, 게임의 난이도를 결정하는 요소는 다양하다. 과거의 단순한 게임의 경우, 게임의 속도, 적들의 수, 적들의 공격력 등에 따라 난이도가 결정될 수 있었다. 예를 들어, 게임의 속도가 빨라질수록, 적들의 수나 공격력이 증가할수록 게임의 난이도는 어려운 것으로 결정된다. 하지만, 게임이 복잡해지거나, 전략 게임인 경우, 게임의 속도, 적들의 수, 적들의 공격력 등 계량화될 수 있는 것뿐만 아니라, 게임 내에서 인공지능의 선택이나 행동 패턴이 게임의 난이도를 결정하는 중요한 요소가 된다.
일반적으로 게임 내에서 인공지능의 선택이나 행동 패턴은 게임트리 (game tree) 에 의해 처리될 수 있다. 게임트리는 게임에서 발생 가능한 모든 상황을 나타내고, 플레이어의 선택에 대응하는 노드를 게임트리에서 검색함으로써, 인공지능이 게임을 플레이할 수 있다.
하지만, 게임트리는 인공지능이, 게임에서 발생 가능한 모든 상황을 알고 있는 상태임을 전제하므로, 인공지능의 패턴은 사람의 패턴과 상이하다. 즉, 게임의 난이도를 최고 레벨로 조절한 경우, 게임트리에 따라 행동하는 인공지능은 사람이 이길 수 없는 수준에 도달하게 되어 사용자들은 흥미를 잃기 쉽다. 게임의 난이도를 낮출 경우, 게임트리에 따라 행동하는 인공지능은 사람이라면 하지 않을 실수를 범하여 사용자의 게임에 대한 몰입감을 저해할 수 있다.
본 개시는 게임의 인공지능이 사람처럼 행동하게끔 하는 수단을 개시한다.
본 개시는 사용자에게 적합한 난이도의 게임을 제공하는 수단을 개시한다.
본 개시는 게임의 난이도를 사용자의 수준에 따라 적응적으로 조절하기 위한 수단을 개시한다.
본 개시는 게임의 인공지능이 사람처럼 피드백을 제공하는 수단을 개시한다.
본 개시는, 게임에서 논플레이어 캐릭터 (non-player character: NPC) 의 행동 패턴을 정의하는 N개의 해를 이용하여 부모세대를 구성하는 단계; 유전 알고리즘을 통해 상기 부모세대로부터 시작하여 M번째 자식세대를 구성하는 단계; 상기 M번째 자식세대의 해에 기초하여 상기 NPC 를 제어하는 단계; 및 N 및 M 중 적어도 하나에 기초하여 결정된 난이도에 기초하여 상기 게임을 사용자에게 제공하는 단계를 포함하는 방법을 하드웨어와 결합되어 실행시키기 위해 매체에 저장된 컴퓨터 프로그램을 제공할 수 있다 (N 및 M 은 양의 정수임).
상기 M번째 자식세대는 M-1번째 자식세대의 적합도에 대한 평가에 기초하여 구성되는 컴퓨터 프로그램이 제공될 수 있다.
상기 M번째 자식세대의 적합도는 N 및 M 중 적어도 하나의 증가에 따라 증가하고, 상기 M번째 자식세대의 해는 상기 적합도가 증가할수록 최적화되는 컴퓨터 프로그램이 제공될 수 있다.
상기 M번째 자식세대의 해가 최적화될수록 상기 난이도는 더 어려운 레벨로 결정되는 컴퓨터 프로그램이 제공될 수 있다.
상기 게임은 턴제 (turn-based) 게임인 컴퓨터 프로그램이 제공될 수 있다.
N 및 M 중 적어도 하나는 소정의 수로 제한되는 컴퓨터 프로그램이 제공될 수 있다.
상기 사용자가 상기 게임을 플레이하는 수준에 따라 N 및 M 중 적어도 하나는 조절되는 컴퓨터 프로그램이 제공될 수 있다.
N 및 M 중 적어도 하나의 조절은 상기 수준의 변화에 적응적인 컴퓨터 프로그램이 제공될 수 있다.
상기 방법은 N 및 M 중 적어도 하나를 제어함으로써, 상기 난이도를 조절하는 단계를 더 포함하는 컴퓨터 프로그램이 제공될 수 있다.
상기 방법은 상기 난이도를 조절하기 위한 조절바 (adjustment bar) 를 디스플레이하는 단계를 더 포함하는 컴퓨터 프로그램이 제공될 수 있다.
상기 게임은 네트워크를 통해 상기 사용자에게 제공되는 컴퓨터 프로그램이 제공될 수 있다.
상기 방법은: 유전 알고리즘을 통해 M+L번째 자식세대를 구성하는 단계; 및 상기 M번째 자식세대의 적합도 및 상기 M+L번째 자식세대의 적합도를 비교하는 단계를 더 포함하는 컴퓨터 프로그램이 제공될 수 있다. (L 은 양의 정수임)
상기 방법은 상기 M번째 자식세대의 적합도 및 상기 M+L번째 자식세대의 적합도 비교 결과에 기초하여 피드백을 출력하는 단계를 더 포함하는 컴퓨터 프로그램이 제공될 수 있다.
상기 피드백은 채팅창을 통해 출력되는 컴퓨터 프로그램이 제공될 수 있다.
상기 방법은 상기 M번째 자식세대의 적합도 및 상기 M+L번째 자식세대의 적합도 비교 결과에 기초하여 상기 게임의 리뷰를 제공하는 단계를 더 포함하는 컴퓨터 프로그램이 제공될 수 있다.
상기 게임은 복수의 장면들로 구성되고, 상기 복수의 장면들 각각에서 상기 NPC 는 상기 M번째 자식세대의 해에 기초하여 제어되고, 상기 방법은 상기 M번째 자식세대의 적합도 및 상기 M+L번째 자식세대의 적합도 비교 결과가 미리 결정된 범위를 초과하는 장면을 결정하는 단계를 더 포함하는 컴퓨터 프로그램이 제공될 수 있다.
상기 방법은 상기 결정된 장면을 기록하는 단계를 더 포함하는 컴퓨터 프로그램이 제공될 수 있다.
상기 방법은 상기 결정된 장면에 기초하여 상기 게임의 리뷰를 제공하는 단계를 더 포함하는 컴퓨터 프로그램이 제공될 수 있다.
나아가, 본 개시는, 게임에서 논플레이어 캐릭터 (non-player character: NPC) 의 행동 패턴을 정의하는 N개의 해를 이용하여 부모세대를 구성하는 단계; 유전 알고리즘을 통해 상기 부모세대로부터 시작하여 M번째 자식세대를 구성하는 단계; 상기 M번째 자식세대의 해에 기초하여 상기 NPC 를 제어하는 단계; 및 N 및 M 중 적어도 하나에 기초하여 결정된 난이도에 기초하여 상기 게임을 제공하는 단계를 포함하는 방법을 제공할 수 있다 (N 및 M은 양의 정수임).
나아가, 본 개시는, 인스트럭션들을 저장하는 메모리; 및 상기 인스트럭션들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 프로세서는 상기 인스트럭션들을 실행하여: 게임에서 논플레이어 캐릭터 (non-player character: NPC) 의 행동 패턴을 정의하는 N개의 해를 이용하여 부모세대를 구성하고; 유전 알고리즘을 통해 상기 부모세대로부터 시작하여 M번째 자식세대를 구성하고; 상기 M번째 자식세대의 해에 기초하여 상기 NPC 를 제어하고; 및 N 및 M 중 적어도 하나에 기초하여 결정된 난이도에 기초하여 상기 게임을 제공하도록 구성된 전자 디바이스를 제공할 수 있다.
일 실시예에 따르면, 게임에서 사람처럼 행동하는 인공지능이 제공될 수 있다.
일 실시예에 따르면, 사용자에게 적합한 난이도의 게임이 제공될 수 있다.
일 실시예에 따르면, 게임의 난이도가 사용자의 수준에 따라 적응적으로 조절될 수 있다.
일 실시예에 따르면, 게임의 인공지능이 사람처럼 피드백을 제공할 수 있다.
도 1 은 종래에 게임의 난이도를 제어하는 방법 및 일 실시예에 따라 게임의 난이도를 제어하는 방법을 비교하기 위한 도면이다.
도 2 는 일 실시예에 따라 유전 알고리즘을 통해 결정된 난이도로 게임을 제공하는 방법을 설명하기 위한 도면이다.
도 3 은 일 실시예에 따라 유전 알고리즘을 통해 자식세대를 구성하는 방법을 설명하기 위한 도면이다.
도 4 는 소정의 해를 이용하여 부모세대를 구성하는 방법을 설명하기 위한 도면이다.
도 5 는 자식세대의 세대수와 적합도의 관계를 나타내는 그래프이다.
도 6 은 부모세대를 구성하는 해의 개수에 따른 자식세대의 세대수와 적합도의 관계를 나타내는 그래프이다.
도 7 은 일 실시예에 따른 게임에서 NPC 의 행동패턴을 설명하기 위한 도면이다.
도 8 은 일 실시예에 따라 게임의 NPC 가 피드백을 제공하는 방법을 설명하기 위한 도면이다.
도 9 는 일 실시예에 따른 전자 디바이스의 블록도이다.
도 10 은 일 실시예에 따른 서버 및 클라이언트를 포함하는 온라인 게임 제공 시스템을 도시한다.
도 11 은 일 실시예에 따른 서버의 블록도이다.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 개시에 따른 예시적 실시예를 상세하게 설명한다. 또한, 첨부된 도면들에 기재된 내용들을 참조하여 본 개시의 실시예에 따른 전자 장치를 구성하고 사용하는 방법을 상세히 설명한다. 각 도면에서 제시된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되지는 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 항목들의 조합 또는 복수의 관련된 항목들 중의 어느 하나의 항목을 포함한다.
본 개시에서 사용한 용어는 실시예를 설명하기 위해 사용된 것으로, 본 개시를 제한 및/또는 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 개시에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 요소를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 개시에서 "클라이언트"는 문맥에 따라 사용자, 게이머, 및 플레이어를 가리키거나, 그들에 의해 사용되는 디바이스를 가리킬 수 있음이 이해되어야 한다. 사용자, 게이머, 및 플레이어는, 온라인 플랫폼에서 사용되고 개인에게 귀속된 계정을 가리킬 수 있고, 그 계정에 속한 아바타나 캐릭터를 가리킬 수도 있다.
도 1 은 종래에 게임의 난이도를 제어하는 방법 및 일 실시예에 따라 게임의 난이도를 제어하는 방법을 비교하기 위한 도면이다.
도 1 을 참조하면, 종래에 게임의 난이도를 제어하는 메뉴 (110) 는 쉬움 (Easy), 보통 (Normal), 및 어려움 (Difficult) 와 같은 난이도를 선택할 수 있는 옵션들을 사용자에게 제공한다. 사용자가 옵션들 중 하나를 선택하면, 전자 디바이스는 선택된 난이도로 게임을 제공한다.
일 실시예에 따르면, 게임의 난이도가 유전 알고리즘을 통해 결정될 수 있고, 부모세대를 구성하는 해의 수 및 자식세대의 세대수를 조절하여 게임의 난이도를 조절할 수 있다. 종래의 게임 난이도는, 게임의 속도, 적들의 수, 적들의 공격력 등 일률적으로 제어될 수 있는 파라미터들을 이용하여 결정되므로, 제한된 개수의 난이도만이 선택될 수 있었다. 반면, 일 실시예에 따르면, 유전 알고리즘을 통해 게임의 난이도를 결정함으로써, 게임에서 인공지능이 사람처럼 행동할 수 있고, 나아가 게임의 난이도가 조절바 (adjustment bar) 를 통해 매우 넓은 범위에서 조절될 수 있다.
도 2 는 일 실시예에 따라 유전 알고리즘을 통해 결정된 난이도로 게임을 제공하는 방법을 설명하기 위한 도면이다.
단계 210 에서 전자 디바이스는 N 개의 해를 이용하여 부모세대를 구성한다. 여기서, 각각의 해는 게임에서 논플레이어 캐릭터 (non-player character: NPC) 의 행동 패턴을 정의할 수 있다. 논플레이어 캐릭터의 행동은 게임의 인공지능에 의해 제어될 수 있다. 사용자와 NPC 가 대립하는 게임의 경우, NPC 의 행동 패턴에 따라 게임의 난이도가 결정될 수 있다.
NPC 의 행동 패턴에 대한 설명은 도 3 을 참조한다.
도 3 은 일 실시예에 따라 유전 알고리즘을 통해 자식세대를 구성하는 방법을 설명하기 위한 도면이다.
도 3 을 참조하면, 부모세대는 하나의 해 (300) 를 가질 수 있고, 하나의 해 (300) 는 4 개의 행동들로 구성될 수 있다. 여기서, 4개의 행동들은 하나의 행동 패턴을 구성할 수 있으나, 이에 제한되지 않는다. 행동들은 각각 그 종류에 따라 구분될 수 있다. 예를 들어, 행동들은 어딘가로 이동하는 행동, 이동하기 전의 사전행동, 이동한 후의 사후행동, 사후행동 이후의 완료행동 등으로 구분될 수 있으나, 이에 제한되지 않고, 게임에서 NPC 가 취할 수 있는 행동에 따라 달라질 수 있다. 도 3 에서 NPC 의 행동들은 빗금으로 도식적으로 묘사되었지만, 컴퓨터 프로그래밍 코드로 표현될 수 있다.
N 개의 해에 대한 설명은 도 4 를 참조한다.
도 4 는 소정의 해를 이용하여 부모세대를 구성하는 방법을 설명하기 위한 도면이다.
도 4 를 참조하면, 부모세대는 N 개의 해를 가질 수 있다 (N 은 양의 정수임). 예를 들어, 부모세대는, 착용한 장비를 변경하고, A로 이동하여 사용자에게 근접하고, 사용자에게 근접 공격을 수행하고, 아이템을 사용하는 행동패턴의 제 1 해 (400-1) 를 가질 수 있다. 나아가, 부모세대는 NPC 는 착용한 장비를 변경하지 않고, A로 이동하여 사용자에게 근접하고, 사용자에게 근접 공격을 수행하고, 아이템을 사용하는 행동패턴의 제 2 해를 가질 수 있고, 더 나아가, 행동패턴들이 상이한 N 개의 해를 가질 수 있다. 일 실시예에서, 부모세대의 해는 랜덤하게 결정될 수 있으나, 미리 결정된 조건에 따라 결정될 수도 있다.
단계 220 에서 전자 디바이스는 유전 알고리즘을 통해 M 번째 자식세대를 구성한다.
M 번째 자식세대는 부모세대로부터 시작하여 유전 알고리즘을 통해 구성될 수 있다 (M은 양의 정수임). 부모세대에 대한 선택, 교차, 변이, 대치 등의 유전 알고리즘의 연산을 통해 1번째 자식세대가 구성될 수 있다. 유전 알고리즘의 연산은 이미 널리 알려져 있으므로, 본 개시에서는 생략된다.
1번째 자식세대와 부모세대의 적합도 (fitness) 를 비교하여, 더 적합한 세대가 부모세대로서 다음 자식세대의 기초가 될 수 있다. 적합도는 게임에 따라 상이한 기준으로 평가될 수 있다. 턴제 게임의 경우, 적합도는 각 턴의 결과에 따라 평가될 수 있으나, 게임 전체의 결과에 따라 평가될 수도 있다. 유전 알고리즘에 있어서 적합도 평가 방법은 이미 널리 알려져 있으므로, 본 개시에서는 생략된다.
자식세대와 부모세대의 적합도에 대한 설명은 도 5 및 도 6 을 참조한다.
도 5 는 1개 해를 가지는 부모세대로부터 시작한 자식세대의 세대수와 적합도의 관계를 나타내는 그래프이다. 도 6 은 부모세대를 구성하는 해의 개수에 따른 자식세대의 세대수와 적합도의 관계를 나타내는 그래프이다.
도 5 를 참조하면, 1개 해를 가지는 부모세대로부터 시작한 경우, 자식세대의 세대수 (M) 가 증가할수록 M번째 자식세대의 적합도가 증가한다. 즉, 유전 알고리즘을 통해 자식세대의 세대수 (M) 가 증가할수록 부모세대보다 더 적합한 자식세대가 살아남으므로, 자식세대의 세대수 (M) 가 증가할수록 M번째 자식세대 해의 적합도가 증가한다.
도 6 을 참조하면, N 개 해를 가지는 부모세대로부터 시작한 M번째 자식세대의 적합도는, 1개 해를 가지는 부모세대로부터 시작한 M번째 자식세대의 적합도보다 더 크고, 그 기울기도 더 크다. 즉, 부모세대의 해가 많을수록, 유전 알고리즘을 통해 생성되는 자식세대의 해도 많으므로, 더 적은 세대수를 거치더라도 적합한 해가 찾아질 수 있다. 따라서, N 및 M 의 증가에 따라, M 번째 자식세대의 적합도가 증가하고, 이에 따라 M 번째 자식세대의 해가 점점 최적화될 수 있다.
단계 230 에서 전자 디바이스는 M 번째 자식세대의 해에 기초하여 NPC 를 제어한다.
NPC 제어에 대한 설명은 도 7 을 참조한다.
도 7 은 일 실시예에 따른 게임에서 NPC 의 행동패턴을 설명하기 위한 도면이다.
도 7 을 참조하면, 전자 디바이스 (2000) 에서 턴제 게임 (710) 이 실행될 수 있고, 게임 (710) 에서 사용자 (712) 는 NPC (714) 와 대립할 수 있다.
도 7 을 참조하면, NPC (714) 가 취할 수 있는 일련의 행동들은 하나의 해로 표현될 수 있다. 예를 들어, NPC (714) 가 이동 전 사전 행동, 이동 행동, 이동 후 사후행동, 사후행동 후 완료 행동을 취할 수 있는 경우, 각 행동의 조합이 하나의 해로 표현될 수 있다. NPC (714) 가 도 7 에서 회색으로 표시된 위치 내에서 이동 가능한 경우, 13개의 수를 가진다. 다만, 13개의 수 중에서 적합도가 비교적 높은 수는, 사용자 (712) 를 공격하기 위해 사용자 (712) 에게 근접하거나, 아이템 (716) 을 획득하기 위해 아이템 (716) 으로 이동하거나, 사용자 (712) 로부터 달아나기 위해 사용자 (712) 로부터 먼 위치로 도망가는 수일 수 있다. 도 7 에 도시된 바와 같이, NPC (714) 의 헬스 포인트 (health point: HP) 가 충분하지 않고, 사용자 (712) 의 HP 는 충만한 경우에는, 사용자 (712) 를 공격하기 위해 사용자 (712) 에게 근접하는 수를 포함하는 해의 적합도는, 아이템 (716) 을 획득하기 위해 아이템 (716) 으로 이동하거나, 사용자 (712) 로부터 달아나기 위해 사용자 (712) 로부터 먼 위치로 도망가는 수를 포함하는 해의 적합도보다 낮은 것으로 평가될 수 있다.
최적의 해를 찾기에 N 및 M 이 충분히 큰 경우, 사용자 (712) 에게 근접하는 수를 포함하는 해는, 아이템 (716) 으로 이동하는 수 및 사용자 (712) 로부터 먼 위치로 도망가는 수를 포함하는 해보다 적합도가 더 낮으므로, 후자의 해들 중 하나에 기초하여 NPC 가 제어될 수 있다. 하지만, N 및 M 중 적어도 하나가 소정의 수로 제한되는 경우에는, 사용자 (712) 에게 근접하는 수를 포함하는 해가 접합한 것으로 살아남을 수 있고, 이에 따라 NPC 가 제어될 수도 있다. 사용자 입장에서는, 적합도가 클수록, 즉, 자식세대의 해가 최적화될수록 게임의 난이도가 더 어렵게 느껴질 수 있다. 따라서, 자식세대의 해가 최적화될수록 게임의 난이도는 더 어려운 것으로 결정될 수 있다.
단계 240 에서 전자 디바이스는 N 및 M 중 적어도 하나에 기초하여 결정된 난이도로 게임을 제공한다. 전술된 바와 같이, N 및 M 의 증가에 따라, 자식세대의 적합도가 증가하고, 이에 따라, 자식세대의 해는 최적해에 가까워질 수 있다. 만약 최적해를 찾기에 N 및 M 이 충분히 큰 경우라면, 사용자가 대응하기 가장 어려운 수를 포함하는 해를 가진 자식세대만이 살아남고, 이에 기초하여 NPC 가 제어될 수 있다. 하지만, N 및 M 이 소정의 수로 제한되는 경우, 최적해보다 적합도가 더 낮은 해를 가지는 자식세대가 살아남고, 이에 기초하여 NPC 가 제어될 수 있다. 즉, 일 실시예에 따르면, N 및 M 을 소정의 수로 제한함으로써, 사용자 입장에서는 게임의 난이도가 조절되는 효과가 발생할 수 있다.
일 실시예에 따르면, 유전 알고리즘을 통해 게임의 난이도를 결정함에 있어, N 및 M 을 소정의 수로 제한함으로써, 게임의 인공지능이 마치 사람처럼 행동하는 것처럼 사용자에게 인식될 수 있다.
일 실시예에서, 사용자의 수준에 따라 N 및 M 중 적어도 하나가 조절될 수 있다. 예를 들어, 사용자의 수준이 높은 것으로 결정되는 경우, N 및 M 을 증가시킴으로써, 더 최적의 해에 가까운 해를 가지는 자식세대가 살아남게 할 수 있다. 예를 들어, 사용자의 수준이 낮은 것으로 결정되는 경우, N 및 M 을 감소시킴으로써, 최적의 해로부터 먼 해를 가지는 자식세대가 살아남게 할 수 있다. 일 실시예에 따르면, N 및 M 을 조절함으로써 게임의 난이도가 용이하게 제어될 수 있다. 일 실시예에 따르면, 게임트리에 따른 경우의 수를 입력하지 않더라도, 게임의 난이도를 조절할 수 있으므로, 게임 개발자의 개발 편의성이 제고될 수 있다.
일 실시예에서, 사용자의 수준은 사용자가 게임을 플레이함에 따라 향상될 수 있고, N 및 M 중 적어도 하나의 조절은 사용자의 수준 변화에 적응적으로 수행될 수 있다. 따라서, 사용자가 직접 난이도를 조절하지 않더라도, 자신의 실력에 맞는 난이도로 게임을 제공받을 수 있으므로, 게임에 대한 몰입감이 향상될 수 있다. 일 실시예에서, 게임의 난이도는 도 1 에 도시된 바와 같이 조절바를 통해 조절될 수도 있다.
도 8 은 일 실시예에 따라 게임의 NPC 가 피드백을 제공하는 방법을 설명하기 위한 도면이다.
전술된 바와 같이, N 및 M 이 클수록 최적해에 가까운 해 또는 최적해를 가지는 자식세대가 살아남을 수 있으나, N 및 M 을 소정의 수로 제한하는 경우, 최적해보다 적합도가 더 낮은 해를 가지는 자식세대도 살아남을 수 있고 이에 따라 NPC 의 행동이 제어될 수 있다.
도 8 을 참조하면, N 및 M 이 소정의 수로 제한되어, 최적해보다 더 낮은 해, 즉, NPC (814) 가 사용자 (812) 에게 근접하여 사용자 (812) 를 공격하는 해를 가지는 M 번째 자식세대가 살아남을 수 있고, 이에 따라 NPC (814) 는 사용자 (812) 에 근접하여 사용자 (812) 를 공격할 수 있다.
일 실시예에 따르면, 전자 디바이스 (2000) 는 M 번째 이후의 자식세대의 적합도를 평가하여, M + L 번째 자식세대를 구성할 수 있다 (L 은 양의 정수임). M + L 번째 자식세대의 적합도는 M 번째 자식세대의 적합도보다 더 크고, 비교 결과 미리 결정된 범위보다 더 큰 차이가 나는 경우, 전자 디바이스 (2000) 는 M 번째 자식세대의 해에 기초하여 NPC (814) 를 제어한 후, 피드백을 출력할 수 있다. 예를 들어, 도 8 에 도시된 바와 같이, 자신의 실수를 인식하는 채팅 메시지 (818) 가 출력될 수 있다. 채팅 메시지 (818) 는 게임 GUI (810) 의 별도의 채팅창에서 디스플레이될 수도 있다. 일 실시예에 따르면, NPC 에 의해 채팅 메시지가 출력됨으로써, 인공지능과 대전하는 사용자는 실제 사람과 플레이하는 것처럼 느낄 수 있다. 도 8 에서 채팅 메시지 (818) 는 사용자 (812) 의 턴에 출력될 수 있으나, 이에 제한되지 않는다. 예를 들어, 채팅 메시지 (818) 는 NPC (814) 의 턴이 종료된 직후, 사용자 (812) 가 행동하기 이전에 출력될 수도 있다. 사용자 (812) 가 행동하기 이전에 채팅 메시지 (818) 가 출력됨으로써, 사람이 실수를 저지른 직후에 바로 깨닫는 것 같은 효과가 NPC (814) 에 의해 구현될 수 있다.
일 실시예에서, 게임은 복수의 장면들, 예를 들어, 턴들로 구성될 수 있다. 복수의 장면들에서 NPC 는 M 번째 자식세대의 해에 기초하여 제어되고, 전자 디바이스 (2000) 는 M 번째 자식세대의 적합도를 M + L 번째 자식세대의 적합도와 비교하여 게임의 리뷰를 제공할 수 있다. 예를 들어, 적합도의 비교 결과가 미리 결정된 범위를 초과하는 경우, 해당 장면은 NPC (814) 입장에서는 실수를 저지른 장면으로 판단될 수 있다. NPC (814) 가 실수를 저지른 장면은 기록되고, 이에 기초하여 게임의 리뷰가 제공될 수도 있다. 예를 들어, 게임의 승패가 해당 장면에서 갈렸음을 알려주는 리뷰가 제공될 수 있다.
도 9 는 일 실시예에 따른 전자 디바이스의 블록도이다.
도 9 에 도시된 바와 같이 전자 디바이스 (2000)는 메모리 (2010), 프로세서(2020), 통신 인터페이스(2030), 디스플레이 (2040), 및 입력 인터페이스(2050) 를 포함할 수 있다. 그러나 도 9 에 도시된 구성 요소가 모두 전자 디바이스 (2000)의 필수 구성 요소인 것은 아니다. 도 9 에 도시된 구성 요소보다 더 많거나 더 적은 구성 요소에 의해 전자 디바이스 (2000)가 구현될 수 있다.
전자 디바이스 (2000) 의 메모리 (2010), 프로세서 (2020), 및 통신 인터페이스 (2030) 에 대한 설명은 전술된 서버 (4000) 의 메모리 (4010), 프로세서 (4020), 및 통신 인터페이스 (4030) 을 참조할 수 있다.
메모리 (2010) 는 전자 디바이스 (2000) 로 하여금 본 개시의 실시예에 따른 다양한 동작들을 실행할 수 있게 하는 인스트럭션을 저장할 수 있다. 일 실시예에서 메모리 (2010) 는 게임 및 그에 관한 데이터를 저장할 수 있다.
프로세서 (2020) 는 메모리 (2010)에 저장된 인스트럭션을 실행하여, 전자 디바이스 (2000)로 하여금 본 개시의 다양한 실시예에 따른 다양한 동작들을 수행하도록 구성될 수 있다. 일 실시예에서 프로세서 (2020) 는 메모리 (2010) 에 저장된 게임을 실행하거나, 그 게임에 관한 데이터를 불러올 수 있다.
본 개시의 다양한 실시예에 따른 정보의 전달은 통신 인터페이스 (2030) 를 통해 수행될 수 있다.
디스플레이(2040)는 프로세서 (2020) 에 의해 처리되는 정보를 가시화 (visualization)하는 구성요소이다. 프로세서(2020) 에 의해 디스플레이되는 정보는 디스플레이(2040) 통해 가시화될 수 있다. 디스플레이 (2040) 는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 디스플레이와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이는 입력 인터페이스 (2050)로도 기능할 수 있다.
도 10 은 일 실시예에 따른 서버 및 클라이언트를 포함하는 온라인 게임 제공 시스템을 도시한다.
일 실시예에 따른 온라인 게임 제공 시스템은 도 10 에 도시된 바와 같이 서버 (4000) 와 복수의 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 를 포함할 수 있다. 서버 (4000) 는 네트워크를 통해 온라인 게임을 서비스함으로써, 복수의 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 에게 온라인 게임을 제공할 수 있다.
전술된 유전 알고리즘을 통해 결정된 난이도에 기초하여 게임을 제공하는 방법은 온라인 게임 제공 시스템에서 수행될 수도 있다. 일 실시예에서 서버 (4000) 가 유전 알고리즘을 통해 난이도를 결정하고, 결정된 난이도로 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 에게 게임을 제공할 수 있다. 이때, 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 각각에 대한 게임의 난이도는 서로 상이할 수 있다.
도 10 은 사용자에 의해 사용되는 클라이언트의 예들로서, 데스크톱 컴퓨터 (2000a), 태블릿 (2000b), 휴대폰 (2000c), 노트북 (2000d), 스마트폰 (2000e), 및 텔레비전 (2000f) 을 도시하지만, 클라이언트는 이에 제한되지 않고 PDA (Personal Digital Assistants), PMP (Portable Multimedia Player), 네비게이션, MP3 플레이어, 디지털 카메라, 냉장고, 세탁기, 청소기 등의 다양한 전자 디바이스를 포함할 수 있다.
복수의 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 에서 온라인 게임이 실행될 수 있다. 온라인 게임을 실행하기 위해, 프로그램, 예를 들어, 애플리케이션, 또는 런처 (launcher) 가 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 에 설치될 수 있으나, 이에 제한되지 않는다. 사용자들은 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 에 설치된 프로그램을 실행하여, 서버 (4000) 에 의해 제공되는 온라인 게임을 즐길 수 있다. 후술하는 본 개시의 다양한 실시예들은 온라인 게임을 실행시키기 위한 프로그램 내에서 구현되거나, 그 프로그램과는 별도의 프로그램을 통해 구현될 수 있다.
서버 (4000) 는 게임 제공업자에 의해 운영될 수 있고, 서버 (4000) 는 단일 서버, 서버의 집합체, 및 클라우드 서버를 포함할 수 있으나, 이에 제한되지 않는다. 서버 (4000) 는 사용자들에게 온라인 게임을 제공하고, 사용자들의 데이터를 저장하는 데이터 베이스를 포함할 수 있다. 또한, 서버 (4000) 는 결제 이벤트를 생성 및 처리하는 결제 서버 또는 지불 서버를 더 포함할 수 있다. 결제 서버 또는 지불 서버는 서버 (4000) 와 별개의 서버일 수 있고, 서버 (4000) 및 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 간의 결제나 지불을 매개할 수도 있다. 서버 (4000) 는 사용자 데이터를 저장하고 관리하는 데이터베이스 (database: DB) 서버를 더 포함할 수 있고, DB 서버는 서버 (4000) 와 별개의 서버일 수 있다.
서버 (4000) 에서는 온라인 게임을 서비스하기 위한 프로그램이 구동될 수 있다. 후술하는 본 개시의 다양한 실시예들은 온라인 게임을 서비스하기 위한 프로그램 내에서 구현되거나, 그 프로그램과는 별도의 프로그램을 통해 구현될 수 있다.
네트워크는 소정의 통신 방식을 이용하여 설립 (또는 형성) 된 연결을 의미하고, 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 사이 또는 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 과 서버 (4000) 사이에서 데이터를 전달하는 소정의 통신 수단을 통해 연결된 통신망을 의미할 수 있다.
통신 수단은 소정의 통신 규격, 소정의 주파수 대역, 소정의 프로토콜 또는 소정의 채널을 통한 통신, 근거리 통신, 원거리 통신, 무선 통신 및 유선 통신을 포함한다. 예를 들어, 통신 수단은 블루투스, BLE, Wi-Fi, Zigbee, 3G, LTE, 초음파를 통한 통신 수단 등을 포함할 수 있으나, 이에 제한되지 않는다.
근거리 통신 수단은, 통신을 수행하는 디바이스들이 소정의 범위 내에 있을 때에만 서로 통신이 가능한 통신 수단을 의미할 수 있고, 예를 들어, 블루투스 및 NFC 를 포함할 수 있으나, 이에 제한되지 않는다.
원거리 통신 수단은, 통신을 수행하는 디바이스들이 거리와 관계 없이 서로 통신이 가능한 통신 수단을 의미할 수 있다. 예를 들어, 원거리 통신 수단은 AP와 같은 중계기를 통해 통신을 수행하는 두 디바이스가 소정의 거리 이상일 때에도 통신할 수 있는 수단, 및 문자 전송과 전화 통화에 사용되는 셀룰러 네트워크 (3G, LTE) 를 이용한 통신 수단을 포함할 수 있으나, 이에 제한되지 않는다.
서버 (4000) 가 네트워크를 이용하여 온라인 게임을 서비스하는 과정에서, 임의의 통신 수단을 통해 서버 (4000) 와 클라이언트들 (2000a, 2000b, 2000c, 2000d, 2000e, 및 2000f) 간의 통신이 수행될 수 있다.
온라인 게임은 RPG (Role Playing Game), TRPG (Tabletop RPG), MMORPG (Massively Multiplayer Online RPG), MOBA (Multiplayer Online Battle Arena), AOS (Aeon of Strife), RTS (Real Time Strategy), FPS (First-person shooter), TCG (Trading Card Game), CCG (Collectible Card Game), 스포츠, 대전격투 등 다양한 장르의 게임일 수 있으나, 이에 제한되지 않는다. 온라인 게임은 사용자들 간의 대전 또는 사용자와 컴퓨터 (예를 들면, 인공지능) 과의 대전으로 진행될 수 있으나, 이에 제한되지 않고, 다양한 형태로 구현될 수 있다.
도 11 은 일 실시예에 따른 서버의 블록도이다.
도 11 에 도시된 바와 같이 서버(4000)는 메모리(4010), 프로세서(4020), 및 통신 인터페이스(4030) 를 포함할 수 있다. 그러나 도 11 에 도시된 구성 요소가 모두 서버(4000)의 필수 구성 요소인 것은 아니다. 도 11 에 도시된 구성 요소들보다 더 많거나 더 적은 구성 요소에 의해 서버(4000)가 구현될 수 있다.
메모리 (4010) 는 프로세서(4020)의 처리 및 제어를 위한 프로그램, 또는 프로그램을 구성하는 인스트럭션 (instruction) 을 저장할 수 있고, 서버(4000)로 입력되거나 서버(4000)로부터 출력되는 데이터를 저장할 수도 있다.
메모리 (4010) 는 서버 (4000) 로 하여금 본 개시의 실시예에 따른 다양한 동작들을 실행할 수 있게 하는 인스트럭션을 저장할 수 있다. 나아가, 메모리 (4010) 는 온라인 플랫폼, 예를 들어, 온라인 게임을 서비스하는데 필요한 정보를 저장할 수 있다. 예를 들어, 메모리(4010)는 사용자의 계정, 캐릭터, 및 아이템에 관한 정보를 저장할 수 있으나, 이에 제한되지 않고 다양한 정보를 저장할 수 있다.
메모리(4010)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 메모리(4010)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 구분될 수도 있다.
프로세서(4020)는 통상적으로 서버(4000)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(4020)는 메모리(4010)에 저장된 프로그램을 실행함으로써, 서버(4000)에 포함된 구성 요소들을 제어할 수 있다. 프로세서(4020)는 복수의 프로세서들, 예를 들어, 하나 이상의 중앙 프로세싱 유닛 (central processing unit: CPU) 들, 하나 이상의 그래픽 프로세싱 유닛 (graphic processing unit: GPU) 들, 또는 이들의 조합으로 구성될 수 있다.
프로세서 (4020) 는 메모리 (4010)에 저장된 인스트럭션을 실행하여, 서버(4000)로 하여금 본 개시의 다양한 실시예에 따른 다양한 동작들을 수행하도록 구성될 수 있다.
통신 인터페이스(4030)는 서버(4000)가 다른 디바이스들과 통신할 수 있도록 소정의 표준에 부합되도록 설계된 전자 회로일 수 있다.
통신 인터페이스(4030)은 블루투스 통신 인터페이스, BLE(Bluetooth Low Energy) 통신 인터페이스, 근거리 자기장 통신 인터페이스(Near Field Communication), 와이파이 (wireless fidelity: WIFI) 통신 인터페이스, 지그비(Zigbee) 통신 인터페이스, 적외선(infrared Data Association: IrDA) 통신 인터페이스, WFD(Wi-Fi Direct) 통신 인터페이스, UWB(ultra wideband) 통신 인터페이스, Ant+ 통신 인터페이스, 3G 통신 인터페이스, LTE 통신 인터페이스, 및 5G 통신 인터페이스일 수 있으나, 이에 제한되지 않는다.
본 개시의 다양한 실시예에 따른 정보의 전달은 통신 인터페이스 (4030) 를 통해 수행될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(operating system: OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 게임에서 논플레이어 캐릭터 (non-player character: NPC) 의 행동 패턴을 정의하는 N개의 해를 이용하여 부모세대를 구성하는 단계;
    유전 알고리즘을 통해 상기 부모세대로부터 시작하여 M번째 자식세대를 구성하는 단계;
    상기 M번째 자식세대의 해에 기초하여 상기 NPC 를 제어하는 단계; 및
    N 및 M 중 적어도 하나에 기초하여 결정된 난이도에 기초하여 상기 게임을 사용자에게 제공하는 단계를 포함하는 방법을 하드웨어와 결합되어 실행시키기 위해 매체에 저장된 컴퓨터 프로그램 (N 및 M 은 양의 정수임).
  2. 제 1 항에 있어서,
    상기 M번째 자식세대는 M-1번째 자식세대의 적합도에 대한 평가에 기초하여 구성되는 컴퓨터 프로그램.
  3. 제 1 항에 있어서,
    상기 M번째 자식세대의 적합도는 N 및 M 중 적어도 하나의 증가에 따라 증가하고,
    상기 M번째 자식세대의 해는 상기 적합도가 증가할수록 최적화되는 컴퓨터 프로그램.
  4. 제 3 항에 있어서,
    상기 M번째 자식세대의 해가 최적화될수록 상기 난이도는 더 어려운 레벨로 결정되는 컴퓨터 프로그램.
  5. 제 1 항에 있어서,
    상기 게임은 턴제 (turn-based) 게임인 컴퓨터 프로그램.
  6. 제 1 항에 있어서,
    N 및 M 중 적어도 하나는 소정의 수로 제한되는 컴퓨터 프로그램.
  7. 제 6 항에 있어서,
    상기 사용자가 상기 게임을 플레이하는 수준에 따라 N 및 M 중 적어도 하나는 조절되는 컴퓨터 프로그램.
  8. 제 7 항에 있어서,
    N 및 M 중 적어도 하나의 조절은 상기 수준의 변화에 적응적인 컴퓨터 프로그램.
  9. 제 1 항에 있어서,
    상기 방법은 N 및 M 중 적어도 하나를 제어함으로써, 상기 난이도를 조절하는 단계를 더 포함하는 컴퓨터 프로그램.
  10. 제 9 항에 있어서,
    상기 방법은 상기 난이도를 조절하기 위한 조절바 (adjustment bar) 를 디스플레이하는 단계를 더 포함하는 컴퓨터 프로그램.
  11. 제 1 항에 있어서,
    상기 게임은 네트워크를 통해 상기 사용자에게 제공되는 컴퓨터 프로그램.
  12. 제 1 항에 있어서,
    상기 방법은:
    유전 알고리즘을 통해 M+L번째 자식세대를 구성하는 단계; 및
    상기 M번째 자식세대의 적합도 및 상기 M+L번째 자식세대의 적합도를 비교하는 단계를 더 포함하는 컴퓨터 프로그램. (L 은 양의 정수임)
  13. 제 12 항에 있어서,
    상기 방법은 상기 M번째 자식세대의 적합도 및 상기 M+L번째 자식세대의 적합도 비교 결과에 기초하여 피드백을 출력하는 단계를 더 포함하는 컴퓨터 프로그램.
  14. 제 13 항에 있어서,
    상기 피드백은 채팅창을 통해 출력되는 컴퓨터 프로그램.
  15. 제 12 항에 있어서,
    상기 방법은 상기 M번째 자식세대의 적합도 및 상기 M+L번째 자식세대의 적합도 비교 결과에 기초하여 게임의 리뷰를 제공하는 단계를 더 포함하는 컴퓨터 프로그램.
  16. 제 12 항에 있어서,
    상기 게임은 복수의 장면들로 구성되고,
    상기 복수의 장면들 각각에서 상기 NPC 는 상기 M번째 자식세대의 해에 기초하여 제어되고,
    상기 방법은 상기 M번째 자식세대의 적합도 및 상기 M+L번째 자식세대의 적합도 비교 결과가 미리 결정된 범위를 초과하는 장면을 결정하는 단계를 더 포함하는 컴퓨터 프로그램.
  17. 제 16 항에 있어서,
    상기 방법은 상기 결정된 장면을 기록하는 단계를 더 포함하는 컴퓨터 프로그램.
  18. 제 16 항에 있어서,
    상기 방법은 상기 결정된 장면에 기초하여 게임의 리뷰를 제공하는 단계를 더 포함하는 컴퓨터 프로그램.
  19. 게임에서 논플레이어 캐릭터 (non-player character: NPC) 의 행동 패턴을 정의하는 N개의 해를 이용하여 부모세대를 구성하는 단계;
    유전 알고리즘을 통해 상기 부모세대로부터 시작하여 M번째 자식세대를 구성하는 단계;
    상기 M번째 자식세대의 해에 기초하여 상기 NPC 를 제어하는 단계; 및
    N 및 M 중 적어도 하나에 기초하여 결정된 난이도에 기초하여 상기 게임을 제공하는 단계를 포함하는 방법 (N 및 M은 양의 정수임.
  20. 인스트럭션들을 저장하는 메모리; 및
    상기 인스트럭션들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고, 상기 프로세서는 상기 인스트럭션들을 실행하여:
    게임에서 논플레이어 캐릭터 (non-player character: NPC) 의 행동 패턴을 정의하는 N개의 해를 이용하여 부모세대를 구성하고;
    유전 알고리즘을 통해 상기 부모세대로부터 시작하여 M번째 자식세대를 구성하고;
    상기 M번째 자식세대의 해에 기초하여 상기 NPC 를 제어하고; 및
    N 및 M 중 적어도 하나에 기초하여 결정된 난이도에 기초하여 상기 게임을 제공하도록 구성된 전자 디바이스.
KR1020170153979A 2017-11-17 2017-11-17 게임에서 난이도를 결정하기 위한 방법, 장치, 및 컴퓨터 프로그램 KR102487081B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170153979A KR102487081B1 (ko) 2017-11-17 2017-11-17 게임에서 난이도를 결정하기 위한 방법, 장치, 및 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170153979A KR102487081B1 (ko) 2017-11-17 2017-11-17 게임에서 난이도를 결정하기 위한 방법, 장치, 및 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20190056726A KR20190056726A (ko) 2019-05-27
KR102487081B1 true KR102487081B1 (ko) 2023-01-10

Family

ID=66679378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170153979A KR102487081B1 (ko) 2017-11-17 2017-11-17 게임에서 난이도를 결정하기 위한 방법, 장치, 및 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR102487081B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013066512A (ja) 2011-09-20 2013-04-18 Konami Digital Entertainment Co Ltd ゲームシステム
KR101588016B1 (ko) 2012-02-23 2016-01-25 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 게임 자원 분산 방법 및 서버

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100718334B1 (ko) * 2004-08-30 2007-05-14 중앙대학교 산학협력단 인공지능기법을 이용한 사용자 상호작용 게임 난이도조절방법
KR101231798B1 (ko) * 2009-04-30 2013-02-08 한국전자통신연구원 게임 난이도 조절 장치 및 방법
KR102419180B1 (ko) * 2014-12-23 2022-07-11 라인업 주식회사 난이도를 조절하여 게임 서비스를 제공하는 게임 시스템 및 난이도 조정 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013066512A (ja) 2011-09-20 2013-04-18 Konami Digital Entertainment Co Ltd ゲームシステム
KR101588016B1 (ko) 2012-02-23 2016-01-25 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 게임 자원 분산 방법 및 서버

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
강신진 외 2명. 유전자 알고리즘을 사용한 게임 레벨 디자인 기법. 컴퓨터그래픽스학회 논문지. 2009.12., 제15권, 제4호 (제13면 내지 제21면)
전영재. 게임 레벨 자동 생성을 위한 경로 탐색 기반의 난이도 평가 방법. 숭실대학교 대학원. 2014년 6월

Also Published As

Publication number Publication date
KR20190056726A (ko) 2019-05-27

Similar Documents

Publication Publication Date Title
US11562626B2 (en) Guild-dependent variation of player capabilities in a computer-implemented game
KR101459565B1 (ko) 모바일 게임에서의 스킬 동작 수행방법 및 그 단말장치.
JP7209826B2 (ja) インタラクショングラフィックユーザインターフェースをディスプレイするための方法、その装置及びそのコンピュータプログラム
WO2012154425A1 (en) System and method for placing players of a multiplayer game in a virtual world
KR102293006B1 (ko) 온라인 게임을 자동으로 운영하기 위한 컴퓨터-구현 방법, 장치, 및 컴퓨터 프로그램
US20160067607A1 (en) Methods and Systems for Asynchronous Football Gaming and Progressive Simulation
US9849370B2 (en) Custom game boards
JP6034945B1 (ja) ゲームプログラム
US20130324240A1 (en) Systems and methods of icon optimization in game user interface
KR20200138889A (ko) 공간이원화를 이용하여 스포츠 게임의 플레이어 캐릭터를 육성하는 방법 및 시스템
KR20210106152A (ko) 복귀 지원 시스템을 제공하는 게임 제공 장치 및 게임 제공 장치의 동작 방법
KR20150017016A (ko) 게임 스킬 구현 방법 및 서버
KR102487081B1 (ko) 게임에서 난이도를 결정하기 위한 방법, 장치, 및 컴퓨터 프로그램
KR20210003627A (ko) 전자 장치 및 전자 장치에서 게임의 관심 영역을 표시하는 방법
JP7355948B2 (ja) 仮想オブジェクトの制御方法及び装置並びにコンピュータ装置及びプログラム
KR102137737B1 (ko) 게임의 난이도를 조정하기 위한 방법, 장치, 및 컴퓨터 프로그램
KR102227330B1 (ko) 인터랙션 그래픽 유저 인터페이스를 디스플레이하기 위한 방법, 장치, 및 컴퓨터 프로그램
KR20200100562A (ko) 게임의 난이도를 조정하기 위한 방법, 장치, 및 컴퓨터 프로그램
KR102461310B1 (ko) 가챠 이벤트를 제공하기 위한 방법, 장치, 및 컴퓨터 프로그램
US20150231501A1 (en) Systems and methods of managing game objects using multiple inputs
KR102678935B1 (ko) 설정된 구매 금액 내에서 상품 정보를 제공하는 게임 제공 장치 및 게임 제공 장치의 동작 방법
KR20200046842A (ko) 게임에서 파라미터를 조절하기 위한 방법, 장치, 및 컴퓨터 프로그램
WO2023231557A9 (zh) 虚拟对象的互动方法、装置、设备、存储介质及程序产品
WO2024060914A1 (zh) 虚拟对象的生成方法、装置、设备、介质和程序产品
KR20230153101A (ko) 그래픽 유저 인터페이스를 디스플레이하기 위한 방법 및 게임 제공 장치

Legal Events

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