Post

[ PROJECT/유니티 ] 2023. 6. 29. 18:56

 

6월에는 사전체험판 출시와 SGM에 합격하게되어

같은 인디게임개발자 분들께 피드백을 받게되어

피드백을 반영하기 위해 다시 게임을 살펴보고,

각종 버그를 계속해서 수정해나간 한달이었습니다

1. 구글애드몹 관련 사항

사전체험판 출시를 위해 광고를 삽입하고자 구글애드몹를 넣을려고했습니다.

그런데, 아직 뭐 별것도 없고 사전체험판임에도 광고를 넣는게 뭔가 괘씸해보일거같아서

광고는 그냥 테스트 광고로 하자~ 생각하고 구글애즈 밑작업이라도 하자 했는데..

유니티 에디터에서는 광고가 잘 뜨는데, 휴대폰에서 보면 광고가 잘 안뜨는 상황이 발생했습니다.

어차피 광고를 넣더라도 테스트 광고를 넣을거였으니까

넣지 말자! 해서 일단락 되긴 했지만 원인을 파악해보니 제 생각엔

일단 너무 최신버전이라서 자료가 없어 내가 코드 자체를 잘못짠것같다? 입니다.

검색했을때 자료로 나오는 글과 영상에 따라 예전버전으로 구글애드몹패키지를 다운받으니

휴대폰에서도 뜨긴 잘 떴습니다. 물론.. 이것도 문제가 있긴한데..

아무튼 구글애드몹 관련 작업은 추후 정식버전 출시 이전에 작업하기로 결정했습니다!

2. 해상도 버그

원래는 해상도 관련해서 SetResolution 함수를 이용해 조정을 했었는데,

아무런 문제가 없길래 이렇게 하면 되겠구나 하고~ 넘어갔습니다..

근데, 이게 어떤 분기로 인해 그런지는 모르겠는데 앱스토어 세부정보였나?

구글플레이스토어에 올라온 게임링크를 구글애드몹 홈페이지에다가 넣어서 저장을하니..

그 이후부터 갑자기 위의 화면처럼 되면서 게임화면을 제외한 부분, 정확히 파란색 부분이 막 번쩍번쩍하고..

파란색 아님 검은색 화면이 나와서 번쩍번쩍하거나 그런 현상이 생기더군요.....

정말.. 사실 지금 봐서는 당연히 게임화면은 정상으로 나오는데 그 외의 화면이 이상하게 나오는거니

해상도를 해결하면 되겠구나를 떠올리는데 그 당시에는

이제 막 사전체험판을 플레이스토어에 업로드했고, 다음날 BIC제출마감이라 좀 많이 정신이 없었습니다.

게다가 구글애드몹 사이트에 링크를 올리자마자 저런현상을 발견하니 더욱더

해상도 보다는 애드몹문제인가 싶어서 그당시에 별짓을 다했네요...

결국 애드몹 문제는 아니었습니다. 당연하게도 해상도 문제였죠.

정말 빛이십니다.... 딱 원인이 뭔지 그 때 정확하게 알게되었고,

결국 SetResolution이 아닌 다른 방법으로 해결하니 문제가 해결되었습니다.

현재는 게임 화면 외의 부분은 배경으로 덮도록 하였습니다.

그리고 각종 해상도에 맞게 UI위치라던가 조정을 해주었습니다.

당연한 수순이겠지만 제가 처음이라 잘 몰라서 발생한 일이었던것같네요 ㅠ

3. 사전체험판 출시 및 BIC관련 에러사항

사전체험판을 출시할땐 구글애드몹을 안쓰더라도 달고 있어서

안드로이드 버전을 높여야하기에 API Level30 이상으로 해서 업로드했습니다.

다만, BIC때는 저렇게 높게하면 안되더라구요..

BIC 제출때는 API level22로 해서 업로드해야합니다...

아마 BIC든 아니든 많은 사용자가 사용하기 위해선 당연하겠지만..

저는 몰랐습니다.... ㅠ 모르는거 투성이네요...

