#1 어떤 게임을 만들까?

김진우·2023년 7월 20일
0

얼마 전 크래프톤 정글 게임랩에 도전했고

크래프톤 정글 게임랩은 예비 게임 개발자들을 모아 진행하는 6개월간의 합숙 교육 캠프이다. 배틀그라운드, 테라 등등 엄청 유명한 게임을 실제로 만든 개발자들이 멘토로 있다. 유명한 게임들을 직접 만든 사람들에게 조언을 들을 수 있고, 비슷한 꿈을 가진 사람들이 모여서 자신들만의 게임을 만들어나갈 수 있는 기회를 얻는 다는 점이 엄청난 메리트로 다가왔다. 물론 무조건 되는건 아니다. 자기소개서 작성, 유니티 교육자료를 바탕으로 기술 습득, 시험, 면접으로 이루어진 과정을 통과해야 한다.

난 시험에서 떨어졌다.

시험 문제는?

시험 문제는 유니티로 자유 주제 2D 게임을 12시간 안에 만드는 것이었다. 유니티 기본 프리미티브를 사용해서 캐릭터가 움직이고 점프를 해야한다는 등 최소 요구 기능이 존재하고, 스스로 생각해서 하나의 "완성된 게임"을 "재미있게" 만들어내는 것이 이었다. 시험은 망했지만 스스로 깨닳은 점이 많았다.

지금까지 내 개발 역량을 키우는 방향성은 재미와 완성도 높은 게임을 만들어내는 것을 전혀 생각하지 않았다. 코드 스타일 가이드라던지 에셋 관리 또는 프로젝트 파일 구조 정리를 더 중요하게 생각했다. 시간이 없다는 이유로 나쁜 코드에 더 나쁜 코드를 넣으면서 점점 개발 기간이 늘어지는 개발자들을 많이 봤기 때문에 자연스럽게 자리잡은 가치관이다.

하지만 "게임"개발자로써 중요한 것은 어찌되었든 "재미있는" 게임을 "완성"하는 것이다. 나는 그것을 해내지 못했다. 수능에서 국영수 모두 중요하지만 수학 한 개만을 준비한 수험생 꼴이다. 이렇게 수능을 준비한다면 좋은 대학은 절대 가지 못하듯이 프로젝트 관리에만 집중하면 절대 좋은 게임을 만들 수 없다.

그럼 어떻게 할까?

  • 오버워치 개발 초기 모습 사진

게임 하나를 완성해볼 생각이다. 조작감이라던지 이펙트같은 부가적인 요소는 전부 과감히 버린다. 게임의 플레이 스토리보드에 집중한다. 내가 좋아하는 게임 중 하나인 "오버워치"도 개발 초기 모습을 보면 처음은 게임의 핵심을 만들어내는 것에 집중했고, 나머지는 이후에 서서히 발전시켜 나갔다는 것을 명심하자.

당장에 머릿속에 떠오르는 색다른 게임이란건 없다. 그런게 있으면 기획자를 했고 내가 회사를 차렸다. 모방은 창조의 어머니. 내가 좋아하는 두 게임을 짬뽕할 생각이다. 오버워치와 리그오브레전드이다. 어쩐지 사이퍼즈가 생각나지만 조금 더 오버워치 느낌이 나도록 만들면 색다른 느낌을 줄 수 있을 것 같다.

문서화 방법


개발 전에 어떤 게임을 만들지 문서로 미리 정리해두면 나중에 개발하면서 어떻게 만들지 고민하며 멍때리는 시간이 줄어든다. 문서화 방법은 유니티 프로젝트 관리 및 팀워크 소개에서 교육과 함께 제공하는 기획 문서 템플릿을 활용한다. 템플릿이 영어로 되어있어서 내가 구글 Doc을 한국어로 번역했다. 유니티 교육 사이트의 내용을 바탕으로 언리얼 게임 개발이라는게 조금 웃기지만 문서와 교육 자체는 범용적으로 사용할 수 있고 기초적이면서도 매우 유익한 정보다. 게임 개발을 시작하려고 하는 사람이라면 무조건 도움이 될 것이라고 확신한다.

게임 기획

아래는 템플릿에 맞게 앞으로 만들 게임의 내용을 정리한 것이다.

플레이어 조작

  • 유저는 캐릭터를 1인칭 시점으로 조작한다.
  • 마우스로 조작하면 캐릭터의 시선을 움직이도록 만든다.
  • 마우스 좌클릭을 누르면 캐릭터는 기본 공격을 한다.
  • 마우스 우클릭을 누르면 캐릭터는 보조 공격을 한다.
  • 키보드 wasd로 조작하면 캐릭터가 이동한다.
  • 키보드 spacebar를 누르면 캐릭터가 점프한다.
  • 키보드 ctrl를 누르면 캐릭터가 앉은 자세가 되며, 이동속도가 느려진다.
  • 키보드 shift를 누르면 캐릭터가 스킬2를 사용한다.
  • 키보드 v를 누르면 캐릭터는 근접 공격을 한다.
  • 키보드 e를 누르면 캐릭터가 스킬 1을 사용한다.
  • 키보드 q를 누르면 캐릭터가 궁극기를 사용한다.

