Update travel game design plan

This commit is contained in:
jongjae0305
2026-06-17 10:33:48 +09:00
parent 8d0f08cb27
commit ad4cd57a48
+241 -120
View File
@@ -1,139 +1,260 @@
# Uni-Run
`Uni-Run`은 마우스 입력으로 조작하는 2D 러닝 게임 프로젝트입니다.
`Uni-Run`은 마우스 입력으로 조작하는 2D 스피드 러너 게임 프로젝트입니다.
현재 버전은 플레이어가 자동으로 달리는 형태의 기본 러너 구조를 가지고 있으며, 마우스 왼쪽 버튼을 이용한 점프와 더블 점프를 중심으로 진행됩니다. 공부용 프로젝트로는 점프, 충돌, 발판 스폰, 점수, 게임 오버 흐름을 익히기 좋지만, 게임 플레이 관점에서는 조작과성이 단순하고 랜덤 배치가 불공정하게 느껴질 수 있습니다.
현재 프로젝트는 자동으로 오른쪽을 향해 달리는 기본 러너 구조를 가지고 있으며, 점프, 충돌, 발판 스폰, 점수, 게임 오버 흐름을 학습하기 좋은 공부용 게임입니다. 앞으로는 이 기본 구조를 바탕으로 여행 콘셉트, 제한 시간, 마일리지, 면세점, 기념품 수집, 패턴 기반성이 결합된 러너 게임으로 발전시키는 것을 목표로 합니다.
## 기획 방향
## 게임 콘셉트
목표는 단순히 오래 버티는 러너 게임이 아니라, 플레이어가 매 순간 판단할 수 있는 요소를 가진 2D 러너 게임으로 발전시키는 것입니다.
플레이어는 한국에서 튜토리얼을 진행하며 인천공항으로 향하고, 이후 비행기를 타고 일본, 중국, 미국 등 여러 여행지를 방문합니다.
참고 방향은 다음과 같습니다.
각 여행지는 여러 도시 스테이지로 구성되며, 플레이어는 정해진 여행 일정 안에 목적지까지 도착해야 합니다. 빠르게 도착하고, 마일리지를 많이 모으고, 기념품을 수집하는 것이 핵심 목표입니다.
- 쿠키런: 코인, 아이템, 장애물 회피, 목표성
- 소닉: 속도감, 진행감, 박진감
- Canabalt: 단순 조작 기반의 공정한 무한 러너
- Geometry Dash: 리듬감 있는 장애물 패턴
- Super Mario Run: 자동 달리기 속 루트 선택과 보상 구조
## 기본 게임 흐름
## 현재 문제점
```text
한국 튜토리얼
-> 인천공항 도착
-> 비행기 이동 연출
-> 여행 국가 진입
-> 도시 스테이지 3개 진행
-> 기념품 획득
-> 면세점에서 마일리지 사용
-> 다음 여행지 해금
```
현재 구조에서 느껴지는 주요 문제는 다음과 같습니다.
초기 월드 구성은 다음과 같습니다.
- 플레이어의 선택지가 점프 중심으로 제한되어 있다.
- 게임이 오른쪽으로 달리는 흐름만 반복되어 단순하게 느껴진다.
- 발판 높이, 발판 간격, 장애물 배치가 각각 랜덤이라 운이 나쁘면 클리어 불가능한 구간이 생길 수 있다.
- 장애물의 역할이 다양하지 않아 플레이어가 다른 조작을 고민할 이유가 적다.
- 점수 외에 코인, 아이템, 루트 선택 같은 추가 목표가 부족하다.
## 핵심 조작
기본 조작은 마우스만 사용하여 단순하게 유지합니다.
- 마우스 왼쪽 버튼: 점프
- 마우스 왼쪽 버튼 길게 누르기: 높은 점프
- 마우스 왼쪽 버튼 떼기: 짧은 점프
- 마우스 오른쪽 버튼: 슬라이딩
왼쪽 버튼은 위로 피하는 행동, 오른쪽 버튼은 아래로 피하는 행동으로 구분합니다. 이를 통해 플레이어는 장애물 형태에 따라 점프할지, 슬라이딩할지 판단하게 됩니다.
## 주요 시스템
### 1. 속도 증가 시스템
게임 시간이 지날수록 발판, 장애물, 배경의 이동 속도가 조금씩 빨라집니다.
초반에는 조작에 익숙해지는 구간, 중반에는 장애물 판단 구간, 후반에는 빠른 반응을 요구하는 구간으로 난이도가 변합니다.
속도는 계속 증가하되, 지나치게 불합리해지지 않도록 최고 속도 제한을 둡니다.
### 2. 코인 시스템
코인을 획득하면 점수 또는 재화가 증가합니다.
코인은 안전한 위치뿐 아니라 위험한 루트에도 배치하여 플레이어가 보상과 위험 사이에서 선택하게 만듭니다.
예시:
- 기본 경로의 코인: 안전하지만 보상이 적음
- 높은 발판의 코인: 어렵지만 보상이 큼
- 장애물 근처의 코인: 위험하지만 추가 점수 획득 가능
### 3. 아이템 시스템
아이템은 게임에 목표성과 변화를 주기 위한 요소입니다.
초기 아이템 후보:
- 무적: 일정 시간 동안 장애물 충돌을 무시한다.
- 자석: 주변 코인을 자동으로 획득한다.
- 점수 2배: 일정 시간 동안 획득 점수가 증가한다.
처음에는 아이템 종류를 적게 유지하고, 각 아이템의 효과를 명확하게 느낄 수 있게 구성합니다.
### 4. 슬라이딩 시스템
마우스 오른쪽 버튼으로 슬라이딩을 실행합니다.
슬라이딩 중에는 플레이어의 자세가 낮아지고, 상단 장애물을 피할 수 있습니다. 슬라이딩은 점프와 반대되는 회피 방식이므로, 게임에 새로운 판단 요소를 추가합니다.
### 5. 상단 장애물과 위쪽 발판
기존에는 아래쪽 발판과 점프 장애물 중심으로 구성되어 있습니다.
개선 후에는 상단 장애물과 위쪽 발판을 추가하여 루트 선택을 만들 수 있습니다.
- 낮은 장애물: 점프로 회피
- 상단 장애물: 슬라이딩으로 회피
- 위쪽 발판: 더 많은 코인 또는 아이템이 있는 위험한 루트
- 아래쪽 발판: 보상은 적지만 비교적 안전한 루트
## 맵 랜덤 구조 개선
가장 중요한 개선점은 완전 랜덤 구조를 패턴 기반 랜덤 구조로 바꾸는 것입니다.
현재 방식처럼 발판 높이, 스폰 간격, 장애물을 독립적으로 랜덤 배치하면 클리어할 수 없는 구조가 나올 수 있습니다. 따라서 사람이 직접 클리어 가능하도록 설계한 패턴을 여러 개 만들고, 게임은 그 패턴들을 랜덤으로 선택해 이어 붙이는 방식이 적합합니다.
패턴 예시:
- 기본 점프 패턴
- 낮은 장애물 점프 패턴
- 상단 장애물 슬라이딩 패턴
- 코인 아치 점프 패턴
- 위쪽 발판 루트 패턴
- 아래쪽 안전 루트 패턴
- 아이템 획득 후 연속 장애물 패턴
- 쉬어가는 빈 구간 패턴
이 방식은 랜덤의 예측 불가능함을 유지하면서도, 플레이어가 납득할 수 있는 공정한 맵을 만들 수 있습니다.
## 난이도 흐름
난이도는 시간 또는 점수에 따라 단계적으로 상승합니다.
| 구간 | 주요 내용 |
| 국가 | 스테이지 |
| --- | --- |
| 0~30초 | 기본 점프, 낮은 장애물, 쉬운 코인 배치 |
| 30~60초 | 슬라이딩 장애물 등장 |
| 60~90초 | 위쪽 발판과 루트 선택 등장 |
| 90초 이후 | 속도 증가, 복합 패턴, 아이템 활용 구간 |
| 일본 | 후쿠오카, 오사카, 도쿄 |
| 중국 | 베이징, 사천, 홍콩 |
| 미국 | LA, 올랜도, 뉴욕 |
새로운 규칙은 한 번에 모두 등장하지 않고, 플레이어가 자연스럽게 익힐 수 있도록 순서대로 추가합니다.
처음 구현 범위는 `한국 튜토리얼 + 일본 월드 3스테이지`를 기준으로 잡습니다.
## 1차 개발 우선순위
## 조작
처음부터 모든 요소를 넣기보다, 게임의 공정성과 재미를 만드는 순서로 개발합니다.
조작은 마우스 두 버튼으로 단순하게 유지합니다.
1. 랜덤 맵을 패턴 기반 구조로 변경
2. 속도 증가 시스템 추가
3. 오른쪽 클릭 슬라이딩 추가
4. 상단 장애물 추가
5. 코인 추가
6. 아이템 추가
7. 난이도 단계 조절
| 입력 | 기능 |
| --- | --- |
| 마우스 왼쪽 클릭 | 점프 |
| 마우스 오른쪽 클릭 유지 | 슬라이딩 |
슬라이딩은 중간에 해금하지 않고 튜토리얼부터 사용합니다. 초반부터 점프와 슬라이딩을 함께 익히게 하여, 후반 난이도 상승이 새로운 조작 때문이 아니라 플레이어의 반응과 숙련도 문제로 느껴지게 합니다.
튜토리얼에서 익히는 기본 패턴은 다음과 같습니다.
- 낮은 장애물은 점프로 피한다.
- 높은 장애물은 슬라이딩으로 피한다.
- 점프 후 슬라이딩을 연속으로 사용한다.
- 슬라이딩 후 점프를 연속으로 사용한다.
## 스테이지 목표
스테이지는 단순히 오래 살아남는 방식이 아니라, 정해진 여행 일정 안에 목적지까지 도착하는 방식입니다.
```text
목표 거리 도달 + 제한 시간 내 도착 = 클리어
제한 시간 초과 = 실패
목숨 0 = 실패
일찍 도착 = 추가 점수
```
예시 목표는 다음과 같습니다.
| 스테이지 | 목표 예시 |
| --- | --- |
| 한국 튜토리얼 | 인천공항 체크인 시간 맞추기 |
| 후쿠오카 | 라멘 투어 예약 시간 맞추기 |
| 오사카 | 도톤보리 일정 시간 맞추기 |
| 도쿄 | 다음 비행기 또는 열차 시간 맞추기 |
장애물에 부딪히면 속도가 줄어들기 때문에, 실수는 목숨 손실뿐 아니라 도착 시간 손해로 이어집니다.
## 목숨과 속도 시스템
기본 목숨은 `3개`입니다.
게임이 진행될수록 속도는 조금씩 빨라집니다. 장애물에 부딪히면 목숨이 줄고, 현재 속도가 감소합니다. 이후 잠깐의 무적 시간을 주어 연속 충돌로 목숨이 한 번에 사라지는 상황을 막습니다.
```text
충돌
-> 목숨 -1
-> 속도 감소
-> 짧은 무적 시간
-> 다시 진행
```
목숨은 점수 보너스가 아니라 생존 자원입니다. 따라서 남은 목숨 보너스는 넣지 않습니다. 목숨을 잘 지키면 속도 감소가 적어지고, 결과적으로 더 빨리 도착할 수 있으므로 간접적으로 점수에 영향을 줍니다.
## 점수 구조
점수는 생존보다 빠른 도착과 수집 중심으로 계산합니다.
| 항목 | 점수 반영 |
| --- | --- |
| 스테이지 클리어 | 기본 점수 |
| 빠른 도착 | 시간 보너스 |
| 마일리지 수집 | 점수 및 재화 |
| 모든 마일리지 수집 | 퍼펙트 수집 보너스 |
| 남은 목숨 | 점수 반영 없음 |
| 아이템 사용 | 점수 반영 없음 |
아이템은 직접 점수를 주는 것이 아니라, 더 빠르게 도착하거나 더 많은 마일리지를 먹을 수 있게 도와주는 간접 요소로 둡니다.
최고점은 다음 조건을 함께 만족해야 가능하도록 설계합니다.
```text
빠른 도착
+ 모든 마일리지 수집
+ 최적의 면세점 아이템 준비
+ 충돌 최소화
+ 반복 플레이를 통한 루트 숙지
```
## 마일리지와 면세점
마일리지는 스테이지 중 수집하는 재화입니다. 스테이지 클리어 후 면세점에서 다음 스테이지를 준비하는 데 사용합니다.
면세점은 플레이어가 다음 스테이지를 어떻게 버틸지 결정하는 준비 공간입니다.
| 상품 | 효과 |
| --- | --- |
| 도시락 | 다음 스테이지 중 목숨 회복용. 구매 즉시 이전 스테이지에서 깎인 체력을 회복하지 않음 |
| 운동화 | 충돌 시 속도 감소량 완화 |
| 가방 | 아이템 저장칸 증가. 기본 1칸, 최대 3칸 |
| 여행 보험 또는 방어막 | 충돌 1회 방어 |
| 교통패스 | 마일리지 획득량 증가 |
도시락은 구매 즉시 체력을 회복하지 않습니다. 예를 들어 이전 스테이지를 목숨 1개로 클리어했다면, 면세점에서 도시락을 사도 바로 목숨이 2개가 되지 않습니다. 대신 도시락은 다음 스테이지 중 회복 보험처럼 사용됩니다.
가방은 전략성을 높이는 핵심 아이템입니다.
| 가방 등급 | 저장칸 |
| --- | --- |
| 기본 가방 | 1칸 |
| 고급 가방 | 2칸 |
| 특급 가방 | 3칸 |
면세점 상품은 진행도에 따라 해금됩니다.
```text
1단계: 기본 아이템 2~3개
2단계: 추가 아이템 + 일부 고급 아이템
3단계: 전체 아이템 + 고급/특급 아이템
```
이 해금 구조는 일본, 중국, 미국 월드에 동일하게 적용합니다.
## 지역 아이템
아이템 효과는 공통으로 유지하되, 이름과 외형은 지역 특산물과 음식에 맞춥니다.
| 효과 | 일본 | 중국 | 미국 |
| --- | --- | --- | --- |
| 목숨 회복 | 초밥 도시락 | 딤섬 도시락 | 버거 세트 |
| 무적 | 라멘 | 마라탕 | 에너지드링크 |
| 방어막 | 오마모리 | 옥 펜던트 | 여행 보험 카드 |
| 마일리지 증가 | 교통패스 | 고속철 패스 | 시티패스 |
이 방식은 시스템을 재사용하면서도, 여행지마다 다른 분위기와 수집 재미를 줄 수 있습니다.
## 기념품 시스템
스테이지 완료 보상은 기념품으로 합니다. 기념품은 소비하지 않고 수집됩니다.
기념품 보관 방식은 집 냉장고에 마그넷을 붙이는 형태가 잘 어울립니다. 플레이어는 여행지를 클리어할수록 냉장고나 여행 앨범에 기념품을 채워나갑니다.
예시 기념품은 다음과 같습니다.
| 스테이지 | 기본 기념품 | 추가 기념품 |
| --- | --- | --- |
| 한국 튜토리얼 | 인천공항 탑승권 | 첫 여행 도장 |
| 후쿠오카 | 라멘 마그넷 | 포장마차 사진 |
| 오사카 | 타코야키 키링 | 도톤보리 배지 |
| 도쿄 | 도쿄타워 마그넷 | 전철 패스 기념권 |
기념품은 점수와 분리된 수집 요소입니다. 점수는 빠른 도착과 마일리지 수집에서 나오고, 기념품은 클리어와 도전 과제의 완료 증표 역할을 합니다.
## 맵 생성 방향
현재 구조처럼 장애물과 발판을 개별 랜덤으로 배치하면, 클리어 불가능한 구간이 생기거나 맵이 단순하게 느껴질 수 있습니다.
따라서 맵 생성은 개별 오브젝트 랜덤이 아니라, 사람이 직접 검증한 패턴 묶음을 랜덤으로 조합하는 방식으로 개선합니다.
```text
기존 방식:
장애물 개별 랜덤 생성
개선 방식:
검증된 패턴 선택
-> 패턴 안의 장애물, 마일리지, 아이템 배치
-> 기존 오브젝트 풀링으로 실제 오브젝트 재사용
```
예시 패턴은 다음과 같습니다.
| 패턴 | 요구 조작 |
| --- | --- |
| Safe | 쉬는 구간 |
| Jump | 점프 |
| Slide | 슬라이딩 |
| JumpSlide | 점프 후 슬라이딩 |
| SlideJump | 슬라이딩 후 점프 |
| CoinRoute | 마일리지 수집 루트 |
| ItemRoute | 아이템 획득 루트 |
| Expert | 빠른 반응 요구 |
어려운 패턴 연속은 허용합니다. 갈수록 도전 욕구가 생기도록 후반부에는 빠른 속도와 짧은 반응 시간을 요구할 수 있습니다.
다만 물리적으로 불가능한 배치는 금지합니다.
- 장애물 사이에는 최소 반응 거리가 필요하다.
- 점프 착지 직후 바로 슬라이딩 장애물을 배치하지 않는다. 단, 충분한 간격이 있으면 가능하다.
- 슬라이딩 직후 바로 점프 장애물을 배치하지 않는다. 단, 충분한 간격이 있으면 가능하다.
- 회복 및 아이템 패턴은 의도적으로 배치한다.
- 모든 패턴은 실제 플레이로 클리어 가능한지 검증한다.
## 난이도 방향
플레이어는 시간이 지날수록 패턴에 적응하므로, 후반부는 아슬하게 깰 수 있도록 설계합니다.
```text
초반: 조작 학습
중반: 점프/슬라이딩 조합
후반: 빠른 속도 + 짧은 반응 시간
최종: 패턴 숙지 + 반응 속도 모두 필요
```
속도가 빨라진다고 해서 장애물 간격을 무조건 넓히지 않습니다. 이 게임의 재미는 반응 속도와 패턴 숙지에서 나오므로, 후반부는 어렵지만 가능한 조합을 연속으로 배치해 도전 욕구를 만듭니다.
## 현재 구현 상태
현재까지 반영된 주요 작업은 다음과 같습니다.
- 게임 속도 증가 시스템 기초 추가
- `ScrollingObject``GameManager.gameSpeed`를 반영하도록 변경
- 오른쪽 클릭 슬라이딩 기초 구조 추가
- 플레이어 콜라이더를 `CapsuleCollider2D` 기반으로 변경
- 슬라이딩용 `JJ_Slide` 스프라이트 시트 추가
## 다음 개발 우선순위
1. 목숨 3개 시스템 추가
2. 장애물 충돌 시 즉사 대신 목숨 감소 처리
3. 충돌 시 현재 속도 감소 처리
4. 충돌 후 짧은 무적 시간 추가
5. 슬라이딩 충돌 판정과 애니메이션 연결 확인
6. 높은 장애물 추가
7. 목표 거리와 제한 시간 기반 스테이지 클리어 구조 추가
8. 패턴 기반 맵 생성 구조 설계
9. 마일리지와 면세점 기초 구현
10. 기념품 수집 화면 기획 및 구현
## 최종 목표
`Uni-Run`의 최종 목표는 마우스 두 버튼만으로 조작하는 2D 러너 게임입니다.
`Uni-Run`의 최종 목표는 마우스 두 버튼만으로 조작하는 여행 테마 2D 스피드 러너 게임입니다.
플레이어는 점프와 슬라이딩을 이용해 장애물을 피하고, 코인과 아이템을 먹으며 더 오래 달립니다. 맵은 랜덤처럼 보이지만 실제로는 클리어 가능한 패턴들로 구성되어 있어, 운보다 판단과 반응이 중요한 게임이 되는 것을 목표로 합니다.
플레이어는 점프와 슬라이딩으로 장애물을 피하고, 마일리지를 모아 면세점에서 다음 스테이지를 준비하며, 각 도시를 클리어해 기념품을 수집합니다. 맵은 랜덤처럼 보이지만 실제로는 클리어 가능한 패턴들로 구성되어, 운보다 반응 속도와 반복 학습, 준비 전략이 중요한 게임이 되는 것을 목표로 합니다.