대개의 게임 플레이어들은 정해진 패턴대로만 행동하는 NPC(Non-Player Character)보다 사람 플레이어와 상호작용할 때 더욱 큰 만족을 얻는다. 하지만 항상 사람 플레이어를 상대할 수 있는 것은 아니기 때문에 다양한 게임 플레이어에 맞추어 행동할 수 있는 적응형 NPC가 필요하다. 본 논문에서는 FSM(Finite State Machine)을 이용하여 적응형 NPC를 생성하는 기법을 제안한다. 이 기법은 행동 데이터베이스의 행동 정보를 이용하여 FSM을 구성하고, 게임을 진행하는 동안 FSM의 종합 효율값이 목표 효율값으로 접근하도록 실시간으로 FSM을 갱신하는 것을 반복한다. 이 과정에서 NPC는 플레이어에게 적응한다. 실험은, 제안한 기법을 적용한 2D 게임을 제작하여 목표 효율값을 다양하게 설정하여 진행하였다. 실험 결과로, 게임이 진행되면서 종합 효율값이 목표 효율값으로 접근하는 것을 볼 수 있었다. 이는 NPC가 플레이어에게 적응하여 적응형 NPC가 생성됨을 의미하는 것이다.
대개의 게임 플레이어들은 정해진 패턴대로만 행동하는 NPC(Non-Player Character)보다 사람 플레이어와 상호작용할 때 더욱 큰 만족을 얻는다. 하지만 항상 사람 플레이어를 상대할 수 있는 것은 아니기 때문에 다양한 게임 플레이어에 맞추어 행동할 수 있는 적응형 NPC가 필요하다. 본 논문에서는 FSM(Finite State Machine)을 이용하여 적응형 NPC를 생성하는 기법을 제안한다. 이 기법은 행동 데이터베이스의 행동 정보를 이용하여 FSM을 구성하고, 게임을 진행하는 동안 FSM의 종합 효율값이 목표 효율값으로 접근하도록 실시간으로 FSM을 갱신하는 것을 반복한다. 이 과정에서 NPC는 플레이어에게 적응한다. 실험은, 제안한 기법을 적용한 2D 게임을 제작하여 목표 효율값을 다양하게 설정하여 진행하였다. 실험 결과로, 게임이 진행되면서 종합 효율값이 목표 효율값으로 접근하는 것을 볼 수 있었다. 이는 NPC가 플레이어에게 적응하여 적응형 NPC가 생성됨을 의미하는 것이다.
Most game players obtain more satisfactions by interacting with human players that have fluxed behavior patterns, than with NPC(Non-Player Character)s that have fixed behavior patterns. Since it is impossible that game players always interact with human players, adaptive NPCs that can variously beha...
Most game players obtain more satisfactions by interacting with human players that have fluxed behavior patterns, than with NPC(Non-Player Character)s that have fixed behavior patterns. Since it is impossible that game players always interact with human players, adaptive NPCs that can variously behave are required. In this paper, we present a method to create adaptive NPCs using a dynamic FSM(Finite State Machine). This method configures a dynamic FSM by using behavior information at behavior database, and repeatedly updates the dynamic FSM so that the dynamic FSM's total efficiency approaches to a given target efficiency. NPC adapts to game players through this process. For an experiment, we have implemented a 2D game with this strategy, and experimented with various target efficiencies. We show that a dynamic FSM's total efficiency approaches to target efficiency by updating a dynamic FSM several times over. It means that the adaptive NPC to be generated, adapts to game players.
Most game players obtain more satisfactions by interacting with human players that have fluxed behavior patterns, than with NPC(Non-Player Character)s that have fixed behavior patterns. Since it is impossible that game players always interact with human players, adaptive NPCs that can variously behave are required. In this paper, we present a method to create adaptive NPCs using a dynamic FSM(Finite State Machine). This method configures a dynamic FSM by using behavior information at behavior database, and repeatedly updates the dynamic FSM so that the dynamic FSM's total efficiency approaches to a given target efficiency. NPC adapts to game players through this process. For an experiment, we have implemented a 2D game with this strategy, and experimented with various target efficiencies. We show that a dynamic FSM's total efficiency approaches to target efficiency by updating a dynamic FSM several times over. It means that the adaptive NPC to be generated, adapts to game players.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서 제안한 NPC 적응 기법으로 생성된 NPC가 실시간으로 플레이어에게 제대로 적응하는지 여부를 실험한다. NPC가 플레이어에게 잘 적응하기 위해서는 동적 FSM의 지속적인 실시간 상태 갱신이 필요하다.
연구가 활발하다. 본 논문에서는 적응형 NPC를 생성하기 위해 NPC가 실시간으로 게임 플레이어에게 적응하는 기법을 제시한다. 이 기법은, 실시간으로 관리되는 NPC 고유의 행동 데이터베이스(DB)를 이용하여 NPC의 행동을 제어하는 유한상태기계 (Finite State Machine, FSM)을 동적으로 구성하는 방법을 사용한다.
본 논문에서는, 게임 플레이어에 맞추어 다양하게 행동할 수 있는 실시간 적응형 NPC를 생성하는 기법을 제안하였다. 이 기법은 다양한 행동 정보를 저장하고 있는 행동 DB를 이용하여 동적 FSM을 실시간으로 구성하고, 동적 FSM의 종합 효율값이 목표 효율값에 맞추어 가도록 FSM의 상태를 갱 신함으로써 NPC가 적절한 행동을 실행할 수 있게 제어하는 것이다.
본 실험의 가장 중요한 요소는 NPC가 다양하게 행동하는 것과, 행동하였을 때 게임에서 적절한 근거에 의해 실행한 행동의 효율값을 산출할 수 있는지 여부이다. 이 실험을 위해 제작한 게임에서 게임 플레이어와 NPC의 전투가 반복되는 동안 NPC의 행동 DB에 쌓이는 정보 로그 파일과 동적 FSM의 상태 로그 파일, 종합 효율값 변화 로그 파일, 각 캐릭터의 기술사용 로그 파일 등 표 3의 로그 파일들이 생성된다.
제안 방법
다음, Skill_use_log_npc, Skill_use_log_player 파일의 정보를 이용하여 각 실험별 게임 플레이어와 NPC의 행동 패턴 변화를 살펴본다. 목표 효율값이 100일 때 NPC와 게임 플레이어의 행동 패턴 변화를 나타낸 것이 그림 5이다.
동적 FSM 내의 상태를 교체하는 알고리즘을 실행하여, 종합 효율값이 목표 효율값으로 접근시킨다. 이를 위해, 현재 동적 FSM에서 가장 낮은 효율값을가진 상태를 삭제하고, 삭제한 상태보다 높은 효율값을 가지고 있는 상태를 동적 FSM에 추가한다.
동적 FSM을 구성할 때에는 현재 동적 FSM의 종합 효율값을 목표 효율값으로 접근시키 기 위해 동적 FSM 상태 갱신 알고리즘을 고안하여 적용하였다. 이 알고리즘은 간단한 원리로 동작하여 프로세서 자원을 많이 소모하지 않는 특징을 가지고 있다.
효율값의 변화 정보를 포함한다. 먼저 각 실험후 생성된 FSM_Log_TotalEfficiency 파일의 정보를 이용하여 종합 효율값이 목표 효율값에 따라 어떻게 변화하고 있는지 살펴본다.
어느 경우에도 종합 효율값이 목표 효율값으로 접근해가면서 NPC가 플레이어에게 적응해가는 것을 알 수 있었다. 본 연구에서 제안한 동적 FSM 을 이용한 적응 기법은 FSM을 이용하여 NPC를 제어하는 모든 게임에 적용될 수 있는 특징이 있다.
두 가지로 진행된다. 실험 1은 초기에 NPC 가 게임 플레이어에게 제대로 적응하는지 알아보는것으로, 다양한 목표 효율값(100, 80, 60)을 설정하여동적 FSM 100번째 주기가 될 때까지 진행한다. 실험2는 게임 플레이어 A에게 적응한 NPC를 상대로 게임 플레이어 B가 게임을 했을 경우, NPC가 게임 플레이어 B에게도 적응하는지 여부를 알아보는 것이다.
NPC가 플레이어에게 잘 적응하기 위해서는 동적 FSM의 지속적인 실시간 상태 갱신이 필요하다. 실험에서는 상태 갱신 정보들을 기록한 로그(log) 파일들을 관찰함으로써 NPC의 행동 패턴과 게임 플레이어의 행동 패턴을 비교 분석하고 목표 효율값에 따라 종합 효율값이 어떻게 변화하는지를 알아봄으로써 NPC가 적응하는지 여부를 판단한다.
실험용 게임은 플레이어가 키보드로 상하좌우로 이동하고 공격이 가능한 캐릭터가 NPC와 1대1로 대결하는 2D 액션 게임이다. 실험용 게임은 Windows XP 운영체제에서 Visual Studio .
이 기법을 실험하기 위해, 실험용 게임을 제작하고 세가지 목표 효율값을 설정하고 FSM의 종합 효율값이 접근해가는 형태를 분석하였으며, 숙련자와 초보자 플레이어로 하여금 종합 효율값의 변화를 분석하였다. 어느 경우에도 종합 효율값이 목표 효율값으로 접근해가면서 NPC가 플레이어에게 적응해가는 것을 알 수 있었다.
실험2는 게임 플레이어 A에게 적응한 NPC를 상대로 게임 플레이어 B가 게임을 했을 경우, NPC가 게임 플레이어 B에게도 적응하는지 여부를 알아보는 것이다. 이를 위해 게임 플레이어 A를 숙련자로 선정하여 동적 FSM 100번째 주기가 될 때까지 진행하고, 게임플레이어 B는 초보자로 설정하여 마찬가지로 동적 FSM 100번째 주기가 될 때까지 진행한다. 총 200번째 동적 FSM 주기가 될 때까지 실험을 진행한다.
반대로 종합 효율값이 목표 효율값보다 크면 종합 효율값을 작게 만든다. 이를 위해 현재 동적 FSM에서 가장큰 효율값을 가진 상태를 삭제하고, 이보다 낮은 효율값을 가진 상태를 추가한다. 이를 서술한 것이 그림 1이다.
접근시킨다. 이를 위해, 현재 동적 FSM에서 가장 낮은 효율값을가진 상태를 삭제하고, 삭제한 상태보다 높은 효율값을 가지고 있는 상태를 동적 FSM에 추가한다. 반대로 종합 효율값이 목표 효율값보다 크면 종합 효율값을 작게 만든다.
이 기법은 다양한 행동 정보를 저장하고 있는 행동 DB를 이용하여 동적 FSM을 실시간으로 구성하고, 동적 FSM의 종합 효율값이 목표 효율값에 맞추어 가도록 FSM의 상태를 갱 신함으로써 NPC가 적절한 행동을 실행할 수 있게 제어하는 것이다. 일반적인 정적 FSM을 사용하면 실시간으로 NPC의 행동을 다양하게 변화시킬 수 없기 때문에, 게임 실행 중 FSM이 실행되는 동안 FSM의 상태를 갱신할 수 있는 동적 FSM을 설계하여 사용하였다.
적응 방법은 초기 게임의 집합인 세대를 구성하고, 유전자 세대를 적용한 게임의 적합도를 평가한다. 적합도 함수를 이용해 사용자의 수준을 판단하며 이에 따라 선택, 교배, 돌연변이를 수행하여 새로운 세대를 구성한다. 이 과정을 반복함으로써 플레이어 수준에 알맞은 세대를 구성하게 되고, 그결과 플레이어에게 적응하여 알맞은 게임 난이도를 제공할 수 있게 된다[9].
대상 데이터
파일들이 생성된다. 본 연구의 분석 대상은 동적 FSM의 상태 변화를 기록한 FSM.Log, FSM_ Log_TotalEfficiency, 그리고 각 캐릭터의 행동 패턴을 기록한 Skill_use_log_npc, SkilLuse_log_player 등의 텍스트 파일이다.
실험 1에서 동적 FSM이 갱신될 때마다 기록하므로, 이 파일의 정보건수는 100개로 일정하다. 실험 2에서도 종합 효율값의 정보 건수는 실험한 동적 FSM 주기와 같이 200개의 정보를 포함한다. 하지만 다른 정보들은, 게임 플레이어와 동적 FSM에 의해 행동하는 NPC에 따라 달라지므로 실험마다 일정하지 않은 결과가 나타났다.
이를 위해 게임 플레이어 A를 숙련자로 선정하여 동적 FSM 100번째 주기가 될 때까지 진행하고, 게임플레이어 B는 초보자로 설정하여 마찬가지로 동적 FSM 100번째 주기가 될 때까지 진행한다. 총 200번째 동적 FSM 주기가 될 때까지 실험을 진행한다.
이론/모형
어렵다. 본 논문에서 제안하는 기법은 FSM을 사용하여 NPC를 제어한다. 이 기법은 FSM 상태 교체 시에 간단한 알고리즘을 적용하여 프로세서 자원을 적게 소모한다.
성능/효과
게임 플레이어가 숙련자에서 초보자로 교체된 시점은 주기 100 이후이다. NPC의 종합 효율값은 그 전에 비해 100에서 20까지 매우 높아지거나 매우 낮아지는 경향을 보이다가 점차 다시 목표 효율값 60에 안정되는 모습을 볼 수 있다. 종합 효율값이 매우 높아진 것은, 숙련자에게 적응한 NPC가 초보자 게임 플레이어를 상대로 대결할 경우 초보자에게는 강한 NPC가 되었기 때문이다.
값이 클수록 현재 게임 플레이어에 대해 강한 NPC이고, 값이 작을수록 현재 게임 플레이어에게 약한 NPC인 것을 나타낸다. 이 값은 현재 동적 FSM이 운영되고 있는 동안 실행된 모든 행동들의 효율값의 평균 값이다.
한다. 게임 플레이어의 수준을 측정한 결과와 여러 가지 행동 정보를 바탕으로 실시간으로 FSM을 변경하면 NPC의 행동에 변화를 줄 수 있다. 이 장에서는 동적 FSM을 이용한 NPC 제어 구조와적응 기법을 설명한다.
실험 2에서도 종합 효율값의 정보 건수는 실험한 동적 FSM 주기와 같이 200개의 정보를 포함한다. 하지만 다른 정보들은, 게임 플레이어와 동적 FSM에 의해 행동하는 NPC에 따라 달라지므로 실험마다 일정하지 않은 결과가 나타났다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.