본문 바로가기
공부공부/개발경험들! (프로젝트...)

첫 구글 플레이 스토어 게임 출시 "Just Cube"

by Lee_story_.. 2024. 7. 6.
728x90

 

이번 글에서는 제가 이번에 출시를 마친 "Just Cube" 라는 게임에 대한

개발과정 주요 기능들에 대해서 설명하는 글을 정리해 보았습니다. 

 

단순한 아케이드 게임을 계획한 만큼 출시만을 바라보고 진행하였으나,

처음 출시해보는 만큼 제가 몰랐던 부분들과 문제점들에 의해 생각 보다 많은 시간을 사용했던 것 같습니다. 

 

 

 

아래는 제가 출시한 게임과 관련 이미지입니다.

 

Just Cube - Google Play 앱

다가오는 큐브를 좌우 방향의 버튼을 사용해 제거하며 점수를 획득하는 아케이드 게임입니다!

play.google.com

 

 

 

그럼 이제 프로젝트 관련한 내용들을 정리해 보겠습니다. 

 

개발 목적&방법


프로젝트 개발의 목적으로는 크게 아래 3가지를 생각하고 진행하였습니다.

 

1. 구글 플레이 스토어에 출시

2. 모바일  게임을 플레이하는 사용자의 재미요소를 파악

3. GPGS의 기능들을 사용해보고, 최대한 많은 기능들을 추가

 

 

 

일단 가장 중요했던 목표로는 역시 구글 플레이 스토어 출시입니다.

게임/ 컨텐츠 개발을 목표로 공부하고 있는 개발자로써 실제 서비스를 운영하는것이 필요하다고 생각하였기 때문입니다. 

 

그렇기에! 일단 가장 접근성이 좋은 "구글 플레이 스토어"에서

안드로이드 버전의 게임을 출시해보는것을 중점으로 진행하였습니다. 

 

 

개발은 기본적으로 Unity를 사용했고,

구글 플레이 스토어에 출시하는 만큼 GPGS(Google Play Game Service)를 사용하였습니다. 


 

 

 

 

 

 

게임에 대해서


이름 : Just Cube

분류 : 아케이드 게임, 미니게임

개발 인원 : 1인

개발 기간 : 2024.04 ~ 2024.06  >> 2024.07.05 출시

개발 방법 : Unity , GPGS

 

 

게임 시작 화면의 Logo

 

처음 프로젝트를 진행하였을때 계획했던 내용은 아래와 같습니다. 

 

1. 큐브들이 컨베이어 벨트를 따라 내려오고, 그 큐브(물건)들을 처리하는 방식의 간단한 미니게임

2. 큐브들의 종류에 대해 4가지로 구성 (좌,우, 홀드, 탭)

3. 터치와 슬라이드 방식으로 게임을 진행

 

 

하지만 진행하고, 게임을 직접 플레이 해보며 많은 부분에서 수정이 있었던 것 같습니다. 

가장 먼저 플레이 방식에 대해서 수정하였습니다. 

 

 

Fruit Ninja게임을 생각하고, 터치와 슬라이드 방식으로 만들면 플레이가 편할것이라고 생각하고, 

기능들을 구성후 게임을 플레이 해보았을때 여러 문제들이 발생했습니다. 

 

위와 같은 게임의 경우 과일을 놓쳐도 문제가 발생하지 않지만, "Just Cube"의 경우 큐브를 놓치는 경우 Life 감소로 이어져 게임에 문제가 발생했습니다. 

 

처음 게임의 속도가 느렸을때는 문제가 되지않지만,

점점 빨라지는 속도에 터치슬라이드로는 따라 잡을 수 없다는것을 인지하고, 버튼방식으로 변경하게되었습니다.

 

 

 

 

그리고 두번째로  큐브의 종류입니다. 터치 방식의 게임에서 버튼방식으로 변경하고 나니, 

좌, 우 버튼이 하나씩 필요하고 거기다가 홀드와 탭 버튼이 따로 필요했습니다. 

 

물론 좌, 우 버튼에 기능을 부여할 순 있었지만 플레이에 혼란을 줄 수 있다고 판단하여,

2개의 버튼으로 게임을 진행할 수 있도록 간소화 시켰습니다. 

 

개발했던 오브젝트, 코드, 버튼들

 

 

 

주요 개발 기능


게임적 요소

1. 큐브 미리보기 기능

가장 먼저 게임의 플레이 방식상 제일 앞서 다가오는 큐브를 제거해야하므로,

좌측 상단에 현재 큐브에 대한 정보를 나타내 주었습니다. 

 

 

*처음에는 상단에 배치하였으나 가시성 이슈로 좌측 중간부분에 배치하고, 크기를 조절해 주었습니다. 

 

 

2. 피버타임 기능

단조로운 게임 진행에 있어, 일정 큐브를 처리하고, 처리 버튼을 눌러 보너스 점수를 얻는 부분의 기능을 구현하였으나,

 

 

최종적으로는 일정 수의 큐브를 제거한 뒤

버튼의 연타를 통해 큐브를 제거 할 수 있도록 하는 "피버타임"기능을 개발하였습니다.

 

 

3. 일시정지, 다시하기 기능

유니티 엔진의 기능들을 이용해서 게임의 기본 기능인 일시정지, 다시하기 등의 UI를 구성하였습니다.

 

 

 

 

GPGS 요소

1. 로그인

GPGS의 기본적인 기능으로 

 

구성 내용은 아래 블로그에 정리해두었습니다. 

 

모바일 Unity 게임에 GPGS(Google Play Games Services) 설정하기

