게임 공유 링크 : https://drive.google.com/file/d/1Yni460bHI8DKhJXFASFJYFk1JD6WQecX/view?usp=drive_link
4학년 1학기 게임 프로그래밍 수업을 들으면서 중간 및 기말고사를 대체하는 3인 팀 프로젝트로 만들었던 게임이다.
3인 팀 프로젝트이기는 하지만, 나머지 팀원의 협조성이 낮아 사실상 혼자서 진행하게 되었다.
게임 제목은 Bickering Trip으로 직역하면 티격태격 여행, 말다툼하는 여행이다.
컨셉은 남매 2명이서 같이 여행을 다니는 것이다.
보통 사이좋은 남매가 다소 드문 편이기에 남매가 같이 여행을 다녔을 시 티격태격하며 말다툼을 많이 할 것으로 생각하여 제목을 Bickering Trip으로 정하였다.
장르는 기본적으로 플랫포머이며 로그라이크 적 성격도 가지고 있다.
그리고 플레이어가 남매로 2명이므로 멀티 게임이다.
여기서 멀티는 로컬 멀티로 설정하였다.
로컬 멀티로 설정한 이유는 크게 2가지이다.
첫 번째로 Unity를 이 수업을 통해 처음 접했기 때문에 여기서 멀티 부분까지 익히는 것은 다소 무리일 것이라고 판단했다.
두 번째로 내가 생각한 바로는 로컬 멀티가 더 어울리는 게임이라고 생각했다.
내가 생각한 것은 플레이어가 남매인만큼, 실제 남매 또는 가족이 컴퓨터 하나로 같이 플레이하는 것을 생각했다.
요즘은 게임에 대한 인식이 옛날에 비해 많이 올라온 만큼 집에서 가족이 같이 간단하게 즐길 수 있는 게임을 생각했고, 게임 진행 상 협동이 중요시 되기에 게임 제목과 남매(가족)가 같이 바로 옆에서 티격태격하며 게임을 진행하는 것을 목표로 잡았다.
물론 로컬 멀티와 멀티 기능 모두 구현하는 것이 베스트였겠지만, 이는 첫 번째 이유와 같은 이유로 로컬 멀티만 구현하게 되었다.
멀티 게임인 것을 강조하기 위해 다음과 같은 룰을 만들었다.
1. 2명의 플레이어가 일정 거리 이상 벌어지면 게임 종료
2. 카메라는 오빠 캐릭터에게 고정
아래는 예시 움짤이다.
현재 움짤이 제대로 올라가지 않아서 드라이브 공유 링크로 대체하였다. (추후 해결시 수정)
https://drive.google.com/file/d/1T_r85gGLwCnmSx4--_BFIngeWRde9Ncv/view?usp=sharing
여행지 컨셉은 산책, 등산, 스카이 다이빙, 해저 탐색으로 잡았다.
여행지 간에 이동은 해당 스테이지 마지막에 존재하는 포탈을 통해 다음 스테이지로 넘어가게 된다.
여행지에는 총 3개의 히든 장소가 존재하며, 남매가 서로 좋아하는 히든 장소가 다르다.
서로 좋아하는 히든 장소에 도달하면 해당 캐릭터가 이모티콘을 나타내며, 도달한 히든 장소 갯수에 따라 엔딩 문구가 변하게 된다.
산책 구간은 평원과 숲을 돌아다니게 된다.
평원 구역은 듀토리얼 구간으로 기본적인 이동 방식과 돌 부수기 액션, 사다리 타기 액션을 하게 된다.
숲에서는 기존 높이에 비례에 점프거리가 증가하는 점프 블록과 맞으면 체력이 감소하는 가시 함정, 체력을 회복하기 위한 아이템이 새롭게 추가 된다.
https://drive.google.com/file/d/1jY7XaEsJSsnAjg067tu6F9cbi1JzVbkJ/view?usp=sharing
등산 구간은 돌산과 눈산을 돌아다니게 된다.
기존 좌우 이동에서 이제 상하로 스테이지를 이동하게 된다.
돌산에서는 기존 길을 막거나 아이템이 숨겨져있는 돌들이 더 많아지며, 사다리 타기와 가시가 더욱 많이 추가된다.
눈산에서는 새롭게 구름 블록이 추가 되며,
플레이어 2명이 구름 블록에 위치하면 해당 구름이 위로 올라가거나 아래로 내려간다.
또한 기존 점프 블록을 모양만 구름으로 바꿔서 점프 블록으로서 기능하는 구름도 존재한다.
https://drive.google.com/file/d/1_zJdjjjs1_nZ_zC7Af3mRQ895DiEzlwD/view?usp=sharing
스카이 다이빙 구간은 아래로 이동하게 되는데, 이때 중력을 매우 낮게 조절하여 천천히 낙하하게 된다.
이때 잘못 부딪히면 반동으로 멀리 날라가기도 하고, 중간에 방해 블록과 체력 회복 아이템 등이 존재한다.
해저 구간은 처음으로 몬스터가 나오는 구간이다.
또한 해저에 걸맞게 기존 이동속도와 점프속도가 대폭 낮아진 상태로 이동하게 된다.
몬스터는 물고기 3마리가 존재하며, 각각 다른 이동속도와 닿았을 때 다른 데미지를 받게 된다.
여기서 추가로 속도 업 아이템이 존재하며, 해당 아이템을 통해 일시적으로 원래의 이동속도로 회복하게 된다.
프로젝트 개요 노션 : https://www.notion.so/2777d705b8c141d08e66bd5aa932aa84
플레이 영상 : https://drive.google.com/file/d/1plnY6PBE7F1WFq2Miw8hlcUhO_wfwk8v/view?usp=sharing
13분 ~ 17분 30초 구간 동안 진행을 헤매는 부분이 나오니 스킵해도 무방하다. (용량 약 1.6GB)
참고 강의
- Learn To Create A Local Multiplayer Game In Unity (Udemy 강의)
- 【한글자막】 C# Unity 게임 개발자 2D (Udemy 강의)
마치며
기획을 하면서 생각나는 아이디어는 제법 있었는데, 구현 난이도 및 제작 시간을 고려하다보니 꽤 많은 부분을 타협하게 된 것 같다.
처음 기획할 때는 그렇게 어렵지 않은 아이디어라고 생각했는데 막상 해보니 순탄치가 않았다.
실제 업계에서 기획이랑 개발자 사이에서 사이가 그렇게 좋지 못하다는 게시글을 종종 봤었는데 왜 그런지 이해가 가는 순간이었다.
기존에 맵도 전부 새로운 씬으로 제작하는 것을 목표로 했는데, 캐릭터의 저장 정보를 씬에 같이 넘기는 것에 계속 오류가 발생하여 맵을 씬 하나에 전부 작성하여 하나의 메가 레벨로 작성했다.
따라서 스테이지 간 이동을 플레이어 좌표 이동 (쑨간이동) 을 통해 하였고, 이를 최대한 자연스럽게 보이도록 스테이지간 거리를 조절 (배경이 안겹치도록) 하였다.
하지만 그래도 보이는 순간이 있었고, 그럴듯해 보일뿐 깔끔하지 못했던 부분이다.
에셋의 한계도 아쉬웠다.
에셋은 기본적으로 무료 에셋을 이용하고, 캐릭터와 눈산 지형만 몇천원짜리 유료 에셋을 구매하여 사용했다.
사용하다보니 느낀 건 특정 블록을 나는 발판으로 사용하였지만, 가시성이 떨어지는 블록이라 잘 보이지 않았던 문제가 있었다.
이는 테스트 플레이를 부탁했던 친구들에게도 여러번 지적 받았던 부분이다.
해당 에셋을 따로 테두리 강조 처리를 했으면 더 좋았겠지만, 당시에 시간적 여유가 없어 크게 생각하지 못했다.
다행히도 BGM 부분에서는 생각보다 무료 파일에서도 괜찮았던 것들이 많아서 생각보다 괜찮게 선정했던 것 같다.
해당 프로젝트는 3인 팀 프로젝트임에도 불구하고 거의 나 혼자 진행하게 되어 다소 난항을 가졌었다.
조장이 딱히 없던 프로젝트라 제일 의욕이 있었던 내가 주도하여 진행을 했지만, 하다보니 결국은 나 혼자 하게 된 것 같다.
처음부터 어느정도 각오도 하고 있었고, 애초에 혼자 간단한 게임을 만들어볼 생각을 하고 있었기에 크게 여의치는 않았으나 만들다보니 협의해서 더 나은 퀄리티의 게임을 만들었으면 어땠을까 하는 아쉬움이 남았다.
그래도 게임 업계로 갈 생각을 하고 있는 나로서는 여러모로 좋은 경험을 했다고 생각하여 크게 후회가 남지는 않았다.