DOI QR코드

DOI QR Code

Design of Action Game Using Three-Dimensional Map and Interactions between In-Game Objects

  • Kim, Jin-Woong (Dept. of Computer Engineering, Jeju National University) ;
  • Hur, Jee-Sic (Dept. of Computer Engineering, Jeju National University) ;
  • Lee, Hyeong-Geun (Dept. of Computer Engineering, Jeju National University) ;
  • Kwak, Ho-Young (Dept. of Computer Engineering, Jeju National University) ;
  • Kim, Soo Kyun (Dept. of Computer Engineering, Jeju National University)
  • 투고 : 2022.10.20
  • 심사 : 2022.11.17
  • 발행 : 2022.12.30

초록

본 연구에서는 사용자 경험을 증가시키는 액션 게임을 설계하는 것을 목표로 한다. 게임의 몰입감을 높이기 위해, 사용자가 이용하는 게임의 특징을 분석, 각 특징을 참고하여 게임의 시스템적, 시각적 특징을 설계한 것이 특징이다. 제안 방법은 유니티 3D를 이용하여 게임 개체 간 상호작용 시스템을 구현하였고, 사용자가 게임에 몰입할 수 있는 방향으로 설계하였다. 게임의 시각적 요소를 통한 몰입을 유도하기 위해 2차원 오브젝트 및 플레이어를 3차원 공간에 배치하였고, 공간 내 개체와 사물이 광원에 실시간으로 반응할 수 있도록 2차원 동적 광원 셰이더를 추가하여 몬스터와 플레이어간 전투 규칙과 몬스터의 행동 패턴 충돌 감지, 이벤트 감지로 구성하였다. 제안 방법은 구현 논문으로 사용자 경험을 반영하였고, 사용자의 행동 유도성을 이끌 가능성을 보여주었다.

In this study, we aim to design an action game that increases the user experience. In order to increase the immersion of the game, the characteristics of the game used by the user were analyzed, and the systemic and visual characteristics of the game were designed with reference to each characteristic. The proposed method uses Unity 3D to implement an interaction system between objects in the game and is designed in a way that allows users to immerse themselves in the game. To induce immersion through the visual elements of the game, 2D objects and players are placed in a 3D space, and a 2D dynamic light shader is added. It is composed of inter-combat rules and monster behavior pattern collision detection and event detection. The proposed method contained the user experience with the implementation thesis, and showed the game's possibility of leading the user's affordance.

키워드

I. Introduction

‘게임의 사용자 경험에 대한 연구[1]’에 따르면, 게임 구성에는 게임 공간과 캐릭터 그리고 사용자가 움직이도록 하는 미션 (Mission)이 있으며, 게임의 구성은 게이머 (Gamer)에게 맞추어 콘텐츠를 제공할 수 있어야 한다는점을 파악 할 수 있다. 많은 사용자가 이용하는 게임 장르를 분석하면 사용자의 게이밍 경험을 높이는 요소를 파악 할 수 있고, 사용자 경험을 높이는 게임을 설계할 수 있다고 판단해, 2022년 7월 기준, 글로벌 게임 유통업체인 Steam의 ‘가장 많이 플레이한 게임 순위’를 SteamDB[2]에서 조사했다. 그림 1은 2022년 7월에 가장 많은 인기를 얻은 게임을 나타낸 자료이다.

CPTSCQ_2022_v27n12_85_f0001.png 이미지

Fig. 1. Top Rankings on Steam for July 2022

사격게임(Shooter), 역할수행게임(RPG), 전략게임(Simulation), 다중 온라인 전투게임(MOBA, Multiplayer Online Battle Arena), 스포츠에 관련된 게임(Sports) 및 기타 게임(ETC.)으로 분류하여 1위부터 100위까지의 게임 장르를 조사하였다. 조사 결과를 분석해 보면 역할수행게임이 순위의 약 절반을 차지하였고, 그 뒤를 사격게임과 전략게임, 기타 게임이 차지하고 있었다.

