68504547

What! Studio : 04. 게임의 시작과 끝

Created by 오현근 [ohhyungun], last modified on 6월 22, 2018
내부 레이싱 개발 진행이 마무리 단계로 들어간 후에
온전한 게임으로 보일 수 있도록 게임 시작부터 종료 그리고 다시 시작할 수 있는 기능 들을 구현하였습니다.
게임의 기본 진행 과정은 아래와 같습니다.
처음으로는 시작 화면을 구성하였는데 해당 작업에서는 크게 2가지로 작업이 나눠졌습니다.
  • 시작 부분 만들기
  • 불필요한 내용 가리기
UI 버튼을 선택하여 게임을 시작할 수 있도록 구현을 시작하고,
시작 시점에 필요하지 않은 UI들을 체크해 가면서 가리기 시작했습니다.
(왼쪽- 작업전, 오른쪽 -작업 후)
> 이름 입력 기능
자신이 플레이할 차량을 이름을 적용할 수 있도록 하여 최소의 비용으로 더 재밌게 플레이할 수 있는 장치를 마련하였습니다.
적은 비용으로 초반 몰입도 상승 시키는 방법.
(이름을 넣지 않아도 시작은 가능하지만 테스트 플레이 시에 대부분 이름을 넣어서 플레이를 진행하였음)

> 리팩토링
해당 과정을 진행하면서 이슈가 발생하였는데
게임에 포함되어 있는 각의 요소들을 필요한 시점에 On/Off를 처리하는 과정에서
개발 코드 내부의 네이밍이 임시로 되어 있거나 비슷한 이름들이 계속해서 쌓여가고 있어 작업의 효율이 지속적으로 감소하고 있었습니다.
이 문제를 해결하기 위해 소소한 리팩토링 과정을 거치게 되어 생각보다 많은 시간을 소비하였습니다.
누구나 하지 말아야 한다고 생각하지만 개발 진행 시 한번은 거쳐가는 과정
이런 상황의 발생을 미연에 방지하기 위해...

> 게임의 시작과 주행에서 차량의 위치 변경
차량 또한 준비 단계와 실제 주행 할 때 서로 다른 지점에 위치하도록 하여
게임이 대기 중인 상태와 주행 중인 상태를 구분할 수 있도록 하고 추가로 UI와 주변 배경에 변화를 적용.
(왼쪽- 처음 대기 상태, 오른쪽 - 주행 전 위치)
시뮬레이션 효과를 향상하기 위해 주행 위치를 고정하지 않고 항상 무작위로 적용.
게임의 규칙이 복잡하지 않은 형태다 보니 특정 기준으로 갖고 배치하기 보다 매판 무작위로 적용하는 것이 재미를 높이는데 더 효율적이라고 판단.

> 게임 규칙
지속해서 게임을 즐길 수 있도록 하기 위한 규칙 만들기
한판의 시뮬레이션 레이싱에서 어떻게 하면 최소한으로 반복 플레이를 만들어 낼 수 있을까에 대한 고민
<별 5개 모으기> 처음 적용한 규칙
  • 1등:3개
  • 2등:2개
  • 3등:1개
위와 같은 등수 달성 시 별을 지급하고 총 5개가 모이면 "Clear" 멘트가 등장하도록 하여
클리어를 위해 최소 2판을 플레이 해야 하도록 적용.
문제 발생
  • 대부분 1등을 목표로 플레이를 하게 되었음
  • 클리어 멘트가 잘 보이지 않아 클리어 여부를 파악하지 못함
  • 더 잘하고 말고 할 거 없이 그냥 하다보면 달성됨
중간에 4등 이하로 내려가면 별 개수는 0개로 초기화 하는 형태도 적용해 보았으나
해당 내용은 부정적인 플레이 경험이 쌓일 수 있어서 사전에 제거.
<1등 하기> 보완한 두번째 규칙
1등을 목표로 플레이하도록 하여 1등을 하지 못했을 경우에는 프로그램을 종료 시키는 방법을 적용
하트코어 룰을 지향하고자 하였으나...
문제 발생
  • 시뮬레이션 게임이어서 운으로 1등을 하는 경우 발생
  • 그로 인해 재미의 경험이 일정하지 못함
  • 1등 하지 못했을 때 프로그램 종료 기능은 필요가 없는 기능이었음
<연속으로 1등 하기> 보완한 세번째 규칙
마지막으로 적용하게된 규칙으로 지속해서 몇번까지 1등을 할 수 있는지 목표를 잡고 플레이
매판 1등을 하기 위해 노력하면 되는 플레이 규칙
아쉬운 점
  • 1등 했을 때 마다 난이도를 상승 시킬 수 없었다 (why. 성장 시스템이 없어서)
  • 달성한 스코어를 자랑하거나 비교할 수 있는 공간을 마련하지 못했다.
  • 가장 안정적인 규칙이었으나 3판이상 계속하기는 힘듦..

> 기억에 남는 기능 구현
<메뉴 만들기>
어떤 시점에라도 메뉴를 통해 게임을 재시작하거나 프로그램을 종료할 수 있도록 하기 위한 기능을 넣는 과정에서
굉장히 많은 부분들을 제어하고 예외처리가 필요함을 구현 하면서 발견하게 되어 많은 시간을 소비하게 됨.
게임에서의 비중은 굉장히 적게 차지하고 있지만 왠만한 시스템 만큼 시간을 투자해서 구현함.

Attachments:

Image 003.png (image/png) Image 014.png (image/png) flow.png (image/png) 2015-11-3-638.jpg (image/jpeg) ready.png (image/png) go.png (image/png) Image 014.png (image/png) Image 015.png (image/png) intro.png (image/png)
Document generated by Confluence on 5월 02, 2019 16:24