4. 수집화면 디테일화면 추가

 
 

게임에 등장하는 캐릭터들이 귀엽다보니 좀 더 귀여움과 아기자기함을 살릴방법을 찾다

이렇게 구출한 동물 목록에서 동물을 클릭하면 돌려가며 자세히 볼 수 있도록 하였습니다!

캐릭터를 열심히 만든 보람도 있고.. 플레이 해주신 분들 모두 이 부분에서 귀여워해주셔서 뿌듯했습니다 ㅎㅎ

5. 스와이프 구현

위의 동물 디테일 화면을 구현하며 동물을 이리저리 회전시켜볼 수 있으니

이를 실제 메인화면과 옆으로 넘어가는 챕터목록, 스테이지 목록 화면에서도

사용할 수 있을것같아서 적용했습니다.

위의 구출한 동물화면에서도 옆으로 넘기는 버튼이 있는데,

해당 버튼을 클릭하지 않고 그냥 손가락으로 스와이프해도 넘어가도록 하였습니다!

하지만 이것도

6. 챕터화면 이미지 및 폰트 변경

<변경 전>

(제일 오른쪽 사진은 예전 사진을 찾을 수 없어 캐릭터 이미지만 보여드리고자 했습니다)

<변경 후>

변경전에는 왠지 배경이랑도, 폰트랑도 어울리지 않는듯한 느낌이라서

어떻게하면 좋을까를 생각하다 여기 인디게임갤러리에서 한 유저분이 의견을 주신것과

주변 지인에게 받은 의견이 둘다 동일하게 행성으로 하면 어떻겠냐라는 이야기가 있어

행성으로 변경하게되었습니다.

폰트 또한 멋있고 예쁜것도 좋지만

좀 더 게임의 분위기에 맞게 나타내고자 해서 변경하게되었습니다.

사전체험판에서는 행성 이전의 캐릭터 모습을 볼 수 있습니다..!

7. 해금/스테이지 정보 저장

사전체험판을 출시하기 위해 정보를 저장하는 코드를 구현하였습니다.

각 챕터에서 현재는 13스테이지까지 클리어하면 다음 챕터가 해금되도록하였습니다.

참고로 스테이지는 한 챕터당 50개가 현재 사전체험판으로 나와있습니다.

8. 플레이 방향키 크기 확대

SGM 미니 시연회 피드백에서 가장 많이 개선점으로 받은 사항이 바로

키가 잘 안눌린다. 방향키 버튼이 작다. 였습니다.

이 부분은 인디게임개발갤러리에 개발일지를 올리면서도 들었던

피드백이었는데, 그 당시에는 한분만 얘기하기도 했고 주변에서도 딱히 듣질 않아서

넘어갔는데.. 많은 사람에게 공통으로 지적을 받으니 정신이 드네요!

그래서 방향키 버튼도 키우고, 방향 버튼 자체의 인식 범위도 늘렸습니다.

그리고 방향버튼 대신에, '길건너 친구들'처럼 스와이프로 이동하면

좀 더 좋은것같다는 피드백도 많이 들었습니다.

그래서 방향키 조작/ 스와이프 조작으로 나누어

플레이어가 선택할 수 있도록 하는 방안도 개발할 예정입니다!

9. 상점 밑작업

메인화면을 꾸밀 수 있는 상점을 제작하고자하여 밑작업을 했습니다.

ScrollView를 통해 안에 들어가는 항목item을 어떻게하면 좀 더 최적화할 수 있을까..

를 고민하면서 각종 자료를 검색하여 적용하면서 입맛에 맞춰 고치다보니

많이 걸리게 되었습니다.

엄청난 최적화!는 아니지만 화면에 표출되는 항목들과 +2개를 만들어두고

재사용하는 방향으로 상점항목을 제작하게되었습니다.

사실 구현만 하는거라면 딱히 신경안써도 되긴하는데,

뭔가 전공이 프로그래밍쪽이다보니 한번 신경쓰이니까