게임들이 공통으로 보여주는 특징은 그림 2의 Lost Ark [3] 게임과 같이, 메인 콘텐츠나 부가 요소에 액션을 강조하여 사용자들의 참여를 이끄는 점을 들 수 있다.

CPTSCQ_2022_v27n12_85_f0002.png 이미지

Fig. 2. Lost Ark [3]

그림 3은 Tom Clancy's Rainbow Six Siege[4]로 지형지물을 파괴하고, 다양한 능력을 사용하여 임무를 해결하는 전술 FPS 게임으로 게임 내 임무나 공간을 즐기는데에 있어 여러 가지 해결 방법, 대처법, 상호작용이 제공되어 사용자가 게임에 몰입하도록 디자인되었다는 점이 장점으로 볼 수 있다. 위의 상위권 게임을 분석한 결과, 게임의 설계에 있어서 가장 접근성 높은 액션 요소를 추가하는 것으로 필요하며, 다양한 상호작용을 지원하고 사용자가 게임의 세계관에 빠져들어서 몰입감을 높일 수 있는 게임 개발이 필요하며, 이는 반드시 개발을 위한 목표가 되어야 한다.

CPTSCQ_2022_v27n12_85_f0003.png 이미지

Fig. 3. Tom Clancy's Rainbow Six Siege [4]

II. Preliminaries

1. Related works

‘플랫폼 액션 게임의 특징을 고려한 어포던스[5]’에 따르면, 플랫포머 장르 게임은 남녀노소 불문 없이 직관적인 조작과 목표 설정이라는 특징으로 인해 가장 많은 사용자가 즐기는 장르가 되었다. 해당 장르의 공간 설정과 ‘점프’라는 요소는 다른 장르나 시스템과도 결합하기 용이하므로, 플랫포머 액션 게임은 상당히 많은 수와 종류 가지고 있는 게임 분야라는 것을 보여준다. ‘플랫폼 액션 게임의 특징을 고려한 어포던스[5]’를 분석한 것을 바탕으로, 본 게임 설계의 게임 장르를 10대에서 30대의 액션 게임 사용자를 대상으로 하는 플랫포머 액션 게임으로 설정하였다. 본 장에서는 해당 장르의 고전적 특징과 새로운 특징에 대해 벤치마킹을 진행하였다.

슈퍼마리오 시리즈[6]는 고전적인 플랫포머 게임의 구조를 가지고 있으며, 발판과 적, 그리고 점프를 주된 조작으로 사용하여 쉽게 게임을 즐길 수 있다는 점이 사용자의 접근성을 높였다는데 그 의미가 크고 볼 수 있다. 적과 충돌할 때 체력에 데미지를 입고, 코인과 접촉 할 때 코인을 획득할 수 있는 단순한 구조로 되어있다. 그림 4에서와 같이 뉴 슈퍼마리오 브라더스는 기존의 시리즈를 리메이크한 작품으로, 기존에 있던 구성에 새로운 3D 그래픽과 일부 새로운 시스템을 적용한 점이 주된 특징으로 볼 수 있다.

CPTSCQ_2022_v27n12_85_f0004.png 이미지

Fig. 4. New Super Mario Bros Gameplay[6]

메가맨 2.5D[7]는 록맨 시리즈의 팬 게임으로 2017년에 출시하였다. 메가맨 2.5D는 기존 록맨 시리즈의 시스템인 발판과 사격 기능을 제공한다. 장애물을 피하고, 적을 처치하며, 마지막에 보스를 쓰러트려 한 스테이지를 마치는 구성을 보인다.

메가맨 2.5D는 기존 플랫포머 게임들과는 다른 그래픽 시스템을 가지고 있다. 그림 5에서와 같이 3차원 공간 안에서 2차원의 캐릭터가 액션을 진행한다는 점이 특징이다. 해당 특징을 이용해, 기존의 다른 2D 게임들과 같은 2차원의 그래픽에서는 느끼기 어려웠던 게임 맵의 공간감과 묘사를 다른 장치나 시스템 없이도 직접적으로 사용자에게 전달해줄 수 있다.

CPTSCQ_2022_v27n12_85_f0005.png 이미지

