Claude Code + Unity CLI 로 뱀서류 게임 만들기

소개

2.5D 게임을 만들어 보려고 했습니다. 장르는 뱀서류로 정했고, Unity 6에서 설계부터 테스트, 안드로이드 빌드, 실기기 성능 측정까지 진행했습니다.

만들려고 한 게임은 한 줄로 "3D 바닥 위에 2D 픽셀 캐릭터를 세워 놓고, 비스듬히 내려다보는 뱀서류"입니다.

  • 뱀서류는 '뱀파이어 서바이버'라는 게임을 따라 한 장르입니다. 캐릭터 이동만 조작하고 공격은 자동이며, 사방에서 몰려오는 적 수백 마리를 제거하면서 생존합니다.

  • 2.5D는 3D 공간에 2D 캐릭터 그림을 빌보드 방식으로 세운 것입니다. 빌보드는 그림이 항상 카메라를 정면으로 향하도록 세워 두는 방식입니다. 카메라가 비스듬히 내려다보기 때문에 화면 위쪽은 멀어서 작게, 아래쪽은 가까워서 크게 보입니다. 참고한 게임은 Don't Starve와 옥토패스 트래블러입니다.

이번 목표는 프로토타입이라 이미지에는 신경 쓰지 않았습니다. 나무·바위·아이콘·효과는 Claude Code가 임시로 그린 것이고, 캐릭터도 나중에 바꿀 예정입니다.

이번에 확인하고 싶었던 것은 코드를 보지 않고, Claude Code에 Unity CLI와 Pipeline 패키지만 쥐여 줬을 때 게임을 어디까지 만들 수 있는지였습니다. 이를 위해 공식 Unity CLI(unity, 1.0.0-beta.11)와 Unity Pipeline 패키지(com.unity.pipeline)를 설치하면, Claude Code가 실행 중인 에디터를 다루며 컴파일, 테스트, 플레이, 화면 확인까지 스스로 할 수 있습니다.

저는 코드를 읽거나 고치지 않았습니다. 방향을 정하고, Claude Code가 묻는 결정에 답하고, 결과를 직접 플레이해 보고 확정하는 역할만 했습니다.

항목

내용

만든 것

2.5D 뱀서류 게임 한 판. 15분을 버티고 마지막 보스를 잡으면 클리어

게임 엔진

Unity 6(버전 6000.6.3f1)

AI 도구

Claude Code, Unity CLI 1.0.0-beta.11, Unity Pipeline 패키지 0.8.0-exp.1

캐릭터 그림

SPUM 1.8.9. 픽셀 캐릭터를 부품(머리, 갑옷, 무기 등) 조합으로 만드는 유료 Unity 에셋

게임 내용

무기 6종, 능력치를 올려 주는 패시브 아이템 6종, 조건을 채우면 무기가 강화되는 진화 3종, 플레이 캐릭터 2명

플랫폼

PC, 안드로이드 폰(가로 화면)

결과

계획한 7단계(M0~M6)를 모두 끝냄. 갤럭시 폰에서 적 500마리가 나와도 초당 60프레임 유지

먼저 알아 둘 것

Claude Code는 써 봤지만 Unity나 Unity CLI는 처음인 분을 위한 설명입니다.

  • Unity는 게임을 만드는 프로그램(게임 엔진)입니다. 개발자는 Unity 에디터라는 창에서 그림과 소리를 넣고, 코드를 붙이고, Play 버튼을 눌러 게임을 바로 실행해 봅니다.

  • 문제는 Claude Code가 코드 파일은 쓸 수 있어도, 켜져 있는 Unity 에디터 창은 볼 수도 누를 수도 없다는 점입니다. 그래서 보통은 사람이 에디터에서 대신 눌러 보고 결과를 알려 줘야 합니다.

  • Unity CLI와 Pipeline 패키지는 이 문제를 푸는 Unity의 공식 도구입니다(아직 베타). Pipeline 패키지를 프로젝트에 설치하면 에디터 안에 명령을 받는 창구가 생깁니다. CLI(unity라는 명령어)는 터미널에서 그 창구로 명령을 보냅니다. 쉽게 말해 Claude Code에게 에디터 리모컨을 쥐여 주는 셈입니다.

