픽셀 액션 게임 만들고 싶으세요? 잠시 제 얘기 좀 들어보세요

게임뉴스 | 윤서호 기자 | 댓글: 4개 |

지난 2016년 처음 공개된 1인 개발 탑다운 액션, '언소울드'는 빠른 페이스의 호쾌한 액션과 도트 그래픽으로 구현한 인터랙티브한 환경이 어우러지면서 유저들의 관심을 끌어모았다. 지난 8월 스팀 서머 페스티벌 기간 일시적으로 데모 버전이 풀렸을 때, 국내외 스트리머 및 유저들에게 호평을 받으면서 한 층 더 기대감이 높아지고 있기도 하다.

"이거 하지 마세요, 힘듭니다"라는 말로 강연을 시작한 메구스타 게임즈의 정진섭 대표. 그는 어떻게 혼자서 1인 탑다운 액션 게임을 개발하고 있으며, 어떤 과정을 거치고 있기에 "(준비가 안 됐다면) 하지 마세요"라고 강조하고 있을까? 이번 유나이트 서울 2020 강연을 통해서 정진섭 대표는 언소울드의 개발의 핵심 과제와, 이를 해결해나가는 과정을 소개해나갔다.





정진섭 대표가 탑다운 액션 게임을 선택한 것은 비교적 단순한 이유에서였다. 액션 게임을 좋아했고, 2D로 개발할 수밖에 없는 상황이었기 때문이다. 그런 이유로 언소울드 개발하면서 픽셀 탑다운이 쉬워보이지만, 생각보다 어려웠다는 걸 깨달았다. 심지어 여러 문제가 겹치면서 올해 가을에 출시하고자 했으나, 출시일이 밀리기까지 했다.

정진섭 대표의 전작 전작 픽셀로는 로직 퍼즐을 응용한 게임. 로직 퍼즐의 숫자, 칸이 RPG 요소라고 생각해서 단순한 퍼즐에 플레이할 수 있는 요소들을 가미했다. 다만 플래시 기반이었기 때문에, 플래시가 퇴출되면서 서비스 종료 수순을 밟았다.

그 다음으로는 3D는 못하니 2D에, 원래 좋아하던 장르인 액션, 거기다 예전부터 해왔던 게임에서 재미있는 요소들을 가미해보자 싶어서 언소울드를 만들었다. 언소울드에 사용된 도트그래픽 및 각종 요소를 하나하나 배워가면서 만들었으며, 베타 테스트할 때 반응도 나쁘지 않았다. 또한 하드코어하게 설계해서 유저의 도전욕구를 자극하기까지 했다.



▲ 2D만 가능했던 상황+자신의 취향이 겹쳐져 개발이 시작된 '언소울드'

정진섭 대표는 탑다운 시점에 전투도 빠르게, 코어하게 만든다는 게 처음엔 쉽게 보였지만 개발하면서 난관에 봉착했다고 고백했다. 처음에는 3년을 예상했지만 그보다 훨씬 오랜 시간이 걸렸다. 언소울드의 특징은 실시간 라이팅을 적용했고, 3D 카메라 연출을 활용해 탑다운 일변도가 아니라 가끔 다른 구도의 연출을 보여주기도 했다. 칼부림 액션과 타격감 극대화를 추구했으며, 하드코어한 난이도를 구현하고자 적들의 AI에도 신경써야했다.

픽셀 게임은 일반적으로 레트로한 느낌을 내려고 해상도를 굉장히 낮추고 픽셀이 물리게끔 만들어나가게 된다. 이를 픽셀 퍼펙트라고 일컫는데, 요즘에는 이를 지키지 않고 개발자마다 다른 기법을 활용하고 있다. 정진섭 대표는 픽셀 퍼펙트 방식으로 구현하기엔 다소 어려운 상황이었고, 무엇보다 기기별 해상도를 맞출 때 어렵기 때문에 픽셀과 스프라이트, 이펙트를 섞어서 유연하게 그래픽을 구축해나갔다.



▲ 픽셀 ONLY가 아닌, 다양한 요소를 섞어서 유연하게 구축해나갔다

2D 액션은 크게 사이드 스크롤, 벨트 스크롤, 탑다운 세 가지로 구분되며, 각 스타일마다 추구하는 방향이 각기 다르다. 사이드 스크롤은 축이 제한되어있어서 액션의 다양성이 줄어들고, 점프의 활용도가 굉장히 중요하다. 벨트 스크롤은 여기서 축을 하나 더해서 좀 더 폭이 넓어졌지만, 상하 움직임에 제한이 있다는 단점이 있었다.

