Unity ML-Agents를 활용하여 FPS 캐릭터가 스스로 새로운 지형을 탐험하는 강화학습 모델을 만들어보았습니다. 특히 이번 작업의 핵심은 Claude Code + unity-cli + cmux 조합으로 Unity 게임 개발 전 과정을 AI 에이전트가 자동화할 수 있는지 검증하는 것이었습니다.
직접 Unity Editor를 열고 버튼을 누르는 대신, 터미널에서 Claude Code가 코드 수정부터 에디터 조작, Python 학습기 실행까지 모두 처리하도록 구성했습니다.
진행 방법
사용 도구
도구
역할
Claude Code
게임 코드(C#) 및 ML-Agent 설정파일 수정, 전체 작업 자동화
unity-cli
터미널에서 Unity Editor Play/Stop, 에셋 리프레시 등 직접 제어
cmux
멀티 패널 터미널로 Claude Code / Python 동시 실행
Unity ML-Agents
강화학습 환경 구성 및 PPO 기반 에이전트 훈련
Starter Assets: Character Controllers (URP)
FPS 캐릭터 컨트롤러 관련 예제
환경 구성
1. Unity 프로젝트
Unity Asset Store에서 Starter Assets: Character Controllers | URP 임포트
FirstPersonController 예제를 기준으로 FPS 기반 Player 구성
2. unity-cli
Claude Code가 터미널에서 직접 Unity Editor를 Play/Stop할 수 있도록 연결
Python이나 MCP 없이 단일 바이너리로 설치 가능해 자동화 파이프라인에 적합
Unity Package Manager에 커넥터 패키지를 추가하면 실행 중인 프로젝트를 자동 감지
3. Unity ML-Agents
FPS 에이전트의 관찰(Observation) / 행동(Action) / 보상(Reward) 공간 정의 (C# SDK)
강화학습 알고리즘 기반 탐험 정책 학습, Python Trainer가 Unity 환경과 통신하며 훈련 진행
4. cmux
Claude Code / Python 학습기 / Unity Editor를 각각 독립 패널로 분리해 동시 모니터링
Claude Code가 cmux CLI를 통해 새 패널을 열고 명령을 직접 전송하는 방식으로 자동화
개발 진행 과정
Phase 1 — 프로젝트 초기 설정
Unity 6 (URP 17.3.0) 기반 Top-Down ARPG 프로젝트 생성
패키지 구성: Input System, Cinemachine, AI Navigation, Timeline
Starter Assets (FirstPersonController) 포함
Phase 2 — FPS Exploration Agent 개발
ML-Agents로 FPS 에이전트가 맵을 자율 탐색하도록 설정
주변 인식
새로운 맵에 도달하게 되면 보상 제공
Phase 3 — 8개 병렬 환경 구성
목표: 학습 속도 향상을 위해 8개 환경 동시 학습
레벨의 모든 오브텍트를 8개 복제하여 동시에 실행되도록 수정
Phase 4 — Inference 테스트
목표: 학습된 모델 테스트 및 추가 학습 진행
cmux 멀티 패널 워크플로우
메인 패널: Claude Code가 C# 에이전트 코드 및 ML-Agent 설정(
.yaml) 수정Claude Code가 cmux CLI를 통해 새 패널을 열고
mlagents-learn명령 실행Python 학습기가 준비되면
unity-cli play명령으로 Unity Editor에서 게임 자동 실행학습 결과 확인 후 코드 재수정 → 반복
cmux 에서는 다른 패널을 컨트롤하고 내용을 확인할 수 있음
다양한 이미지를 보여주는 컴퓨터 화면의 스크린샷
클로드 코드 및 Unity m-agents 통합 자동화
결과와 배운 점
결과
Claude Code + unity-cli + cmux 조합으로 Unity 게임 개발의 반복 사이클을 자동화 할 수 있는 가능성 확인
AI 에이전트가 스스로 Unity를 조작하며 학습 루프를 돌리는 파이프라인 구축 가능성 확인
배운 점 & 꿀팁
unity-cli: MCP나 Python 없이 단일 바이너리로 Unity Editor를 제어할 수 있어 AI 에이전트와 궁합이 매우 좋음
cmux 패널 분리 전략: tmux 를 사용하지 않고 cmux의 기본 기능 만으로 pane 조작 및 내용 확인 가능
앞으로의 계획
에이전트 탐험 성능 향상
Claude Code가 학습 결과(텐서보드 로그)를 읽고 하이퍼파라미터를 자동 조정하는 루프 구성
게임 프로젝트에 적용
도움 받은 글
unity-cli GitHub — 터미널에서 Unity Editor를 제어하는 단일 바이너리 CLI
Unity ML-Agents GitHub — 강화학습 및 모방학습 오픈소스 툴킷
cmux 공식 사이트 — AI 에이전트 멀티태스킹에 최적화된 macOS 터미널
Starter Assets: Character Controllers | URP — Unity 공식 FPS/TPS 캐릭터 컨트롤러 패키지