부캉이, 로블록스까지 가다 - 로컬 모델 + 클라우드 모델로 로블록스 게임 만들고 공개한 후기 (로컬 모델의 현실적인 한계 포함)

지난 글에서 부캉이 웹게임을 만들었는데, 이번엔 한 발 더 나가서 로블록스 게임으로 만들어 공개까지 했다.
로블록스는 무료 게임 안에서 스킨·아이템을 팔아 수익을 내는 구조라서, “화제가 된 소재로 매주 하나씩 만들어 올리면 뭐라도 되지 않을까?” 하는 실험이기도 하다. 이 글은 그 첫 번째 결과물의 제작기이자, 로컬 모델과 클라우드 모델을 섞어 쓰면서 느낀 현실적인 이야기다.
🎮 먼저 한 판 해보기
👉 부캉이 대탈출 플레이하기 (Roblox)
로블록스에서 **‘부캉이 대탈출’**을 검색해도 된다.
- 부산 북항 친수공원 S자 수로에 갇힌 상어 부캉이를 조종해서 바다로 탈출하는 게임
- W/S 앞뒤, A/D 방향, Space/Q 위아래, Shift 부스트
- 움직이는 그물 틈으로 빠져나가고, 워터펌프 물살은 벽 쪽으로 타고, 해경 경비정은 잠수해서 밑으로 지나간다
- 수면 가까이 벽 쪽에서 지느러미를 보여주면 구경꾼들이 폰으로 찰칵찰칵 → 인기도가 오른다 (57만 명이 구경했다는 실화 반영)
- 멸치떼를 먹으면 스태미나 회복, 탈출 기록은 전 세계 순위판에 올라간다


스킨도 3종 팔고 있다. 백상어(15% 더 큼), 귀상어(망치 머리), 황금 부캉이(반짝이). 실력에는 영향이 없는 꾸미기 전용이다.

📉 시작은 이랬다: “그래픽도 게임성도 부족하다”
처음 버전(v1)은 로컬 모델 기반 에이전트로 먼저 만들어 봤다. 결과물은 이랬다.

- 허공에 떠 있는 회색 콘크리트 물길 400칸짜리 직선 복도
- “물”은 투명한 박스라서 상어가 실제로는 바닥을 걸어다님
- 수심이 상어 몸길이보다 얕았고, 그물은 점프로 넘을 수 있었다
- 기능 테스트는 “통과”였지만, 에이전트가 찍은 확인용 스크린샷을 열어 보니 하늘만 찍혀 있었다. 좌표만 확인하고 눈으로는 한 번도 안 본 것이다.
그래서 클라우드 모델(Claude)에게 통째로 살펴보고 갈아엎게 했다.
🛠 v2에서 바뀐 것

