Claude Code로 롤러코스터 타이쿤을 플레이해봤어요
(labs.ramp.com)- 클로드 코드를 오픈소스 게임 RollerCoaster Tycoon 2(OpenRCT2) 에 통합해, AI가 실제로 놀이공원을 운영하도록 실험한 프로젝트
- AI는 재정, 손님 불만, 놀이기구 고장 데이터 등 100여 개 지표를 분석해, 음료 매대 설치·직원 고용·입장료 조정 등 관리 결정을 자동 수행
- CLI 도구 rctctl을 통해 게임 내 모든 조작을 명령줄로 수행하며, Kubernetes의 kubectl과 유사한 구조로 설계
- Claude는 데이터 분석·가격 조정·직원 관리에는 강점을 보였으나, 경로 연결·롤러코스터 배치·지형 인식 등 공간적 과제에서는 한계를 드러냄
- 실험을 통해 에이전트 설계의 핵심은 환경의 가독성과 인터페이스 품질임을 확인함
프로젝트 개요
- Ramp Labs는 Claude Code를 RollerCoaster Tycoon 2에 통합해, AI가 공원 운영을 직접 수행하도록 실험
- Claude는 게임 내 재정, 손님 만족도, 놀이기구 상태 등 100여 개 데이터를 분석
- 결과를 바탕으로 음료 매대 추가, 정비공 고용, 입장료 인상 등의 조치를 자동 제안
- 실험 목적은 B2B SaaS 환경에서의 AI 에이전트 설계 교훈을 얻는 것
- RollerCoaster Tycoon은 고객 중심의 비즈니스 운영과 디지털 피드백 루프를 반영하는 게임으로 선택
왜 RollerCoaster Tycoon인가
- Ramp는 작업별 소규모 에이전트를 개발 중이며, 보안과 맥락 한계를 고려한 접근을 취함
- 그러나 광범위한 권한을 가진 단일 에이전트에 대한 실험적 욕구가 있었음
- RollerCoaster Tycoon은 경제·고객·운영 관리가 결합된 환경으로, SaaS 운영과 유사한 구조 제공
- 게임의 인터페이스는 B2B SaaS 대시보드와 유사하며, Claude의 레트로-퓨처리즘적 터미널 인터페이스와도 잘 어울림
Claude의 능력과 한계
- OpenRCT2를 포크해 터미널 창을 추가하고, Claude가 명령줄로 게임을 제어하도록 구현
- rctctl CLI는 사용자가 가능한 모든 조작을 커버하며, JSON-RPC를 통해 게임 상태와 통신
- Claude는 시각 대신 ASCII 지도 출력으로 공간 정보를 파악
Claude의 강점
- 게임 지식: RCT 관련 지식이 풍부하고, 90년대 게임 환경에서도 자연스럽게 작동
- 정보 수집: 손님 피드백, 재정 데이터 등 다양한 지표를 통합 분석
- 디지털 조작: 놀이기구 개폐, 가격 조정, 직원 고용, 마케팅 실행 등 비공간적 작업에 강함
- 시설 배치: 화장실·음료 매대 등 단순 구조물은 안정적으로 배치 가능
Claude의 약점
- 경로 연결: 길 찾기, 입구·출구 연결 등 공간적 작업에 어려움
- 롤러코스터 배치: 대형 놀이기구 설치 시 장애물·지형 인식 실패
- 입체 공간 인식: 경사, 지하 구조, 맞춤형 코스터 설계 불가능
- 결론적으로 Claude는 정보 기반 관리에는 강하지만, 시각·공간적 조작에는 약함
빌드 과정
- OpenRCT2(C++)를 기반으로 Claude 터미널 창, rctctl CLI, RPC 계층, 테스트 코드를 추가
- 초기 버전은 ChatGPT o3-Pro Deep Research로 계획, 이후 GPT-5.1-codex로 재구현
- 총 40시간 이상 소요되었으며, 피드백 루프 부재가 가장 큰 병목으로 지적
- Claude가 직접 버그 리포트를 저장소에 작성하도록 하여 QA 효율을 높임
주요 교훈
- 환경 가독성(Environment Legibility) : Claude는 명확한 데이터 인터페이스에서는 뛰어나지만, 텍스트 기반 공간 표현에는 약함
- 코딩 에이전트의 가치: 최신 모델 업데이트(Claude Opus 4.5 등)가 즉시 반영되어 개발 속도 향상
- 개발 루프의 중요성: 자동 QA 루프가 없으면 생산성이 급감
- 경험의 우위: LLM의 작동 원리를 이해하는 가장 좋은 방법은 직접 실험과 플레이
실행 및 오픈소스 정보
- macOS(Sonoma 이상), Xcode, CMake, Ninja, RCT2(정품) 필요
-
rctctlCLI는 kubectl 스타일 명령 구조로, Claude가 JSON-RPC를 통해 게임을 제어 - 빌드 결과물:
- OpenRCT2 (터미널 내장 버전)
- rctctl (CLI 도구)
- Sprite 자산
- 전체 코드는 GitHub(jaysobel/OpenRCT2)에서 공개, Twitch에서 실시간 시연 가능
결론
- Claude Code는 운영 자동화의 잠재력과 한계를 동시에 보여줌
- RollerCoaster Tycoon은 그래픽 인터페이스와 지능형 시스템의 과도기적 실험장으로 기능
- 핵심 통찰: AI 에이전트의 성패는 환경의 명료함과 인터페이스 설계 품질에 달려 있음
Hacker News 의견들
-
내 LLM이 사용하는 도구 수준이 너무 낮음이 늘 아쉬움
나는 IDE에서 리팩토링, 심볼 추적, 함수 사용처 보기 등을 클릭 한 번에 하지만, LLM은 grep과 diff, cat 같은 원시적인 명령만 씀
LLM에게 더 나은 코드 작성·리팩토링 도구를 주려는 시도가 있는지 궁금함- VSCode Diagnostics나 LSP 서버 접근 권한을 줘도, LLM은 늘 기본 CLI 도구만 쓰려 함
AGENTS.md에 명시해도 무시하고 단순한 방식으로 돌아가서 답답함 - AI 개발 도구가 대부분 VSCode 기반이라 놀라움
JetBrains가 가진 리팩토링·코드 인스펙션 능력을 AI와 연결했다면 훨씬 앞서갔을 것 같음 - Claude Code가 2025년 12월 버전에서 LSP를 공식 지원했지만, 여전히 단순 도구 중심으로 학습된 듯함
LLM은 오히려 저수준 도구를 조합해 문제를 푸는 데 강점이 있음
인간에게는 복잡한 20줄짜리 Python 스크립트를 LLM은 0.5초 만에 만들어냄 - Zed Editor는 LSP 기반 기능을 LLM에게 그대로 제공해, grep 의존도를 줄여줌
- LLM은 인간처럼 IDE 기능이 꼭 필요하지 않음
코드 조각을 빠르게 이해하고 조합하므로 refactoring 기능이 오히려 혼란을 줄 수 있음
너무 많은 도구를 주면 판단력이 흐려질 위험이 있음
- VSCode Diagnostics나 LSP 서버 접근 권한을 줘도, LLM은 늘 기본 CLI 도구만 쓰려 함
-
작성자임. 보너스 링크를 공유함
Simon Willison의 claude-code-transcripts를 이용한 세션 스크립트
Reddit 포스트
OpenRCT2 프로젝트 Repo- CLI 대신 스크린샷이나 시각화된 화면으로 평가했는지 궁금함
Claude가 이미지 기반 입력에는 강하지만 ASCII 도식에는 약할 수 있음 - Claude의 시각·공간 인식 한계를 언급하며, OpenAI 모델이 이미지 이해에는 더 뛰어날 것 같다는 의견이 있음
- CLI 대신 스크린샷이나 시각화된 화면으로 평가했는지 궁금함
-
현실 세계의 에이전트 설계처럼, 범용 에이전트의 한계는 환경의 가시성과 인터페이스의 강도에 있음
그래서 우리는 에이전트를 ‘지능’이 아닌 ‘성실함’을 자동화하는 존재로 보는 게 맞음 -
“revert”라는 단어를 잘못 써서 Codex가 실제로
git revert를 실행해 작업 내용을 되돌린 사건이 있었음- 이런 도구들이 작업 로그를 재생 가능하게 저장하지 않는 것이 놀라움
git revert는 파괴적 명령이 아닌데, 데이터 손실이 있었다면 아마git reset --hard였을 가능성이 있음 - 이런 사고를 막으려면 명령 권한 제어 기능이 필요함
- 그래서 Jujutsu를 쓰자는 의견도 있음,
jj status를 프롬프트에 넣으면 안전함
- 이런 도구들이 작업 로그를 재생 가능하게 저장하지 않는 것이 놀라움
-
이 게임이 어셈블리 코드로 단 한 명이 개발했다는 점이 놀라움
개발자를 찾아 감사 인사를 전하고 싶음
Claude Code의 시도도 인상적이라 관심이 생김 -
C++을 전혀 모른 채 vibe-coding으로 프로젝트를 완성했다는 부분이 흥미로움
- 보통 vibe-coding은 “몇 시간 만에 끝냈다”고 하지만, 이번엔 현실적인 일정을 제시한 점이 신선함
- 그들의 시행착오와 문제 해결 과정이 정말 흥미로웠음
- 1997년에 이런 게 있었다면 내 전 재산을 들여서라도 샀을 것 같음
요즘 세대는 이런 환경의 가치를 잘 모르는 듯함
-
영상 마지막의 인터뷰가 인상 깊었음
kubectl 스타일 CLI, Claude의 피드백, 경고 시스템 등 AI와 인간의 협업 도구가 점점 중요해짐
인간이 시각적으로 이해할 수 있는 맥락을 AI에게도 제공하면 훨씬 나은 결과를 얻을 수 있음- 하지만 AI가 스스로를 개선하는 구조는 실제로는 잘 작동하지 않음
단순히 컨텍스트를 늘리는 것만으로는 학습이 일어나지 않고, 결국 미세조정(fine-tuning)이 필요함
- 하지만 AI가 스스로를 개선하는 구조는 실제로는 잘 작동하지 않음
-
글이 흥미로웠지만, AI가 실제로 게임을 얼마나 잘했는지 결과 분석이 부족했음
- 실제로는 재정 관리에는 능했지만, 건물 짓기에는 약했음
2D 맵 이해가 어려워서 화장실과 핫도그 가판대 정도만 지었음
멀티모달 모델이라면 훨씬 나았을 것 같음 - 어떤 사람은 AI의 핵심은 생성 능력이지 검증이 아니라고 봄
- 실제로는 재정 관리에는 능했지만, 건물 짓기에는 약했음
-
Claude Code에서 컨텍스트 잔여량을 어떻게 확인하는지 궁금했음
-
/context명령으로 바로 확인 가능함 - 상태줄(status line)에 컨텍스트 사용량 표시를 추가할 수도 있음
색상 막대로 남은 용량을 시각화하는 플러그인도 있음
-
-
이런 실험에는 Civilization 같은 턴제 게임이 더 적합하다고 생각함
맵이 격자 구조이고, 턴 단위로 진행되기 때문임