꼭..하고싶기도했고 다른데에서 재사용ScrollView를 이용해서 채팅을 한번 구현한 적도 있는데

이거 할 수 있을것같잖아! 란 생각으로 좀 더 강박에 사로잡혀 했습니다.

처음엔 어떤 블로그분의 코드를 분명 거의 똑같이해서 했는데,

나중에 가서는 제가 이해를 못하는 부분을 빼고 여기에 맞춰서 수정하다보니

결국엔 다르게 되었네요.. 그래도 재사용 ScrollView 검색했을때

나오는 블로거 분 너무 감사합니다.

상점 밑작업이라 했지만 사실 재사용 스크롤뷰 구현이랑 JSON파일에 있는

아이템 정보들 불러와서 보여주는 것 밖에 없습니다 ㅎㅎ..

10. 각종 버그 수정

사실 앞서 얘기했던 애드몹도 버그이고, 해상도 문제도 버그이긴한데,

그 외에도 많은 사람들이 시연을 하다보니 버그들도 많이 발견되었습니다 ㅎㅎ..

10.1 방향키 씹힘

방향버튼이 씹힌다는 버그도 있긴했는데, 그건 방향키 버튼 자체가 작고

범위도 방향키 버튼크기 만큼이라 발생한 문제라 크기를 키우고, 범위를 키우는걸로 해결했습니다.

10.2 구출동물 판단

그리고 치명적인 버그로써.. 2챕터에서 여우(플레이어)가 바리게이트 때문에

앞으로 못 감에도 불구하고 앞에있는 동물을 구출하는 버그가 있었습니다.

이건 Ray를 쏘고 판단을 할때 좀 우선순위라던가 한꺼번에 판단할려고 해서 생긴 문제인 것같아 수정하였습니다.

10.3 SNS 버튼 안눌림

게임을 시작할때 설정창에 SNS버튼이 안눌리는 현상을 해결했습니다.

10.4 성공/실패 창

플레이어가 도착지점에 도착했을때, 동시에 UFO도 함께 있다면 성공실패 결과창이 같이뜨는 버그를 수정하였습니다.

등등... 많은 버그를 수정하였습니다.

아, 그리고 적당한 배경음과 효과음 찾기위해

열심히 무료 음악사이트들을 찾았습니다.

거의 도바신드롬사이트 내에 있는 음악을 사용했습니다.

.

.

.

앞으로는

1. 상점구현

2. 피드백반영

( 튜토리얼 개선 , 연출 등)

3. 스토리 추가

를 할것같아요!

피드백이 있으시면

언제든지 환영입니다 ㅎㅎ!

봐주셔서 감사합니다!

Post

[ PROJECT/유니티 ] 2023. 5. 31. 16:37

5월은 개발을 많이 한 것같은데 생각보다

크게 진도가 나간것 같진 않은 달이네요!

 

크게 보자면 게임의 디자인을 전체적으로 수정하고

챕터를 추가로 구현한게 아마 제일 큰 일인것같습니다

 

1. 디자인 수정

게임을 만들면서 아마 게임의 재미 다음으로 크게 신경쓰는게 디자인인것같아요.

디자인은 시간을 들이면 들일 수록 아깝지 않을만큼 결과물이 나오지만

그만큼 진도를 크게 나가지 못하는게 많이 아쉽네요 ㅠㅠ

디자인과 관련해서는 비포,애프터 사진을 같이 비교하면서 작성하겠습니다!

 

1.1 카메라 모드 변경 및 시작화면

우와..이건 진짜.. 제가 유니티를 잘 몰라서 발생한 문제인것같은데

저는 이때까지 카메라 projection모드를 Perspective로 하고 있었는데,

'여우는 오늘도 친구를 구한다' 같은 경우에는 쿼터뷰를 시점으로 하고있어

원근법이 크게 상관이 없어 Orthographic모드를 하는게 맞다는걸 최근에 알았습니다! :0

변경전(왼), 변경후(오).. 앞에있는 UFO가 확실히 더 커 보임..