이 구조 덕분에 Claude Code는 코드를 쓴 뒤 사람에게 "한번 눌러 봐 주세요"라고 부탁하지 않고, 직접 실행하고 화면까지 보고 나서 결과를 보고했습니다.

글에 자주 나오는 용어입니다.

용어

뜻

컴파일

사람이 쓴 코드를 컴퓨터가 실행할 수 있게 바꾸는 과정. 코드에 오류가 있으면 여기서 걸림

테스트

코드가 맞게 동작하는지 자동으로 검사하는 작은 프로그램. 이 프로젝트에는 76개가 있음

Play 모드

에디터 안에서 게임을 실제로 실행해 보는 상태

에셋

게임에 쓰는 그림, 소리, 설정 파일 같은 재료. Asset Store는 이를 사고파는 Unity 공식 장터

스프라이트 시트

캐릭터 애니메이션의 프레임을 한 장에 모아 놓은 그림

베이크

부품 여러 개로 된 캐릭터를 미리 스프라이트 시트 한 장으로 구워 두는 것. 적 수백 마리를 가볍게 그리려고 씀

마일스톤(M0~M6)

개발을 7단계로 나눈 중간 목표

핸드오프 문서

세션이 길어져 새로 시작할 때 다음 세션이 이어받도록 handoff 스킬로 남기는 인수인계 문서

fps

초당 화면을 그리는 횟수. 60fps면 부드럽게 보임

APK, adb

안드로이드 앱 설치 파일, PC에서 안드로이드 폰을 명령어로 다루는 도구

진행 방법

설계 인터뷰로 결정을 모두 문서화하고, 마일스톤 단위(M0~M6)로 나눠 맡겼습니다. 각 마일스톤은 Claude Code가 구현하고 에디터에서 스스로 검증한 뒤, 제가 직접 플레이해 보고 확정하면 커밋하는 방식이었습니다.

사용한 도구

도구

쓰임새

Claude Code

설계 인터뷰, 코드 작성, 에디터 조작과 확인, Git 커밋까지 전부

Unity CLI + Pipeline 패키지

Claude Code가 켜져 있는 Unity 에디터를 조작하는 리모컨

grilling 스킬

설계 질문을 라운드로 묶어 추천안과 함께 묻게 하는 Claude Code 확장 기능(스킬)

handoff 스킬

다음 세션용 인수인계 문서를 쓰게 하는 스킬

서브 에이전트

Claude Code가 조사를 맡기려고 따로 띄우는 보조 AI. SPUM의 구조와 무료 몬스터 그림을 조사

Git(+ LFS)

작업 기록과 백업. 그림·소리·글꼴 같은 큰 파일은 LFS로 따로 관리

adb

PC에서 안드로이드 폰에 게임을 설치하고, 실행하고, 성능 기록을 읽는 도구

진행 흐름

단계

내용

설계 인터뷰

grilling 스킬로 설계 인터뷰 진행

M0 준비

Unity 프로젝트 생성과 기본 설정

SPUM 설치

캐릭터 에셋을 설치하다 난 오류 해결

CLI 연결

Pipeline 설치, 명령 시험, 규칙 파일(CLAUDE.md) 작성

M1 화면 스타일

카메라, 픽셀 그림 표시 방식, 캐릭터 베이크 도구, 주인공 이동

M2 기본 게임

적 500마리, 자동 공격, 경험치와 레벨업, 폰용 가상 조이스틱

M3 성장

무기 6종, 패시브 6종, 무기 진화, 보물 상자

M4 콘텐츠

15분짜리 적 등장표, 엘리트와 보스, 캐릭터 2명, 끝없이 이어지는 맵

M5 연출

타이틀·캐릭터 선택·설정 화면, 효과음, 한국어·영어, 화면 효과

M6 모바일

