[팀 프로젝트 포트폴리오] Shot Billy! (액션상 수상)

설치 없이 플레이하기

 

Shot Billy by susoooooo

action billiards game

susoooooo.itch.io

프로젝트 개요

  • 게임 제목: Shot Billy!
  • 개발 기간: 1학년/12/22 ~ 1학년/12/24
  • 플랫폼: PC
  • 장르 / 플레이 방식: 액션, 당구 / 화면을 드래그하여 당구공인 빌리의 발사 각도와 힘을 정하고, 드래그를 드롭했을 때 빌리는 플레이어가 설정한 방향대로 힘차게 발사됩니다. 플레이어가 발사되고 적의 hp만큼 벽에 부딪힌 후 적에 닿으면 데미지를 입지 않고 적을 처치할 수 있는데, 이렇게 적을 처치하여 턴을 계속 넘기고 마지막엔 보스를 잡는 게임입니다.
  • 팀 구성: 랜덤으로 4명이 같은 팀이 되었는데, 아트와 기획자와는 악연이 있는지 이번에도 개발자 4명으로 팀이 구성되었습니다.
  • 내 역할: 전 능력을 제외한 모든 기획을 맡았고, 기믹과 맵, 튜토리얼, 파티클을 만들고 팀장은 아니지만 기획자 역할을 했기 때문에 친구들의 작업물을 피드백하여 아쉬운 점이나 고칠 점을 피드백해 주었습니다.
  • 사용 툴 / 언어  / 기타 도구: Unity

기획 의도 / 게임 컨셉

  • 게임을 만들게 된 동기: 게임잼의 테마는 It follows you였습니다. 하지만 주제에 너무 연연하기보다는 재밌는 게임을 만드는 것이 중요하다고 생각했기 때문에 주제를 조금 벗어나서 아이디어를 떠올리고 그것을 주제와 연관 짓는 방식으로 기획을 해보았습니다. 그래서 나온 기획이 플레이어가 튕기면 플레이어를 따라오는 적의 HP가 닳고, HP가 0이 된 적만 공격해야 하는 게임이었습니다. 당구를 모티브로 기획했는데 확실히 적이 플레이어를 따라오긴 해도 주요 아이디어가 공이 튕기고, 그것을 계산하여 적을 처치하는 것이었기 때문에 테마와 완전히 일치하진 않았지만, 기간이 극단적으로 짧은 게임잼에서 나온 기획치곤 참신하고 재밌을 것 같아 채택되었습니다.
  • 핵심 아이디어: 당구의 재미인 공을 쳤을 때 공이 나아갈 경로를 미리 계산하고 실제로 쳤을 때 계산한 대로 공이 나아가며 목표 지점에 도달했을 때의 희열을 핵심 재미로 삼고, 그것을 It follows you라는 테마에 맞게 플레이어를 따라오는 적과 연관시켜 목표물을 적으로 삼았습니다. 플레이어가 게임에 쉽게 질리지 않게 하려 레벨업을 할 때 나오는 능력과 맵의 기믹들을 게임에 추가했습니다.
  • 차별점: 당구 게임은 많이 있지만 당구의 요소와 다른 게임의 요소를 섞은 게임은 많이 없어서 벽에 튕겨서 적을 처치하는 참신한 당구 + 액션 게임 시스템이 차별점입니다.
  • 타깃 유저: 게임잼 심사 위원 두 분께 기획 평가를 받고 들은 피드백을 생각해 보며 심사 위원분들을 타깃하는 게임을 만들기 위해 노력하였습니다.

개발 내용 및 구현

  • 게임 흐름 설명: 플레이어는 게임을 시작하면 튜토리얼 또는 게임 플레이를 할 수 있습니다. 튜토리얼에서는 조작 방식과 적을 처치하는 방법, 기믹, 턴, 보스에 대한 설명을 하며 끝냅니다. 실제 플레이를 하게 되면 1라운드 1턴에서 시작하는데, 플레이어가 발사되고 멈출 때마다 턴이 하나씩 지나고 5턴이 지날 때마다 라운드가 증가합니다. 라운드가 바뀔 때마다 적이 스폰되는데, 4라운드까지 적의 수가 많아지고, 5라운드가 되면 플레이어를 한 번에 죽이는 보스가 스폰되어 보스를 처치하면 게임이 클리어됩니다.
더보기

적마다 머리 위에 체력이 있습니다.(2~3) 발사된 플레이어가 벽에 닿을 때마다, 적은 충격에 의해 체력을 하나 잃고 체력이 0이 되면 기절하게 됩니다. 플레이어는 기절하지 않은 적에 맞으면 적을 처치할 수는 있지만, 플레이어도 데미지를 입게 되며 기절한 적에 맞았을 때 아무런 피해도 입지 않고 적을 처치할 수 있기 때문에 적의 머리 위에 떠 있는 숫자만큼 벽에 튕긴 후 닿을 수 있도록 반사각을 계산해야 합니다. 플레이어가 한 번 발사되고 멈추면 적의 체력은 리셋됩니다. 아까 설명했던 기믹은 닿았을 때 적의 체력이 리셋되는 것을 막거나 적의 체력을 깎기, 플레이어의 체력을 깎기, 플레이어를 랜덤 방향으로 튕겨내는 등의 기능을 하는 다양한 기믹이 있습니다. 기믹은 맵 모서리에 위아래로 2개씩, 좌우로 스폰됩니다. 라운드가 바뀔 때마다 기믹이 바뀌고 적이 생성되며, 적을 전부 처치하면 다음 라운드로 스킵됩니다. 플레이어가 적을 처치할 때 경험치를 얻고, 경험치가 일정량 이상 쌓이면 레벨업을 하는데 레벨업을 하면 랜덤으로 나오는 3가지의 능력 중 하나를 골라 플레이어를 강화할 수 있습니다.

  • 직접 구현한 기능 목록: 기믹 생성, 기믹 효과 적용, 튜토리얼, 카메라 줌, 턴, PP 적용
