AI 게임 공장: 게임을 고치다가 검사기도 다시 고쳤다
표시 날짜는 이 글이 다루는 작업의 대표 기록일이며, 당시 발행된 글을 뜻하지 않습니다. 이후 회고와 적용 방법은 2026년 9월에 정리했습니다.
자동 검사가 전부 초록이라 안심하는 사람에게, 검사 스스로가 잘못된 화면을 보고 통과할 수 있다는 걸 먹빛 겹치기 사례로 보여준다.
먹빛 겹치기에서 원하는 화면 이름으로 캡처를 저장했는데 실제로는 다른 화면이 열려 있던 경우가 있었고, 실패 함수를 강제로 호출한 시연이 진짜 실패 판정 누락을 가릴 수도 있었다 — 테스트가 자기가 만든 상황만 확인하면 게임이 망가져도 통과한다.
회귀 시험을 만들 때는 화면 중앙과 가장자리, 배율이 다른 경우를 각각 실행해보고, 강제로 호출한 시험과 실제 플레이로 도달한 시험을 다른 증거로 구분해 남긴다.
연재 목차
- AI 게임 공장: 게임 하나가 아니라 만드는 과정을 만들고 싶었다
- AI 게임 공장: 많이 만들기에서 네 작품에 집중하기로
- AI 게임 공장: 완료 보고 옆에 실제 확인한 것을 적기 시작했다
- AI 게임 공장: Godot에서 웹으로 옮겨도 남았던 문제
- AI 게임 공장: 화면을 다듬고도 게임을 멈춘 이유
- AI 게임 공장: 완성 대신 부분완성이라고 적고 닫았다
- AI 게임 공장: 방치형으로 장르를 좁혀봤다
- AI 게임 공장: Swift로 옮기며 이전 공장에서 남길 것을 골랐다
- AI 게임 공장: 게임을 고치다가 검사기도 다시 고쳤다
- AI 게임 공장: 심사 제출까지 온 뒤 돌아본 AI 게임 공장
먼저 답하면
이 글에 실은 먹빛 겹치기 캡처에는 09:41이라는 기기 상태 표시가 찍혀 있다. 이건 촬영 시각의 근거가 아니라 스토어 준비용 캡처에 흔히 쓰는 표시일 뿐이다.
Swift 라인에서는 얼음 발자국, 먹빛 겹치기, 볼트 둥지, 물살 짐꾼을 이어서 다뤘다. 경로 찾기와 조각 배치, 볼트 제거처럼 규칙을 바꿔봤다.
하지만 규칙 이름만 다르다고 충분한 것은 아니었다. 같은 모양의 판에서 비슷하게 손가락을 움직이면 닮은 게임이 될 수 있다. 8월 31일 정리에는 화면 형태와 한 판의 시작·종료, 입력 동작까지 비교하는 기준이 추가됐다.

스토어 준비용 보존 화면. 8월 30일 재촬영 기록과 연결되지만 파일의 정확한 촬영 시각은 미확정이다.
검사가 초록이어도 손으로 해보면 달랐다
먹빛 겹치기 사후 기록에는 드래그 판정 위치가 어긋나고 특정 경로에서 실패 판정이 실행되지 않는 문제가 나온다. 온보딩도 글로만 안내하고 있었다. 직접 만져본 뒤 드러난 문제를 다시 규칙과 검사로 옮겨야 했다.
검사기도 틀릴 수 있었다. 원하는 화면 이름으로 파일을 저장했는데 실제 캡처는 다른 화면인 경우가 있었다. 실패 함수를 강제로 불러 시연하면, 실제 플레이에서 실패 판정이 빠지는 문제를 가릴 수도 있었다.
테스트가 스스로 만든 상황만 보고 통과하면 정작 게임의 경로는 확인하지 못한다. 결과 이미지뿐 아니라 어떤 입력으로 그 상태에 갔는지가 필요했다.
물살 짐꾼은 비격자 형태를 시도했고, 후속 변경에는 빈 판 대신 실제 데모 동작을 넣었다는 내용이 있다. 형태를 다르게 만드는 것과 완성은 여전히 별개였다.
이 시기에는 게임 수가 늘어난 만큼 검사에 대한 의심도 구체적이 됐다. 다음에는 캡처 이름이나 통과 숫자보다 그 화면까지 간 과정을 같이 남기려 한다. 확인한 것이 실제 게임인지, 테스트 안에서만 만든 장면인지부터 구분해야 했다.
캡처 검사에 도달 경로를 포함하기
화면 검사 파일명에는 정답이 아니라 요청한 상태가 적혀 있을 뿐이다. 실패 화면을 찍었다면 실제로 실패 조건을 밟았는지, 버튼이 가려지지 않는지, 재시작이 가능한지까지 확인해야 한다. 실패 함수를 직접 호출한 시험과 실제 플레이 시험은 다른 증거로 남긴다.
회귀 시험을 만들 때는 같은 드래그를 화면 중앙과 가장자리에서 실행하고 화면 배율이 바뀐 경우도 비교한다. 좌표 변환이 잘못돼 있으면 한 위치에서는 우연히 맞을 수 있다. 잘못된 입력을 넣었을 때 실패해야 하는 검사도 준비한다.
이 접근은 자동 검증이 틀린 화면으로 통과하는 문제를 줄이는 데 도움이 된다. 테스트 수가 늘었다는 이유만으로 실제 조작을 생략해서는 안 된다. 특정 장면에서 확인한 결과는 그 장면의 증거이지 모든 콘텐츠의 보증은 아니다.
← 이전 글: Swift로 옮기며 이전 공장에서 남길 것을 골랐다 · 전체 목차 · 다음 글: 심사 제출까지 온 뒤 돌아본 AI 게임 공장 →