그리고 실제로 바꾸고 나니깐 훨씬 원하는 느낌으로 화면이 나오게되어

큰 깨달음을 얻으면서 여기에 맞춰 카메라를 이리저리 만져주었습니다.

 

카메라 모드를 바꾸게 되면서 가장먼저 영향을 받은게 시작화면 이었습니다.

변경전(왼), 변경후(오)

그리고 깔끔하게 보여주기 위해 배경의 그라데이션도 지웠습니다.

그리고 채도를 좀 낮춰주었습니다. 

 

1.2 메인화면

 변경전(왼),변경후(오)

메인화면을 보시면 더 잘 느껴지시겠지만 색을 확 죽였습니다. 

제가 처음에 만들고자 했던 느낌의 게임들을 살펴보니 채도가 낮은편이었고

눈이 편안한게 중요한것같았습니다. 그래서 기존은 빛이 좀 쨍하기도 하고 예쁘다고 넣은 

그라데이션이 오히려 시선을 분산시키는것같다는 피드백을 받아 이를 고치고자 하였습니다.

 

메인화면에 보이는 집은 상점으로 하여 클릭하면 어린왕자가 통통 뛰어 들어가는 모습을 보여줄까 했는데

따로 상점UI를 만드는게 깔끔할것같아 열심히 만들었지만...아쉽게도 삭제할것같습니다.

 

1.3 챕터 선택화면

 변경전(왼),변경후(오)

변경전은 귀엽고 다른게임의 모습을 참고할려고 했는데

정작 메인화면과 플레이화면과는 다른 분위기라 아예 다른 게임같다는 피드백을 받아

어떻게 할까 하다가 메인의 배경을 그대로 가져와 디자인을 하였습니다. 

 

변경후의 피드백으로 그림과 배경디자인이 어울리지 않는것같다는 피드백이 있어

중간 이미지를 어떻게 할지, 아니면 다른 더 좋은 디자인이 뭐가 있는지 고민중입니다.

 

1.4 스테이지 선택화면

변경전(왼),변경후(오)

챕터선택 화면에서의 분위기를 그대로 이어오기 위해 챕터제목디자인을 변경하는것 외엔 크게 달라진게 없네요..

지금 다시보니깐 성의없게 디자인한것같아 수정해야할 필요성이 느껴집니다 ㅠ^

 

1.5 플레이 화면

 변경전(왼),변경후(오)

플레이화면에서는 프레임을 추가하고, 똑같이 빛과 색을 조절해주었습니다.

그리고 방향키 모양을 좀 더 귀여운느낌이 나며 방향이라는 느낌을 주도록 디자인을 다시 하였습니다.

 

 변경전(왼),변경후(오)

UI,배경,땅같은 경우에는 챕터마다 분위기에 맞게 색상을 띄도록 하였습니다.

 

1.6 게임결과창

 변경전(왼),변경후(오)

변경전에는 컨셉을 확실하게 보여줘야한다! 라는 생각에 사로잡혀

억지로 밀어넣은느낌이었고 꾸꾸꾸에 집착했던거같습니다.

 

다른 화면들의 디자인이 변경되면서 UI창에도 디자인을 비슷하게 주기 위해 

결과창도 변경하게되었고 필요한 정보만 표출할 수 있도록 하였습니다.

 

1.7 수집화면

 변경전(왼),변경후(오)

사실 수집화면같은 경우에는 애초에 프로토타입 디자인이었기에 변경이라고 하긴 좀 그렇지만..

사실상 다른 화면들의 디자인변경은 모두 이 수집화면을 디자인하면서 같이 다시 디자인되었습니다.

 

이렇게까지 대대적으로 디자인 공사를 할려는 생각은 없었지만..

생각보다 구출된 동물목록화면이 예쁘게 잘 나오게 되었고

이런느낌으로 게임을 디자인하면좋겠다란 생각이 들어 많이 수정하게되었습니다.

 