탑다운은 캐릭터의 정수리가 보이는 클래식한 탑다운 외에도 JRPG에서 자주 쓰인 오소그래픽, 오블리크 방식, 젤다의 전설의 탑다운 방식 등 여러 가지 방식으로 나뉘며, 여기에서 분화되어 다양한 스타일이 구축되고 있었다. 그래서 메구스타즈에서는 탑다운 방식을 채택, 스피디하면서 1 대 다의 싸움을 묘사해보고자 했다.

그렇지만 탑다운 방식은 8방향을 전부 다 고려해야 했다. 그만큼 아트 리소스 작업량이 늘 수밖에 없었다. 실제로 언소울드에서 주인공의 이펙트만 해도 스프라이트 시트 3개 이상 분량을 작성해야만 했다. 다만 적은 내가 조작하지 않고 온다 안 온다, 좌나 우에서 움직인다 이 정도만 구분해도 괜찮기 때문에 작업량은 줄일 수 있었다. 오히려 적의 경우는 8방향 전부 다 구현했을 때 다소 복잡해서 시인성이 떨어지는 경우도 있던 만큼, 좌우 리소스만 활용해서 단순화하는 방향으로 채택했다.



▲ 기본적인 것만 해도 이 정도 작업량이 필요하다

또한 건물에 따라 그림자를 그리는 것이 굉장히 힘들어진다. 빛의 방향에 따라 자연스러운 블렌딩이 되어야 하는데, 전통적 2D 환경에서는 이를 다 일일이 고려해서 그려야했기 때문이다. 이를 직접 할 수 없던 만큼 3D에서 주로 쓰였던 실시간 라이팅을 2D에도 도입하는 방법을 고민해야했다.

이미 실시간 라이팅을 2D에 도입하고자 하는 시도는 던전 엔드리스 등 다른 게임에서도 시도가 되고 있었다. 정진섭 대표는 GDC의 던전 엔드리스 강연을 참고, 실시간 라이팅을 2D에 도입해 탑다운뷰에서의 라이팅을 구축했다. 이를 통해서 풍부한 실내 표현 및 시간의 경과 표현이 가능해졌다.

실시간 라이팅은 이렇듯 요술봉처럼 만능으로 보이지만, 2D에서 구현하기 위해서는 여러 가지 어려운 점이 있었다. 처음에는 오브젝트를 직각으로 세우고 카메라를 기울였는데, 이렇게 하면 그림자 크기가 실물 크기보다 절반 정도 줄어서 표현이 된다. 그래서 인지하기 어려워서 그림자를 키우기 위한 추가 조치가 필요해진다. 아울러 카메라 뷰와 축이 안 맞기 때문에 조작감이 다소 안 맞는 느낌이 들기도 했다.

그래서 오브젝트를 60도 기울이고, 카메라는 그대로 위에서 조명하는 방식을 채택했는데 라이팅과 그림자가 각도에 따라 어색할 때가 많았다. 또한 물리 높이 축이 기울어져야만 하고, 물리 엔진도 이에 맞춰야 한다는 단점도 있었다. 이 두 가지를 고민한 끝에, 결국 액션 게임은 조작감이 좋아야 한다는 생각에 오브젝트를 기울이는 방식을 채택했다. 자연히 모든 물리 현상이 평상시 방향이 아닌, 60도 기울어진 방향으로 진행되게끔 설정을 해야만 했다.



▲ 그나마 실시간 라이팅을 도입, 2D로 일일이 그리는 사태까진 피했지만...






▲ 어떤 걸 선택해도 문제가 발생한다. 결국 선택은 후자였다

아울러 실시간 라이팅은 모든 구조물을 옆, 뒤로 나누고 스프라이트를 새로 배치해야만 했다. 그렇지 않고 통으로 두면 라이팅도 그대로 적용되기 때문이다. 그 외에 옆면과 윗면이 받는 라이팅의 양에 따라 두 스프라이트의 명도 차이가 달라지면서 부자연스러워지는데, 이는 옆면 쉐이더에서 들어오는 빛을 다시금 행렬 변환해서 윗면과 같은 각도로 빛을 받게끔 조절해야했다.