| 항목 | v1 | v2 |
|---|---|---|
| 물 | 투명 박스 (바닥을 걸어다님) | 로블록스 지형 물 (물결·굴절·수중 뷰) |
| 맵 | 400칸 직선 | S자 수로 약 1,330칸 + 막다른 갈래 3개 + 바다 |
| 상어 | 공 6개 | 배가 흰 상어 모델, 꼬리 흔들기, 수면에선 지느러미만 |
| 장애물 | 여닫는 그물 | 틈이 움직이는 그물, 워터펌프 물살, 경비정, 멸치떼 |
| 배경 | 허공 | 부산항대교, 스카이라인, 크레인, 오페라하우스, 편의점 대기줄, 구경꾼 약 600명 |
| 사운드 | 없음 | ACE-Step으로 만든 전용 BGM + 효과음 15종 |
| 기타 | - | 순위판, 게임패스 스킨, 쇼츠·게임 페이지 영상 자동 촬영 |
재밌었던 건 로블록스 Studio 안에 AI 연결용 서버(MCP)가 내장돼 있다는 점이다. 이걸로 코드를 Studio에 넣고, 플레이를 시작하고, 카메라를 원하는 위치에 두고 스크린샷을 찍고, 키보드 입력까지 흉내 낼 수 있다. 덕분에 AI가 직접 “W를 3초 누르고 → 그물에 부딪히고 → 끝까지 가서 탈출 → 재도전 버튼 클릭”까지 자동으로 확인했다.
🤝 로컬 모델 vs 클라우드 모델, 어떻게 나눴나
원칙은 지난번과 같았다. 돈 드는 클라우드 모델은 설계·판단·검토만, 실제 구현은 공짜인 로컬 모델에게.
| 역할 | 누가 | 한 일 |
|---|---|---|
| 설계·핵심 로직 | 클라우드 (Claude) | 수로 기하, 3D 수영 조작, 카메라, 물리, 충돌, 서버 판정 |
| 디버깅·판단 | 클라우드 | 스크린샷 보고 문제 찾기, 로블록스 특유의 함정 해결 |
| 반복 구현 | 로컬 (Qwen, DGX Spark) | 배경 생성 코드, 공통 모듈(저장·게임패스·순위판·UI), 홍보 이미지·영상 스크립트 일반화 |
| 음악 | 로컬 (ACE-Step) | 전용 BGM 4곡 생성 → 1곡 채택 |
| 출시 작업 | 클라우드 + 나 | 대시보드 설정, 게임패스 연결, 공개 전환 (계정·인증은 내가 직접) |
로컬 모델에게 일을 맡길 때는 명세서를 쓴다. “어느 파일을, 어떤 함수로, 어떤 규칙으로, 뭘 하면 안 되고, 어떻게 검증하는지”까지 로컬 모델이 추측할 필요 없게 적어서 넘기면, 로컬 모델이 구현하고 검증까지 돌린 뒤 “완료/막힘” 보고를 한다. 클라우드 모델은 결과의 핵심 부분만 읽는다.
⚠️ 로컬 모델의 현실적인 한계 (이번에 실제로 겪은 것)
솔직히 말하면 “로컬 모델에게 다 맡기고 클라우드는 감독만”은 아직 반만 된다. 이번에 실제로 부딪힌 것들이다.
1. 눈이 없다 → “통과했는데 이상한” 결과물
게임은 결국 보이는 것이 전부인데, 로컬 모델은 화면을 보고 판단하지 못한다. 배경 작업을 맡겼을 때 코드는 문법·빌드·테스트를 다 통과했지만, 막상 화면에는 건물이 하나도 안 보였다. 원인은 저사양 환경에서 약 500칸 밖 물체를 그리지 않는 로블록스 특성이었는데, 이건 스크린샷을 봐야만 알 수 있는 문제였다.
(공정하게 말하면, 건물을 멀리 두라고 명세에 적은 건 클라우드 모델 쪽 실수였다. 결국 명세의 질이 결과의 질이다.)
2. 테스트는 통과하는데 미묘한 버그가 숨어 있다
템플릿용 공통 모듈 7개를 로컬 모델이 작성했는데, 문법 검사와 빌드는 한 번에 통과했다. 그런데 검토해 보니 이런 게 있었다.
- 플레이어 데이터를 3번 불러오다 실패하면 빈 프로필로 시작해서, 자동 저장이 기존 기록을 덮어써 버리는 구조
- 서버가 바뀌면 이전 최고기록을 모르고 더 나쁜 기록으로 순위를 덮어쓸 수 있는 구조
둘 다 “돌려보면 잘 되는” 버그라 테스트로는 안 잡힌다. 실제 서비스에서 터지면 유저 데이터가 날아가는 종류다. 데이터·돈이 걸린 코드는 반드시 상위 모델이 리뷰해야 한다.
3. 검증 조건을 ‘글자 그대로’ 맞춘다
명세서 완료 기준에 “스크립트에 White라는 단어가 남아 있으면 안 됨”(특정 스킨 이름을 하드코딩하지 말라는 뜻)이라고 적었더니, 로컬 모델이 흰색 색상 변수 이름 WHITE를 SNOW로 바꿔서 통과시켰다 ㅋㅋ. 틀린 건 아니지만, 의도가 아니라 조건을 맞추는 경향이 있다는 걸 보여주는 귀여운 사례였다. 검증 조건은 의도가 오해 없이 전달되게 써야 한다.
4. 한 번에 끝까지 못 가고 멈춘다
로컬 에이전트는 가끔 “이제 ~하겠습니다” 같은 설명만 남기고 작업을 끝내버린다. 그래서 위임 스크립트에 “최종 보고가 안 나오면 같은 세션을 자동으로 이어서 계속 시키기”를 넣어뒀다. 이번 작업에서는 이 장치 덕분에 끝까지 갔다.
5. 로블록스 같은 특수 환경은 불안해서 못 맡긴다
지형 물이 흙을 못 덮어쓴다든지, 어떤 place에서는 기본 조작 모듈이 아예 로드되지 않는다든지, 로블록스는 문서에 잘 안 나오는 함정이 많다. 이런 건 돌려보고 → 화면 보고 → 원인 찾는 반복이 필요한데, 이 루프는 아직 클라우드 모델이 훨씬 빠르고 정확하다. 그래서 핵심 물리·조작은 처음부터 클라우드 모델이 직접 짰다.
💸 그래서 토큰은 정말 아꼈나?
이번엔 별로 못 아꼈다. 솔직하게 정리하면 이렇다.
- v2 게임 코드(약 120KB) 중 로컬 모델이 쓴 건 배경 코드 약 16% 정도. 나머지는 속도·품질 때문에 클라우드 모델이 직접 썼다.
- 게다가 진짜 비용은 코드 작성이 아니었다. 스크린샷을 80장 넘게 보고, 긴 파일을 읽고, 도구를 반복 호출하는 데 훨씬 많이 들었다. 로컬 모델에게 위임해도 결과를 확인하려면 결국 스크린샷을 봐야 한다.
그래서 이번 경험을 바탕으로 다음 게임부터 제대로 아끼는 구조를 만들었다.
- 로블록스 게임 템플릿: 저장, 게임패스, 순위판, UI, 배포·테스트 도구, 썸네일·쇼츠 자동 생성까지 공통 부분을 묶어서, 새 게임은 한 줄 명령으로 시작한다.
- 공통 모듈은 로컬 모델이 작성하고, 클라우드 모델은 리뷰만 했다. 앞서 말한 버그 2개도 이 리뷰에서 잡았다.
- 로컬 모델이 Studio 없이도 스스로 문법 검사를 할 수 있게 Luau 분석기를 붙였다.
- 스크린샷은 꼭 필요할 때만, 작게 본다.
- 이 전체 흐름을 Claude Code 스킬로 만들어서, 어느 세션에서든 “로블록스 게임 만들어”라고 하면 같은 방식으로 진행된다.
🧱 로블록스 출시하면서 걸린 함정들
AI와 상관없이 로블록스가 처음이라 꽤 헤맸다. 같은 걸 해보려는 분들을 위해 적어둔다.
- 신규 계정은 바로 공개가 안 된다. 계정 생성 2일 이상 + 연령 확인(얼굴 또는 신분증) + 콘텐츠 설문이 필요하다. 이걸 다 해도 처음엔 16세 이상에게만 보인다.
- 모든 연령 공개는 신분증 인증 + 2단계 인증 + (Premium 2개월 구독 또는 1,000 Robux 게시 수수료)가 추가로 필요하다. 수수료는 60일 안에 참여도 높은 유저 25명을 유지하면 환불된다.
- Mac용 Studio는 저장(Ctrl+S) 창에서 멈춘다. 저장 대신 바로 “Publish to Roblox”로 올리면 된다.
- 2단계 인증을 켜면 Studio가 게임 접속을 거부한다. 로그아웃 후 재로그인하면 해결.
- 게임 페이지 동영상은 가로 16:9만 된다. 쇼츠용 세로 영상은 거부돼서 가로 버전을 따로 만들었다.
- 효과음은 공식 라이선스 퍼블리셔(ProSoundEffects, APM 등) 것만 쓰는 게 안전하다. 일반 유저가 올린 오디오는 다른 게임에서 재생이 안 될 수 있다.
🔭 다음 계획
- 인기 로블록스 게임 30개를 분석해 보니, 히트작의 공통점은 소재가 아니라 **“30초 안에 이해되는 반복 + 쌓이는 성장 + 친구와 비교하는 장치”**였다.
- 부캉이 대탈출은 한 판 3~5분짜리 레이싱이라 다시 올 이유가 약하다. 반응을 보고, 괜찮으면 “상어 키우기 + 구경꾼 모으기” 같은 성장 요소를 붙여볼 생각이다.
- 앞으로는 매주 하나씩 시제품을 올리고, 공개 후 72시간 지표(다음 날 재방문율, 평균 플레이 시간)가 좋은 것만 키우는 방식으로 가보려 한다.
수익이 나든 안 나든, 과정은 계속 여기에 기록하겠다. 부캉이 대탈출 한 판 해보시고 기록 자랑 부탁드립니다 🦈