하지만 이전 귀여운느낌에서 갑자기 고풍스런?세련된? 느낌으로 바뀌어 별로란 피드백이 있어..

고민이네요.. 참..디자인은 어려운것같습니다 ㅎ ㅠㅠ...

 

 

2. 튜토리얼 추가

옆에서 테스트할때마다 설명이 필요한것같아 아예 튜토리얼을 추가했습니다!

당연하게 들어가야할 기능이지만, 생각보다 늦게 추가하게되었네요

어린왕자라는 컨셉을 좀 더 나타내기 위해 장미를 튜토리얼 도우미로 나타냈습니다.

 

 

3. 스토리 추가

게임을 최초 실행시에 스토리를 보여주도록 합니다.

스토리는.. 사실 모바일 퍼즐게임이라 있어도 그만, 없어도 그만 일것같지만

있으면 좀 더 컨셉을 잘 나타낼 것같기도하고 좀 더 게임에 애정이 생길것같아 넣어주었습니다.

다만, 추후 계속 챕터를 해금할때마다 새로운 스토리를 보여줘야할까

최초 스토리만 보여줄까는 아직까지 고민중입니다. 

생각보다 최초 스토리만 보여줘도 '왜 여우 캐릭터를 움직여서 동물들을 구출해야하는가'

에 대한 의문은 풀리고, 앞으로도 챕터와 스테이지는 늘려나갈 계획이라 스토리 흐름이나 

결말이 없어도 상관없지 않을까란 생각이들기때문입니다. 

 

 

4. 챕터 추가

4챕터를 구상하면서 여러사람의 피드백을 받았으며 해당 피드백을 통해

4챕터를 기획하고 구현하였습니다. 

아직 땅이 없어지는것에 대해 어떻게 효과를 줄지에 대해서는 생각하지 않아

게임로직만을 구현하여 스테이지를 개설하였는데, 솔직히 만드는 과정에서 

스테이지를 만들어나가며 고생하기보단 구출한 캐릭터 이동과 관련하여 버그를 계속해서

발견하였기에 그게 생각보다 시간을 많이 잡아먹은것같네요 ㅠㅠㅋㅋ...

 

.

.

.

 

앞으로는

1. 광고삽입(구글애드몹)

2. 구글플레이게임 서비스 연동

3. 사전체험판 출시 및 홍보

4. 상점 및 인벤토리 구현

.

.

을 작업할것같습니다!

 

 

피드백이나 의견이 있으시다면

언제든지 환영입니다! ㅎㅎ

 

 

Post

[ PROJECT/유니티 ] 2023. 4. 28. 21:06

각종 공모전을 준비하면서 정신없이 한달을 보냈네요!

좋은 결과가 없어 슬프지만, 준비하면서 덕분에 버그나 피드백도 주변에서 많이 받았고 개발을 빨리 진행한것같아 좋네요 ㅎㅎ 그리고 불합격한만큼 더 열심히 해야겠다는 생각이 듭니다 

 

먼저 게임의 기획이 확정이 되면서 게임에 대해서 간단하게 소개를 드리자면

0. 플레이 방법

오른쪽 하단에 보이는 방향버튼을 이용해 여우(플레이어)를 우주선과 만나지 않게 움직여

도착지점(빨간색)까지 도달하면 스테이지를 클리어 할 수 있습니다!

여기서 우주선은 플레이어가 누르는 방향과 정 반대 방향으로 움직이게됩니다.

 

그리고 스테이지내에는 구출해야하는 동물들이 존재합니다!

해당 동물들을 모두 구출해내면 스테이지 별 3개를 얻고

반 이상 구출하면 별2개, 반 미만이면 별 1개를 받게됩니다.

 

물론 구출된 동물이든 여우든 우주선과 같은 지점에 위치하면 빨려들어가게됩니다 

다만, 여우(플레이어)는 빨려들어가면 바로 스테이지 실패!

구출된 동물이 빨려들어가면 별이 차감됩니다

 

 

1. 기획의 변경

