Unity3D/[유니티 인디게임] 처음 공부부터 출시까지

[유니티 인디게임] 처음 공부부터 출시까지. - 6

상연 2021. 9. 8. 16:02

목차

    모든 글

      1. 처음 게임을 개발하기로 마음먹기까지, 그리고 생각보다 어려웠던 유니티.
      2. 두 개발 초보의 얼렁뚱땅 날림 게임 기획. 헤딩시작!
      3. 캐릭터 선택 / 장애물 기획 및 구현 / 스킬 일부 구현
      4. 핵심기능 개발 / 일부 UI 개선
      5. 코드 / UI  갈아엎기, MWU 제출을 위하여
      6. 튜토리얼/편의성/밸런스 패치
      7. 구글플레이 등록 / 인앱결제 / 애드몹 다방면 삽질끝에 출시를 앞두다.

    [15] 스토리 / 튜토리얼 추가


    이제 어느 정도 게임 시스템도 자리 잡았고, 남은 건 버그를 잡고 마감도를 올리는 일이 대부분입니다.

    이쯤 되니 슬슬 데모 버전으로 주변 사람들에게 테스트를 해 봐야겠다 싶었는데요.

    막상 만나서 한 두명에게 시켜보려 하니, 처음부터 게임 시스템에 대해 제가 옆에서 계속 설명해 줘야 하더라고요.

     

    물론, 그 친구들이 평소 이런 게임류와 거리가 먼 친구들이라 조금 더 설명이 많았던 것도 있지만.

     

    저는 개발을 했으니 당연히 시스템을 빠삭하게 알다못해 꿰뚫고 있지만, 유저들은 전혀 그렇지 못하 다는걸 제가 간과하고 있었던 것이었죠.

     

    해서, 그 날 바로 집에 돌아와서 튜토리얼을 제작해보기 시작합니다.

    처음에는 막 A-Z까지 엄청 세세하게 알려줘야지 하고 작업을 시작하는데, 막상 만들다 보니 귀찮은 것도 귀찮은 건데 어떻게 정보전달을 해야 할지 좀 감이 안 와서 얼렁뚱땅 만들어버리게 됩니다...

    그런데 또 게임을 처음 키자마자 대뜸 게임을 어떻게 하는지 알려주는게 상당히 어색합니다.

    그래서... 나름 기존에 생각해놨던 게임의 스토리를 처음에 보여주고 자연스럽게 튜토리얼로 넘어가도록 합니다.

    스토리 일부...

    너무 사진이 많아져서 글이 길어질듯해서 일부만 올려봅니다.

    대략적으로 토끼와 고양이가 서로 말하며 자연스럽게 게임의 전반적인 스토리를 설명하고 튜토리얼로 넘어갑니다.

    튜토리얼

    스토리가 끝나고 튜토리얼 시작합니다.

    점프부터 알려줍니다. 

    점프해야 피할 수 있는 장애물이 나타납니다.

    DOWN키를 누르면 공중에서 바로 지상으로 내려오게 되는데요

    DOWN키를 누르지 않으면 피할 수 없는 장애물이 나타납니다.

    하지만... 키를 누르지 못하고 위의 사진처럼 맞게 된다면?

    유저가 제대로 이해하지 못했다고 판단해서 한 번의 학습? 기회를 줍니다.

    물론 실패한다고 계속 시키면 짜증나니까... 한 번만 더 줍니다...ㅎㅎ

    그다음은 액티브 스킬을 사용하는 법을 알려줍니다.

    누르면 뾰료룡하고 통과하게 되지요!

    그렇게 다 통과하게 되면 다음 시련(스테이지)으로 가는 조건이 충족됐다는 것을 알려줍니다.

    저희 게임은 다음 스테이지로 가기 전에 하나의 스킬을 선택해야 하기 때문에 그것도 알려줘야 하는데요.

    이렇게 알려줍니다.

    그리고 스킬을 선택하고 나면, 얼추 게임 시스템 전반적으로 알려줄 건 알려줬기 때문에

    플레이어를 죽여야 합니다. 강제로

    그래서 '함정이 강해졌습니다'라는 문구와 함께 이 시점부터는 함정의 대미지가 99999로 설정됩니다.

    스치면 사망이 됩니다. 심지어 아무리 함정을 통과해도 다음 스테이지로 넘어가지도 못하죠!

    그렇게 무사히 유저를 죽이고 나면

    메인화면으로 넘어오게 됩니다.

    이후 이렇게 문자를 통해 간단하게 각각 어디로 들어가면 뭘 할 수 있는지에 대한 설명이 첨부됩니다.

    다른 씬에 들어가도 이런 느낌으로 처음 접속한 유저들에게 이런 식으로 설명이 들어갑니다.

     

    이 튜토리얼은 한 번 보게 되면 이후에는 다시는 못 보게 설정되어있습니다.

     


    [16] 기록 보관소 추가


    제가 직접 테스트할 겸 꾸준히 게임을 해 보고 있었는데요.

    이게 내가 전에 어떤 난이도에서 몇 점을 받았는지, 그때 어떤 능력치로 클리어를 했는지 실패했는지 궁금했습니다.

    뭔가 개발하는 입장에서도 그런 이력이 있으면 밸런싱이나 버그 찾는데 편할 것 같고

    유저 입장에서는 각기 다른 콘셉트에 따른 차이를 확인할 수 있으니 플레이의 재미가 조금 오르지 않을까 합니다.

    그렇게 해서 이런 식으로 기록 보관소가 만들어지게 됩니다.

    최근 점수 항목과 최고 점수 항목 이렇게 두 가지가 있습니다.

    각 항목에는 최대 30개의 기록이 저장되며, 그 이상의 기록이 생길 시에는 최근 점수 항목의 경우에는 가장 오래된 항목부터 삭제가 되며, 최고 점수 항목의 경우에는 가장 낮은 점수를 가진 항목부터 삭제가 되어 30개를 유지합니다.

    우측 1~30순위까지 있는 버튼을 클릭하면 그 항목의 상세한 정보가 표시됩니다.

    습득한 패시브 스킬, 클리어 당시의 캐릭터 능력치, 어떤 캐릭터를 선택했고 어떤 액티브 스킬을 채용했는지까지

    이 외에도 사실 더 많은 정보를 저장하고 있지만, 표시할 수 있는 공간의 한계가 있어 이 정도로만 표시합니다.

     

    처음에는 이 기록들을 기존 SaveData와 같이 저장을 했었습니다.

    그런데 이 기록들이 10개 20개 이렇게 쌓이다 보니, 데이터를 save load 하는데 상당히 버벅거리기 시작합니다.

    그럴 만도 한 게 플레이 한판에 대한 기록만 해도 기존 SaveData와 맞먹거나 그 이상이었기 때문이었습니다.

     

    그래서 Record 전용 SaveData XML 파일을 따로 생성해서 저장하는 방식을 택하게 됩니다.

    게임을 실패하거나 성공할 때만 기록을 저장시키고, 기록보관소에 들어갈 때만 불러오는 방식으로 하니 이전보다 확연이 버벅거림이 줄어듦을 확인할 수 있었습니다. 

     


    [17] 밸런스에 대한 고찰


    게임이 재미있으려면 어때야 할까요?

    눈도 즐거워야 하고, 플레이 자체에서도 재미가 있어야겠지만...

    저는 개인적으로는 밸런스가 참 중요하다고 생각합니다.

     

    유저가 흥미를 잃지 않을 정도로, 적당히 오기를 갖게 하는 어려움의 난이도가 지속적으로 주어지면서

    계속해서 '어려움을 극복'하면서 '성장'하는 재미를 갖게 해야 한다고 생각했습니다.

     

    근데, 이게 정말 정말 정말 정말 어렵다는 것도 알게 되었습니다....ㅠㅠ

    어느 정도 생각하고 있는 방향으로 밸런스를 잡아놨다고 한들, 실질적으로 이를 테스트시켜볼 수 있는 사람도 없기 때문에 마땅한 피드백을 받기도 어렵다 보니 전적으로 내가 짠 밸런스를 내가 플레이하고 판단해봐야 하는데

    제 자신이 신뢰가 안 가고 그렇게 되더라고요.

    지인들에게 플레이를 부탁해봐도 지인들은 아무래도 최종 콘텐츠까지 해보려기보다는 그냥 한 두 판 해 주고 마는 게 전부였다 보니 제대로 된 테스트를 기대할 수도 없었고요.

    하지만, 확실히 지인들 덕분에 게임 초반 난이도 형성에는 큰 도움이 되었습니다.

    저는 저희 게임이 그렇게 어렵다고 생각을 못했는데 꽤 어렵다는 평을 많이 받아서 처음에는 정말 뭐 길 가는 할아버지든 할머니든 누구나 클리어할 수 있는 수준의 난이도로 책정을 시키게 됩니다.

    우선은 저희가 상정하는 예상 플레이타임을 잡아봅니다.

    지난번 1차 밸런스 회의에서는 캐릭터 한 개를 만렙을 찍고, '재능' 시스템을 만렙 찍는데 상정한 시간이 대략 16시간이었습니다. 미쳤었죠

    그걸 바탕으로 직접 플레이를 해 보는데 한 4~5시간을 했는데도 캐릭터가 썩 성장하는 맛이 안 나서 지루했습니다.

    또한 플레이를 한 번 하는 데의 소요시간도 대략 10~12분 사이로 꽤 길어 후반에 가면 좀 지쳤습니다.

    그래서 이번 회의에서는 플레이 타임을 대략 6~7분 사이로 줄이고, 성장의 재미를 느낄 수 있도록 성장 소요시간을 대폭 줄였습니다.

     

    위의 사진을 보시면 속도에 따라서 유저가 통과해야 할 함정의 수는 늘어나지만, 플레이타임은 유지되게 했습니다.

    속도 증가 -> 스테이지 별 요구 경험치량 증가

    이런 방식으로...

    난이도가 올라갈수록 속도가 올라가면서 자연스럽게 실질 난이도도 상승하며

    그 외에도 대미지나 디버프를 주는 방식으로 난이도를 조절하게 됩니다.

    이후 테스트 시뮬레이션 + 개발진의 플레이 경험을 토대로

    저희가 상정하는 캐릭터 강화 수준에 따른 일정 난이도의 클리어 수준 밸런스를 맞춰줍니다.

    테스트 시뮬레이션의 경우에는 확률에 의해서 잘하는 유저의 기준으로 하면 장애물 회피율을 80%, 못하는 유저의 기준으로 하면 약 20% (실제 유저 플레이 데이터 기반)으로 상정한 후, 패시브 아이템의 선택의 경우에는 플레이에 유리한 스킬을 우선 선택하도록 일종의 가중치를 주어 자동으로 선택하게 시뮬레이션을 작성했습니다.

    물론, 실제 유저의 플레이와는 어느 정도 괴리가 있겠지만 실제 제가 플레이하는 스펙과 비슷하게 했을 때 유사한 결과가 나오도록 코드를 작성해서 시뮬레이션했습니다.

    그렇게 해서 이번 2차 밸런스 회의의 결과로는

    1. 1회 플레이 소요 시간 약 7분으로 축소

    2. '재능'의 경우 모든 캐릭터에 적용되므로 레벨업을 굉장히 힘들게 책정

    3. 대신 '캐릭터 성장'을 쉽게 만들어 유저가 다양한 스탯을 찍고 다양한 플레이를 하도록 유도 (기존 캐릭터 1개 만렙 소요시간 16시간, 현재 3시간)

    4. 골드의 수급을 어렵게 하여 유저의 성장 속도를 조절

    5. 대신 높은 난이도를 클리어할수록 '씨앗'이라는 특수 재화를 많이 얻게 되는데, 이를 골드로 환전하는 기능을 추가하여 오래 플레이한 유저일수록 성장 속도에 가속도를 줄 예정

    6. 전반적으로 유저가 현재 최종 난이도를 즐기게 되는데 필요한 소요시간은 4시간 정도로 상정중. (실력이 안 좋은 유저 기준)

    7. 성장은 빠르게, 다양한 콘셉트 플레이를 지원하자.

    이렇게 되었습니다.

    아무래도 맵이 하나밖에 없고 정해진 패턴의 반복이다 보니 콘텐츠 자체가 적어 플레이타임을 길게 가지면 안 되겠다 싶었습니다. 우선은 이 밸런스를 기준으로 직접 플레이하면서 테스트해봐야겠습니다.


    이번 개발일지는 여기까지입니다.

    아마, 다음 개발일지에서는 구글 플레이에 앱 등록을 하고, 인앱 결제 및 보상형 광고를 시험해 본 후기가 들어가지 않을까 싶습니다. 왜냐하면 이제 이 글을 올리고 나서 이것들을 해 볼 생각이거든요..ㅠㅠ

    전체적으로 자잘 자잘한 마감도를 올리기 위한 UI 수정이라던지, 버그를 수정한 것들에 대해서는 따로 개발일지를 작성하고 있지 않습니다.

    근데 작성해도 될 만큼 많긴 합니다... 테스트하면서 플레이하면 한 편하고 나서 TODO LIST에 한 두 개씩 작성하러 가요...

    이제 슬슬 환절기가 되면서 저는 몸이 조금 골골대고 있는 중입니다.

    다들 환절기 건강 조심하시길 바랍니다!

    [이전 글 보기]

     

    [유니티 인디게임] 처음 공부부터 출시까지. - 1

    처음 게임개발을 하게 되면서 생긴 시행착오, 작업물 등을 일지로 남겨놓고 싶어 이 글을 작성하게 되었습니다. 정말 맨 땅에 헤딩으로 공부하고 작업했기 때문에 부족한 부분이 많이 보일듯 합

    wonsang98.tistory.com

     

    [유니티 인디게임] 처음 공부부터 출시까지. - 2

    목차 처음 게임을 개발하기로 마음먹기까지, 그리고 생각보다 어려웠던 유니티. 두 개발 초보의 얼렁뚱땅 날림 게임 기획. 헤딩시작!(이번글) 첫 리소스 추가, 스킬 및 기능 추가. (다음글) [유니

    wonsang98.tistory.com

     

    [유니티 인디게임] 처음 공부부터 출시까지. - 3

    목차 처음 게임을 개발하기로 마음먹기까지, 그리고 생각보다 어려웠던 유니티. 두 개발 초보의 얼렁뚱땅 날림 게임 기획. 헤딩시작! 캐릭터 선택 / 장애물 기획 및 구현 / 스킬 일부 구현 [5] 캐

    wonsang98.tistory.com

     

    [유니티 인디게임] 처음 공부부터 출시까지. - 4

    목차 처음 게임을 개발하기로 마음먹기까지, 그리고 생각보다 어려웠던 유니티. 두 개발 초보의 얼렁뚱땅 날림 게임 기획. 헤딩시작! 캐릭터 선택 / 장애물 기획 및 구현 / 스킬 일부 구현 핵심기

    wonsang98.tistory.com

     

    [유니티 인디게임] 처음 공부부터 출시까지. - 5

    [12] 코드 리팩토링 작업 맨땅 헤딩으로 게임 제작을 시작한지 약 한~두달, 초기에는 싱글톤패턴을 활용해서 제작을 해 보려고 했습니다. 하지만 이 싱글톤패턴에 대한 명확한 공부가 이뤄지지

    wonsang98.tistory.com

     

    [유니티 인디게임] 처음 공부부터 출시까지. - 6

    [15] 스토리 / 튜토리얼 추가 이제 어느 정도 게임 시스템도 자리 잡았고, 남은 건 버그를 잡고 마감도를 올리는 일이 대부분입니다. 이쯤 되니 슬슬 데모 버전으로 주변 사람들에게 테스트를 해

    wonsang98.tistory.com

     

     

    [유니티 인디게임] 처음 공부부터 출시까지. - 7(完)

    맨 땅에 헤딩으로 시작해서 게임을 개발하고, 뒤늦게 조금씩 올리던 개발일지의 끝이 보이네요. 처음에는 굉장히 잦은 주기로 올렸었는데, 마지막 개발일지를 이렇게 늦게 올리게 될 줄은 예상

    wonsang98.tistory.com