게임 엔진에서 동작하는 강화학습 Toolkit - Unity ML Agent 테스트 #3

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 프로젝트

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 멀티 패널 워크플로우

  1. 메인 패널: Claude Code가 C# 에이전트 코드 및 ML-Agent 설정(.yaml) 수정

  2. Claude Code가 cmux CLI를 통해 새 패널을 열고 mlagents-learn 명령 실행

  3. Python 학습기가 준비되면 unity-cli play 명령으로 Unity Editor에서 게임 자동 실행

  4. 학습 결과 확인 후 코드 재수정 → 반복

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가 학습 결과(텐서보드 로그)를 읽고 하이퍼파라미터를 자동 조정하는 루프 구성

  • 게임 프로젝트에 적용


도움 받은 글

1
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

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