AI와 함께 매치-3 방식 로그라이크 전투 게임 만들기 01 : 프로젝트 시작

혼자 아이디어를 정리하고 구현하는 방식이 아닌 AI Codex와 함께 게임의 방향성을 잡고 개발을 진행하여 최종적으로 게임 하나를 제작하는 것을 목표로 하고 있습니다.

처음에는 ‘길 연결 퍼즐’, ‘색 정렬 퍼즐’, ‘슬라이딩 퍼즐’ 등 간단한 퍼즐 게임을 만들어볼까 생각했지만 AI와 이것저것 이야기하고 여러 게임들을 서칭하다보니 욕심이 생겨서 첫 번째 목표는 **모바일 기반 매치-3 로그라이크**로 정했습니다.

# 어떤 게임을 만들 것인가

이 게임의 기본 구조는 단순합니다.

핸드폰 화면을 가로로 나눴을 때 상단 부분은 전투 화면이 있고, 하단 부분에는 매치-3 퍼즐 보드가 있어 플레이어는 하단의 퍼즐을 조작하고, 퍼즐 결과에 따라 상단의 전투가 진행되는 방식입니다.

예를 들어 이런 방식인데요.

  • 검 타일을 맞추면 적을 공격.
  • 방패 타일을 맞추면 적의 공격에 대한 방어 효과 적용.
  • 특정 타일을 지정된 갯수 만큼 맞췄을 때 스킬 타일이 생성되고 클릭 시 스킬 발동 (체력 회복, 전체 공격, 강력한 공격 등의 스킬)
  • 플레이어가 타일을 한번 움직일 때 마다 Time Count가 내려가고 Time Count가 0이 되었을 때 상대(몬스터)가 플레이어를 공격함.
  • Stage 별로 맵이 5~10개 정도가 배치되고 맵 마다 몬스터의 종류 및 수가 달라져서 전투를 효율적으로 하기 위해 타일을 신중하게 옮기도록 유도
  • 맵을 클리어하고 넘어갈 때 로그라이크의 전형적인 랜덤 효과 고르기를 진행하여 일반 공격을 강화하거나 방어, 스킬을 강화.
  • 맵이 5개 있다면 중간에 갈림길을 배치하여 체력을 회복할 것인지 혹은 보물상자로 가서 아이템을 획득할 것인지에 대하여 선택

처음부터 거대한 게임을 만들 생각은 없고 우선은 전투 하나가 제대로 동작하는 작은 프로토타입을 만드는 것이 목표입니다.

# Unity 프로젝트 생성

이번 게임 제작 프로젝트는 Unity를 사용하여 진행하려고 합니다.

사용한 Unity 버전 등과 같은 환경은 아래와 같은데요.

  • Unity 버전 : Unity 6.4 (6000.4.11f1)
  • 템플릿 : Universal 2D
  • 프로젝트 명 : MiniQuestMatch
  • 목표 플랫폼 : 모바일 세로 화면

Unity Hub에서 Universal 2D 템플릿을 선택하고 ‘MiniQuestMatch’라는 이름으로 프로젝트를 생성했습니다.

(*Unity의 설치 방법에 대해서는 따로 설명하지는 않겠습니다.)

# 모바일 세로 화면 기준 잡기

이 게임은 처음부터 모바일 환경의 세로 화면을 기준으로 잡았기 때문에 Unity의 Game 뷰에 ‘1080×1920 Portrait’ 해상도를 추가해서 사용하겠습니다.

(*기존에 있는 1080×1920 해상도를 사용해도 되지만 AI Codex가 만들어서 사용하자고 하니 의견에 따라서 해상도를 추가해 사용하겠습니다.)

# 화면 구조 나누기

가장 먼저 만든 것은 실제 게임 화면에서의 큰 구조입니다.