기존에는 주인공이 귀여운 동물들을 구하기만한다는 막연한 컨셉만 생각했습니다

그 당시에 생각했던 컨셉들로는

 

두부(커스텀 하기 좋을거같아서)

사자 (친구가 없는 사자가 동물을 구하면서 친구를 사귄다는 느낌)

여우 (친구가 없는 여우가 동물을 구하면서 친구를 사귄다는 느낌)

 

이렇게 주인공 컨셉이 나왔었네요

그러다가 여우가 좋겠다는 생각이 들었고, 여우를 정하고나니

어린왕자가 생각나네? 라고 옆에서 얘기를 해주어 

어! 어린왕자 컨셉! 너무 좋을거같은데??? 해서 어린왕자 컨셉을 잡게되었습니다.

 

그리고 게임의 이름도 정해졌죠.

 

'여우는 오늘도 친구를 구한다'

 

 

2. 스토리 설정

컨셉을 정하고나니 스토리도 자연스럽게 떠올려졌습니다.

이런 스토리로 시작을 해서, 여우는 동물들을 구하며 친구들을 사귀게 되고

어린왕자도 여우의 소중함을 알게되는 스토리로 게임의 시나리오를 결정했습니다 :)

 

그리고 이 스토리는 처음 게임을 시작할때, 새로운 챕터를 시작할때

이어서 볼 수 있도록 하고있고 스토리를 모아놓은 컬렉션에서 꺼내서 다시 볼 수 있게끔 할려고 합니다!

 

 

3. 타이틀 제작 & 시작화면 변경

기존(왼) 변경(우)

제목을 정하고 컨셉을 정하게되면서 타이틀도 바꾸게 되었습니다.

저는 게임분위기가 아기자기 귀엽고 가볍게 즐기길 바래서

타이틀도 따로 만들어주었고 시작화면에서

현재 모은 동물과 어린왕자&여우를 나타내주었습니다.

 

기존 왼쪽의 화면에서는 어린왕자가 돌 처럼 보이는데

이건 동물들을 모으면서 색을 되찾아간다~... 라는 포인트를 넣을려고했는데

생각보다 별로인거같아서 그냥 나타냈습니다.

어린왕자와 여우 귀엽지 않나요 ㅎㅎ

 

그리고 시작화면을 클릭하게되면 메인UI들이 보이게 되면서

맨 오른쪽 분홍버튼을 누르면 게임을 시작할 수 있도록하였습니다.

 

시작 및 메인에 보이는 땅에 있는 동물들은

구출한 동물들과 여우가 통통 뛰게 했어요!

 

 

4. 챕터 및 스테이지 선택 화면 제작 및 적용

그리고 챕터선택화면을 제작하였습니다.

챕터는 각각 기믹들이 다르며, 해당 챕터환경에 존재하는 동물들로

구출동물들의 종류가 구성되어있습니다.

그리고 사진에선 안나오지만 챕터선택화면 뒤의 배경은 이렇게!

움직입니다 ㅎㅎㅎ 

그리고 챕터선택화면에서 선택을 누르면

스테이지 선택화면으로 바뀌게 되면서

챕터선택화면과 동일하게 배경이 움직입니다

 

음..근데 지금 보니깐 배경에 캐릭터를 그냥 밋밋한 네모로 하는게 아니라

어린왕자를 나타내는 캐릭터나 여우를 나타내는 캐릭터가 좋을것같네요 흠..

 

 

5. 스테이지 클리어/실패 UI 제작

변경 전
변경후

스테이지에서 실패하거나 성공하면 뜨는 UI를 변경하였습니다!

어린왕자 컨셉을 좀 더 잘 나타내기위해 변경하였는데

저는 아직까지도 전의 디자인이 깔끔해서 그런가..

변경 후의 모습에 대해서 100퍼센트 만족을 못하겠네요.. 

좋은 의견주시면 언제든지 감사하겠습니다!

 

 

6. 수집컨텐츠 구현

그리고 구출한 동물들은 메인화면에서 버튼을 눌러 목록으로 볼 수 있으며

