---
title: "Bobcat이 포켓몬스터 금을 처음부터 해 봤어요"
description: "목록에서 고르기만 하는 모델이 포켓몬스터 금을 새 게임부터 플레이했어요. 한 커밋으로 새 게임 20판을 도중 수정 없이 돌렸더니 17판이 배지 16개를 모두 땄고, 두 번 해서 두 번 다 그랬어요."
author: "Foxl AI"
date_published: "2026-10-06"
date_modified: "2026-10-06"
canonical_url: "https://foxl.ai/ko/blog/bobcat-plays-pokemon-gold"
markdown_url: "https://foxl.ai/ko/blog/bobcat-plays-pokemon-gold/index.md"
image: "https://foxl.ai/blog/bobcat-plays-pokemon-gold-cover.png"
social_image: "https://foxl.ai/blog/social/bobcat-plays-pokemon-gold-ko.png"
content_type: "Deep dive"
topics: ["Typed decisions","Game playing","Agents","Measurement"]
products: ["Bobcat"]
---

<!-- Generated by scripts/blog-publishing.mjs; do not edit. -->

# Bobcat이 포켓몬스터 금을 처음부터 해 봤어요

> Bobcat은 글을 한 글자도 쓰지 않아요. 상태를 읽고 선택지마다 확률을 하나씩 돌려줄 뿐이에요. 포켓몬스터 금 한국어판을 사실만 알려 주는 하네스 뒤에 두고, 공략집을 준 다음 새 게임부터 모든 선택을 맡겼어요. 한 커밋으로 새 게임 20판을 도중 수정 없이 돌렸더니 17판이 배지 16개를 모두 땄고, 게임 시간 중앙값은 19.3시간이었어요. 다른 커밋으로 돌린 첫 배치도 20판 중 17판이었어요. 같은 하네스에 무작위로 답하게 하면 배지를 하나도 따지 못했어요. 세 판을 더 돌려 녹화했고, 멈춘 여섯 판은 까닭과 함께 적었어요.

