본문 바로가기

유니티 게임 개발하기/2D 게임 개발일지

유니티 - 탄막 슈팅 게임을 만들자 (9) - 배경을 만들 때 필요한 것

안녕하세요! 윈디입니다. 

최근 일이 바빠졌기도 하고, 만들던 게임의 방향성을 조금씩 확장 해 나가느라 한동안 포스팅을 못 했네요... 반성합니다.


단순히 따라서 만드는 게임이 아니라, 기왕에 만들거면 조금 더 다양한 기능을 만들고 싶었거든요.

하지만 그걸 위해서 세부사항을 수정하는 것들은 말그대로 옵션 조절이었기 때문에 포스팅에 큰 의미가 없을 것 같아 미루고 있었는데, 

그런 부분들을 아예 모아서 하나의 포스트로 올리는것도 나쁘지 않겟다는 생각이 들었습니다.


제가 최근에 고민했던 부분은 차별화에 관한 것이었습니다.


다른 탄막게임들하고 무엇을 다르게 만들고 싶은가?


일단, 제 게임의 경우에는 이전에 말씀드렸듯이 특정 조건에 따라서 이벤트가 오픈되어 엑스트라 페이지에 저장되도록 하는 기능을 구현해서 넣었지만, 단순히 이것만으로는 반복해서 플레이하는 재미는 없을 것 같았습니다.

그래서 어떤 방법을 넣으면 좋을까.. 하고 많이 생각을 해 봤는데요, 결론부터 말하자면 몇몇 조건에 따라서 지형이 변하거나, 스타일이 다른 플레이를 할 수 있다면 어떨까 하는 생각이 들었습니다.


지금까지는 '종스크롤' 로 게임을 만들었지만, '횡스크롤' 도 타이밍이나 조건에 따라서 할 수 있도록 추가하면 어떨까? 라고 생각이 들었습니다.아무래도 횡스크롤이라면 캐릭터를 옆에서 보게 되고, 개인적인 생각이긴 하지만 지형을 위아래로 이동하는 것도 종스크롤보다는 좀더 조작감이 있다고 느껴졌거든요.



△횡스크롤 게임의 대표작 메탈슬러그. 



△종스크롤 게임의 대표작 동방프로젝트. 


반면, 적이 앞(위)에서 나타난다는 느낌을 잘 주기 때문에 개인적으로는 보스전의 본격적인 탄막 배틀에서는 종스크롤이 훨씬 더 좋다고 생각이 들었죠.


그래서 현재 만들고 있는 게임에, '횡스크롤 모드' 를 추가하기로 최종 결정했습니다.

횡스크롤 모드로 진행한 뒤, 종스크롤 모드로 보스전/이벤트 를 추가하면 되겠다는 방향으로 가닥이 잡혔습니다.




▲ 처음에 횡스크롤을 생각하기 시작하면서 만들었던 간단한 기획안 입니다. 

최근에 느낀 것이, 좀더 능률적으로 게임을 만들고 싶다면 계획은 필수고, 그런 계획들을 생각을 정리하기 위해서 그림을 그리거나 글로 써보는 것이 굉장히 많은 도움이 되는 것 같아요. 친구들과 이야기 나누면서 다시한번 열의에 불탔습니다.



또한 어떤 조건을 만족한다면 (예를들어 위의 그림에서는 배경에 있는 흔들거리는 책을 맞추면 책이 결국 떨어지면서 지형이 추가되는 형식이었죠. 총알로는 파괴하기 어려운 몬스터들을 처리해줄 수도 있는 것은 덤이구요.


이렇게 계획을 정하니까, 몇가지 해결해야 할 과제들이 다시 보였습니다.



그중에 첫번째가 바로 오늘의 주제인 배경이었습니다.







우선 지난번에 만들었던 UI화면은 횡스크롤에 걸맞게 간소화시키기 위해 우선 삭제했습니다.  위쪽에 기획하던 그림을 보면 감이 오시겠지만,

간단하고 직관적으로 다시 한번 만들어야겠다는 생각이 들었거든요.

그 다음은 배경이 움직이는 부분이었습니다.


배경은 몇 가지의 구성요소를 가지고 있습니다. 크게 나누면 원경 / 중경 / 근경이라고 볼 수 있겠습니다.

저는 이걸 물고기를 키울 때 어항을 꾸미면서 배웠었는데요, 




★참고자료 입니다. 2011년 AGA 소형수조 레이아웃 수상작입니다. 제가 맨 처음 원경 근경 중경에 대해서 관심을 가지게 된

 사진이라 첨부하였습니다. 혹시 저작권에 문제가 된다면! 말씀 주시면 감사하겠습니다 ㅜㅜ


제가 사진에 표시를 해 둔 부분이 보이시나요?


- 앞쪽은 근경입니다. 작게 바닥에 깔리는 느낌으로 뒷 배경들을 받아주는 받침의 역할을 해 줍니다.


- 중간 부분은 중경이라고 부릅니다. 본격적으로 꾸며주는 부분입니다. 예를 들어 숲을 테마로 한 이 사진에서는 나뭇가지들과 무성한 풀들이 분위기를 만들어 주죠.



- 멀리 파란색은 원경입니다. 말그대로 배경 캔버스라고 생각하시면 되겠습니다. 척 보기엔 별로 중요한 거 같지 않지만 의외로 배경의 분위기에 굉장히 중요한 역할을 해 줍니다.



게임도 똑같습니다. 다만 게임의 경우, 수조와 다른 점이 몇 가지가 있죠.


1.캐릭터가 이동을 하는 느낌을 주기 위하여 배경을 이동시켜야 하는데,  이때 배경의 이동 속도는 근경 > 중경 > 원경 의 순서대로여야만 합니다. 원경은 아예 움직이지 않아도 크게 부자연스러워보이지는 않습니다. 그만큼 넓은 배경을 표현하고 있다면요 (예를들면 하늘)


2.중경과 근경의 경우, 플레이어 캐릭터와 상호작용을 하는 경우가 많습니다.

 예를 들어 중경의 숲 속에서 어떤 눈들이 지켜보고 있다던가

  근경에서 플레이어가 타격이 가능한 터렛이 등장하던가 하는 식이죠. 따라서 중경과 원경의 이동속도는 게임의 템포 조절에 큰 영향을 미칩니다.


△메탈슬러그에서도 근경과 중경에 대해서 사격이 가능합니다. 멀리 원경도 보이시죠?



따라서 반복되는 배경을 만들 경우, 이 속도가 유지되면서 배경을 그려주는 오브젝트가 왼쪽으로 다 지나가고 나면 오른쪽에서 다시 등장하는 코드를 만들어야 하죠.




▲씬 화면의 캡쳐입니다. 실제로 구현하게 되면 단순히 이렇게 반복되는 배경만으로는 부족하겠지만, 연습 삼아 반복되는 배경을 만들어 보았습니다. 근경은 2개의 오브젝트로 구성되어 있어서 반복적으로 오른쪽 끝으로 다시 이동합니다.



   원경/ 중경 / 근경을 움직이는 스크립트는 크게 어렵지 않습니다. 만약 제 포스팅을 이전부터 보아 오셨다면 5분이면 간단하게 만드실     수 있을 거라고 생각이 드네요.





횡스크롤이든 종스크롤이든, 방향만 다를 뿐 배경이 움직이는 방법은 같습니다. 이제 다음은 플레이어가 총을 쏘고 진행하는 방향을 바꾸는 것이겠죠. 다음 시간에는 종스크롤 / 횡스크롤의 변환을 포스팅 해보도록 하겠습니다.