일정 마리 수 이상 구할 경우 메인화면에 보이는 땅에 나타나도록 하였습니다!

 

스토리를 진행하며 여우가 친구들을 계속해서 사귀면

해당 화면은 이런식으로 바꾸게 하고싶긴한데

으음~~ 역시 디자인이 제일 어려운것같네요 ㅎㅎ..

 

동물들을 구출한 데이터를 기록하고 불러오는것은 JSON형태의 파일을

이용하여 진행하고 있습니다.

 

.

.

.

 

앞으로는

1. 스테이지와 챕터를 추가로 개설

2. 어린왕자 컨셉을 녹아든 스토리 및 튜토리얼 제작

3. 디자인 개선 

를 주로 작업할것같고,

 

피드백 의견이 있으시다면

언제든지 환영입니다! ㅎㅎ

 

 

 

Post

[ PROJECT/유니티 ] 2023. 4. 1. 23:41

게임프로젝트를 이번 상반기동안 진행하게되면서 작년 게임을 엎었습니다.

엎은거라기엔 겉보기 모습이 다른건 없지만, 기존 코드를 아예 싹 다 갈아엎었습니다.

 

그래서 3월동안은 기존 작업했던것들을 엎으면서, 

이전에 피드백 받은 부분들에 대해서 보완할점을 고쳤습니다.

 

1. 정보 JSON변환 및 스테이지 맵 생성기 제작 

기존 작업물에서는 스테이지 정보가 오브젝트로 다 들어가 있었습니다.

한 챕터마다 게임씬이 따로있고, 그 게임씬에는 해당 챕터에 존재하는 많은 스테이지들이 오브젝로 있고,

그 오브젝트안에는 스테이지에 맞게 또 플레이어 캐릭터들, 맵 오브젝트, 장애물 오브젝트가 들어가 있습니다.

 

음.. 메모리를 떼어놓고 봐도 이건 너무 아닌거같죠?? 

그래서 어차피 게임은 다 똑같이 돌아가고, 크게 다른건 스테이지 디자인요소 일테니

하나의 게임씬(화면)에서 모든 챕터를 관리하고 겹치는 요소를 또 다시 생성되지않게

만드는것을 목표로 수정을 해나갔습니다.

이전 레벨디자인했던 스테이지에 대한 정보들을 모두 JSON형식으로 변환하였고

게임이 시작될때 해당 데이터들을 불러와서 배치하는 형식으로 하였습니다. 

 

현재는 스테이지 번호도 메겨져 있는형식이지만, 앞으로 스테이지 데이터를 새로 추가하고

레벨디자인을 위해 스테이지 순서를 조정해야할때를 대비해서 아마 수정이 더 필요할것같긴합니다.

 

스테이지 외에도 캐릭터와 기믹의 위치도 데이터화 시켰으며

해당 데이터들은 화면내에서 어느곳에 위치해야하는지와 

최대한 중복되는 데이터가 없도록 하였습니다.

 

확실히 이렇게 하니 챕터 구분만 해준다면, 스테이지는 항상 동일한 위치에 존재하기에

코드라던가 오브젝트들의 경우에도 신경써야할것들이 없었습니다.

구혀하면서의 에러사항은 기본 베이스 맵을 최대 사이즈인 7X7 사이즈로 하였기에

스테이지 맵의 크기가 작아지면 카메라에 보이는 화면이 작기에 카메라가 확대할 수 있도록 하였습니다.

하지만 단순확대만은 정답은 아닐것같기에 이 부분에 대해서는 계속해서 보완해나갈것입니다.

 

 

2. 캐릭터 움직임 코드 리팩토링

사실 이 부분에 대해서는 움직이는 틀에서는 저번 작업과 바뀐것이 없습니다

하지만, 코드상에서 기존에는 다 따로따로 움직여주고 어느 방향으로 갈때

움직이는 코드들이 모두 중복되는 것을 리팩토링하였습니다.

