KR20210057605A - 게임 콘텐츠 생성 방법 및 장치 - Google Patents

게임 콘텐츠 생성 방법 및 장치 Download PDF

Info

Publication number
KR20210057605A
KR20210057605A KR1020190144567A KR20190144567A KR20210057605A KR 20210057605 A KR20210057605 A KR 20210057605A KR 1020190144567 A KR1020190144567 A KR 1020190144567A KR 20190144567 A KR20190144567 A KR 20190144567A KR 20210057605 A KR20210057605 A KR 20210057605A
Authority
KR
South Korea
Prior art keywords
tiles
nodes
tile
disposed
information
Prior art date
Application number
KR1020190144567A
Other languages
English (en)
Other versions
KR102310107B1 (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 KR1020190144567A priority Critical patent/KR102310107B1/ko
Publication of KR20210057605A publication Critical patent/KR20210057605A/ko
Application granted granted Critical
Publication of KR102310107B1 publication Critical patent/KR102310107B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

게임 콘텐츠 생성 방법 및 장치가 개시된다. 일 실시예에 따른 게임 콘텐츠 생성 방법은, 게임 콘텐츠에 대응되는 복수의 타일 사이의 인접 관계 규칙을 획득하는 동작, 복수의 노드를 생성하는 동작, 복수의 노드 사이의 연결 관계를 추출하는 동작, 및 인접 관계 규칙 및 연결 관계에 기초하여 복수의 노드에 복수의 타일을 배치하는 동작을 포함한다.

Description

게임 콘텐츠 생성 방법 및 장치{METHOD AND APPARATUS FOR GENERATING GAME CONTENTS}
개시되는 실시예들은 게임 콘텐츠 생성 기술과 관련된다.
온라인 게임은 지속적이고 장시간의 게임 플레이를 요구 하며, 정기적인 업데이트를 통해 게임 유저들에게 새로운 레벨, 아이템 등과 같은 콘텐츠를 공개하여 새로운 게임 플레이 목표를 제안한다. 이를 위해, 게임 회사들은 절차적 콘텐츠 생성(PCG: Procedural Content Generation) 기법을 이용하여 사용자에게 다양한 콘텐츠를 제공한다.
최근 파동 함수 붕괴(WFC: Wave Function Collapse) 기법을 이용하여 사용자가 직관적으로 입력한 인접 관계 규칙을 만족시키는 다양한 게임 콘텐츠(예를 들어, 레벨, 아이템 배치, 벡터장)를 손쉽게 생성하고 있다. 다만, 종래의 그리드(grid) 기반의 파동 함수 붕괴 기법은 내비게이션 메시(navigation mesh) 등과 같은 비정형 데이터에 적용할 수 없는 문제점이 있다.
따라서, 상술한 비정형 데이터에도 적용 가능한 게임 콘텐츠 생성 방법이 요구된다.
개시되는 실시예들은 게임 콘텐츠 생성 방법 및 장치를 제공하기 위한 것이다.
일 실시예에 따른 게임 콘텐츠 생성 방법은, 게임 콘텐츠에 대응되는 복수의 타일 사이의 인접 관계 규칙을 획득하는 동작, 복수의 노드를 생성하는 동작, 복수의 노드 사이의 연결 관계를 추출하는 동작, 및 인접 관계 규칙 및 연결 관계에 기초하여 복수의 노드에 복수의 타일을 배치하는 동작을 포함한다.
인접 관계 규칙은, 복수의 타일 각각에 인접 가능한 타일에 대한 정보를 포함하고, 인접 관계 규칙의 크기는, 복수의 타일의 수 및 복수의 타일 각각에 인접 가능한 타일의 수에 기초하여 결정될 수 있다.
연결 관계는, 복수의 노드 중 서로 인접한 노드들을 연결하는 엣지(edge)를 포함하고, 추출하는 동작은, 복수의 노드로부터 추출된 복수의 엣지 중 서로 교차하는 엣지들을 검출하고, 서로 교차하는 엣지들 중 하나를 선택할 수 있다.
복수의 타일을 배치하는 동작은, 타일이 배치되지 않은 복수의 노드 중 하나를 선택하는 동작, 선택된 노드에 배치 가능한 타일에 대한 정보에 기초하여 선택된 노드에 복수의 타일 중 하나를 배치하는 동작, 인접 관계 규칙 및 연결 관계에 기초하여 타일이 배치되지 않은 복수의 노드 각각에 배치 가능한 타일에 대한 정보를 갱신하도록 복수의 노드에 배치된 타일에 대한 정보를 전파하는 동작, 및 인접 관계 규칙 및 연결 관계에 기초하여 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한지 여부를 판단하는 동작을 포함할 수 있다.
배치 가능한 타일에 대한 정보의 크기는, 복수의 노드의 수 및 복수의 타일의 수에 기초하여 결정될 수 있다.
획득하는 동작은, 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상을 획득하고, 복수의 타일 중 하나를 배치하는 동작은, 배치 가능한 타일에 대한 정보, 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상에 기초하여 선택된 노드에 복수의 타일 중 하나를 배치할 수 있다.
복수의 타일을 배치하는 동작은, 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한 경우, 타일이 배치되지 않은 복수의 노드에 타일이 배치될 때까지 선택하는 동작, 복수의 타일 중 하나를 배치하는 동작 및 전파하는 동작을 반복 수행할 수 있다.
복수의 타일을 배치하는 동작은, 타일이 배치된 복수의 노드 중 적어도 하나에 배치된 타일이 부적합한 경우, 부적합한 타일이 배치된 노드에 복수의 타일 중 하나를 재배치할 수 있다.
일 실시예에 따른 게임 콘텐츠 생성 방법은, 하나 이상의 명령어를 저장하는 메모리 및 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는, 게임 콘텐츠에 대응되는 복수의 타일 사이의 인접 관계 규칙을 획득하고, 복수의 노드를 생성하고, 복수의 노드 사이의 연결 관계를 추출하고, 인접 관계 규칙 및 연결 관계에 기초하여 복수의 노드에 복수의 타일을 배치한다.
인접 관계 규칙은, 복수의 타일 각각에 인접 가능한 타일에 대한 정보를 포함하고, 인접 관계 규칙의 크기는, 복수의 타일의 수 및 복수의 타일 각각에 인접 가능한 타일의 수에 기초하여 결정될 수 있다.
연결 관계는, 복수의 노드 중 서로 인접한 노드들을 연결하는 엣지(edge)를 포함하고, 하나 이상의 프로세서는, 복수의 노드로부터 추출된 복수의 엣지 중 서로 교차하는 엣지들을 검출하고, 서로 교차하는 엣지들 중 하나를 선택할 수 있다.
하나 이상의 프로세서는, 타일이 배치되지 않은 복수의 노드 중 하나를 선택하고, 선택된 노드에 배치 가능한 타일에 대한 정보에 기초하여 선택된 노드에 복수의 타일 중 하나를 배치하고, 인접 관계 규칙 및 연결 관계에 기초하여 타일이 배치되지 않은 복수의 노드 각각에 배치 가능한 타일에 대한 정보를 갱신하도록 복수의 노드에 배치된 타일에 대한 정보를 전파하고, 인접 관계 규칙 및 연결 관계에 기초하여 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한지 여부를 판단할 수 있다.
배치 가능한 타일에 대한 정보의 크기는, 복수의 노드의 수 및 복수의 타일의 수에 기초하여 결정될 수 있다.
하나 이상의 프로세서는, 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상을 획득하고, 배치 가능한 타일에 대한 정보, 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상에 기초하여 선택된 노드에 복수의 타일 중 하나를 배치할 수 있다.
하나 이상의 프로세서는, 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한 경우, 타일이 배치되지 않은 복수의 노드에 타일이 배치될 때까지 선택하는 동작, 복수의 타일 중 하나를 배치하는 동작 및 전파하는 동작을 반복 수행할 수 있다.
하나 이상의 프로세서는, 타일이 배치된 복수의 노드 중 적어도 하나에 배치된 타일이 부적합한 경우, 부적합한 타일이 배치된 노드에 복수의 타일 중 하나를 재배치할 수 있다.
개시되는 실시예들에 따르면, 인접 관계 규칙 및 연결 관계에 기초하여 복수의 노드에 복수의 타일을 배치함으로써, 내비게이션 메시(navigation mesh) 등과 같은 비정형 데이터에도 파동 함수 기법을 적용하여 쉽게 게임 콘텐츠를 생성할 수 있다.
도 1은 일 실시예에 따른 게임 콘텐츠 생성 장치의 구성도이다.
도 2는 일 실시예에 따른 인접 관계 규칙의 예시도이다.
도 3은 일 실시예에 따른 복수의 노드의 예시도이다.
도 4는 일 실시예에 따른 복수의 노드를 생성하는 예를 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 복수의 타일을 배치하는 예를 설명하기 위한 도면이다
도 6은 일 실시예에 따른 복수의 타일이 배치된 복수의 노드의 예시도이다.
도 7은 일 실시예에 따른 복수의 타일이 배치된 복수의 노드의 다른 예시도이다.
도 8은 일 실시예에 따른 복수의 타일 각각의 선택 빈도에 기초하여 복수의 타일이 배치된 복수의 노드의 예시도이다.
도 9는 일 실시예에 따른 벡터장 형태로 생성된 복수의 노드의 예시도이다.
도 10은 일 실시예에 따른 벡터장 형태로 생성된 복수의 노드에 복수의 타일을 배치한 예시도이다.
도 11은 일 실시예에 따른 파티클(particle) 시뮬레이션의 결과 도면이다.
도 12는 일 실시예에 따른 게임 콘텐츠 생성 방법의 순서도이다.
도 13은 일 실시예에 따른 복수의 타일을 배치하는 방법의 순서도이다.
도 14는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다.
이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 이에 제한되지 않는다.
실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 또한, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
이하에서 "게임"이란, 한 명 또는 그 이상의 게이머들이 게이밍 디바이스에 탑재되거나 연결된 입력장치를 이용하여 즐길 수 있는 소프트웨어를 의미한다. 통상 플레이어 캐릭터를 직접 조작하거나, 게임 내 오브젝트의 움직임을 조작하는 등의 방식으로 진행되며, 롤플레잉, 어드벤쳐, 아케이드 등으로 장르가 구분되기도 한다.
이하에서 "게이밍 디바이스"란 게임 소프트웨어를 실행하되 입력장치를 통한 사용자의 입력에 따라 연산을 수행하며, 출력장치를 통해 결과를 출력하는 하드웨어를 의미한다. 예컨대, 개인용 컴퓨터(Personal Computer), 랩탑(Laptop Computer), 게임 콘솔(Game Console), 스마트폰(Smart Phone), 타블렛(Tablet) PC, 스마트 밴드(Smart Band)나 스마트 와치(Smart Watch) 등의 웨어러블 디바이스(Wearable Device)의 형태일 수 있다. 이외에도 상술한 정의를 만족하는 하드웨어라면 게이밍 디바이스에 속하는 것으로 해석된다.
이하에서 "온라인 게임"이란, 게임의 플레이를 위하여 네트워크를 경유하여야 하는 게임을 의미한다. 통상 원격지의 둘 이상의 게이밍 디바이스가 네트워크를 통해 서로 연결되거나, 서버를 통해 동기화되어 즐기는 게임을 의미한다. 상술한 정의를 만족하는 것이라면 게임을 실행하는 게이밍 디바이스의 형태에 제한을 두지 아니한다. 개인용 컴퓨터나 게임 콘솔에서 실행되는 게임뿐만 아니라, 스마트폰과 같은 모바일에서 실행되는 게임, 또는 서로 다른 복수개의 게이밍 디바이스(서로 다른 종류의 게이밍 디바이스도 포함한다)가 연동되거나 클라우드에서 실행되는 게임 또한 상술한 정의를 만족하는 것이라면 온라인게임에 속하는 것으로 해석된다.
이하에서 "입력장치(InputDevice)"란, 게이밍 디바이스에 데이터를 입력하기 위한 장치를 의미한다. 예컨대, 조이스틱, 마우스, 키보드, 터치스크린, 하드웨어버튼 또는 스티어링 휠, 악기, 총, 장갑, 발판 등의 형태로 제조된 게임 조작 전용 입력장치를 들 수 있다. 이외에도 게이밍 디바이스에 탑재되거나 연동되는 각종 센서(온도센서, 적외선 센서, 모션센서, 자이로 센서, 가속도 센서, 중력센서 등)나 글로벌 포지셔닝 시스템(GPS; Global Positioning System), 실내 위치 확인 시스템(Indoor Positioning System)등의 위치 확인 수단 또한 입력장치의 일 예로 들 수 있다.
이하에서 "출력장치(OutputDevice)"란, 게이밍 디바이스의 연산결과를 표시하기 위한 장치를 의미한다. 연산결과는 인간의 오감을 이용하여 인지될 수 있는 형태로 표시된다. 반드시 시각이나 청각적으로 표시되는 경우로 한정되지 않으며 후각적, 촉각적 형태로 표시될 수도 있다. 예컨대, 스피커나 모니터, 헤드마운티드 디스플레이와 같은 전형적인 하드웨어가 상술한 정의를 만족하지만, 이외에도 3D 프린터와 같이 촉각적 형태로 출력하거나, 진동이나 향기, 바람을 발생시키는 장치 또한 출력장치의 일 예가 될 수 있다.
상술한 입력장치 및 출력장치는 게이밍 디바이스의 일 요소로서 게이밍 디바이스에 포함될 수도 있고, 게이밍 디바이스와 별도의 유선 또는 무선 인터페이스를 통하여 연결될 수도 있다.
도 1는 일 실시예에 따른 게임 콘텐츠 생성 장치(100)의 구성도이다.
일 실시예에서, 게임 콘텐츠 생성 장치(100)는 그래프 구조 기반의 복수의 노드를 생성한 후, 게임 콘텐츠에 대응되는 복수의 타일 사이의 인접 관계 규칙에 기초하여 복수의 노드에 복수의 타일을 배치함으로써, 게임 콘텐츠를 생성하기 위한 것일 수 있다. 구체적으로, 게임 콘텐츠 생성 방법은 그래프 구조에 기초하여 게임 콘텐츠를 생성함으로써, 내비게이션 메시(Navigation mesh) 등과 같은 비정형 데이터에 대해서도 게임 콘텐츠를 생성하기 위한 것일 수 있다. 이때, 게임 콘텐츠는 게임 내 거점, 자원, NPC(Non-Player Character) 등과 같이 게임 진행에 필요한 다양한 요소들을 포함할 수 있다.
도 1을 참조하면, 게임 콘텐츠 생성 장치(100)는 인접 관계 규칙 획득부(110), 그래프 구조 생성부(130) 및 타일 배치부(150)를 포함한다.
일 실시예에서, 인접 관계 규칙 획득부(110), 그래프 구조 생성부(130) 및 타일 배치부(150)는 물리적으로 구분된 하나 이상의 장치를 이용하여 구현되거나, 하나 이상의 프로세서 또는 하나 이상의 프로세서 및 소프트웨어의 결합에 의해 구현될 수 있으며, 도시된 예와 달리 구체적 동작에 있어 명확히 구분되지 않을 수 있다.
인접 관계 규칙 획득부(110)는 게임 콘텐츠에 대응되는 복수의 타일 사이의 인접 관계 규칙을 획득한다.
일 실시예에서, 인접 관계 규칙 획득부(110)는 사용자로부터 복수의 타일 사이의 인접 관계 규칙을 획득할 수 있다.
이때, 타일은 게임 콘텐츠에 대응되는 정보일 수 있다.
인접 관계 규칙은 복수의 노드에 복수의 타일을 배치할 때 지켜야 하는 규칙일 수 있다. 일 실시예에서, 인접 관계 규칙은 복수의 타일 각각에 인접 가능한 타일에 대한 정보를 포함할 수 있다.
예를 들어, 도 2에 도시된 바와 같이, A 타일(210), B 타일(220) 및 C 타일(230)이 존재하는 것으로 가정한다. 사용자는 A 타일(210)은 A 타일(210), B 타일(220) 및 C 타일(230)과 인접 가능하고, B 타일(220)은 A 타일(210)과 인접 가능하며, C 타일(230)은 A 타일(210)과 인접 가능하다는 인접 관계 규칙을 입력할 수 있다. 이 경우, 인접 관계 규칙에 따라 A 타일(210)은 모든 타일과 인접 가능하지만, B 타일(220) 및 C 타일(230)은 A 타일(210)만 인접할 수 있다.
또한, 인접 관계 규칙 획득부(110)는 사용자로부터 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상을 획득할 수 있다.
이때, 복수의 노드 각각에 배치 불가능한 타일에 대한 정보는 각 노드에 배치할 수 없는 제약(constraint) 조건일 수 있다.
복수의 타일 각각의 선택 빈도는 노드에 배치될 타일을 선택할 때 각 타일이 선택될 확률을 나타내는 정보(stationary)일 수 있다. 예를 들어, A 타일 및 B 타일의 선택 빈도의 비가 2:1인 경우, 노드에 타일을 배치할 때 동일한 조건에서 A 타일이 배치될 확률이 B 타일이 배치될 확률보다 2배 더 높을 수 있다.
그래프 구조 생성부(130)는 게임 내 가상의 상태 공간을 표현하기 위한 그래프 구조를 생성한다. 이때, 그래프 구조는 노드와 노드 사이를 연결하는 엣지(edge)를 포함할 수 있다.
구체적으로, 그래프 구조 생성부(130)는 복수의 노드를 생성한다.
일 실시예에서, 그래프 구조 생성부(130)는 게임 내 가상의 상태 공간에서 게임 콘텐츠를 배치하기 위한 복수의 노드를 생성할 수 있다. 노드는 게임 콘텐츠에 대응되는 타일을 배치하기 위한 영역일 수 있다.
또한, 그래프 구조 생성부(130)는 보로노이 다이어그램(Voronoi diagram), 포아송 분포(Poisson distribution) 등과 같이 다양한 알고리즘에 기초하여 복수의 노드를 생성할 수 있다.
예를 들어, 도 3에 도시된 바와 같이, 그래프 구조 생성부(130)는 상태 공간에서 보로노이 다이어그램 형태로 복수의 노드를 생성할 수 있다. 이때, 각 노드의 크기, 모양, 형태 등은 각 노드마다 상이할 수 있다.
한편, 상술한 예는 실시예에 불과하며, 그래프 구조 생성부(130)는 상술한 알고리즘 이외에 다양한 방식을 통해 복수의 노드를 생성할 수 있다.
그래프 구조 생성부(130)는 복수의 노드 사이의 연결 관계를 추출한다.
이때, 연결 관계는 각 노드가 어떤 노드와 연결되어 있는지에 대한 정보를 포함할 수 있다. 일 실시예에서, 연결 관계는 복수의 노드 중 서로 인접한 노드들을 연결하는 엣지를 포함할 수 있다.
예를 들어, 그래프 구조 생성부(130)는 패스 파인딩(pathfinding) 알고리즘에 기초하여 복수의 노드 사이의 엣지를 추출할 수 있다. 구체적으로, 그래프 구조 생성부(130)는 각 노드를 연결하면서 기 설정된 임계 값 이하의 길이를 가지는 복수의 엣지를 추출할 수 있다.
또한, 일 실시예에서, 그래프 구조 생성부(130)는 복수의 노드로부터 추출된 복수의 엣지 중 서로 교차하는 엣지들을 검출하고, 서로 교차하는 엣지들 중 하나를 선택할 수 있다.
구체적으로, 그래프 구조 생성부(130)는 복수의 엣지 중 z 축을 기준으로 바라봤을 때 서로 교차하는 엣지들을 검출할 수 있다. 이후, 컴퓨팅 장치(12)는 서로 교차하는 엣지들 중 길이가 긴 엣지를 삭제하는 방식을 이용하여 서로 교차하는 엣지들 중 하나를 선택할 수 있다.
한편, 상술한 예에서 그래프 구조 생성부(130)는 패스 파인딩 알고리즘에 기초하여 엣지를 추출하는 것으로 설명하였으나, 반드시 이에 한정되는 것은 아니고, 다양한 알고리즘에 기초하여 엣지를 추출할 수 있다.
타일 배치부(150)는 인접 관계 규칙 및 연결 관계에 기초하여 복수의 노드에 복수의 타일을 배치한다.
일 실시예에서, 타일 배치부(150)는 파동 함수 붕괴(WFC: Wave Function Collapse) 기법에 기초하여 복수의 노드에 복수의 타일을 배치할 수 있다.
이때, 타일 배치부(150)는 전파 인자(Propagator)와 호환성(Compatible)이라는 변수를 이용하여 복수의 타일 사이의 인접 관계 규칙 및 복수의 노드에 배치 가능한 타일에 대한 정보를 관리할 수 있다.
일 실시예에서, 인접 관계 규칙은 전파 인자라는 변수에 저장될 수 있다. 이때, 인접 관계 규칙의 크기는 복수의 타일의 수 및 복수의 타일 각각에 인접 가능한 타일의 수에 기초하여 결정될 수 있다. 구체적으로, 인접 관계 규칙의 크기는 복수의 타일의 수와 복수의 타일 각각에 인접 가능한 타일의 수의 곱으로 나타낼 수 있다.
또한, 복수의 노드에 배치 가능한 타일에 대한 정보는 호환성이라는 변수에 저장될 수 있다. 이때, 배치 가능한 타일에 대한 정보의 크기는 복수의 노드의 수 및 복수의 타일의 수에 기초하여 결정될 수 있다. 구체적으로, 배치 가능한 타일에 대한 정보의 크기는 복수의 노드의 수 및 복수의 타일의 수의 곱으로 나타낼 수 있다.
즉, 게임 콘텐츠 생성 장치(100)는 그래프 구조에 기반하여 게임 콘텐츠를 생성하기 때문에 기존의 그리드 구조 기반의 방식과 달리 각 노드의 방향을 특정하기 힘들다. 따라서, 게임 콘텐츠 생성 장치(100)는 각 노드의 방향 대신에 각 노드 사이의 연결 관계에 기초하여 게임 콘텐츠를 생성하기 때문에, 인접 관계 규칙 및 배치 가능한 타일에 대한 정보 각각의 크기를 결정함에 있어서 노드의 방향을 고려하지 않는다. 이에 따라, 인접 관계 규칙 및 배치 가능한 타일에 대한 정보는 그리드 구조 기반의 방식에서 3차원 배열의 크기를 가지지만, 그래프 구조 기반의 방식에서 2차원 배열의 크기를 가지게 된다.
한편, 타일 배치부(150)는 복수의 노드 중 타일이 배치되지 않는 노드를 선택하고, 선택된 노드에 타일을 배치하는 관찰(Observe) 동작과 배치된 타일에 대한 정보를 선택된 노드를 제외한 다른 노드들에게 전파하는 전파(Propagate) 동작을 반복하여 수행할 수 있다.
일 실시예에서, 타일 배치부(150)는 복수의 노드 각각에 배치 가능한 타일에 대한 정보를 생성할 수 있다. 이때, 초기에는 복수의 노드에 모든 타일이 배치 가능하지만, 타일을 배치할수록 인접 관계 규칙 및 연결 관계에 따라 각 노드에 배치 가능한 타일이 점점 축소될 수 있다.
또한, 일 실시예에서, 타일 배치부(150)는 타일이 배치되지 않은 복수의 노드 중 하나를 선택할 수 있다.
구체적으로, 타일 배치부(150)는 타일이 배치되지 않은 복수의 노드 중 엔트로피가 가장 낮은 노드를 선택할 수 있다. 이때, 엔트로피가 가장 낮은 노드는 배치 가능한 타일의 수가 가장 적은 노드일 수 있다. 또한, 사용자가 복수의 타일 각각의 선택 빈도를 설정한 경우, 각 노드의 엔트로피는 각 타일의 선택 빈도로부터 영향을 받을 수 있다.
또한, 일 실시예에서, 타일 배치부(150)는 선택된 노드에 배치 가능한 타일에 대한 정보에 기초하여 선택된 노드에 복수의 타일 중 하나를 배치할 수 있다.
구체적으로, 타일 배치부(150)는 복수의 노드 각각에 배치 가능한 타일에 대한 정보, 배치 불가능한 타일에 대한 정보 및 각 타일의 선택 빈도에 기초하여 노드에 복수의 타일 중 하나를 배치할 수 있다.
또한, 일 실시예에서, 타일 배치부(150)는 인접 관계 규칙 및 연결 관계에 기초하여 타일이 배치되지 않은 복수의 노드 각각에 배치 가능한 타일에 대한 정보를 갱신하도록 복수의 노드로 배치된 타일에 대한 정보를 전파할 수 있다.
구체적으로, 타일 배치부(150)는 선택된 노드에 타일을 배치한 후 해당 노드에 다른 타일이 배치될 수 없다는 정보를 복수의 노드로 전파할 수 있다. 또한, 타일 배치부(150)는 복수의 노드로 배치된 타일에 대한 정보를 전파하여 아직 타일이 배치되지 않은 노드들에 배치 가능한 타일에 대한 정보를 갱신할 수 있다.
이에 따라, 타일이 배치될수록 복수의 노드를 포함하는 전체 상태 공간의 불확실성은 점차 낮아지게 될 수 있다.
또한, 타일 배치부(150)는 관찰 동작 및 전파 동작을 수행한 이후에 노드에 배치된 타일이 적합하지 않는 경우, 해당 노드에 타일을 재배치하는 역추적(Backtrack) 동작을 더 포함할 수 있다.
일 실시예에서, 타일 배치부(150)는 인접 관계 규칙 및 연결 관계에 기초하여 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한지 여부를 판단할 수 있다.
구체적으로, 타일 배치부(150)는 연결 관계에 기초하여 타일이 배치된 각 노드와 연결된 노드들을 파악하고, 인접 관계 규칙에 기초하여 각 노드에 배치된 타일과 주변에 연결된 노드들에 배치된 타일들이 서로 인접 가능한지 여부를 판단할 수 있다. 이때, 주변에 연결된 노드들에 배치된 타일들이 서로 인접 가능한 타일들인 경우, 타일 배치부(150)는 적합한 타일이 배치된 것으로 판단할 수 있다.
이후, 타일 배치부(150)는 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한 경우, 타일이 배치되지 않은 복수의 노드에 타일이 배치될 때까지 상술한 타일이 배치되지 않은 복수의 노드 중 하나를 선택하는 동작, 복수의 타일 중 하나를 배치하는 동작 및 전파하는 동작을 반복 수행할 수 있다.
이와 달리, 타일 배치부(150)는 타일이 배치된 복수의 노드 중 적어도 하나에 배치된 타일이 부적합한 경우, 부적합한 타일이 배치된 노드에 복수의 타일 중 하나를 재배치할 수 있다.
구체적으로, 주변에 연결된 노드에 인접 관계 규칙에 어긋나는 타일이 배치된 경우, 노드와 주변에 연결된 노드가 서로 충돌하게 될 수 있다. 이때, 타일 배치부(150)는 이러한 충돌이 일어나기 전의 과정으로 돌아가면서 부적합한 타일이 배치된 노드에 타일을 재배치할 수 있다.
도 4는 일 실시예에 따른 복수의 노드를 생성하는 예를 설명하기 위한 도면이다.
도 4는 예를 들어, 내비게이션 메시로부터 복수의 노드를 생성하는 예를 설명하기 위한 것일 수 있다.
도 4(a)는 내비게이션 메시에 기초한 게임 내 지도를 나타낸 것이다.
일 실시예에서, 그래프 구조 생성부(130)는 포아송 분포 기법을 이용하여 복수의 노드를 추출할 수 있다. 추출된 노드들은 도 4(b)에 도시된 바와 같이 각 영역에 분포하는 것을 확인할 수 있다. 이때, 추출된 노드들은 서로 일정 거리만큼 떨어져 있으며 1개 이상의 타 노드와 연결될 수 있다.
이후, 그래프 구조 생성부(130)는 패스 파인딩 알고리즘에 기초하여 복수의 노드로부터 복수의 엣지를 추출할 수 있다. 추출된 엣지들은 도 4(c)에 도시된 바와 같이 각 노드들을 연결하는 선으로 나타낼 수 있다.
이후, 그래프 구조 생성부(130)는 복수의 엣지 중 서로 교차하는 엣지들을 추출하고, 이미지를 z 축에서 바라봤을 때 서로 교차하는 엣지들 중 길이가 긴 엣지를 삭제하는 방식을 이용하여 서로 교차하는 엣지들 중 하나를 선택할 수 있다.
예를 들어, 410 영역을 살펴보면, 서로 교차하는 엣지들이 존재하는 것을 확인할 수 있다. 이때, 그래프 구조 생성부(130)는 서로 교차하는 엣지들 중 길이가 긴 엣지를 삭제하여 서로 교차하는 엣지들이 존재하지 않도록 할 수 있다.
이에 따라, 도 4(d)에 도시된 바와 같이, 그래프 구조 생성부(130)는 최종적으로 서로 겹치지 않는 엣지들로 연결된 복수의 노드를 생성할 수 있다.
도 5는 일 실시예에 따른 복수의 타일을 배치하는 예를 설명하기 위한 도면이다.
도 5를 참조하면, 인접 관계 규칙 획득부(110)는 사용자로부터 인접 관계 규칙(510)을 획득할 수 있다. 이때, 인접 관계 규칙(510)은 텍스트 형식으로 입력될 수 있다.
예를 들어, 사용자는 A 타일(520)은 모든 타일과 인접 가능하지만, B 타일(530) 및 C 타일(540)은 A 타일(520)만 인접 가능하도록 A 타일(520), B 타일(530) 및 C 타일(540) 사이의 인접 관계 규칙(510)을 텍스트 형식으로 입력할 수 있다.
이후, 타일 배치부(150)는 인접 관계 규칙에 기초하여 복수의 노드에 복수의 타일을 배치할 수 있다. 이때, 복수의 노드에 배치된 각 타일을 살펴보면, 각 타일은 모두 인접 관계 규칙(510)을 성립하는 것을 확인할 수 있다.
구체적으로, 550 영역을 살펴보면, B 타일(530)이 배치된 노드와 연결된 노드들은 A 타일(520)이 배치되고, B 타일(530)이 배치된 노드 주변에 C 타일(540)이 배치된 노드가 존재하지 않는 것을 확인할 수 있다.
또한, 560 영역을 살펴보면, 상술한 B 타일(530)과 동일하게 C 타일(540)이 배치된 노드와 연결된 노드들도 인접 관계 규칙에 맞는 타일들이 배치된 것을 확인할 수 있다.
도 6은 일 실시예에 따른 복수의 타일이 배치된 복수의 노드의 예시도이다.
도 6은 게임 콘텐츠 생성 장치(100)를 이용하여 4색 문제를 해결하는 것을 도시한 도면이다. 이때, 4색 문제는 4가지 색으로 각 노드에 연결된 노드에 서로 상이한 색을 배치할 수 있다는 이론이다.
구체적으로, 도 6에서, 복수의 타일은 각각 서로 상이한 색일 수 있다.
이때, 인접 관계 규칙에 따라 각 타일은 자신을 제외한 모든 타일과 인접할 수 있다.
타일 배치부(150)는 상술한 인접 관계 규칙에 기초하여 복수의 노드에 각각 타일을 배치할 수 있다. 구체적으로, 각 노드에 배치된 색과 주변에 연결된 노드들에 배치된 색이 서로 상이한 것을 확인할 수 있다.
이에 따라, 게임 콘텐츠 생성 장치(100)는 각 노드의 연결 관계 및 인접 관계 규칙만을 이용하여 4색 문제를 해결할 수 있다는 것을 확인할 수 있다.
도 7은 일 실시예에 따른 복수의 타일이 배치된 복수의 노드의 다른 예시도이다.
도 7에 도시된 예에서, 그레이 타일, 레드 타일, 옐로우 타일 및 블루 타일이 존재하는 것으로 가정한다. 이때, 각 타일은 게임 콘텐츠에 대응되는 정보일 수 있다.
또한, 인접 관계 규칙에 따라 그레이 타일은 자신을 포함한 모든 타일과 인접 가능하지만, 레드 타일, 옐로우 타일 및 블루 타일은 오직 그레일 타일만 인접할 수 있다.
이때, 타일 배치부(150)는 상술한 인접 관계 규칙에 기초하여 게임 내 지도에 생성된 복수의 노드에 각각 타일을 배치할 수 있다. 구체적으로, 각 노드에 배치된 타일은 모두 인접 관계 규칙을 만족하는 것을 확인할 수 있다.
도 8은 일 실시예에 따른 복수의 타일 각각의 선택 빈도에 기초하여 복수의 타일이 배치된 복수의 노드의 예시도이다.
도 8은 복수의 타일 각각의 선택 빈도를 서로 상이하게 설정한 후 복수의 노드에 각각 타일을 배치한 것이다.
구체적으로, 도 8(a)는 그레이 타일, 레드 타일, 옐로우 타일 및 블루 타일 각각의 선택 빈도를 5:1:1:1로 설정한 것이다.
이때, 도 8(a)를 참조하면, 그레일 타일이 배치된 노드가 가장 많은 것을 확인할 수 있다.
도 8(b)는 그레이 타일, 레드 타일, 옐로우 타일 및 블루 타일 각각의 선택 빈도를 1:5:1:1로 설정한 것이다.
이때, 도 8(b)를 참조하면, 옐로우 타일 및 블루 타일이 배치된 노드보다 레드 타일이 배치된 노드가 더 많은 것을 확인할 수 있다. 이때, 인접 관계 규칙에 따라 그레이 타일은 모든 타일과 인접할 수 있지만 레드 타일은 오직 그레일 타일만 인접할 수 있기 때문에, 레드 타일의 선택 빈도가 그레일 타일보다 더 높더라도 레드 타일이 배치된 노드보다 그레일 타일이 배치된 노드가 더 많은 것을 확인할 수 있다.
도 8(c)는 그레이 타일, 레드 타일, 옐로우 타일 및 블루 타일 각각의 선택 빈도를 1:1:5:1로 설정한 것이다.
이때, 도 8(c)를 참조하면, 레드 타일 및 블루 타일이 배치된 노드보다 옐로우 타일이 배치된 노드가 더 많은 것을 확인할 수 있다. 이때, 인접 관계 규칙에 따라 그레이 타일은 모든 타일과 인접할 수 있지만 옐로우 타일은 오직 그레일 타일만 인접할 수 있기 때문에, 옐로우 타일의 선택 빈도가 그레일 타일보다 더 높더라도 옐로우 타일이 배치된 노드보다 그레일 타일이 배치된 노드가 더 많은 것을 확인할 수 있다.
도 8(d)는 그레이 타일, 레드 타일, 옐로우 타일 및 블루 타일 각각의 선택 빈도를 1:1:1:5로 설정한 것이다.
이때, 도 8(d)를 참조하면, 레드 타일 및 옐로우 타일이 배치된 노드보다 블루 타일이 배치된 노드가 더 많은 것을 확인할 수 있다. 이때, 인접 관계 규칙에 따라 그레이 타일은 모든 타일과 인접할 수 있지만 블루 타일은 오직 그레일 타일만 인접할 수 있기 때문에, 블루 타일의 선택 빈도가 그레일 타일보다 더 높더라도 블루 타일이 배치된 노드보다 그레일 타일이 배치된 노드가 더 많은 것을 확인할 수 있다.
도 9는 일 실시예에 따른 벡터장 형태로 생성된 복수의 노드의 예시도이다.
도 9는 게임 콘텐츠 생성 장치(100)를 이용하여 게임 내 '바람'이라는 요소를 생성하기 위한 것일 수 잇다.
구체적으로, 바람을 자연스럽게 생성하기 위해서는 바람의 방향이나 세기 등이 자연스럽게 변화해야 한다. 따라서, 바람이라는 비정형 데이터 생성하기 위해 그래프 구조 기반의 파동 함수 충돌 기법을 적용하기 위한 복수의 노드를 생성해야 한다.
구체적으로, 그래프 구조 생성부(130)는 보로노이 다이어그램을 이용하여 바람에 대한 복수의 노드를 생성한 후, 생성된 각 노드에 벡터 값을 지정하여 3차원 벡터장을 생성할 수 있다. 이때, 벡터는 하나의 크기 정보와 두개의 방향 정보로 구성될 수 있다. 이러한, 3차원 벡터장은 기존의 그리드 구조 기반의 데이터보다 더 적은 연산 비용으로 콘텐츠의 특징을 추출할 수 있고, Constraint(예를 들어, 복수의 노드 각각에 배치 불가능한 타일에 대한 정보)나 Stationary(예를 들어, 복수의 타일 각각의 선택 빈도)를 손쉽게 적용할 수 있는 장점이 있다.
한편, 사용자는 벡터 사이의 인접 관계 규칙를 벡터의 크기 및 방향에 기초하여 설정할 수 있다. 예를 들어, 제1 벡터와 제1 벡터의 주변에 있는 제2 벡터가 기 설정된 임계 값보다 작은 크기를 가지는 경우, 제1 벡터와 제2 벡터를 인접 가능하도록 설정할 수 있다. 또한, 두 벡터의 내적의 크기가 기 설정된 임계 값 이상인 경우, 두 벡터는 서로 인접 가능하도록 설정할 수 있다.
예를 들어, 복수의 벡터 사이의 인접 관계 규칙에 대하여 주변 벡터의 크기가 2 이하이면서 주변 벡터와의 각도가 60도 이하인 경우, 주변 벡터와 인접 가능하도록 설정된 것으로 가정한다. 이때, 도 9에 도시된 바와 같이, 인접 관계 규칙에 따라 초록색 벡터는 노란색 벡터들과 인접할 수 있다.
도 10은 일 실시예에 따른 벡터장 형태로 생성된 복수의 노드에 복수의 타일을 배치한 예시도이다.
도 10은 게임 콘텐츠 생성 장치(100)를 이용하여 게임 내 가상의 3차원 공간을 생성한 것일 수 있다.
도 10(a)는 3차원 공간 내 하늘 공간에서 생성된 복수의 노드에 복수의 타일이 배치된 것을 나타낸 것이고, 도 10(b)는 지표면과 가까운 공간에서 생성된 복수의 노드에 복수의 타일이 배치된 것을 나타낸 것이다.
일 실시예에서, 3차원 공간에서 벡터장을 이용하여 게임 콘텐츠를 생성하는 경우, 그래프 구조 생성부(130)는 보로노이 셀(voronoi cell)을 이용하여 복수의 노드를 생성할 수 있다.
이때, 하늘 공간에서 생성된 복수의 노드는 게임 캐릭터들이 지나다니지 않기 때문에 복수의 노드의 정밀도가 낮아도 무방하다. 따라서, 하늘 공간에서 생성된 복수의 노드는 크기가 크고 서로 멀리 떨어져 생성된 것을 확인할 수 있다.
이와 달리, 지표면과 가까운 공간에서 생성된 복수의 노드는 게임 캐릭터들이 지나다니는 공간이기 때문에 복수의 노드의 정밀도가 높아야 한다. 따라서, 지표면과 가까운 공간에서 생성된 복수의 노드는 크기가 작고 서로 가깝도록 생성된 것을 확인할 수 있다.
도 11은 일 실시예에 따른 파티클(particle) 시뮬레이션의 결과 도면이다.
도 11은 도 10에서 생성된 게임 내 가상의 3차원 공간에 파티클 시뮬레이션을 실행시킨 것이다.
구체적으로, 3차원 공간에 존재하는 복수의 노드가 각 노드 사이의 연결 관계를 고려하여 움직이는 것을 확인할 수 있다. 따라서, 각각 타일이 배치된 복수의 노드가 자연스럽게 움직이는 것을 확인할 수 있다.
이에 따라, 게임 콘텐츠 생성 장치(100)는 내비게이션 메시, 3차원 텍스쳐 등과 같이 비정형 데이터에 대해서도 파동 함수 붕괴 기법을 적용함으로써, 게임 콘텐츠를 절차적으로 생성할 수 있다.
도 12는 일 실시예에 따른 게임 콘텐츠 생성 방법의 순서도이다.
도 12에 도시된 방법은 예를 들어, 도 1에 도시된 게임 콘텐츠 생성 장치(100)에 의해 수행될 수 있다.
도 12를 참조하면, 동작 1210에서, 게임 콘텐츠 생성 장치(100)는 게임 콘텐츠에 대응되는 복수의 타일 사이의 인접 관계 규칙을 획득한다.
이때, 게임 콘텐츠 생성 장치(100)는 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상을 획득할 수 있다.
동작 1220에서, 게임 콘텐츠 생성 장치(100)는 복수의 노드를 생성한다.
동작 1230에서, 게임 콘텐츠 생성 장치(100)는 복수의 노드 사이의 연결 관계를 추출한다.
이때, 게임 콘텐츠 생성 장치(100)는 복수의 노드로부터 추출된 복수의 엣지 중 서로 교차하는 엣지들을 검출하고, 서로 교차하는 엣지들 중 하나를 선택할 수 있다.
동작 1240에서, 게임 콘텐츠 생성 장치(100)는 인접 관계 규칙 및 연결 관계에 기초하여 복수의 노드에 복수의 타일을 배치한다.
도 13은 일 실시예에 따른 복수의 노드에 복수의 복수의 타일을 배치하는 방법의 순서도이다.
도 13에 도시된 방법은 예를 들어, 도 1에 도시된 게임 콘텐츠 생성 장치(100)에 의해 수행될 수 있다.
도 13을 참조하면, 동작 1310에서, 게임 콘텐츠 생성 장치(100)는 타일이 배치되지 않은 복수의 노드 중 하나를 선택할 수 있다.
동작 1320에서, 게임 콘텐츠 생성 장치(100)는 선택된 노드에 배치 가능한 타일에 대한 정보에 기초하여 선택된 노드에 복수의 타일 중 하나를 배치할 수 있다.
이때, 게임 콘텐츠 생성 장치(100)는 배치 가능한 타일에 대한 정보, 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상에 기초하여 선택된 노드에 복수의 타일 중 하나를 배치할 수 있다.
동작 1330에서, 게임 콘텐츠 생성 장치(100)는 인접 관계 규칙 및 연결 관계에 기초하여 타일이 배치되지 않은 복수의 노드 각각에 배치 가능한 타일에 대한 정보를 갱신하도록 복수의 노드에 배치된 타일에 대한 정보를 전파할 수 있다.
동작 1340에서, 게임 콘텐츠 생성 장치(100)는 연결 관계 및 인접 관계 규칙에 기초하여 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한지 여부를 판단할 수 있다.
동작 1340에서의 판단 결과 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한 경우, 동작 1350에서, 게임 콘텐츠 생성 장치(100)는 모든 노드에 타일이 배치되었는지 판단할 수 있다.
동작 1350에서의 판단 결과 모든 노드에 타일이 배치되지 않은 경우, 게임 콘텐츠 생성 장치(100)는 모든 노드에 타일이 배치될 때까지 동작 1310, 1320, 1330 및 1340을 반복하여 수행할 수 있다.
이와 달리, 동작 1350에서의 판단 결과 모든 노드에 타일이 배치된 경우, 게임 콘텐츠 생성 장치(100)는 게임 콘텐츠 생성 방법을 종료할 수 있다.
한편, 동작 1340에서의 판단 결과 타일이 배치된 복수의 노드 중 적어도 하나에 배치된 타일이 부적합한 경우, 동작 1360에서, 게임 콘텐츠 생성 장치(100)는 부적합한 타일이 배치된 노드에 복수의 타일 중 하나를 재배치할 수 있다.
도 14는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 개시되는 실시예들에 따른 게임 콘텐츠 생성 장치(100)일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서는 실시예들을 중심으로 기술적 특징들을 설명하였다. 하지만, 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한고, 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 권리범위에 포함된 것으로 해석되어야 할 것이다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 게임 콘텐츠 생성 장치
110: 인접 관계 규칙 획득부
130: 그래프 구조 생성부
150: 타일 배치부

Claims (16)

  1. 게임 콘텐츠에 대응되는 복수의 타일 사이의 인접 관계 규칙을 획득하는 동작;
    복수의 노드를 생성하는 동작;
    상기 복수의 노드 사이의 연결 관계를 추출하는 동작; 및
    상기 인접 관계 규칙 및 상기 연결 관계에 기초하여 상기 복수의 노드에 상기 복수의 타일을 배치하는 동작을 포함하는 게임 콘텐츠 생성 방법.
  2. 청구항 1에 있어서,
    상기 인접 관계 규칙은, 상기 복수의 타일 각각에 인접 가능한 타일에 대한 정보를 포함하고,
    상기 인접 관계 규칙의 크기는, 상기 복수의 타일의 수 및 상기 복수의 타일 각각에 인접 가능한 타일의 수에 기초하여 결정되는 게임 콘텐츠 생성 방법.
  3. 청구항 1에 있어서,
    상기 연결 관계는, 상기 복수의 노드 중 서로 인접한 노드들을 연결하는 엣지(edge)를 포함하고,
    상기 추출하는 동작은, 상기 복수의 노드로부터 추출된 복수의 엣지 중 서로 교차하는 엣지들을 검출하고, 상기 서로 교차하는 엣지들 중 하나를 선택하는 게임 콘텐츠 생성 방법.
  4. 청구항 1에 있어서,
    상기 복수의 타일을 배치하는 동작은,
    타일이 배치되지 않은 복수의 노드 중 하나를 선택하는 동작;
    상기 선택된 노드에 배치 가능한 타일에 대한 정보에 기초하여 상기 선택된 노드에 상기 복수의 타일 중 하나를 배치하는 동작;
    상기 인접 관계 규칙 및 상기 연결 관계에 기초하여 타일이 배치되지 않은 복수의 노드 각각에 배치 가능한 타일에 대한 정보를 갱신하도록 상기 복수의 노드에 상기 배치된 타일에 대한 정보를 전파하는 동작; 및
    상기 인접 관계 규칙 및 상기 연결 관계에 기초하여 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한지 여부를 판단하는 동작을 포함하는 게임 콘텐츠 생성 방법.
  5. 청구항 4에 있어서,
    상기 배치 가능한 타일에 대한 정보의 크기는, 상기 복수의 노드의 수 및 상기 복수의 타일의 수에 기초하여 결정되는 게임 콘텐츠 생성 방법.
  6. 청구항 4에 있어서,
    상기 획득하는 동작은, 상기 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 상기 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상을 획득하고,
    상기 복수의 타일 중 하나를 배치하는 동작은, 상기 배치 가능한 타일에 대한 정보, 상기 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 상기 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상에 기초하여 상기 선택된 노드에 상기 복수의 타일 중 하나를 배치하는 게임 콘텐츠 생성 방법.
  7. 청구항 4에 있어서,
    상기 복수의 타일을 배치하는 동작은, 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한 경우, 타일이 배치되지 않은 복수의 노드에 타일이 배치될 때까지 상기 선택하는 동작, 상기 복수의 타일 중 하나를 배치하는 동작 및 상기 전파하는 동작을 반복 수행하는 게임 콘텐츠 생성 방법.
  8. 청구항 4에 있어서,
    상기 복수의 타일을 배치하는 동작은, 타일이 배치된 복수의 노드 중 적어도 하나에 배치된 타일이 부적합한 경우, 상기 부적합한 타일이 배치된 노드에 상기 복수의 타일 중 하나를 재배치하는 게임 콘텐츠 생성 방법.
  9. 하나 이상의 명령어를 저장하는 메모리; 및
    상기 하나 이상의 명령어를 실행하는 하나 이상의 프로세서를 포함하고,
    상기 하나 이상의 프로세서는,
    게임 콘텐츠에 대응되는 복수의 타일 사이의 인접 관계 규칙을 획득하고,
    복수의 노드를 생성하고,
    상기 복수의 노드 사이의 연결 관계를 추출하고,
    상기 인접 관계 규칙 및 상기 연결 관계에 기초하여 상기 복수의 노드에 상기 복수의 타일을 배치하는 게임 콘텐츠 생성 장치.
  10. 청구항 9에 있어서,
    상기 인접 관계 규칙은, 상기 복수의 타일 각각에 인접 가능한 타일에 대한 정보를 포함하고,
    상기 인접 관계 규칙의 크기는, 상기 복수의 타일의 수 및 상기 복수의 타일 각각에 인접 가능한 타일의 수에 기초하여 결정되는 게임 콘텐츠 생성 장치.
  11. 청구항 9에 있어서,
    상기 연결 관계는, 상기 복수의 노드 중 서로 인접한 노드들을 연결하는 엣지(edge)를 포함하고,
    상기 하나 이상의 프로세서는, 상기 복수의 노드로부터 추출된 복수의 엣지 중 서로 교차하는 엣지들을 검출하고, 상기 서로 교차하는 엣지들 중 하나를 선택하는 게임 콘텐츠 생성 장치.
  12. 청구항 9에 있어서,
    상기 하나 이상의 프로세서는,
    타일이 배치되지 않은 복수의 노드 중 하나를 선택하고,
    상기 선택된 노드에 배치 가능한 타일에 대한 정보에 기초하여 상기 선택된 노드에 상기 복수의 타일 중 하나를 배치하고,
    상기 인접 관계 규칙 및 상기 연결 관계에 기초하여 타일이 배치되지 않은 복수의 노드 각각에 배치 가능한 타일에 대한 정보를 갱신하도록 상기 복수의 노드에 상기 배치된 타일에 대한 정보를 전파하고,
    상기 인접 관계 규칙 및 상기 연결 관계에 기초하여 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한지 여부를 판단하는 게임 콘텐츠 생성 장치.
  13. 청구항 12에 있어서,
    상기 배치 가능한 타일에 대한 정보의 크기는, 상기 복수의 노드의 수 및 상기 복수의 타일의 수에 기초하여 결정되는 게임 콘텐츠 생성 장치.
  14. 청구항 12에 있어서,
    상기 하나 이상의 프로세서는,
    상기 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 상기 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상을 획득하고,
    상기 배치 가능한 타일에 대한 정보, 상기 복수의 노드 각각에 배치 불가능한 타일에 대한 정보 및 상기 복수의 타일 각각의 선택 빈도 중 적어도 하나 이상에 기초하여 상기 선택된 노드에 상기 복수의 타일 중 하나를 배치하는 게임 콘텐츠 생성 장치.
  15. 청구항 12에 있어서,
    상기 하나 이상의 프로세서는, 타일이 배치된 복수의 노드 각각에 배치된 타일이 적합한 경우, 타일이 배치되지 않은 복수의 노드에 타일이 배치될 때까지 상기 선택하는 동작, 상기 복수의 타일 중 하나를 배치하는 동작 및 상기 전파하는 동작을 반복 수행하는 게임 콘텐츠 생성 장치.
  16. 청구항 12에 있어서,
    상기 하나 이상의 프로세서는, 타일이 배치된 복수의 노드 중 적어도 하나에 배치된 타일이 부적합한 경우, 상기 부적합한 타일이 배치된 노드에 상기 복수의 타일 중 하나를 재배치하는 게임 콘텐츠 생성 장치.
KR1020190144567A 2019-11-12 2019-11-12 게임 콘텐츠 생성 방법 및 장치 KR102310107B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190144567A KR102310107B1 (ko) 2019-11-12 2019-11-12 게임 콘텐츠 생성 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190144567A KR102310107B1 (ko) 2019-11-12 2019-11-12 게임 콘텐츠 생성 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210057605A true KR20210057605A (ko) 2021-05-21
KR102310107B1 KR102310107B1 (ko) 2021-10-08

Family

ID=76157708

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190144567A KR102310107B1 (ko) 2019-11-12 2019-11-12 게임 콘텐츠 생성 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102310107B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296562A (ja) * 1998-04-08 1999-10-29 Mitsubishi Electric Corp ユニット配置制限ルール定義装置およびユニット配置制限ルール定義方法
US20150231503A1 (en) * 2013-09-23 2015-08-20 Empire Technology Development Llc Location graph adapted video games
KR20170103138A (ko) * 2016-03-03 2017-09-13 주식회사 넥슨코리아 게임 환경을 시뮬레이트 하는 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296562A (ja) * 1998-04-08 1999-10-29 Mitsubishi Electric Corp ユニット配置制限ルール定義装置およびユニット配置制限ルール定義方法
US20150231503A1 (en) * 2013-09-23 2015-08-20 Empire Technology Development Llc Location graph adapted video games
KR20170103138A (ko) * 2016-03-03 2017-09-13 주식회사 넥슨코리아 게임 환경을 시뮬레이트 하는 시스템 및 방법

Also Published As

Publication number Publication date
KR102310107B1 (ko) 2021-10-08

Similar Documents

Publication Publication Date Title
KR101398086B1 (ko) 온라인 게임에서의 유저 제스처 입력 처리 방법
JP5887458B1 (ja) プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等
US8784214B2 (en) Method and system for establishing location-based leaderboard
KR102631813B1 (ko) 인터페이스 디스플레이 방법, 장치, 단말 및 저장 매체
US20220379214A1 (en) Method and apparatus for a control interface in a virtual environment
JP2017055995A (ja) プログラム、ゲーム装置およびサーバシステム
CN110478900B (zh) 虚拟环境中的地图区域生成方法、装置、设备及存储介质
KR102656970B1 (ko) 가상 객체 선택 방법 및 장치, 디바이스, 및 저장 매체
WO2023010690A1 (zh) 虚拟对象释放技能的方法、装置、设备、介质及程序产品
US20220032188A1 (en) Method for selecting virtual objects, apparatus, terminal and storage medium
CN113786620A (zh) 游戏信息推荐方法、装置、计算机设备及存储介质
US11628365B2 (en) Information processing system, storage medium, information processing apparatus and information processing method
WO2023071808A1 (zh) 基于虚拟场景的图形显示方法、装置、设备以及介质
KR102609293B1 (ko) 게임 동작 결정 장치 및 방법
KR102310107B1 (ko) 게임 콘텐츠 생성 방법 및 장치
KR20200143875A (ko) 게임 인터페이스 방법 및 장치
JP7341801B2 (ja) ビデオゲーム処理プログラム、及びビデオゲーム処理システム
KR102557808B1 (ko) 게임 서비스 시스템 및 상기 시스템에서의 메모 공유 방법
KR102584901B1 (ko) 이벤트 정보 송신 장치 및 방법, 이벤트 정보 출력 장치 및 방법
JP2017099626A (ja) プログラム、端末及びサーバ
KR20190127308A (ko) 게임 동작 예측 장치 및 방법
JP7053753B1 (ja) ビデオゲーム処理プログラム、及びビデオゲーム処理システム
KR102268743B1 (ko) 게임 인터페이스 제공 방법 및 장치
US20230040506A1 (en) Method and apparatus for controlling virtual character to cast skill, device, medium, and program product
KR102463571B1 (ko) 게임 제어 장치 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right