또한 실시간 라이팅은 오브젝트가 비어있으면 그대로 빈 공간으로 남아버리는 단점이 있었다. 그렇기 때문에 공백에서도 그림자를 표현하기 위해서는 그림자 오브젝트를 추가로 배치해야했다. 대신 실시간 라이팅은 노멀맵을 활용해 오브젝트에 하이라이트 등 극적 연출이 가능했으며, 다양한 효과를 추가해서 하나의 소스로 여러 가지를 활용할 수 있다는 장점도 있었다. 물론 그 노말맵은 자신이 직접 구축해나가야 했으며, 이 과정은 텍스처 팩커와 스프라이트 일루미네이터를 사용해 아틀라스와 노말맵을 구축해나갔다.



▲ 이런 하이라이트 효과 주는 것도 가능하지만



▲ 게임 개발 과정이 다 그렇듯이 자기가 만들어서 적용해야 한다

엔진상에서는 카메라가 3D로도 볼 수 있어서 작업 과정에서 몇 차례 확인을 했는데, 중간중간 연출에 사용하면 괜찮다는 생각이 들어서 3D 카메라를 적용하는 방식을 선택했다. 오브젝트에 다소 공백이 있어 전면적으로 활용하긴 어려웠으나 일부 구간에서는 3D 카메라로 다양한 구도의 연출을 할 수 있으며, 컷씬의 몰입감도 한 층 더 풍부해졌다. 더 나아가 몇몇 스킬 컷씬 연출에도 활용해 극적인 연출을 내고자 노력했다.

원래 탑다운뷰를 고려해서 만든 픽셀과 스프라이트인 만큼, 3D 카메라 단독으로만 비추었을 때는 어색한 점들이 보일 수밖에 없었다. 그래서 카메라 하나를 더 두고 배경과 인물색을 최대한 단순화시켜서 노출하게끔 설정해 어색한 요소를 최대한 감추는 식으로 설계했다.



▲ 3D 카메라를 활용해서 픽셀 탑다운의 연출 한계를 극복하고자 시도했다

슈팅 액션과 달리 칼부림 액션, 근접 액션은 그 그래픽에 맞게 히트박스를 설계해야 한다는 난제가 있었다. 그래서 모션에 맞춰 히트박스의 세밀한 조정이 필요했으며, 때로는 보이는 것보다 크게 만들어야 하는 등 모순적인 부분도 있었다. 예를 들어 2D 탑다운에서 위아래로 참격을 날릴 때, 위아래면 뿐만 아니라 참격의 이펙트 범위와 심리적인 요소까지 고려해야 했다. 그래야 조작감이 더 살아났기 때문이다. 때로는 빠른 기술, 투사체는 히트박스가 아닌 레이로 처리하는 노하우도 필요했다.

아울러 액션의 손맛을 느끼기 위해서는 타격뿐만 아니라 피격감 구현도 중요했고, 이를 어떻게 해야 할지도 관건이었다. 칼에 베였을 때, 주먹에 얻어맞았을 때, 총을 맞았을 때 어떤 모션이어야 하고 어느 정도의 딜레이가 있어야 하는지 그 각각의 경우를 고려해야 했다.



▲ 슈팅 게임은 박스, 캡슐형 히트박스로 커버되는 경우가 많지만 근접 액션은 더 디테일해야 한다

아울러 하나의 기술, 히트박스에 같은 적이 여러 번 들어오는 경우도 있어서 이를 어떤 식으로 처리할지도 고민해야했다. 예를 들어서 휘두른 검에 맞고 벽에 튕겨나온 적이 히트박스가 유지된 상태에서 다시 들어오게 되면, 다시 참격에 맞는 판정이 나게 된다. 이를 방지하기 위해서는 한 기술에 당한 적은 다시 당하지 않도록 코드를 짜는 것이 필요했다.

아울러 그냥 히트박스만 구현하면 벽 뒤에 있는 적까지도 히트박스 내에 있으면 휘말리는데, 이에 대한 예외도 구현해야만 했다. 또 너무 빠른 이동기를 쓰다보면 히트박스를 인식하기 전에 사물을 뚫고 지나가는 현상이 있는데, 물리만으로는 구현하는 것이 한정된 터라 다음 프레임 예상 이동 거리까지 레이를 쏘고 벽에 닿으면 멈추게 하는 식으로 보완했다.



▲ 다 히트박스로만 처리하면 너무 빨리 지나가는 건 캐치 못하거나 처리가 늦어져서 이상해질 수 있다