코드를 수정하게되면서, 기존 코드가 사라져 깃허브를 통해 비교를 해보자면

먼저 캐릭터와 우주선 모두 어느방향으로 간다는 함수가 다 따로 존재하였습니다.

하지만 이동하는 코드함수를 다 똑같이 부르는데 매개변수가 다르다고 해서 함수를 따로 존재시켜야하는건 너무 낭비죠.

 

그래서 오른쪽처럼 하나의 함수로 합쳐주었습니다.

그리고 그 전에는 캐릭터들이 움직일때마다 각자의 클래스 내에서

땅이 있는지 없는지 여부를 판단해 이동을 하게되었지만 현재 스테이지 맵(땅 유무) 데이터를 

가지고 있기에 데이터를 통해 유무를 판단하여 캐릭터들에게 움직임 명령을 주었습니다.

그리고 기존에는 오브젝트 인스펙터창에 있는 EventTrigger에다가 움직이는 함수를 하나하나 배정시켰으나

스크립트를 통해 함수를 지정하는 법을 알게되어 스크립트에서 쉽게 수정하고 지정할 수 있도록 하였습니다.

 

플레이어 캐릭터, 우주선 캐릭터 모두를 움직이도록 관할하고 있는 클래스에서는

이때까지 존재하던 각 캐릭터의 움직임 함수를 하나로 합치도록 하였습니다.

그리고 중복되는 코드들을 하나의 코드로 합칠 수 있다면 합치도록 하였습니다.

 

이전에는 UFOMove클래스에서 UFO가 움직이고, 동물이 있다면 빨아들이는 코드를 모두 구현하였습니다.

클린소프트웨어 책과 다른 사람들의 코드, 피드백, 말들을 보고 들으면서

클래스 하나 에는 해당 클래스가 작동하는 목적 하나만 충실히 실행하도록 해야 좋은것이라는 것을 보고 느끼면서

기존 UFOMove클래스 내 동물 탐지와 빨아들이는 코드는 UFOTake클래스에 새로 옮겼습니다.

 

그리고 RayCast를 할때 레이어마스크를 활용하기위해 enum으로 레이어들을 모두 기록해두었습니다.

참고로 UFO가 사용할 캐릭터들 레이어의 경우 따로

레이어들의 값을 모두 판별할 수 있도록 값을 저장했습니다.

 

 

3. 기존 게임 분석 및 기획

제가 만들고자 하는 게임과 유사한 게임을 직접 해보고 분석해보면서

내가 만들 게임에는 어떤 컨텐츠가 있으면 좋을지,

또 UI는 어떻게 배치하면 좋을까를 많이 고민해보았습니다.

 

기존게임들을 직접 플레이를 하면서는 아무래도 사용자 친화적인가가 많이 와닿았고 

검색을 하면서 분석할땐 게임이 가진 컨셉과 디자인이 눈에 많이 들어왔습니다.

 

이 과정에서 기획의 틀이 잡히게 되었는데, 그건 다음 게시물에서 얘기하도록 하겠습니다.

 

 

.

.

.

 

 

하면서 힘들었던 점은 기존 코드에서 사용할 부분과 버릴 부분이 명확하지 않았고

그대로 쓰면서 새로운 코드와 잘 연결되도록 할려다보니 더 보이지 않은 오류가 많았던것같습니다.

 

코드를 정말 말 그대로 다 공백으로 하고 난 다음에 다시 처음부터 구현할 수도 있긴하지만

현재 코드의 문제점을 보면서 직접 수정하다보니 이렇게 하면 안되겠구나를 많이 깨닫게 되어서 좋았습니다.

 

물론 남의 코드도 아니고 불과 몇개월전의 제 코드지만 역시 과거의 코드는 항상새롭네요 ㅋㅋㅋ

아, 하지만 코드가 너무 별로라고 생각이 들면 다 갈아엎은 것들도 있긴합니다.

그래서 그런지 처음부터 프로젝트를 시작하게 느끼게된건 이런점들이 큰것같습니다.

▲ top