티스토리 뷰
게임 공유 링크 : https://drive.google.com/file/d/1Yni460bHI8DKhJXFASFJYFk1JD6WQecX/view?usp=drive_link
게임 플레이 영상 : https://youtu.be/D4EsOG6PRig
GitHub 링크 : https://github.com/bokiee99/Bickering-Trip-
당시 구상 내용 정리 노션 : https://pickled-cake-5fc.notion.site/2777d705b8c141d08e66bd5aa932aa84
프로젝트 개요 | Notion
<대표 참고 게임>
pickled-cake-5fc.notion.site
4학년 1학기 게임 프로그래밍 수업을 들으면서 중간 및 기말고사를 대체하는 3인 팀 프로젝트로 만들었던 게임이다.
3인 팀 프로젝트이기는 하지만, 나머지 팀원의 참여율이 저조하여 메인 화면 제작 및 약간의 에셋 탐색에서만 도움을 받고 나머지 대부분을 개발하게 되었다.
게임 제목은 Bickering Trip으로 직역하면 티격태격 여행, 말다툼하는 여행이다.
컨셉은 남매 2명이서 같이 여행을 다니는 것이다.
보통 사이좋은 남매가 다소 드문 편이기에 남매가 같이 여행을 다녔을 시 티격태격하며 말다툼을 많이 할 것으로 생각하여 제목을 Bickering Trip으로 정하였다.
남매를 선택한 이유는 본인이 실제로 남매가 있기 때문이다.
장르는 기본적으로 플랫포머이며 로그라이크 특징도 가지고 있다.
그리고 플레이어가 남매로 2명이므로 멀티 게임이다.
여기서 멀티는 로컬 멀티로 설정하였는데, 이유는 다음과 같다.
1. 유니티를 이 수업을 통해 처음 접하여서 일반 멀티 구현은 어려울 것으로 판단
* 포톤 엔진도 설치해보고 실제로 알아보긴 했으나, 주어진 시간에 비해 난이도가 높다고 판단
2. 게임 컨셉 자체가 로컬 멀티가 더 적합함
* 남매가 같이 여행하는 컨셉 (남매가 같이 집에서 플레이함으로써 몰입도 증가)
멀티 게임인 것을 강조하기 위해 다음과 같은 룰을 만들었다.
다음과 같은 룰을 통해 플레이어의 합이 게임 진행에 있어서 큰 비중을 갖게 되며,
특히 카메라 시야 역할을 하는 오빠 역할이 중점이 되어 진행하게 된다.
1. 2명의 플레이어가 일정 거리 이상 벌어지면 게임 종료
2. 카메라는 오빠 역할 캐릭터에게 고정
여행을 떠나는 컨셉이기에, 각 스테이지를 여행지로 설정했다.
여행지는 산책, 등산, 스카이 다이빙, 해저 탐색 이렇게 총 4가지이다.
스테이지를 돌아다니면서 남매 둘 중 하나의 체력이 0이 되는 순간 맨 처음 스테이지부터 다시 시작하게 된다.
기본적으로 맵은 하나의 거대한 메가 레벨로 각 스테이지 끝에 있는 포탈을 통해 다른 스테이지로 넘어가게 된다.
여행지에는 총 3개의 히든 장소가 존재하며, 이러한 히든 장소는 남매가 서로 좋아하는 장소를 가리킨다.
각자 좋아하는 히든 장소에 도달하면 해당 캐릭터가 이모티콘을 나타내며,
도달한 히든 장소 갯수에 따라 엔딩 문구가 변하게 된다.

먼저 튜토리얼 구간에 해당하는 산책 구간이다.
해당 구간에서는 평원과 숲을 돌아다니게 되며,
먼저 평원에서는 기본적인 이동 방식과 돌 부수기 액션, 사다리 타기 액션을 겪게 된다.
돌 부수기 액션의 경우 돌을 부셔서 길을 만들거나, 돌에 숨겨진 아이템을 습득할 수 있다.
이어서 숲에서는 기존 높이에 비례에 점프거리가 증가하는 점프 블록과 맞으면 체력이 감소하는 가시 함정, 체력을 회복하기 위한 아이템이 새롭게 추가 된다.

등산 구간은 돌산과 눈산을 돌아다니게 된다.
기존 좌우 이동에서 이제 상하로 스테이지를 이동하게 된다.
돌산에서는 기존 길을 막거나 아이템이 숨겨져있는 돌들이 더 많아지며, 사다리 타기와 가시가 더욱 많이 추가된다.

눈산에서는 새롭게 구름 블록이 추가 되며,
플레이어 2명이 구름 블록에 위치하면 해당 구름이 위로 올라가거나 아래로 내려간다.
또한 기존 점프 블록을 모양만 구름으로 바꿔서 점프 블록으로서 기능하는 구름도 존재한다.

스카이 다이빙 구간은 아래로 이동하게 되는데, 이때 중력값이 매우 낮아서 천천히 낙하하게 된다.
이때 잘못 부딪히면 반동으로 멀리 날라가기도 하고, 중간에 방해 블록과 체력 회복 아이템 등이 존재한다.


