오늘은 스파르타 코딩 클럽 unity 게임 개발 과정 5일차! (프로젝트 마무리! 및 발표!)
오늘은 여태껏 우리 팀원이 만들었던 게임을 수강생 모두에게 공개하는 날이다.
솔직히 두렵다거나 무섭다기보단 두근거린다. 사람들이 어떤 반응을 할까? 우리의 게임을 좋아해줄까?
그런 기대감이 더욱 들었다.
우리가만들었던 게임에 무언가 버그는 없는지 살펴보면서 뭔가 아쉬운 마음에 좀더 기능을 추가해보았다.
그랬더니 버그가 났다;;;
버튼을 누르면 화면 전환이 되는데 그 전환 속도가 빨라서 클릭 소리가 안나고 화면 전환이 이루어지는 것이다.
게임을 진행할때 UI를 누르면 나오는 소리가 씹힐때가 있는데 그것을 고쳤더니.. 어라..? 아예 버튼이 안눌러진다..
Invoke("goGallery", 0.1f); 이 부분이 문제였는데 이유는 즉..
Time.timeScale = 1.0f; 일땐 정상적으로 작동되지만 이것이 0이 되면 Invoke는 작동하지 않는다. 작동원리가 시간에 관련되서 그런가보다.
그 이유를 빨리 찾아내서 다행스럽게도 버그는 모두 고쳤다.
또 추가적인것은 미니게임에서 힐팩을 추가했다.
힐팩을 먹으면 체력이 추가로 10 붙는다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Drink : MonoBehaviour
{
float DrinkPos;
float DrinkScale_x;
float DrinkScale_y;
float level;
int levelCount = 0;
void Start()
{
DrinkPos = Mathf.Abs(transform.position.y);
DrinkScale_x = transform.localScale.x;
DrinkScale_y = transform.localScale.y;
float x = 80f;
float y = Random.Range(60f, 110f);
transform.position = new Vector3(x, -y, 0);
float scale = Mathf.Abs(transform.position.y) / DrinkPos; // 현재 포지션과 원래 기준이 되는 포지션을 나눈다.
transform.localScale = new Vector3(scale * DrinkScale_x, scale * DrinkScale_y, 1); // 스케일을 이용해 크기 조절 (나눈 값을 원래 스케일과 곱한다.)
}
//시간에 따라 속도을 올린다.
void LevelUp()
{
if (levelCount > MiniGameManager.I.nextTime.Length - 1) levelCount = MiniGameManager.I.nextTime.Length - 1; // 졸라 초고수가 나올수도 있으니 이렇게 버그안나게 수정
//currentTime이 MiniGameManager.I.nextTime[levelCount]보다 높으면 레벨이 상승한다. 그다음 레벨카운트가 상승 레벨카운트가 상승하면 목표시간이 바뀐다.
if (MiniGameManager.I.currentTime > MiniGameManager.I.nextTime[levelCount])
{
level += (float)levelCount;
transform.position -= new Vector3(level, 0, 0);
levelCount++;
}
else transform.position -= new Vector3(level, 0, 0);
}
private void FixedUpdate()
{
//드링크의 x값에 따라 삭제함
if (transform.position.x < -70)
{
Destroy(gameObject);
}
transform.position -= new Vector3(1f, 0, 0);
LevelUp();
}
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "minirun")
{
MiniGameManager.I.health += 10;
Destroy(gameObject);
}
}
}
힐팩(드링크)에 들어가는 스크립트다. 사실 화살을 날리는 스크립트인데 타입을 지정해서 사용하면 하나의 스크립트로 사용할 수 있지만 혹시나 오류가 날까봐 그냥 복붙해서 하나 만들어버렸다.
오브젝트 하나 만들어서 매니저에 넣은뒤 플레이어랑 붙이치면 체력이 증가하게 코드도 작성했다. 그건 간단하니까 패스..
뭐 작동만 잘되면 된다.
그리고 이리저리 ui도 손봐주고 버튼도 여러개 만들었다.
발표때는 어제 제출했던 버전을 사용하고 추가로 내가 만든 기능은 나중에 보여주기로 했다.
드디어 발표의 시간이 다가왔다.
발표영상은 팀원의 허락을 아직 받지 않았고 튜터님과 매니저님의 얼굴이 나오니 내가 제작한 게임시연영상으로 대체하겠다.
포기버튼을 만들었고 버튼의 소리 씹히는 버그가 없앴다. 그리고 힐팩을 먹으면 체력위에 노란색으로 +10이 나타난다.
아래는 담당 유니티 튜터님들이 하신 말씀이다.
튜터님 1 : 저는 사실 6조에 관해서 하고 싶은 게 정말 많긴 한데요.
9:26왜냐면 거의 제 담당 일진 수준으로 많이 찾아 오셨었어요. (ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ)
9:33그래서 여러 가지로 많이 코멘트를 드렸었는데.
9:37어, 정말 너무 훌륭하고 또 완성도 있고 또 모든 부분이 좀 조화롭게 잘 어울리는 게임을 잘 만들어 주신 것 같아요.
9:43특히나 뭐 앞에서 말씀하셨던 것처럼 깃허브 관련해서도 저를 여러 번 찾아 오셨던 것 같기도 하고 어, 막 다양한 기능들을 물어 보셨 었는데 또 어제까지만 해서도 아 이런 것까지 물어본다고? 어? 라고 생각이 들 정도로 되게 조금은 어떻게 보면 좀 깊고 게임에 대해서 고민을 많이 했어야 만 할 수 있는 질문들을 저한테 해주셨어요 제가 아 이건 좀 너무 진도가 빠른 것 같다! 라고도 말씀 드린 적이 있었는데 그 스스로 계속 고민을 하고 팀원 들끼리 말씀을 나누면서 완성도 있게 게임을 딱 만들어 주신 것 같아요.
10:21뭐 여러 가지 칭찬할 점이 굉장히 많은데 저는 옆에서 계서 지켜본 봤던 것 같아서 제 칭찬은 여기까지 마무리 하고요.
10:29이후의 칭찬은 뒤에 계신 튜터 분들께 양보 하도록 하겠습니다.
튜터님 2 : 일단 전는 처음 보자마자 아 게임에 대한 애착이 대단하 시구나 라는 생각을 바로 했습니다.
10:46 왜냐면은 아트도 직접 이제 그려서 하시고 그 다음에 뭐 갤러리 같은 기능도 사실은 이제 이 게임을 추억 하고 싶은 마음이 들어야 이제 또 구현을 하는 그런 기능들이 잖아요.
10:56 그런 거 봤을 때 일단은 게임에 대한 애착이 정말 대단하다고 느껴졌고 이런 애착을 바탕으로 앞 남 남은 오 개월, 이제 앞으로 오 개월 정도를 잘 이끌어 나가 있으면 좋겠다.
11:06힘든 일이 있으시더라도 잘 이끌어 나가실 수 있는 원동력이 됐으면 좋겠고요.
11:11어, 다들 이제 아무래도 좀 습도 속도가 빠르신 것 같아요.
11:15그래서 기타 보다 빠르게 배우시고 지금 기본적인 컴포넌트에 대한 이해도 높으신 것 같아서 좀 매력적이라고 생각했고요.
11:23어, 미니 게임이 귀여워요.
11:25미니 게임 귀엽긴 한데 어 갑자기 안에서 막 끄 이런 소리가 나니까 약간 좀 어, 게임의 무드 랑 게 맞나?
11:32라는 생각은 조금 들 긴 들었습니다.
11:34그래도 어, 이게 저는 나쁘게 생각이 들지 않았고 그냥 아 하나라도 더 여기다가 넣어가지고 좋은 게임을 만들고 싶은 어, 그런 마음으로 여겨 졌기 때문에 너무 많이 고생 했다는 말씀을 드리고 싶습니다.
튜터님 3: 저도 지켜 보다가 이제 카드 뒤집기 게임이 아닌 게임이 나와서 정말 화들짝 놀랐고요.
12:02어, 일단은 처음 들어 들었던 생각은 아, 협업이 협업이 굉장히 잘 된 팀인 것 같다라는 생각이 들었고 정말 이 마지막까지 진짜 쉴새 없이 이제 일주일이 단거리 경주 라고 볼 수도 있겠지만 정말 쉴새 없이 달려오신 것 같구나 라는 생각이 들어서 너무 고생 하셨다는 어 말씀을 먼저 드리고 싶고요.
12:24그리고 스토리도 너무 재밌게 잘 봤고 또 이제 카드를 뒤집는 게 아니라 이제 고양이를 찾는 그, 그런 어떤 기능을 구현을 하셨는데 어 그것부터가 이제 뭔가 전체적인 이 카드 뒤집기 게임을 거의 다 이제 완벽하게 이해하고 계시고 그거에 대한 응용 으로도 나아가시 또 그걸 또 완벽도가 있게 만들어 주신 부분이 정말.. 네 재밌게 잘 봤습니다.
12:50너무 고생 하셨다는 말씀 드리고 있습니다.
여기까지가 유니티 튜터님들의 말씀이신데요. 정말 최고의 칭찬을 들은 것 같고 저희의 열정이 드러나는 것 같아서 참 기뻣습니다.
제일 듣고싶었던 말을 들어서 기분 좋습니다.
협업이 정말 잘된 팀이다! 쉴새 없이 달려왔다! 게임에 대한 애착이 보인다! 완성도가 높다! 등등 정말 기분좋은 칭찬을 마구마구 해주셨습니다. 우리팀원들 덕분이지만 참 ! 즐겁습니다.
그렇지만! 지적받은것은 정확하게 집고 넘어가야 겠죠!!
게임에 무드랑 맞지 않는 미니게임의 시작.. 그건 저도 인정합니다. 갑자기 윽윽 소리가 나서 조금 이상했죠 ㅋㅋ
차후 수정해서 이 블로그에 다시 올려보도록 하죠!
팀원들과 회의에서 이 게임에서 플레이어는 고양이를 잃어버린 소녀이고 검은고양이를 찾기위해 여행을 떠나는 것이 좋았을거라고 말했었습니다. 좀더 고양이와 연관된 느낌을 보여주고 싶어서였죠.
아! 지금 아이디어가 떠올랐는데요 팀원들과 이야기할때 떠오르지 않아서 아쉬울 만큼 좋은 아이디어가 떠올랐습니다!
처음엔 애니매이션으로 고양이를 잃어버리는 것을 보여주고 미니게임이 나타납니다.
미니게임 10초를 통과하면 애니매이션으로 고양이가 어딨는지 찾자! 느낌의 애니매이션이 나타나고 이지모드의 카드 뒤집기가 나타납니다.
카드 뒤집기를 풀면 애니매이션으로 고양이의 발자취를 알수있는 무언가를 발견했다! 식으로 애니매이션을 보여주고 다시 미니게임 => 카드 뒤집기 => 미니게임 => 카드 뒤집기 이렇게 해서 마지막에 소녀가 고양이를 찾는거죠!
스토리가 있는 게임으로 변모하는겁니다!!
이런 방식으로 좀 더 게임을 발전시켜보겠습니다. ㅎㅎ
다른 조의 결과물도 같이 봤는데요.
저의 게임에서 못보던 모습을 보여주는 팀이 참 많았습니다.
저희가 부러웠던 점입니다. 추후 이 부분도 저희 게임에서 스틸하겠습니다.
- 게임 중 일시정지
- 환경설정 버튼
- 스토리
- 실제 출시한 앱에서 보일만한 UI 퀄리티
- 셔플하는 카드의 모습
- 신박한 UI애니매이션
- 등등..
팀마다 같은 카드뒤집기 게임을 만들었지만 이만큼이나 다른 결과물을 만들어낼수있을지 몰랐습니다 정말 깜짝 놀랐습니다.
여러모로 정말 뜻깊은 1주일이였고 저희 팀원들이 참 잘해주셔서 감사했습니다.
그리고 저의 질의 응답으로 이 글을 마무리합니다.
Q.
이 프로젝트 열정적으로 임하였습니까? 열정적으로 임했거나 만족스럽지 않다면 그 이유를 적어주세요
A.
정말 나의 모든 열정을 다해 프로젝트에 임했다. 왜냐하면 나는 게임을 좋아하니까.
게임을 좋아하는 사람이 게임을 만들 수 있다니 얼마나 꿈 같은 일인가.
그래서 게임의 완성도 보단 정말 어떤 기능 까지 만들 수 있는가? 의 느낌으로
이 프로젝트를 진행했다. 정말 끝도 없이 기능을 구현하고자 했다.
계속해서 아이디어를 생각하고 코드를 짜고 실행해보니 나의 게임에도 애정이 생긴다.
이런 경험은 어디가서도 얻지 못한다.
나의 게임, 내 게임이다. 하나하나 이뻐보이고 남들 자식 보다 귀하게 느껴진다.
아이를 낳으면 이런 느낌일까 싶었다.
그런데 만족스럽지 않은 이유가 어딨을까.
만족하지 못한 것은 그저 내가 멍청해서 더욱 많은 기능과 편의성을 넣지 못한 나를 탓하고 싶다.
Q.
이번 프로젝트의 난이도는 어느 정도였나요?
A.
정말 어렵다.
왜?
적정선이 없기 때문이다.
이만하면 되지 않을까? 라는 것이 없던 프로젝트다.
그림도 그리다 보면 고치고 싶은 부분 추가하고 싶은 부분이 계속 보인다.
게임도 그랬다.
만들다 보면 이것도 만들 수 있겠는데?
이건 이렇게 하면 되겠는데? 라는 부분들이 계속해서 쏱아진다.
그런데 시간은 촉박해지고 하고싶은 기능들은 많고
그것을 참는 것이 어려웠다.
개인적으로 선범없는 선범팀의 결과물에 반했다.
우리조의 목표는 자신이 할 수 있는 한계까지 모든 기능을 갈아 넣자 였다면 (그래서 과하다! 라고 느끼신 부분도 있을것이다.)
선범없는 선범팀 (절대 7조라고 부르지 않는다 ㅋ 우리가 7조니까)의 결과물은 그저 게임 그 자체였다.
재미도 있고 서사도 있으며 완성도도 높다.
플레이스토어 같은 곳은 좀더 보완되고 스테이지가 추가 되면 충분히 출시도 가능할 만한 게임이 되지 않을까 싶다.
그렇게 이런 게임을 만드는 것은 쉽다라고 절대 평가할 수 없을것같다.
게임엔 감동이 있어야한다. 그것을 또 배웠다.