뻘오락실
← 매거진 목록 오락실 홈으로 →
개발 노트

개발자가 편하려고 만든 봇이 게임을 영원히 끝나지 않게 만들었습니다

뻘오락실 에디터 · 읽는 시간 3분
개발자가 편하려고 만든 봇이 게임을 영원히 끝나지 않게 만들었습니다

오늘의 개발 노트는 자랑이 아닙니다. 솔직한 자폭에 가깝습니다.

게임을 만들다 보면 테스트를 위해 치트키나 보조 도구를 만듭니다. 순서팝 판이 6열 8행 총 48개 타일로 되어 있다 보니, 매번 사람이 직접 손가락으로 1-2-3을 긁으면서 모든 예외 상황을 테스트하기엔 손목도 시리고 시간도 부족했습니다.

그래서 관리자 인증을 거치면 동작하는 비밀 병기, 바로 자동 플레이 기능을 개발 노트 모드에 붙였습니다.


컴퓨터는 지치지 않고, 자비도 없었습니다

이 자동 플레이 봇의 원리는 단순합니다. 현재 판에 깔린 48개 숫자판을 서버 알고리즘으로 실시간 분석해서, 1부터 시작해 길게 이어지는 최적의 경로를 사람 대신 차례대로 팡팡 터뜨려 주는 방식입니다.

1배속 보통 속도부터 2배속, 5배속 터보 모드까지 넣었습니다. 관리자 인증 없이는 실행조차 안 되게 보안도 묶어뒀고, 일반 랭킹 점수판에도 올라가지 않게 테스트 전용으로 격리했습니다.

여기까지는 정말 평화로웠습니다. 저는 따뜻한 커피 한 잔을 마시며 모니터 앞에 앉아 흐뭇하게 컴퓨터가 혼자 퍼즐을 싹싹 비워내는 장관을 감상하고 있었습니다.

사단은 기록 도전 모드를 켰을 때 일어났습니다.


226점을 넘겨도 여전히 90초 풀피?

순서팝의 기록 도전 모드는 기본 90초의 제한시간을 줍니다. 그리고 플레이어의 도전 욕구를 자극하는 규칙이 하나 있습니다.

숫자를 길게 이어서 콤보를 터뜨리면, 성공한 길이에 비례해서 제한시간을 조금씩 보충해 줍니다. 4개 타일을 터뜨리면 4점과 함께 제한시간 0.9초가 추가로 리필되는 식입니다.

사람이 할 때는 이게 아주 팽팽한 줄다리기입니다. 눈알 굴려서 길 찾는 데 2초, 손가락 긋는 데 1초가 걸리니 아무리 잘해도 결국엔 시간이 야금야금 줄어들다가 0초가 되면서 긴장감 넘치게 끝납니다.

그런데 컴퓨터는 달랐습니다.

컴퓨터에겐 고민하는 시간이 0.1초도 필요 없었습니다. 판이 채워지자마자 가장 긴 4점, 5점짜리 길만 귀신같이 골라내서 1초에 서너 번씩 연속으로 팡팡 터뜨리기 시작했습니다.

그 결과 어떤 일이 벌어졌을까요?

시간이 줄어드는 속도보다, 콤보 성공으로 시간이 채워지는 속도가 훨씬 더 빨랐습니다.

226점을 넘기고 LV.5 마스터를 찍었는데도 여전히 90초 풀피를 유지하는 실제 게임 캡처

위 스틸컷이 바로 그 참사의 현장입니다.

점수는 이미 226점을 돌파했고, 난이도는 최고 레벨인 LV.5 마스터까지 도달했습니다. 힌트는 무려 23개나 쌓였습니다. 그런데 상단 오른쪽의 남은 시간을 보시면 기가 막힙니다.

여전히 90초입니다. 0.1초도 줄어들지 않은 채 90초 풀피를 영원히 유지하고 있는 겁니다.


백문이 불여일견: 무한 동력으로 폭주하는 실제 영상

글로만 들으면 상상이 잘 안 가실 겁니다. 직접 녹화한 화면을 보시죠.

90초 게이지가 줄어들 틈도 없이 타일 하나당 1점과 시간 보너스를 퍼먹으며 끝없이 폭주하는 실제 현장입니다.

자동 플레이 봇이 시간을 무한 리필하며 영원히 끝나지 않는 실제 녹화 영상

영상 속 타이머 바를 보시면 알겠지만, 시간이 닳을 틈을 주지 않습니다.

점수는 200점, 300점을 향해 계속 치솟고, 타일은 쉬지 않고 폭발하고, 타이머는 계속 90초입니다. 이대로 두면 오늘 밤새도록 컴퓨터 혼자 10만 점을 찍고 브라우저 탭 메모리가 터질 때까지 영원히 끝나지 않을 기세였습니다.

결국 저는 상단에 달아둔 빨간색 중단 버튼을 다급하게 눌러 강제로 봇의 숨통을 끊어야 했습니다.


버그 덕분에 깨달은 귀중한 교훈

개발자가 편하려고 만든 보조 도구 덕분에 아주 치명적인 설계 결함을 미리 발견했습니다.

만약 나중에 인간의 한계를 초월한 엄청난 동체시력의 고수 유저가 나타난다면? 그 유저가 1초에 5콤보씩 털어 넣으며 영원히 게임을 끝내지 않고 뻘오락실 서버를 점거해 버린다면? 상상만 해도 등골이 서늘해지는 시나리오였습니다.

그래서 이번 사태를 계기로 기록 모드의 시간 보충 시스템에 확실한 안전장치를 도입하기로 결정했습니다:

  1. 시간 보너스 감쇠 시스템: 게임을 길게 이어갈수록, 같은 4콤보를 터뜨려도 리필되는 추가 시간이 점차 줄어들도록 완충 장치를 둘 예정입니다.
  2. 판당 최대 시간 상한 캡: 아무리 손이 빨라도 한 판에서 누적해서 얻을 수 있는 추가 시간에 현실적인 한도를 설정합니다.
  3. 고수 배려와 밸런스의 조화: 잘하는 사람이 시원하게 질주하는 쾌감은 살리되, 영구 기관 무한 루프는 물리적으로 불가능하도록 정교하게 다듬을 계획입니다.

치트키 하나 만들었다가 게임 엔진의 한계점을 제대로 마주한 보람찬 하루였습니다.

다음 개발 노트에서는 이 무한 루프 방지 로직을 어떻게 수학적으로 깔끔하게 잡아냈는지, 실제 밸런스 패치 이야기로 돌아오겠습니다. 뻘오락실 개발자의 험난한 여정은 계속됩니다.

#개발노트#순서팝#버그분석#자동플레이