안드로이드 빌드, 실제 폰에서 성능 측정

그림 교체

캐릭터 12종을 SPUM 캐릭터로 교체, 카메라 조정

최종 결과물은 C#(Unity 게임 코드에 쓰는 언어) 파일 79개(약 9,300줄), 테스트 코드 약 1,200줄, 셰이더(그래픽 효과 코드) 2개입니다. Git 커밋은 17개입니다. 이 코드는 모두 Claude Code가 썼습니다.

1단계: 설계 인터뷰(grilling 스킬)

먼저 뱀서류 장르를 파악하게 한 뒤, 만들고 싶은 화면을 설명하고 grilling 스킬로 설계 인터뷰를 진행했습니다. 스킬이 질문마다 추천안을 붙여 줘서, 대부분 추천대로 답했습니다.

캐릭터를 SPUM으로 만들겠다고 답하자, Claude Code가 보조 AI(서브 에이전트)를 따로 띄워 SPUM의 구조를 조사했습니다. SPUM 캐릭터는 부품 약 26개를 움직여 애니메이션하는 구조라서, 적 500마리를 그대로 띄우면 너무 무거웠습니다. 그래서 "모든 캐릭터를 한 장짜리 그림으로 베이크해서 쓴다"는 다음 질문이 나왔습니다. 합의한 내용은 모두 설계 문서(docs/Design.md)에 적었고, 이후 모든 세션이 이 문서를 기준으로 작업했습니다.

2단계: Unity CLI와 Pipeline 패키지 연결

처음에는 Claude Code가 켜져 있는 에디터를 볼 수 없어서, 로그 파일을 뒤지고 화면을 캡처하는 식으로 돌아서 확인했습니다. 그래서 본격적인 개발(M1) 전에 CLI를 연결했습니다. 연결은 이런 순서로 진행했습니다.

  1. Claude Code를 통해 Unity CLI와 Pipeline 패키지를 설치했습니다.

  2. 동작이 확인된 명령과 주의점만 규칙 파일(CLAUDE.md)에 정리하게 했습니다. 이후 세션은 이 파일을 읽고 같은 방법으로 작업했습니다.

CLI를 연결한 뒤로는 컴파일, 테스트, 게임 실행, 화면 확인까지 Claude Code가 알아서 진행했습니다.

Unity CLI로 할 수 있는 일

이번에 쓴 건 일부이고, Unity CLI가 할 수 있는 일은 훨씬 많습니다. 공식 레퍼런스의 명령을 묶어 보면 이렇습니다.

묶음

대표 명령

쉽게 말하면

Pipeline 필요

에디터 설치·관리

install, install-modules, editors, releases

Unity 버전과 안드로이드 모듈 같은 추가 기능을 설치

아니요

프로젝트·빌드

open, close, projects, build, run, templates, assets

프로젝트를 만들고 열고, 창 없이 빌드. 안드로이드 서명도 지원

아니요

코드 확인·테스트

recompile, test, watch

다시 컴파일해 오류를 받아 보고, 테스트를 돌리고, 파일이 바뀌면 자동으로 다시 실행

recompile은 실행 중인 에디터 대상

에디터 원격 조종

command, eval, list, status, job

켜진 에디터에 명령을 보내거나 C# 코드를 바로 실행. 에디터가 어떤 명령을 받는지 목록도 볼 수 있음

예

AI 에이전트 연동

mcp, skill, commands

AI용 MCP 서버를 켜거나, Claude 같은 AI 도구에 Unity 사용법(스킬)을 설치. CLI 명령 목록을 AI가 읽는 형식(JSON)으로 출력

예(에디터 조작 시)

Pipeline 관리

pipeline install, pipeline list

수신기(Pipeline 패키지)를 설치하고 상태를 확인

설치 도구 자체

버전 관리(Git)

vcs status, vcs diff, vcs conflicts, vcs doctor …

씬과 프리팹의 변경을 파일 번호가 아닌 오브젝트 이름으로 보여 주고, 충돌도 쉬운 말로 설명

아니요

계정·라이선스