Fig. 5. Mega Man 2.5D Gameplay [7]

2. Benchmarking

제안 방법에서는 2개의 게임 분석을 다음과 같이 분석하여, 사용자 몰입감을 높이는 게임을 개발한다. ① 슈퍼마리오 게임이 보이는 플랫포머 게임의 특성 중 하나인 발판, 플레이어의 접촉 혹은 피격 시 데미지를 주는 적과 획득 가능한 재화가 있다는 점을 참고한다. ② 2차원의 오브젝트와 캐릭터가 3차원의 공간에서 상호작용하는 특성을 참고해 게임을 디자인하고, 개발에 적용하고자 한다. 특히, ‘라프 코스터의 재미이론[8]’에서 알 수 있듯, 기본적 플랫포머 게임의 틀은 유지하되 새로운 목표나 시스템, 패턴을 도입해 사용자에게 참신한 경험을 제공해야 한다.

III. The Proposed Scheme

1. System Architecture

시스템 개요도는 그림 6과 같으며, 전체적인 게임의 시스템적 구성을 화면 단위로 나누었을 때의 모습을 보인다.

CPTSCQ_2022_v27n12_85_f0006.png 이미지

Fig. 6. System Architecture

그림 6과 같이, 메인화면에 사용자가 접근한 뒤, 설정화면에서 창 모드, 해상도와 같은 옵션을 조절할 수 있고, 혹은 종료할 수도 있다. 도중에 메인화면으로 복귀할 수 있고, 플레이어의 체력이 0이 되어 사망할 경우 자동으로 메인화면으로 복귀한다. 게임은 액션 중심의 플랫포머로써 주인공을 조작해 적들을 쓰러트리며, 연구소를 탈출하는 스토리로 진행된다. 그림 7과 같이 준비된 스테이지의 A지점에서 출발해, 이후 B 지점에 있는 보스 몬스터를 쓰러트려야 다음 스테이지로 진행할 수 있도록 설계한다.

CPTSCQ_2022_v27n12_85_f0007.png 이미지

Fig. 7. Stage 1 map​​​​​​​

2. Game Design

2.1. Control and Battle

제안 방법은 기존에 자주 쓰던 키를 사용하였다. 캐릭터는 W, A, S, D 키로 이동하고, 스페이스 바를 눌러 점프를 하며, Shift 키를 누르면 짧은 거리를 회피하며 앞으로 이동할 수 있도록 구성하였다. 마우스 왼쪽 클릭으로 근접공격, 마우스 커서를 움직이며, 고리 오브젝트에 커서를 올려놓고 오른쪽 클릭으로 채찍을 던지면 로프 액션을 수행할 수 있도록 구성하였다.

CPTSCQ_2022_v27n12_85_f0008.png 이미지

Fig. 8. Main character and Dash motion sketch image​​​​​​​

주인공과 몬스터는 체력이 0이 되면 사망한다. 주인공이 사망할 경우, 게임 오버가 된다. 주인공의 체력은 기본적으로 10이며, 10번 피격당할 경우 사망한다. 주인공은 마우스 왼쪽 클릭을 통해 채찍으로 몬스터를 타격할 수 있다. Shift 키를 눌러 주인공이 바라보던 방향으로 돌진하고, 경로 상 몬스터와 공격을 무시하도록 설계했다.

2.2. Rope Action

스파이더맨 시리즈의 게임[9]과 같이, 고리 모양의 오브젝트에 커서(Cursor)를 움직여 가져다 놓고, 플레이어가 마우스 오른쪽 클릭을 하면 주인공의 채찍이 그곳에 걸리고 주인공이 로프 액션을 진행하는 기능이 제공된다. 매달린 상태에선 좌우로 반동을 줄 수 있으며, 해당 기능을 통해 일반적인 조작이나 점프로는 갈 수 없던 절벽을 로프액션으로써 지나갈 수 있게끔 설계했다. (그림 9 참조)

CPTSCQ_2022_v27n12_85_f0009.png 이미지

Fig. 9. Rope action function​​​​​​​