- Author: Foxl AI
- Published: 2026-10-06
- Last reviewed: 2026-10-06
- Reading time: 8 minutes
- Canonical HTML: [https://foxl.ai/ko/blog/bobcat-plays-pokemon-gold](<https://foxl.ai/ko/blog/bobcat-plays-pokemon-gold>)

![평평한 점토색 그림이에요. 손으로 그린 휴대용 게임기 화면에 선택지 셋이 있고, 가운데 것이 골라져 있어요.](<https://foxl.ai/blog/bobcat-plays-pokemon-gold-cover.png>)

Bobcat은 글을 한 글자도 쓰지 않는 모델이에요. 상태와 선택지 목록을 받으면 선택지마다 확률을 하나씩 돌려줄 뿐이에요. 저희는 포켓몬스터 금 한국어판을 하네스 뒤에 두었어요. 하네스는 사실만 알려 주고, 그 순간 게임이 허락하는 행동만 늘어놓아요. 그리고 공략집을 하나 준 다음, 새 게임부터 모든 선택을 Bobcat에게 맡겼어요. 어디로 갈지, 거기서 무엇을 할지, 배틀마다 어떤 기술을 쓸지, 무엇을 살지, 누구를 잡을지, 공략집의 한 단계가 끝났는지까지 모두 Bobcat이 정해요.

그다음 한 커밋으로 새 게임 20판을 한꺼번에 시작했고, 도는 동안 아무것도 바꾸지 않았어요. 20판 중 17판이 조토 8개와 관동 8개, 배지 16개를 모두 땄어요. 그 사이에 사천왕과 챔피언도 이겼고요. 끝까지 간 게임은 게임 속 시계로 중앙값 19.3시간이 걸렸고, 판단은 약 5,100번 했어요. 몇 시간 간격을 두고 두 커밋에서 이렇게 두 번 해 봤는데, 두 배치 모두 20판 중 17판으로 끝났어요. 같은 하네스에 무작위로 답하게 하면 배지를 하나도 따지 못했어요.

저희가 세운 기준은 열 판 중 아홉 판이었는데, 아직 거기에는 못 미쳐요. 멈춘 6판과 그 까닭은 아래에 적었어요. 배치를 마친 뒤에는 두 번째 배치의 커밋으로 3판을 더 돌려 프레임마다 녹화했어요. 3판 모두 배지 16개를 땄고, 은빛 산의 레드를 이겼고, 칠색조도 잡았어요. 이 글의 영상은 그중 가장 먼저 끝낸 게임이에요. 판단을 4,887번 했고, 게임 시간으로는 19.9시간이 걸렸어요.

![배치마다 한 칸씩, 새 게임 스무 판이 게임 시간에 따라 배지를 몇 개 땄는지 계단선으로 그린 그림이에요. 칸마다 대부분의 선이 배지 16개에 닿고, 멈춘 게임은 그 전에 끝나 X로 표시했어요. 배치를 마친 뒤 두 번째 배치의 커밋으로 녹화한 게임들은 두 번째 칸에 점토색으로 겹쳐 그렸고, 영상의 게임은 굵게 그렸어요.](<https://foxl.ai/blog/bobcat-pokemon-batches.png>)

_녹화한 게임을 침실에서 마지막 배지까지 60초로 줄였어요([YouTube에서 보기](<https://youtu.be/pN9MUMqYxSs>)). 프레임마다 왼쪽은 게임이고, 패널은 그 판단 때 Bobcat이 받은 상태예요. 오른쪽에는 가장 높게 매긴 선택지가 그것을 실행하는 버튼, 확률과 함께 있고, 그 아래는 선택의 기록이에요. 파일로 공유하실 때는 [영상](<https://foxl.ai/blog/bobcat-pokemon-run-60s.mp4>)과 [포스터](<https://foxl.ai/blog/bobcat-pokemon-run-60s-poster.webp>)를 쓰시면 돼요._

## 녹화한 게임의 하이라이트

녹화한 게임의 순간 8개를 Bobcat이 본 그대로의 대시보드로 빠르게 돌렸어요(녹화한 프레임 하나가 게임 속 1초예요). 왼쪽은 게임, 그 옆은 Bobcat이 받은 상태, 그다음은 가장 높게 매긴 선택지와 버튼·확률, 그리고 선택의 기록이에요. 먼저 모든 관장을 포함한 25개 장면을 4분짜리 영상으로 보시고, 그 아래에서 8개를 하나씩 볼 수 있어요.

_체육관 관장 16명, 사천왕, 라디오로 잠만보 깨우기, 레드, 칠색조까지 모은 하이라이트예요 ([YouTube에서 보기](<https://youtu.be/uQKcG6L9zGg>))._

[첫 관장 비상을 이기고 첫 배지를 따요](<https://foxl.ai/blog/bobcat-pokemon-hl-falkner.mp4>)첫 관장 비상을 이기고 첫 배지를 따요. 게임 시간 37분쯤이고, 19배속으로 돌렸어요.[꼭두의 밀탱크를 넘고 배지 3개째를 따요](<https://foxl.ai/blog/bobcat-pokemon-hl-whitney.mp4>)꼭두의 밀탱크를 넘고 배지 3개째를 따요. 게임 시간 2시간 7분쯤이고, 120배속으로 돌렸어요.[이향을 이기고 조토의 마지막 배지를 따요](<https://foxl.ai/blog/bobcat-pokemon-hl-clair.mp4>)이향을 이기고 조토의 마지막 배지를 따요. 게임 시간 8시간 36분쯤이고, 60배속으로 돌렸어요.[챔피언 목호를 이겨요](<https://foxl.ai/blog/bobcat-pokemon-hl-lance.mp4>)챔피언 목호를 이겨요. 게임 시간 13시간 7분쯤이고, 22배속으로 돌렸어요.[포켓기어 라디오로 잠만보를 깨워요](<https://foxl.ai/blog/bobcat-pokemon-hl-snorlax.mp4>)포켓기어 라디오로 잠만보를 깨워요. 게임 시간 15시간 16분쯤이고, 8배속으로 돌렸어요.[상록시티의 그린을 이기고 배지 16개째를 따요](<https://foxl.ai/blog/bobcat-pokemon-hl-blue.mp4>)상록시티의 그린을 이기고 배지 16개째를 따요. 게임 시간 16시간 2분쯤이고, 30배속으로 돌렸어요.[은빛 산에서 레드를 이겨요](<https://foxl.ai/blog/bobcat-pokemon-hl-red.mp4>)은빛 산에서 레드를 이겨요. 게임 시간 17시간 39분쯤이고, 30배속으로 돌렸어요.[마스터볼로 칠색조를 잡아요](<https://foxl.ai/blog/bobcat-pokemon-hl-ho-oh.mp4>)마스터볼로 칠색조를 잡아요. 게임 시간 19시간 55분쯤이고, 6배속으로 돌렸어요.

_녹화한 프레임을 모두 담은 게임 전체예요. 배지마다 챕터를 달아 두었어요 ([YouTube에서 보기](<https://youtu.be/EIB7dLcyckY>))._

## 얼마나 자주 끝까지 갈까요?

배치 하나는 같은 새 게임(오프닝을 마친 뒤의 침실)에서 함께 시작한 스무 판이에요. 하네스와 공략집은 한 커밋으로 고정했어요. 도는 동안 아무것도 고치지 않고, 세이브에서 이어 가지도 않아요. 게임마다 배지 16개째를 따면 거기서 끝내요. 공략집의 한 단계에서 진전 없이 판단을 수천 번 한 게임은 중간에 멈추고, 끝내지 못한 게임으로 셌어요.

| 배치 | 커밋 | 배지 16개 | 끝내기까지 게임 시간(가장 빠름, 중앙값, 가장 느림) |
| --- | --- | --- | --- |
| A | `13803fe` | 20판 중 17판 | 17.1, 20.3, 26.0 |
| B | `6c233f1` | 20판 중 17판 | 17.0, 19.3, 24.2 |

합하면 40판 중 34판, 85%예요. 40판으로는 비율이 좁게 정해지지 않아서, 95% 신뢰구간은 71%에서 93%까지예요. 끝내지 못한 게임은 다음과 같아요.

- **A 배치 7번 게임**(배지 15개): 마지막 관장 그린에게 거듭 졌고, 싸움 사이에 훈련하지 않고 다른 데를 돌아다녔어요. 그 단계에서 판단을 4,977번 한 뒤, 게임 시간 56.6시간에 멈췄어요.
- **A 배치 11번 게임**(배지 7개): 강한 포켓몬 한 마리와 한참 뒤처진 나머지로 이향에게 계속 졌고, 체육관을 떠나 헤맸어요. 그 단계에서 판단을 3,514번 한 뒤, 게임 시간 22.1시간에 멈췄어요.
- **A 배치 15번 게임**(배지 7개): 얼음샛길의 바위를 이미 읽은 표지판처럼 여겨 제쳐 두었어요. 괴력은 올 때마다 다시 써야 하거든요(B 배치 전에 고쳤어요). 그 단계에서 판단을 3,215번 한 뒤, 게임 시간 19.9시간에 멈췄어요.
- **B 배치 2번 게임**(배지 8개): 이미 기술 넷을 아는 갸라도스에게 폭포오르기를 가르치지 못했어요. 게임이 묻는 질문 두 개를 하네스가 읽지 못해서 가르치기가 일어나지 않았어요. 그 단계에서 판단을 5,677번 한 뒤, 게임 시간 27.6시간에 멈췄어요.
- **B 배치 14번 게임**(배지 7개): A 배치의 한 게임처럼, 첫 포켓몬보다 한참 약한 팀으로 이향에게 졌어요. 그 단계에서 판단을 6,450번 한 뒤, 게임 시간 25.6시간에 멈췄어요.
- **B 배치 20번 게임**(배지 11개): 자전거 없이 자전거 길로 연분홍시티에 가려 했고, 관문 경비원이 매번 돌려보냈어요. 그 단계에서 판단을 4,681번 한 뒤, 게임 시간 24.6시간에 멈췄어요.

6판 중 3판은 Bobcat이 이겨야 했던 배틀에서 졌어요. 한 마리에 기댄 팀으로 강한 관장을 만난 경우예요. 나머지 3판은 하네스의 빈틈 때문이었어요. 바위를 제쳐 둔 문제는 두 배치 사이에 고쳤고, 읽지 못한 질문과 막힌 줄 몰랐던 길은 다음에 고칠 거예요. 배틀은 Bobcat이 이겨야 할 몫이에요.

## 하네스는 무엇을 하고, 무엇을 하지 않을까요?

스피드러너라면 이 하네스를 상태 확인 도구라고 부를 거예요. 하네스는 게임을 읽고 사실을 알려 줘요. 화면의 대화문(카트리지 자체의 글꼴과 픽셀을 대조해 읽어요), 메뉴와 커서 위치, 장소와 타일, 돈과 배지, 파티(포켓몬마다 레벨, HP, 기술과 남은 PP), 가방과 포켓기어의 카드, 배틀 중에는 양쪽 포켓몬과 우리 편의 타입, 그리고 해 봤지만 통하지 않은 것(효과가 없던 기술, 아무 데로도 이어지지 않은 출구, 진 배틀과 그때 파티의 레벨)을 알려 줘요. 또 지금 게임이 허락하는 행동을 늘어놓아요. 걸어갈 수 있는 출구, 닿는 거리의 사람과 물체, 표지판, 파티가 아는 필드 기술을 쓸 수 있는 물과 나무, 풀숲, 잠든 잠만보가 길을 막은 곳에서는 포켓기어 라디오, 배틀에서는 PP가 남은 기술, 교체, 회복 도구, 볼, 도망 같은 행동이 목록에 올라요. 선택지마다 그것을 실행하는 버튼(“→5 ↑3 A”)도 플레이어가 누르는 그대로 보여 줘요.

하네스는 고르지 않고, 게임이 보여 주지 않는 것은 알려 주지 않아요. 상대의 타입도, 기술이 효과가 좋은지도 알려 주지 않아요. Bobcat이 원래 알고 있거나, 기술을 쓴 뒤 게임이 하는 말에서 읽어 내야 해요. Bobcat이 행동을 고르면 하네스는 그것을 기계적으로 실행해요. “라디오타워 2층으로 간다”를 고르면 계단까지 가장 짧은 길로 걷고, 계단을 오르는 버튼을 누르는 식이에요.

## Bobcat은 무엇을 정할까요?

녹화한 게임에서는 이런 것들을 Bobcat이 정했어요.

- **어디로 가서 무엇을 할지**: 상황이 바뀔 때마다 Choice 두 개를 담은 요청 하나로 물어요. 녹화한 게임에서는 필드에서 2,245번 정했어요. 고른 장소는 다음 몇 번의 판단 동안 유지되고, 출구마다 그곳으로 이어지는지 표시돼요.
- **배틀의 모든 턴**: 어떤 기술을 쓸지, 교체할지, 회복할지, 볼을 던질지, 도망칠지를 2,234번 정했어요.
- **모든 질문과 메뉴**: 예와 아니오, 무엇을 살지, 어떤 기술을 잊을지, 누가 비전머신을 배울지를 323번 골랐어요.
- **잡을지 말지**: 공략집이 잡으라고 할 때 야생 포켓몬을 잡을지, 어떤 볼로 잡을지를 13번 정했어요.
- **누구를 맨 앞에 세울지**: 파티의 한 마리가 나머지보다 크게 앞서거나 뒤처지면 포켓몬센터에서 물어요. 30번 물었어요.
- **공략집의 한 단계가 끝났는지**: 게임이 기록하는 사실만으로 판정할 수 없을 때 물어요. 41번 확인했어요.

## 왜 공략집을 줬고, 거기에는 무엇이 있을까요?

긴 게임을 처음 하는 사람은 공략집을 읽잖아요. 그래서 Bobcat에게도 하나를 줬어요. 배지 개수마다 한 장씩 있는 한국어 글이고, 게임에서 쓴 그대로 공개했어요. 공략집에는 이야기 순서, 장소 이름, 잡을 포켓몬(32번 도로의 메리프, 파도타기를 배울 물 포켓몬, 빨간 갸라도스), 관장마다 잘 통하는 타입이 들어 있어요. 답이 하나뿐인 몇 안 되는 퍼즐(얼음샛길의 바위, 지하의 스위치, 노랑시티의 순간이동 발판)에는 그 답을 적었고, 게임의 디스어셈블리와 타일 하나하나 대조해 확인했어요. 그것으로 무엇을 할지는 Bobcat이 정해요. 하네스는 사실이 확인될 때만 다음 단계로 넘겨요. 단계가 말하는 도구가 가방에 있거나, 단계가 끝나는 장소에 들어갔거나, 단계가 말하는 트레이너를 이겼거나, 게임이 기록하는 이벤트(발전소에 부품 돌려주기, 잠만보와 싸우기, 홍련섬에서 그린과 이야기하기)가 켜졌을 때예요.

## Bobcat이 고르지 않은 선택은 무엇일까요?

하네스에는 고정 규칙이 있어요. 규칙은 기준값과 함께 공개된 코드에 있고, 게임 로그에 하나하나 세어 둬요. 필드에서 Bobcat의 1순위 행동이 같은 일을 되풀이하면 하네스가 그것을 제쳐 둬요. 한 맵에서 최근 50번 중 4번 고른 행동, 두 번 실패한 출구, 같은 말을 세 번 한 사람이 그런 경우예요. 그러면 Bobcat이 남은 것 중 가장 높게 매긴 행동을 하고, 모두 제쳐졌으면 최근에 가장 덜 한 행동을 해요. 녹화한 게임에서 필드 행동 2,245번 중 79%는 Bobcat 자신의 1순위였어요. 배틀, 질문, 포획은 모두 Bobcat의 답이에요. 몇 가지는 묻지 않고 하네스가 처리해요. 오프닝, 별명 짓기 거절, Bobcat이 고른 구매나 가르치기의 확인, 하네스가 이해하지 못하는 메뉴가 되풀이될 때 빠져나오기가 그래요.

![녹화한 게임의 필드 행동을 누가 골랐는지 보여 주는 그림이에요. 일부는 Bobcat 자신의 1순위였고, 나머지는 공개된 반복 규칙 중 하나가 정했어요.](<https://foxl.ai/blog/bobcat-pokemon-tally.png>)

## 하네스가 대신 하는 게 아니라는 건 어떻게 알까요?

같은 하네스, 같은 커밋, 같은 새 게임에서 Choice를 모두 무작위로 뽑게 하면, 9,517번 판단하는 동안 배지를 하나도 따지 못했어요. 하네스가 중립적인 건 아니에요. 고른 곳으로 걸어가 주고, 공략집의 장소로 이어지는 출구에 표시도 해 줘요. 그래서 무작위로 답해도 어딘가에는 가요. 그것과 배지 16개 사이의 차이가 Bobcat의 몫이에요. 하네스는 판단마다 Bobcat이 받은 상태, 확률이 붙은 모든 선택지, 어떤 규칙이 선택을 제쳤는지를 기록해요. 그래서 이 이야기를 한 줄씩 확인해 볼 수 있어요.

## 여기까지 어떻게 왔을까요?

하네스는 Bobcat을 붙여 둔 채로 이 게임에 맞춰 썼어요. 일의 대부분은 게임 깊숙한 곳에서 하네스가 잘못 읽는 것을 찾는 일이었어요. 열린 채 남은 PC 메뉴, 기절한 뒤의 파티 화면, 다 그려지기 전에 읽은 가방 포켓, 볼 포켓으로 착각한 빈 도구 포켓, 짧은 버튼 입력을 무시하는 가게 목록, 공략집이 아직 선장을 찾으라고 하는데 먼저 도착해 버린 배 같은 것들이었어요. 대부분은 판단을 수백, 수천 번 하고 나서야 드러났어요. 게임이 그런 곳에서 멈추면 하네스를 고치고 그 게임을 마지막 세이브에서 이어 갔어요. 처음으로 배지 16개와 레드, 칠색조까지 간 게임들은 그렇게 했어요. 그다음이 한 번에 새 게임 스무 판씩 돌린 배치예요. 배치에서 멈춘 곳이 다음 커밋에서 고칠 것이 됐고, 공략집 힌트를 바꿀 때는 같은 세이브에서 켜고 꺼 본 뒤에 남겼어요. 위의 두 배치가 그중 마지막 두 개예요. 둘 사이에는 A 배치에서 드러난 얼음샛길의 바위 문제를 고쳤고, 게임들이 스위치 방으로 착각한 금빛시티와 지하 통로 사이의 계단에 이름을 새로 붙였어요.

## Bobcat은 어디에 약할까요?

- 앞에서 본 것처럼, 쏠린 팀으로 강한 관장을 만나는 배틀에 약해요. 녹화한 게임은 배틀에서 30번 졌고, 트레이너는 229번 이겼어요.
- 첫 포켓몬에 많이 기대요. 녹화한 게임이 끝났을 때 파티는 블레이범 93레벨, 토게틱 30레벨, 메리프 8레벨, 야돈 10레벨, 갸라도스 34레벨, 칠색조 40레벨이었어요. 누구를 앞에 세울지 물으면 대개 순서를 그대로 둬요.
- 아직 반복 규칙이 필요해요. 녹화한 게임의 필드 행동 중 21.0%는 규칙이 정했어요.

## 비용은 얼마나 들었을까요?

녹화한 게임은 판단 4,887번에 입력 토큰 9,015,052개를 썼어요. 다른 녹화 게임들과 함께 쓴 RTX PRO 6000 (96 GB) 한 장에서 0.9시간 돌았고, 시간당 $2.76로 계산하면 $2.37가 들었어요. 배치에서 끝까지 간 게임은 입력 토큰 중앙값이 9.4백만 개였고, 스무 판이 GPU 한 장을 나눠 써요. 두 배치와 그 앞의 배치들, 모든 수정의 시험까지 합하면 GPU 한 장으로 39.8시간, 시간당 $4.12에 $164.13가 들었어요. 참고로 녹화한 게임의 토큰을 Jev의 공개 정가(입력 100만 토큰당 $0.042)로 계산하면 $0.38가 나와요. 이건 기준점일 뿐이고, 이 작업에서 두 서비스를 직접 재 본 값은 아니에요.

## 한계

- 새 게임 40판 중 85%가 끝까지 갔어요. 열 판 중 아홉 판이라는 저희 기준에는 못 미치고, 40판은 작은 표본이에요.
- 한 배치의 스무 판은 같은 새 게임에서 시작하고, 바쁜 모델 서버의 작은 수치 차이로만 갈라져요. 독립된 플레이어 스무 명이라고 보기는 어려워요. 앞부분을 거의 똑같이 플레이한 판이 많았고, 멈춘 것도 하나씩이 아니라 종류별로 몰려서 나왔어요.
- 두 커밋 모두 이 게임에 맞춰 다듬었어요. 수정과 힌트는 모두 이 게임을 앞서 돌린 판들에서 나왔어요. 따로 떼어 둔 게임은 없고, 다른 게임을 하려면 그 게임에 맞는 하네스가 필요해요.
- 공략집은 저희가 썼고, 게임의 고정 퍼즐 답과 잡을 팀이 들어 있어요.
- 배치는 녹화하지 않았어요. 그래서 녹화한 게임들은 배치가 끝난 뒤 B 배치의 커밋으로 따로 돌렸어요. 영상은 그중 가장 먼저 끝낸 게임이에요.

코드, 공략집, 판단 로그는 [github.com/foxl-ai/bobcat](<https://github.com/foxl-ai/bobcat>)의 `demos/pokemon`에 있어요. 카트리지 덤프는 직접 준비하셔야 하고, ROM이나 게임 파일은 공개하지 않아요. 모델은 [Bobcat: Typed Decisions from One Forward Pass](<https://foxl.ai/blog/bobcat-typed-decisions>)에서 자세히 설명했어요.

포켓몬은 Nintendo, Creatures, GAME FREAK의 상표입니다.

이 글은 [영어로도](<https://foxl.ai/blog/bobcat-plays-pokemon-gold>) 읽을 수 있어요.

## References and further reading

1. [코드, 공략집, 판단 로그 (GitHub)](<https://github.com/foxl-ai/bobcat/tree/main/demos/pokemon>) - Reference
2. [Hugging Face의 Bobcat 가중치](<https://huggingface.co/sanghwa-na/bobcat-1.1>) - Reference
3. [Bobcat Flash 가중치](<https://huggingface.co/sanghwa-na/bobcat-flash-1.1>) - Reference
4. [PyBoy 에뮬레이터](<https://github.com/Baekalfen/PyBoy>) - Reference
5. [pret/pokegold 디스어셈블리](<https://github.com/pret/pokegold>) - Reference