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

전체 글 15

카테고리 설명
모바일 퍼즐게임 '여우는 오늘도 친구를 구한다' 블로그입니다!
  • + 블로그에 글들을 옮기는 과정이라 현재 날짜와 공유한 개발상황이 다를 수 있습니다. 각종 공모전을 준비하면서 정신없이 한달을 보냈네요! 좋은 결과가 없어 슬프지만, 준비하면서 덕분에 버그나 피드백도 주변에서 많이 받았고 개발을 빨리 진행한것같아 좋네요 ㅎㅎ 그리고 불합격한만큼 더 열심히 해야겠다는 생각이 듭니다 먼저 게임의 기획이 확정이 되면서 게임에 대해서 간단하게 소개를 드리자면 0. 플레이 방법 오른쪽 하단에 보이는 방향버튼을 이용해 여우(플레이어)를 우주선과 만나지 않게 움직여 도착지점(빨간색)까지 도달하면 스테이지를 클리어 할 수 있습니다! 여기서 우주선은 플레이어가 누르는 방향과 정 반대 방향으로 움직이게됩니다. 그리고 스테이지내에는 구출해야하는 동물들이 존재합니다! 해당 동물들을 모두 구출..

  • + 블로그에 글들을 옮기는 과정이라 현재 날짜와 공유한 개발상황이 다를 수 있습니다. 게임프로젝트를 이번 상반기동안 진행하게되면서 작년 게임을 엎었습니다. 엎은거라기엔 겉보기 모습이 다른건 없지만, 기존 코드를 아예 싹 다 갈아엎었습니다. 그래서 3월동안은 기존 작업했던것들을 엎으면서, 이전에 피드백 받은 부분들에 대해서 보완할점을 고쳤습니다. 1. 정보 JSON변환 및 스테이지 맵 생성기 제작 기존 작업물에서는 스테이지 정보가 오브젝트로 다 들어가 있었습니다. 한 챕터마다 게임씬이 따로있고, 그 게임씬에는 해당 챕터에 존재하는 많은 스테이지들이 오브젝로 있고, 그 오브젝트안에는 스테이지에 맞게 또 플레이어 캐릭터들, 맵 오브젝트, 장애물 오브젝트가 들어가 있습니다. 음.. 메모리를 떼어놓고 봐도 이건 ..

  • + 블로그에 글들을 옮기는 과정이라 현재 날짜와 공유한 개발상황이 다를 수 있습니다. 혼자서 게임을 만들어볼 생각이 있어서 나름 생각만 하던 기획안이 있었습니다. 두개의 캐릭터를 동시에 조작키로 움직이는것이었는데요.. 유튜브에서 게임영상들을 보면서 어려운 게임들을 보니 저도 모르게 영향을 많이받았던것같습니다. 여기서 구체화해서 두개의 캐릭터 중 하나는 사람.. 다른 하나는 영혼으로 구상하였습니다 ㅋㅋ 그리고 키보드에서 한명이 WASD와 방향키 조작을 하는것은 그때도 좀 힘들거라고 생각했는지 나름 모바일로해서 양쪽의 2분할 화면을 통해 각각터치로 진행하면되겠구나 라고 생각했죠. 보이시나요? 왼쪽에선 미션을 수행하고 오른쪽 화면에선 총쏘고 앉아있는거! 환장하겠네! 그러다가 두 캐릭터를 동시에 움직이는게 굳이..

작성일
2024. 3. 4. 04:24
작성자
wisen

+
블로그에 글들을 옮기는 과정이라 현재 날짜와 공유한 개발상황이 다를 수 있습니다.

 

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

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

 

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

0. 플레이 방법

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

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

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

 

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

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

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

 

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

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

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

 

 

1. 기획의 변경

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

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

 

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

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

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

 

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

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

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

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

 

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

 

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

 

 

2. 스토리 설정

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

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

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

 

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

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

 

 

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

기존(왼) 변경(우)

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

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

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

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

 

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

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

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

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

 

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

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

 

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

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

 

 

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

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

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

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

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

움직입니다 ㅎㅎㅎ 

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

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

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

 

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

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

 

 

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

변경 전
변경후

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

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

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

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

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

 

 

6. 수집컨텐츠 구현

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

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

 

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

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

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

 

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

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

 

.

.

.

 

앞으로는

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

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

3. 디자인 개선 

를 주로 작업할것같고,

 

피드백 의견이 있으시다면

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

 

 

 

'여우는 오늘도 친구를 구한다 > 여우는 개발상황을 공유한다' 카테고리의 다른 글

23년 7월 개발일지  (0) 2024.03.04
23년 6월 개발일지  (0) 2024.03.04
23년 5월 개발일지  (0) 2024.03.04
23년 3월 개발일지  (0) 2024.03.04
초창기 기획  (1) 2024.03.04
작성일
2024. 3. 4. 04:21
작성자
wisen

+
블로그에 글들을 옮기는 과정이라 현재 날짜와 공유한 개발상황이 다를 수 있습니다.

 

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

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

 

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

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

 

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

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

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

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

 

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

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

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

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

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

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

 

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

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

 

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

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

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

 

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

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

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

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

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

 

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

 

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

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

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

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

 

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

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

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

 

 

3. 기존 게임 분석 및 기획

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

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

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

 

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

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

 

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

 

 

.

.

.

 

 

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

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

 

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

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

 

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

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

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

'여우는 오늘도 친구를 구한다 > 여우는 개발상황을 공유한다' 카테고리의 다른 글

23년 7월 개발일지  (0) 2024.03.04
23년 6월 개발일지  (0) 2024.03.04
23년 5월 개발일지  (0) 2024.03.04
23년 4월 개발일지  (1) 2024.03.04
초창기 기획  (1) 2024.03.04
작성일
2024. 3. 4. 04:18
작성자
wisen