(다른 글과 중복되는 내용이 생겨버렸지만.. 따로 정리해야 할 것 같아 따로 작성합니다.)   이번 글에서는 모바일에서의 유니티 게임 개발에서 사용할 수 있는 GPGS에 대해서 알아보고 설정하

ljhyunstory.tistory.com

 

 

2. 랭킹 리더보드

랭킹 리더보드 또한 점수를 기준으로 플레이어의 랭킹을 등록 해주었습니다. 

 

구성 내용은 아래 블로그에!

 

[Unity] 모바일 GPGS를 이용한 랭킹 리더보드와 업적 기능 구현하기

이번 글에서는 점수제 게임에 대해서 사용할 수 있는 랭킹 시스템에 대해서 구현해 보고자합니다 아래는 제가 만든 게임에서의 예시!  그럼 구현하기전!먼저 랭킹 시스템에 대해서 구현하기

ljhyunstory.tistory.com

 

 

3. 데이터 저장

데이터 저장의 경우 처음에는 PlayerPrefs와 암호화 방식을 이용해서 사용자의 모바일에 직접 저장하는 방식을 사용하였으나, 

 

 

[Unity] 유니티 데이터 저장하기[1] - (PlayerPrefs + 암호화)

유니티를 이용해서 게임/ 어플리케이션을 제작할 경우 생성되는 데이터들...저 역시 개발을 진행 할 수록 어플리케이션이 종료되어도 유지되는 데이터들을어딘가에 저장해야하는 상황이 발생

ljhyunstory.tistory.com

 

 

GPGS를 사용한뒤 해당 서비스에서 제공하는 데이터 저장방식이 안전하다 판단하고, 변경해 주었습니다. 

 

[Unity] 유니티 데이터 저장하기[2] - (모바일 GPGS를 이용한 저장방법)

앞선 글에서는 유니티에서 제공해주는 PlayerPrefs를 이용하여 데이터를 로드/ 세이브 해보았습니다. 유니티에서 제공해주는 만큼 구현이 쉽다는 장점이 있었지만, 보안에 대한 문제가 있어 암호

ljhyunstory.tistory.com

 

 

그 외 

1. 환경설정 - 실시간 배경 변화요소

 

환경 설정에는 기본적으로 배경음악, 터치음, 진동 등을 설정할 수 있는 기능들을 추가해 주었고, 

 

추가적으로 배경에 대해 밤과 낮, 그리고 현재시간에 대한 시간으로 변경할 수 있는 기능에 대해서도 추가 해주었습니다. 

 

 

 

 

유니티(Unity) DateTime(현재시간)에 대해서 + 유니티 공간상 낮과 밤 구현하기

유니티 어플리케이션에서 현재 시간을 들고 오는 일은 많이 없겠지만... 이번에 유니티 공간상에 실제 시간을 적용시키는 기능을 개발하고자 사용해 보았습니다! 우선 현재 시간을 유니티에 받

ljhyunstory.tistory.com

 

 


2. 티켓 - 시간 요소

티켓의 경우 게임을 플레이할때마다 소모되는 재화로, 코인과 광고를 통해 얻을 수 있습니다. 

그리고 티켓 하나당 5분의 시간을 대기하여 자동으로 회복가능하게끔 구성해주었습니다. 

 

플레이어의 마지막 티켓 사용시간과 마지막 접속시간등을 체크하여,

게임을 실행하고있지않을때에도 해당 티켓이 회복되도록 구성해 주었습니다. 

 

 

3. 광고

구글의 ADmob을 이용하여 리워드 보상 광고를 구성해 보았습니다. 

 

 

 

 

아쉬웠던 부분


 

 

처음에는 게임의 스토리까지는 아니더라도 약간의 내용이 있었으면 좋겠다고 생각하여,

 

산타가 선물을 배달할때, 선물들이 어떻게 배송되는지, 그 선물들의 상하차? 느낌으로 게임을 구상하고,

오브젝트들을 구성해주었습니다.

 

그래서  게임의 배경은 하늘로 구성해 주었고,

컨베이어 벨트처럼 오브젝트를 배치하여, 상하차 느낌을 주고 싶었습니다. 

 

 

하지만 오브젝트들의 부족과 내용 전개에 대한 부분이 부족한 만큼 그러한 느낌을 주는데에는 무리가 있었습니다.

 

 

이 외에도 계획단계에 있었던 Hold,Tab 기능에 대해서 사용하지 못했던것, 조금 더 재밌는 컨텐츠 요소를 만들지 못한점

 

 

무엇보다 더 새로운 게임에 대해서 개발하지 못했던 부분이 아쉬웠습니다. 

새로운 컨텐츠에 대해서 개발한다는것이 생각보다 쉽지않았으며,

그러한 컨텐츠가 과연 "재미"가 포함되어있는지 판단하는것도 1인개발자로써 쉽지않았습니다. 

 

 

그래도 이번기회에 출시까지, 끝까지 달려볼 수 있어 좋은 경험이 되었던것 같습니다. 

 

 

 

 

 

 

 

**프로젝트를 진행하며 구현했던 기능들과 문제점들에 대해서 마저 블로그에 정리를 한후,

해당 게임은 새로운 아이디어, 사용자들의 플레이 피드백을 받아가며 조금씩 업데이트를 해나갈 예정입니다. **

 

 

많은 플레이 부탁드립니다! 

 

링크!

 

Just Cube - Google Play 앱

다가오는 큐브를 좌우 방향의 버튼을 사용해 제거하며 점수를 획득하는 아케이드 게임입니다!

play.google.com

 

영상!

 

댓글