기본 게임 규칙

  • 게임이 시작하면 캐릭터를 선택하는 화면이 등장하고, 유저의 캐릭터 선택을 45초 동안 기다린다.
  • 모든 유저의 캐릭터 선택이 완료되면 선택된 캐릭터가 유저의 진영의 기지에서 등장하고, 유저가 조작할 수 있게 된다.
  • 게임이 진행되는 동안 세 개의 공격로에서 각각 30초 간격으로 미니언 6마리가 생성되고, 적 기지를 향해 이동하면서 적 진영의 오브젝트를 공격한다.
  • 체력이 있는 모든 오브젝트는 체력이 0 이하가 되면 파괴되거나 죽는다.
  • 캐릭터가 죽으면 5초 후 자신의 진영에서 부활한다.
  • 게임의 최종 목표는 적 진영 중요 건물(이하 "넥서스")을 파괴하는 것이다.

사운드 및 이펙트

  • 개발 초기 단계에서는 만들지 않는다.
  • 어느정도 개발이 진행된 이후 작성 예정

게임플레이 매커니즘

  • 적 오브젝트(미니언, 상대 캐릭터, 타워 등)를 처치하면 재화를 획득하게 되고, 여기서 얻은 재화로 캐릭터의 스킬 또는 능력치를 업그레이드할 수 있도록 만든다.
  • 게임이 진행되면서 얻은 재화에 따라 캐릭터가 강해지게 되고, 이것은 캐릭터마다 성장 차이를 만든다.

유저 인터페이스

  • 게임을 켰을 때 나타나는 로비 UI에는 게임 플레이 버튼과 배경 그림이 있다.
  • 게임 플레이 버튼을 누르면 매치 메이킹이 시작된다.
  • 매치 메이킹이 시작되면 매치 메이킹 텍스트와 매치 메이킹 경과 시간이 화면 상단에 표시된다.
  • 매칭이 완료되면 게임이 시작되고 캐릭터 선택 UI가 나타난다.
  • 캐릭터 선택 화면에는 유저별 선택된 캐릭터를 확인할 수 있는 인터페이스와 캐릭터 버튼, 선택 버튼이 있다.
  • 선택 버튼을 누른다면 준비 완료 상태를 알려주는 그림 또는 텍스트가 유저별 선택된 캐릭터를 확인할 수 있는 인터페이스에 나타난다.
  • 모든 유저가 선택 완료되었으면 캐릭터 선택 UI가 사라지고 게임 플레이 UI가 나타난다.
  • 게임 플레이 UI 좌측 하단에는 체력을 표시하는 위젯이 있고, 숫자로 현재 체력을 알려준다.
  • 게임 플레이 UI 우측 하단에는 현재 무기를 알려주는 아이콘이 있고, 만약 무기에 장탄수가 존재한다면 아이콘 하단에 현재 장탄수와 최대 장탄수를 표시하는 텍스트 위젯이 있다.
  • 화면 가운데에는 조준점이 있다.
  • 자신의 캐릭터가 죽으면 3인칭으로 벗어나고 조작이 불가능해진다.
  • 캐릭터가 부활하면 부활한 캐릭터에 1인칭으로 빙의한다.
  • 적 진영 넥서스가 파괴되면 나타나는 게임승리 UI에는 승리 텍스트와 게임 종료 버튼이 화면 가운데 나타난다.
  • 아군 진영 넥서스가 파괴되면 나타나는 게임패배 UI에는 패배 텍스트와 게임 종료 버튼이 화면 가운데 나타난다.
  • 게임 종료 버튼을 누르면 인게임 UI, 게임승리/패배 UI가 사라지고 로비 UI로 이동한다.

다음

원래 혼자서 무엇을 만들지 정리할 때는 기능 하나에 집중하면서 퀄리티를 높이려고 했고, 이렇게 만들다보니 게임이 완성되는 시간은 계속 미뤄졌다. 하지만 템플릿대로 게임을 정리하니 전체적으로 어떻게 만들어야 할지 감이 잡혔다. 다음 글 부터는 템플릿대로 정리한 게임 내용을 하나씩 구현해가는 내용을 쓸 예정이다.

profile
게임 개발자입니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

잘 읽었습니다. 좋은 정보 감사드립니다.

답글 달기