+

블로그에 글들을 옮기는 과정이라 현재 날짜와 공유한 개발상황이 다를 수 있습니다.

 

혼자서 게임을 만들어볼 생각이 있어서 나름 생각만 하던 기획안이 있었습니다.

두개의 캐릭터를 동시에 조작키로 움직이는것이었는데요..

유튜브에서 게임영상들을 보면서 어려운 게임들을 보니 저도 모르게 영향을 많이받았던것같습니다.

여기서 구체화해서 두개의 캐릭터 중 하나는 사람.. 다른 하나는 영혼으로 구상하였습니다 ㅋㅋ

그리고 키보드에서 한명이 WASD와 방향키 조작을 하는것은 그때도 좀 힘들거라고 생각했는지

나름 모바일로해서 양쪽의 2분할 화면을 통해 각각터치로 진행하면되겠구나 라고 생각했죠.

 

보이시나요? 왼쪽에선 미션을 수행하고 오른쪽 화면에선 총쏘고 앉아있는거! 환장하겠네!

 

 

그러다가 두 캐릭터를 동시에 움직이는게 굳이 조작키 두개일 필요는 없지않나? 반대로 움직이면 한번에 두 캐릭터가 다 움직일 수있잖아! 라는 생각을 떠올리게됩니다! :0! 

 

여기서 또 개연성을 부여해서 귀신은 사람과 반대로 행동한다는 설이 있으니 어떻게 또 말이 맞아보이구요??

 

그래서 한가지 조작키로 두 캐릭터를 동시에 움직이는 게임을 생각해냅니다!

이 당시에는 2D로 생각을 했고 미로형식을 생각했습니다. 

반대로 움직이다가.. 같은 지점에서 만나게되면 온전한 몸(본체+영혼)이 되어 출구로 나갈 수 있는!

나름 스토리도 구축했고 개연성도 부여하였고 참신성도 있다고 생각했지만..

게임에 넣을 미로에는 이런것들이 있겠지 싶어서 나름 찾아보고 구성해보면서 느꼈습니다.

어 ㅋㅋㅋ 뭐지??

 

 

쫌 망했네 ㅋㅋㅋ..?

 

 미로맵 2개로  2D로 미로를 만들려고하니 서로 겹쳐지는 부분이 있어야하는데..설계해보니

엄청나게 복잡해졌습니다. 그냥 단순히 일자여도 복잡해질까말까? 인데 난이도가 올라갈껄 고려해서

조금이라도 모양이 복잡해지면 정말 복잡해지는것입니다!

 

심지어 맵이2개가 아니라 1개여도 나름골치가 아파집니다!

서로 반대로 움직이는 캐릭터가 만날려면

양 끝에서 서로 출발을 해야하는데 그러면 무조건적으로 둘은 대충 예상되는

중간부분에서만 계속 만나게됩니다.

 

난이도가 쉽고 어렵고를 떠나서 게임자체가 갑자기 엄청 재미가 없어지는거죠! 

생각할것도 없고 뭐 똥개훈련시키는것도 아니고.. 

만드는 저도 힘들고 플레이할 사람도 재미없는게 뭔가 눈에 훤히 보였습니다.

 

이 시점에서 게임을 2D로 할지 3D로할지 많이 고민했습니다. 2.5D는.. 나름 쟤도 2D3D 사이에 차원이라고 생각을 하였으나 현재 고민하고있는 부분에 대해서는 실질적으로 해결책이 될것같진않았습니다.

 

하지만 선택지가 2가지 밖에 없으니 생각보다는 쉽게 결정했던것같습니다.

 

지금 제 게임의 정체성(동시에 두 캐릭터를 하나의 조작키로 움직이는것)을 포기하지않는다면 2D는 절대 안된다.

라는 결론이 나왔고 생각보다 3D로 생각하고 난 다음부터는 맵설계가 그나마 쉬워진것같았습니다.

 

대신 처음2D로 할려고했던 이유는 최적화문제도 있지만..제가 직접 도트를 찍어 기획아트개발 모두를 전담할려고했기에 고민할 필요가 없어 보이던 3D도.. 나름 고민했습니다.. 

 

그래도 다행인건 2D에서 같은 지점에서 만나야 했던것을

3D에서는 같은y축(세로 선상)에서 만나면 되기에 다행이었습니다.

큰 틀이 바뀌진 않았죠 ㅠㅠ 휴 ㅠㅠ

 

 

그 다음부턴 게임 구체화를 했던것같습니다. 구체적으로 어떻게 나타낼것이며 스테이지들을 보여줄때 어떻게 보여줄것이며 게임 메인화면은 어떻게 구상하고 게임오버시, 클리어시 어떻게 나타낼지를 구체화했죠.

 

직접 손으로 쓴 것들도 되게 많은데.. 지금 개발일지를 적자고 수첩을 찾아서 사진을 찍을려고 하니 이미 태블릿에 있는것들 찾아서 캡쳐만 해도 양이 상당해서 직접 손으로 쓴것들을 따로 안올리겠습니다.

그렇게 틈틈이 게임을 구체화 하고있었는데.. 

 

위의 컨셉들을 모두 엎기로했습니다.

이유는 다음 개발일지에서....

'여우는 오늘도 친구를 구한다 > 여우는 개발상황을 공유한다' 카테고리의 다른 글

23년 7월 개발일지  (0) 2024.03.04
23년 6월 개발일지  (0) 2024.03.04
23년 5월 개발일지  (0) 2024.03.04
23년 4월 개발일지  (1) 2024.03.04
23년 3월 개발일지  (0) 2024.03.04