Canvas를 만들어 화면을 두 영역으로 나눠 전투 화면과 퍼즐 영역을 나눴습니다.

  • 상단 영역 : ‘BattleArea’
  • 하단 영역 : ‘PuzzleArea’

~ Canvas 요소 추가 ~

  1. Hierarchy 빈공간을 우클릭
  2. UI (Canvas) 클릭
  3. Canvas를 클릭하여 Canvas 추가
  1. Canvas의 이름을 [MainCanvas]로 변경
  2. Inspector에서 Canvas Scaler 컴포넌트를 찾은 뒤 이미지 혹은 아래와 같이 설정
    • UI Scale Mode : Scale With Screen Size
    • Reference Resolution : [X : 1080], [Y : 1920]
    • Match : 0.5
    • Reference Pixels Per : 100
  1. MainCanvas를 우클릭
  2. UI (Canvas) 클릭
  3. Panel을 클릭하여 추가
  1. Panel의 이름을 [BattleArea]로 변경
  2. Left, Right, Top, Bottom을 모두 0으로 설정
  3. Anchors를 클릭하여 Min값과 Max값을 이미지 혹은 아래와 같이 설정
    • Min : [X : 0], [Y : 0.62]
    • Max : [X : 1], [Y : 1]
  1. [BattleArea]와 동일한 방법으로 Panel을 추가 후 이름을 [PuzzleArea]로 변경
  2. Left, Right, Top, Bottom을 모두 0으로 설정
  3. Anchors를 클릭하여 Min값과 Max값을 이미지 혹은 아래와 같이 설정
    • Min : [X : 0], [Y : 0]
    • Max : [X : 1], [Y : 0.62]
  4. [BattleArea]와 구분될 수 있도록 배경 색상을 임의로 변경

상단의 회색 영역을 나중에 플레이어블 캐릭터와 몬스터, HP바, 전투 이펙트 등이 들어가서 실제 전투가 진행되는 영역입니다.

하단의 초록색 영역은 매치-3 퍼즐 보드가 들어갈 공간입니다.

아직은 단순한 색상 패널 두 개뿐이지만, 이 단계에서 게임의 기본 방향이 눈에 보이기 시작하네요.

이 게임은 퍼즐만 있는 퍼즐 게임이 아니고 전투만 있는 게임도 아닌 퍼즐을 풀어 나가며, 전투를 승리로 이끄는 구조를 만드는 것이 핵심이었습니다.

# 이번 작업에서 정리한 것

오늘 진행한 작업은 크지는 않습니다.

  • Unity 프로젝트를 생성
  • 모바일 세로 해상도 설정
  • Canvas 생성
  • 상단의 전투 영역과 하단의 퍼즐 영역을 분리

하지만 이 단계는 꽤 중요합니다.

게임의 화면 구조가 정해지면 이후에 어떤 기능을 어디에 배치할지 판단하기 쉬워지기 때문이죠

AI와 함께 개발하면서 느낀 점도 있는데 혼자서 생각을 정리하는 것 보다 AI와 함께 대화하면서 아이디어를 주고받다 보니 생각해보지 못한 아이디어가 떠오를 때도 있고 잘못된 정보들을 바로잡아주니까 훨씬 수월하네요.

앞으로 코드를 작성하는 부분 등 많은 부분에서 더욱더 많이 AI를 활용하게 되면 지금보다 더 크게 체감될 것 같습니다.

# 다음 목표

다음 단계에서는 하단의 [PuzzleArea]에 실제 매치-3 보드를 출력해 볼 예정입니다.

  • 6×6 퍼즐 보드 만들기
  • 임시 색상 타일 배치하기
  • 타일 데이터를 코드로 관리하기
  • 화면에 타일이 정상적으로 출력되는지 확인하기

아직 전투 시스템까지는 연결하지 않고 매치-3 퍼즐의 가장 기본이 되는 보드 출력부터 차근차근 진행할 예정입니다.

그러면 게임 개발 일지는 다음편에서 또 뵙겠습니다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다