이러한 시스템적 장치는 한 가지 문제를 해결하는 여러방식을 제공하여 사용자의 어포던스(행동유도성)[5]를 생성한다는 점에서 독특한 게임 플레이 설계라 할 수 있다.

2.3. Monster Development

몬스터는 근접 공격 몬스터와 원거리 공격 몬스터가 존재한다. 근접 공격 몬스터는 플레이어가 근접했을 때, 원거리 공격 몬스터는 시야 내에 플레이어가 들어올 시 투사체를 발사해 플레이어에게 데미지를 입힌다. 피격당할 시 주인공은 붉게 변하며 피격 모션을 보이고, 경직과 동시에 뒤로 밀려난다. 몬스터와 접촉하더라도 그림 10과 같이 데미지를 입는다.

CPTSCQ_2022_v27n12_85_f0010.png 이미지

Fig. 10. Action sketch of the main character being hit​​​​​​​

2.4. Drop Item

그림 11은 오브 아이템과 코인 아이템을 보여준다. 몬스터는 주인공에게 처치될 때 죽은 자리에서 오브와 코인이라는 아이템을 떨어트리고 소멸한다. 드롭 아이템은 생성되고 나서 5초 뒤에 소멸한다. 오브 아이템을 주인공이 접촉하여 획득 시, 주인공의 체력이 회복된다. 코인 아이템을 획득할 시 소지하고 있는 코인의 개수가 증가한다.

CPTSCQ_2022_v27n12_85_f0011.png 이미지

Fig. 11. Orb Item and Coin Item​​​​​​​

2.5. Interaction System

주인공은 F키를 눌러 특정 오브젝트나 NPC(Non Player Character)와 상호작용 및 대화를 진행할 수 있다. 캐비넷 오브젝트의 경우, 상호작용 시 2~5개로 무작위의 코인 아이템을 드롭하며, 자판기 오브젝트의 경우, 주인공 이동 속도가 빨라지는 효과를 30초 부여한다. 오브젝트는 상호작용을 제외, 파괴, 변형되지 않도록 설계했다.

IV. Development Environment

1. Development Environment

표1은 제안 방법에 대한 개발환경을 보여준다.

Table 1. Development Environment​​​​​​​

CPTSCQ_2022_v27n12_85_t0001.png 이미지

하드웨어, 소프트웨어 환경이다. 유니티의 경우 호환성이 높은, LTS 버전인 2019.4.21.f1 버전을 사용하였다.

2. Implementation

2.1. Basic movement and combat implementation

‘Unity 엔진을 활용한 리듬게임 개발[10]‘을 참고하여 주인공의 이동과 공격 시스템을 구현하였다. 사용자의 입력에 따라 일정 거리를 이동하고, 스페이스 바를 누르면 IsJumping, 낙하할 때는 IsFalling 형태로 나누어 구현했다. 공격의 경우, 주인공이 채찍을 휘두르는 애니메이션 프레임에 맞추어 콜리더(Colider)를 생성하였고, 해당 콜리더 내에 몬스터가 있을 시 해당 몬스터에게 1의 데미지를 입히도록 구현했다.

이동의 경우, 명확하게 몬스터가 피격 및 사망했다는 것을 확인하기 위해 그림 12과 같은 샘플을 사용하여 구현을 검증하였다. 주인공에게 몬스터가 피격당할 시, 피격 애니메이션이 재생되고, 몬스터의 체력 게이지가 감소하는 것을 확인할 수 있다.

CPTSCQ_2022_v27n12_85_f0012.png 이미지

Fig. 12. Attack Function​​​​​​​

2.2. Rope Action Implementation

로프 액션 기능은 처음에 설계한 것과 같이, 과녁 모양 커서를 마우스로 움직여 고리 오브젝트에 올려놓고, 마우스 오른쪽 클릭을 하면 실행하도록 구현하였다. 이후 구현과정 중 한 가지 문제점을 찾을 수 있었다.