auth, license, cloud

로그인, 라이선스 활성화

아니요

진단·설정

doctor, logs, env, config, cache

환경 점검과 설정 관리

아니요

에디터 원격 조종으로 보낼 수 있는 명령

위 표의 '에디터 원격 조종'을 자세히 펼친 것입니다. command로 보낼 수 있는 명령은 에디터에 설치된 Pipeline 패키지가 정합니다. 이 프로젝트에서 list로 확인해 보니 160개였고, 종류로 묶으면 이렇습니다. 컴파일·테스트·빌드처럼 위 표의 CLI 명령과 이름이 비슷한 것도 있는데, 이쪽은 켜져 있는 에디터 안에서 실행됩니다.

분야

할 수 있는 일

이번에 썼나

실행과 확인

게임 실행·정지·일시정지, 게임·씬 화면 캡처, 콘솔 로그 읽기, 성능 수치 보기

사용

코드

컴파일, 자동 테스트, 에디터 안에서 C# 코드 바로 실행

사용

입력과 시간

키보드·마우스 입력 흉내, 게임 속도 조절

- (C# 실행으로 대신함)

씬과 오브젝트

씬 열기·저장, 오브젝트 만들기·찾기·옮기기, 컴포넌트 값 읽고 쓰기

일부

에셋

파일 만들기·복사·삭제, 프리팹 만들기, 머티리얼·임포트 설정 바꾸기

-

프로젝트 설정

플레이어·품질·그래픽·물리·입력 설정 읽고 쓰기, 패키지 추가·제거

일부

빌드

빌드 설정, 플랫폼 전환, 빌드 실행

-

제작 도구

애니메이터·타임라인 편집, 조명·내비메시 굽기

-

빌드는 CLI의 빌드 명령 대신, Claude Code가 만든 빌드 코드를 C# 실행 기능으로 불러서 돌렸습니다.

참고로 Unity는 AI 에이전트가 에디터를 다룰 때 MCP 서버보다 CLI 명령을 직접 쓰는 방식을 권합니다. 더 빠르고 토큰을 덜 쓴다는 이유입니다(Replace MCP Server with Unity CLI). 에디터를 다루려면 Unity 6 이상이 필요하고, 연결은 내 컴퓨터 안에서만 이뤄집니다.

3단계: 마일스톤 개발(M1~M6)

마일스톤마다 Claude Code가 구현과 검증을 끝내고 멈추면, 제가 플레이해 보고 확정했습니다.

아래는 완성된 게임을 한 판 진행 순서대로 찍은 화면입니다.

타이틀 화면

캐릭터 선택. 마법사와 전사 중 하나를 고른다

4분 무렵의 레벨업. 카드 3장 중 하나를 골라 무기나 패시브를 얻거나 강화한다

10분 무렵의 전투. 진화한 무기를 포함해 무기 6개가 동시에 터지고, 적 약 250마리가 몰려온다

15분에 나오는 최종 보스 리치. 보라색 원형 탄막을 뿌리고, 화면 위쪽에 보스 체력바가 뜬다

리치를 처치한 뒤의 클리어 결과 화면. 생존 시간, 레벨, 처치 수, 무기별 피해량이 나온다

4단계: 핸드오프로 세션 이어 가기

세션이 길어지면 handoff 스킬로 인수인계 문서를 만들고, 새 세션에서 그 문서를 읽게 해 이어갔습니다.

5단계: SPUM 아트 교체

M6까지는 적과 보스가 모두 주인공 그림에 색만 바꾼 임시 그림이었습니다. Claude Code는 처음에 SPUM에서 유닛을 만들어 달라고 했지만, 직접 만들 수 없는지 되묻자 부품 목록(레시피)만 적으면 조립, 베이크, 게임 데이터 교체까지 한 번에 하는 도구를 스스로 만들었습니다.

여기에 마법사 외형과 일반 적 모양을 역할별로 바꾸자는 제안을 더해, 캐릭터 12종(플레이어 2명, 일반 적 6종, 엘리트 2종, 보스 2종)이 모두 각자 다른 모습을 갖게 됐습니다.

일반 적 6종과 엘리트 2종을 나란히 놓은 비교 이미지. Claude Code가 역할별 형태를 확인하려고 만든 것이다

캐릭터 교체와 카메라 조정을 끝낸 최종 게임 화면. 먼 곳(화면 위쪽)이 살짝 흐려지는 효과가 들어가 있다

결과와 배운 점

코드를 보지 않고도, 15분짜리 2.5D 뱀서류 한 판이 PC와 안드로이드 폰에서 처음부터 끝까지 돌아가는 데까지 갔습니다. 계획한 마일스톤 M0~M6를 모두 끝냈습니다. 사람이 해야 했던 일은 CLI가 닿지 않는 곳(Asset Store, 실기기 조작)과 눈으로 판단할 일뿐이었습니다.

누가 무엇을 했나

담당

한 일

Claude Code

Unity 프로젝트 생성(CLI), 패키지 설치, 모든 코드·셰이더·에디터 도구, 씬과 데이터 에셋 생성, 컴파일·테스트·Play·화면 확인, SPUM 유닛 11종 제작과 베이크, 안드로이드 빌드·설치·벤치마크, 문서화, 커밋

사람(나)

설계 질문에 답하기, Asset Store에서 SPUM 임포트, 첫 플레이어 유닛을 SPUM 편집기에서 저장, Pipeline 적용을 위한 에디터 재시작, 마일스톤마다 직접 플레이하고 확정, 폰에서 회전·터치·한글·소리 확인, 화면을 보고 아트·카메라 방향 지적

처음에는 SPUM 유닛을 제가 만들어야 하는 줄 알았습니다. 나중에 Claude Code가 코드 레시피로 직접 만들게 되면서 이 일도 넘어갔습니다.

결과

성능은 갤럭시 폰(SM-S948N)에서 테스트했습니다. 벤치마크 모드로 적이 가장 많은 14~15분 구간을 돌렸습니다.

항목

값

뜻

적 수

500마리

설계 목표치

프레임

60fps 유지, 끊긴 프레임 0

폰에서 부드럽게 돌아감

계산 시간(CPU)

한 프레임에 약 4.4ms

60fps를 지키려면 16.7ms 안에 끝나야 함

게임 코드가 쓰는 메모리

약 6MB, 늘어나지 않음

오래 해도 메모리가 새지 않음

앱 크기

40MB

안드로이드 설치 파일(APK) 크기

  • 계산(CPU) 쪽은 여유가 있어서, 설계 때 대비해 둔 추가 최적화(Jobs/Burst)는 쓰지 않았습니다.

  • 부담이 큰 쪽은 그래픽 처리(GPU)였습니다. 겹쳐 있는 적 그림을 그리는 비용이라 화면 해상도에 비례했습니다. 같은 조건에서 해상도 100%는 12.7ms, 80%는 10.1ms, 60%는 7.2ms였습니다.

  • 한계: 측정한 폰이 최신 고급 기종이라 보통 폰의 수치는 아닙니다. 캐릭터 그림 교체와 카메라 조정 뒤에는 폰에서 다시 재지 않았습니다.

배운 점과 꿀팁

코드를 전혀 보지 않아도, Claude Code에 필요한 도구(Unity CLI와 Pipeline 패키지)만 쥐여 주면 게임 개발이 가능하다는 것을 배웠습니다.

팁: PC에 adb만 설치돼 있으면, Claude Code가 스마트폰에 게임을 설치하고 실행해 테스트하는 것까지 모두 할 수 있습니다.

앞으로의 계획

  • 캐릭터와 배경에 쓰는 이미지 에셋을 임시 이미지에서 실사용 이미지로 교체

  • 배경음악 삽입

  • 그래픽 퀄리티 개선과 최적화

도움 받은 글 (옵션)

세션 기록에서 실제로 참고한 것이 확인되는 문서입니다.

5
2개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 오후,
읽고 바로 써먹을 AI 소식만