해저 구간은 처음으로 몬스터가 나오는 구간이다.
또한 해저에 걸맞게 기존 이동속도와 점프속도가 대폭 낮아진 상태로 이동하게 된다.
몬스터는 물고기 3마리가 존재하며, 각 물고기는 다른 이동속도와 데미지를 가지고 있다.
여기서 추가로 속도 업 아이템이 존재하며, 해당 아이템을 통해 일시적으로 원래의 이동속도로 회복하게 된다.


참고 강의
- Learn To Create A Local Multiplayer Game In Unity (Udemy 강의)
- 【한글자막】 C# Unity 게임 개발자 2D (Udemy 강의)
마치며
기획을 하면서 생각나는 아이디어는 제법 있었는데,
구현 난이도 및 제작 시간을 고려하다보니 꽤 많은 부분을 타협하게 된 것 같다.
처음 기획할 때는 그렇게 어렵지 않은 아이디어라고 생각했는데 막상 해보니 순탄치가 않았다.
실제 업계에서 기획이랑 개발자 사이에서 사이가 좋지 못한 케이스가 있다는 게시글을 종종 봤었는데 확실히 그럴수도 있겠다는 생각이 들었다.
기존에 맵도 전부 새로운 씬으로 제작하는 것을 목표로 했는데, 캐릭터의 저장 정보를 씬에 같이 넘기는 것에 계속 오류가 발생하여 맵을 씬 하나에 전부 작성하여 하나의 메가 레벨로 작성했다.
따라서 스테이지 간 이동을 플레이어 좌표 이동 (순간이동) 을 통해 하였고,
이를 최대한 자연스럽게 보이도록 스테이지간 거리를 조절 (배경이 겹치지 않도록) 하였다.
하지만 그래도 보이는 순간이 있었고, 그럴듯해 보일뿐 깔끔하지 못할뿐 만 아니라 부자연 스럽게 화면이 넘어가는 부분들이 다소 존재하여 완성도면에서 상당히 아쉬웠다.
에셋의 한계도 아쉬웠다.
에셋은 기본적으로 무료 에셋을 이용하고, 캐릭터와 눈산 지형만 몇천원짜리 유료 에셋을 구매하여 사용했다.
사용하다보니 느낀 건 특정 블록을 나는 발판으로 사용하였지만,
가시성이 떨어지는 블록이라 잘 보이지 않았던 문제가 있었다.
이는 테스트 플레이를 부탁했던 친구들에게도 여러번 지적 받았던 부분이다.
해당 에셋을 따로 테두리 강조 처리를 했으면 더 좋았겠지만, 당시에 시간적 여유가 없어 크게 생각하지 못했다.
다행히도 BGM이나 효과음 부분에서는 생각보다 무료 파일에서도 괜찮았던 것들이 많았다.
덕분에 처음에 우려했던 것보다는 괜찮은 퀄리티가 나왔던 것 같다.
해당 프로젝트는 3인 팀 프로젝트임에도 불구하고 거의 나 혼자 진행하게 되어 다소 어려움을 가졌었다.
조장이 정해지지 않은 랜덤 팀원의 프로젝트였는데,
게임 업계에 생각이 있어서 제일 의욕이 있었던 내가 주도하여 진행을 했었다.
최대한 의견을 물어보며 진행하고자 했지만, 이럴수록 오히려 진행이 느려져 시간이 부족해졌고 이에 따로 Udemy 사이트를 통해 공부하면서 사실상 혼자 개발을 진행하게 되었던 것 같다.
랜덤 팀원이었기에 처음부터 어느정도 각오도 하고 있었고, 애초에 혼자 간단한 게임을 만들어볼 생각을 하고 있었기에 크게 여의치는 않았으나 만들다보니 각자 파트를 담당하여 더 나은 퀄리티의 게임을 만들었으면 어땠을까 하는 아쉬움이 많이 남았던 것 같다.
어떻게 해야 팀원들의 참여율을 더 높일 수 있었을까 생각도 들었지만... 처음부터 랜덤 팀원이 아닌 뜻이 맞는 팀원들을 모아 프로젝트를 시작하는 것이 제일 베스트에 가까운 것 같다.
이또한 경험이라고 생각하기에 힘들지 않았다고 하면 거짓말이 되겠지만, 크게 후회하거나 하지는 않는다.
아무래도 전체적인 완성도 측면의 아쉬움은 있다보니 만약 다시 같은 팀원들과 개발을 하게 된다면 주도하여 진행할 때 의견만 물어보거나, 대략적인 파트만 말해주는 것이 아니라 구체적으로 어떠한 부분들을 언제까지 해달라고 정확하게 말하면서 진행했다면 어땠을까 하는 생각이 남는다.
그래도 사실상 처음 하는 게임 개발 프로젝트였던 만큼 여러모로 뜻 깊은 경험이었던 것 같다.