기믹 생성
효과 적용
튜토리얼
PP 적용
카메라 줌
  • 문제 해결 사례: 
    • 코드 구조: 원래 인터페이스를 사용해 기믹 클래스가 기믹 인터페이스를 구현하도록 하였습니다. 기믹 클래스들이 크게 다르지 않고, 추상적으로 할수록 확장성이나 재사용성에선 좋겠지만 구현하는 데에 오래 걸린다고 생각했기 때문에 게임잼인 만큼 인터페이스를 사용한 구조에서 부모에서 기본적인 메서드들을 virtual로 가지고 있는 추상 클래스 구조로 바꾸었습니다.
    • 불친절함: 공이 꽤 많이 튀기는 만큼 의도치 않게 기믹들에 맞아서 효과가 발동될 수 있었는데, 적어도 기믹에 맞은 것과 맞은 기믹의 색 정도는 유저가 판단할 수 있도록 PP를 사용하여 기믹에 맞았을 때 방금 말한 정보들을 표시했습니다.
    • 카메라: 처음엔 UI를 표시하느라 당구대가 화면을 꽉 채우지 못했는데, 낭비되는 공간이 너무 많았다고 생각했기 때문에 조준할 때 UI가 지워지는 방식으로 바꾸어 당구대를 화면에 꽉 채울 수 있었습니다. 또한 카메라 줌 인, 줌 아웃을 할 때 오버슛을 사용해 액션감 있는 카메라 무빙으로 공의 속도감을 살릴 수 있었습니다.
  • 협업 방식: 기획을 거의 혼자 했기 때문에 발표나 다 만들면 작업 결과물을 보여주고 추가할 부분이나 다듬을 부분을 알려주는 작업물 확인도 제가 거의 다 하며 깃허브로 작업하였습니다. 

 

테스트 및 결과

  • 플레이 테스트 방식: 게임잼이기 때문에 시간적 여유가 없어 만들면서, 제출 전에 한 번 플레이하는 정도로만 테스트하였습니다.
  • 게임의 완성도 / 구현율: 버그가 조금 있으며 아트가 없어서 보기 좋은 게임으로는 만들지 못했고, 기믹 능력의 정보 전달이 잘 되지 않아 시안성이 좋지 못했습니다. 그리고 게임의 설계를 할 때 메인 시스템은 적을 처치하는 것인데 그것을 기믹이라는 요소가 해치게 만들었기 때문에 완성도는 좀 낮은 65% 정도인 것 같습니다. 게임잼이었기 때문에 처음에 기획이 커지는 것을 많이 염려하며 기획했고, 개발자만 4명이어서 생각보다 구현이 더 빨리되어 구현은 100%로 끝냈습니다.
  • 플레이 시간: 약 15분
  • 개선하고 싶은 점: 기믹을 처음엔 적게 소환하다 나중에 많이 소환하기와 같은 방법으로 게임의 핵심 재미, 핵심 시스템인 적을 처치하는 과정에서 기믹이 너무 많은 영향을 미치는 단점을 개선하고 싶습니다.

다운로드 및 영상 링크 (클릭하여 들어가기)

회고 및 느낀 점

  • 개발하면서 느낀 교훈: 게임에 여러 가지 요소가 있으면 질리지 않고 콘텐츠가 많아져 재밌는 게임이 될 줄 알았는데, 오히려 게임의 분위기와 장르에 맞지 않는 요소들이 게임에 몰입하는 데에 방해하는 것을 느꼈습니다.
  • 팀 프로젝트로서 배운 점: 이번에 게임이 조금 이도저도 아니게 되긴 했지만 아이디어는 나쁘지 않았다고 생각하는데, 팀에 아트가 없다 보니 아트가 없어서 게임의 아트적인 완성도가 떨어지는 것을 막을 수 없었고, 개발자가 많아지니 게임에 굳이 넣을 필요 없는 기능까지 만들게 되어 모두가 열심히 했음에도 완성도가 떨어지는 게임이 개발되어 팀의 조합이 중요하다는 것을 배웠습니다.
  • 지금 다시 만들면 바꾸고 싶은 부분: 쉽게 질리지 않는 게임을 개발하고 싶었기 때문에 게임을 플레이할 때 다양한 변수가 있었으면 좋을 것 같다고 생각해 기믹이나 능력 등을 게임에 추가했지만, 오히려 그것이 다 된 밥에 재를 뿌리고 다 된 캐주얼 게임을 망가뜨리는 요소가 된 것 같습니다. 게임에 이것저것 추가하기보다는 캐주얼 게임이라는 장르를 해치지 않는 선에서 게임을 완성도 있게 가다듬는 방식으로 개발하여 이런 이도저도 아닌 게임이 아닌 확실한 저격층을 가진 게임으로 바꾸고 싶습니다.
  • 앞으로 만들고 싶은 게임 방향: 앞으로는 게임의 핵심 시스템에 충실한 게임을 만들고 싶습니다. 너무 지루하고 다른 게임과 비슷하다고 해서 게임에 여러 요소들을 추가해 이도저도 아닌 게임을 만들 바에는 처음 기획했을 때 만든 게임의 메인 시스템에 충실하여 이 게임을 보고 입문하게 된 사람들이 실제로 게임을 플레이했을 때 적어도 속았다라는 감정을 느끼며 접지는 않을 게임을 만들고 싶습니다.