액션 게임에서 빼놓을 수 없는 상태이상을 어떻게 구현해야 할지도 정진섭 대표에게는 난제 중 하나였다. 아이템이 아닌 전투로 해결하는 것이 정체성에 맞다고 생각했는데, 그렇다면 어떻게 조건을 줘야 할지가 관건이었던 것이다. 그래서 불이 붙었다면 어떻게 해야 할지, 중독 상태면 어떻게 처리해야 할지 등등, 각 경우의 수를 하나하나 다 따지면서 해결 방안을 설계하고 시스템을 구축해나갔다.

타격감을 극대화하기 위해서 히트스탑, 즉 맞는 순간 아주 짧게나마 피격자와 타격자가 동시에 멈추게끔 했다. 타격감이란 결국 피드백, 즉 유저가 타격을 했다 혹은 맞았다라는 것을 인식해야 하기 때문이다. 그러기 위해서는 잠시 멈춰야 했다.

여기서 언소울드에는 피격 대상이 멈추는 순간, 그 피격 당한 오브젝트를 위아래로 흔들면서 그 기술의 위력을 더 과장해서 표현하고자 했다. 아울러 카메라를 흔들면서, 마치 천지가 진동할 만큼 강력한 기술이라는 점을 어필했다. 히트스탑 상태에서 한 가지 유의해야 할 점은, 이펙트가 움직여야 한다는 점이다.

타격감을 구현하기 위해서 가장 좋은 방법으로는 격투 게임을 관찰하는 것을 추천했다. 격투 게임은 타격감이 가장 중요한 요소인 만큼, 이를 구현하기 위해서 여러 가지 노하우가 녹아있기 때문이다.



▲ 타격감을 극대화하기 위해선 격투 게임을 참고해보자

AI는 기본 비헤이비어로는 한 줄로 쭉 따라오는 부자연스러운 모습이 자주 나오기 때문에, 좀 더 고차원적인 움직임을 보여주기 위해서는 다른 방식을 채택해야만 했다. 그래서 캐릭터 주위에 목표점을 지정하고, 따라가면서 계속 목표를 재수정하는 식으로 코드를 설계했다. 아울러 적마다 자신의 기술에 맞게 거리재기를 하고, 각각 거리에 따라 다른 AI를 적용하도록 코드를 짰다. AI도 난이도에 따라 세분화해서 같은 적, 같은 거리에 있더라도 난이도에 따라 다른 AI를 사용하게끔 분류했다.

또한 AI에게 플레이어의 행동을 보고 판단할 수 있는 능력을 주고, 각각 다른 반응 속도를 주어서 같은 적이라도 반응이 좋은 적과 안 좋은 적 등 개성을 주는 식으로 설계했다. 추가로 동시에 너무 많은 적들이 공격하지 않도록 AI를 설계해야 했고, 보스 AI는 더 세분화하고 체력이 낮은 보스는 난이도 높은 패턴을 소화하게끔 설계해야 했다. 스태미나가 없을 때나 길찾기 관련 AI도 필요했으며, 그외 여러 가지 플레이어 편의를 위한 기능도 필요했다.



▲ 그냥 놔두면 적들은 일렬로 따라오니, AI 설정을 해줘야 한다



▲ AI 역시도 거저가 아니라



▲ 개발자가 어느 정도 체계를 잡아줘야 한다

이처럼 언소울드를 개발하는 과정에서 여러 가지 난관이 있었다고 정진섭 대표는 다시금 강조했다. 아트 리소스도 많이 필요하고, 적재적소 배치하는 것도 작업량이 많은데다가 힘들게 만들고 폐기되는 것도 많았다. 물리 시스템을 새로 만들어야 하는 경우도 있으며, 찰나의 순간에 버그가 발생하는 등 여러 이슈도 있었다. 더군다나 패턴을 다양하게 만들기 위해선 다채로운 AI를 필요로 했다.

이전에 좋은 평가를 받았던 이면에는 결국 '작업량', 그리고 '집념'이 뒷받침이 됐다고 언급하면서, 자신의 역량을 살펴보기를 권장했다. 게임 개발 과정에서는 그 하나하나가 개발자가 만들어가야 하고, 그걸 어떻게 디테일하고 완성도 있게 만들어냈냐에 따라서 유저 평가가 갈리기 때문이다.

댓글

새로고침
새로고침

기사 목록

1 2 3 4 5