사용자가 마우스 우클릭을 할 시 목표 지점으로 채찍이 날아간다. 이때 목표 지점(그림 13의 C 지점)까지의 거리는 그림 13와 같은 상황에 따라 짧거나(시작 지점이 그림 13의 B 지점), 긴 경우(그림 13의 A 지점) 등 다양한데, 구현 시 채찍의 이미지가 부자연스럽게 늘어지는 모습을 볼수 있었다. 이러한 문제에 대하여 해결하기 위해 본 연구에서는 CARRION[11] 분석을 진행, 길게 뻗어진 주인공 캐릭터의 촉수 끝과 중간 부분으로 나누어, 길이에 따라 중간 부분의 이미지를 순차적으로 배치해 자연스러운 모습을 나타낸 점을 알 수 있었다. 이후 구현하는 로프 액션의 채찍은 채찍의 끝부분과 중간 부분 3개로 구성한 뒤, 채찍이 늘어나는 길이에 따라 중간 부분 채찍의 끝부터 순차적으로 나타나게 하여 그림 13같이 이미지가 늘어지던 문제와 자연스럽지 않은 표현의 문제를 해결했다.

CPTSCQ_2022_v27n12_85_f0013.png 이미지

Fig. 13. Rope Action Function​​​​​​​

2.3. Drop Item Implementation

드롭 아이템인 코인과 오브는 몹의 처치와 동시에 구현하였고, 몹 처치 이벤트가 발생하면 몹이 소멸한 자리에서 오브 아이템과 2~5개 사이의 코인 아이템이 드롭된다.

두 드롭 아이템은 그림 14와 같이 생성과 동시에 몬스터에게서 튀어나오는 연출을 위해 중력을 적용하였다. 따라서 드롭 아이템은 ‘Unity3D엔진에서 투사체 충돌처리 방법의 비교분석[12]’을 참고해 유니티의 강체(RigidBody) 컴포넌트를 사용해 구현하였다. 주인공이 해당 아이템을 습득하기 위해 이동하면, 주인공 개체의 콜리더와 드롭 아이템의 콜리더가 접촉 시 아이템이 사라지며 오브의 경우는 좌측 상단의 HP(Health Point) 게이지를 회복시키고, 코인의 경우는 소지 DNA가 1씩 증가하도록 적용했다.

CPTSCQ_2022_v27n12_85_f0014.png 이미지

Fig. 14. Orb and Coin Item Drop and Acquisition Implementation​​​​​​​

2.4. Interaction implementation

특정 오브젝트는 주인공이 접근 할 때 외곽이 노란색으로 빛나며 상호작용 가능 여부를 표시한다. 이때, 오브젝트의 상단에는 F가 적힌 마커가 출력된다. 자판기 오브젝트와 상호작용하면, 주인공의 MoveSpeed 값이 30초간 2배로 상승하는 효과가 활성화됨을 구현했다. 오브젝트를 둘러싼 외곽선은 유니티에서 제공하는 쉐이더(Shader) 컴포넌트[13]를 이용, 아웃라인(Outline) 값을 설정했다.

2.5. 3D maps and dynamic lighting

전체 맵을 3차원의 큐브(Cube)로 개발 하였고, 2차원 스프라이트를 이용하여 Tilemap을 제작하는 경우보다 자연스러운 공간감이 연출될 수 있었고, 분석 섹션에서 언급했던 공간감이 불러오는 새로운 몰입감을 기대할 수 있다. 또한, 맵 내의 광원 요소에 점 광원(Point Light)을 ‘게임 엔진을 이용한 1인칭 액션 게임 개발 방법’[14]을 참고해 구성하였고, 맵 내의 바닥과 오브젝트, 그리고 주인공과 몹에 UV 맵을 적용, 외곽에 빛이 비칠 수 있도록 림 라이트[15]를 구현하였다.

V. Result

이번 장은 개발된 게임에 대한 결과를 보여준다. 개발은 앞서 언급한 것과 같이, PC 환경으로 진행되었다.

그림 15는 주인공이 대화를 마치고 절벽을 마주한 화면이다. 맵이 3D로 구성, 텍스쳐가 적용되었음을 보인다.

CPTSCQ_2022_v27n12_85_f0015.png 이미지

Fig. 15. Gameplay 1​​​​​​​

그림 16은 동적 광원과 오브젝트 배치, 주인공의 외형 스프라이트가 적용된 화면이다. 연구소라는 장소에 맞게 메모지와 상자, 컴퓨터가 배치된 점을 볼 수 있다.

CPTSCQ_2022_v27n12_85_f0016.png 이미지

Fig. 16. Gameplay 2​​​​​​​

VI. Conclusion

제안 방법은 게임의 사용자 경험을 증가시켜 줄 수 있을 방안으로 액션 요소, 게임 내 물체와 캐릭터의 상호작용, 3D 공간 내의 2D 개체와 같이 새로운 공간감을 추가한 것이 주된 특징이다. 본 연구를 진행하기 위해 사용자들로부터 인기가 있는 주요 게임의 장르를 분석하였고, 접근성 높은 게임 엔진과 에셋을 사용하여 빠르게 개발을 진행했다. 기존의 사례 분석을 통해 제안 게임은 몰입감 높은 어포던스를 이끌 것이라 기대할 수 있다. 향후 연구에서는 해당 게임을 대학생을 대상으로 하여 설문 조사를 진행, 사용자 경험을 증가시킬 방안에 대해 모색할 예정이다.

ACKNOWLEDGEMENT

This research was supported by the Basic Science Research Program through the National Research Foundation of Korea (NRF), funded by the Ministry of Education (2021R1I1A3058103).

참고문헌

  1. E Sac Gwak, "A study for user experience of the game : based on the pattern type and the pattern type attribute of the game space", Journal of Cultural & Art Studies, Vol. 9, pp. 11-52, June, 2017. DOI : 10.9728/dcs.2018.19.6.1033
  2. SteamDB, Most Played Games, "https://steamdb.info/graph/"
  3. SteamDB, Lost Ark, "https://steamdb.info/app/1599340/graphs/"
  4. Steam, Tom Clancy's Rainbow Six Siege, "https://store.steampowered.com/app/359550/Tom_Clancys_Rainbow_Six_Siege/"
  5. Seung-Keun Song, "Affordance in Consideration of a Feature of Platform Action Game", The Journal of the Korea Contents Association Vol.13, No.12, pp.62-69, December, 2013. DOI : 10.5392/JKCA.2013.13.12.062
  6. Nintendo, New Super Mario Bros. U deluxe, "https://www.nintendo.co.kr/software/switch/adala/index.html"
  7. Petersjostrand.com, Mega Man 2.5D, "http://petersjostrand.com/about.html"
  8. Raphael Koster, Chang-Seok Yoo, Theory of Fun for Game Design, Second Edition, 2017, Gilbut, pp.46-75
  9. Steam, Marvel's Spider-Man Remastered, "https://store.steampowered.com/app/1817070/Marvels_SpiderMan_Remastered/"
  10. Lee Young-Joon, Hwang bong-su, Son ha-yeon, Han Seung-yeon, Jo kyong-jin, Kim Eun-han, "Development of Rhythm Game using Unity Engine", Proceedings of KIIT Conference, pp.530-533. June, 2022.
  11. Steam, CARRION,"https://unity3d.com/kr/unity/qa/lts-releases"
  12. Jong-Seok Seo, Myung-Ju Kang, "Comparative Analysis of Projectile Collision Detection Methods in Unity3D", Proceedings of the Korean Society of Computer Information Conference, 2017.01a, pp.181-182, January, 2017
  13. Unity, Standard Shader, "https://docs.unity3d.com/kr/2021.1/Manual/shader-StandardShader.html"
  14. Jin-Sun Jeon, Jae-Noh Lee, Soo-Kyun Kim, Sung-Ohk An, "Development of Action Game using Game Engine", Proceedings of the Korean Society of Computer Information Conference, 2014.01a, pp.53-54, January, 2014
  15. Unity, GenerateLightmapUVs, "https://docs.unity3d.com/kr/2021.1/Manual/LightingGiUvs-GeneratingLightmappingUVs.html"