수학 놀이터로 돌아가기
제작 과정 공개

이 게임들은
이렇게 만들어집니다

교육과정 데이터에서 출발해 여러 AI가 역할을 나눠 만들고, 만든 쪽과 다른 회사의 AI가 수학을 처음부터 다시 계산합니다. 그리고 80점을 못 넘으면 게시하지 않습니다. 실제로 절반이 버려집니다.

24편게시된 게임
24편버려진 게임
88.0점게시작 평균 (게이트 80)
9편버렸다가 고쳐 살린 것

1출발점 — 교육과정 데이터와 재미 연구

아이디어에서 시작하지 않습니다. 교과서가 정한 배움의 목표에서 시작합니다.

게임 한 편을 만들기 전에 2022 개정 교육과정의 초등 수학 성취기준을 통째로 데이터로 정리해 둡니다. 학년, 학기, 단원, 성취기준 코드([6수01-05] 같은 것), 그 단원에서 아이들이 자주 틀리는 지점까지 한 줄씩 들어 있습니다. 이 파일은 사람만 손댈 수 있고, AI는 읽기만 합니다.

제작이 시작되면 가장 먼저 “이번엔 어느 칸이 비어 있는가”를 고릅니다. 이미 만든 게임들의 학년·단원 분포를 훑어서 비어 있는 단원을 찾고, 그 단원의 성취기준을 그대로 이번 게임의 과제로 넘깁니다. 그래서 게임이 늘어날수록 교과서를 고르게 덮게 됩니다.

재미는 따로 연구합니다

교육과정만 보면 문제집이 됩니다. 그래서 별도로 세계의 잘 만든 게임들이 왜 재미있는지를 계속 조사해 “메커닉 광산”이라는 목록으로 쌓아둡니다. 특정 게임을 베끼는 게 아니라 재미의 원리만 뽑습니다 — 예를 들면 “아슬아슬하게 타이밍을 맞추는 쾌감”, “쌓다가 무너지는 긴장”, “한 수 잘못 두면 판이 막히는 압박” 같은 것들입니다.

여기서 지키는 선. 상표·캐릭터·그림·소리는 절대 가져오지 않습니다. 빌려오는 것은 “어떤 조작이 왜 즐거운가”라는 원리뿐이고, 이름과 그림은 전부 새로 만듭니다. 조사한 대상의 목록도 공개하지 않습니다.

그다음이 이 공장에서 제일 중요한 한 걸음입니다. 수학 개념과 재미 원리를 짝짓는 것. 좋은 짝은 “계산해서 답을 고르는” 형태가 아니라 계산 자체가 조작이 되는 형태입니다. 분수를 골라 누르는 게임보다, 분수만큼 실제로 잘라내야 다리를 건널 수 있는 게임이 낫습니다. 이 기준은 뒤에서 점수로도 강제됩니다(§4).

덤으로, 최근에 쓴 메커닉과 색감은 점수를 깎아서 다시 뽑히지 않게 합니다. 같은 단원에 이미 쓴 조작 방식이면 큰 감점, 최근 몇 편에 나온 색 분위기도 회피 목록으로 넘어갑니다. 게임들이 서로 닮아 보이지 않게 하려는 장치입니다.

2역할을 나눈 AI 에이전트들

한 AI가 혼자 다 만들지 않습니다. 만드는 쪽과 판정하는 쪽이 분리돼 있습니다.

맨 위에 오케스트레이터가 있습니다. 이 역할은 직접 코드를 쓰지 않습니다. 계획을 세우고, 각 하위 에이전트에게 작업지시서를 주고, 돌아온 결과를 실제로 확인하는 일만 합니다. “고쳤습니다”라는 대답은 증거로 치지 않고, 스크린샷을 직접 열어 보고 숫자를 다시 재는 것이 규칙입니다.

기획 (3명 동시)

서로 다른 AI 셋이 동시에 서로 다른 각도로 기획안을 냅니다. 정통 아케이드형 / 요즘 모바일 게임 문법 / 비주얼 승부. 하나만 시키면 게임들이 서로 비슷해집니다.

심사

기획 3안 중 하나를 고릅니다. 이때 재미 예측 게이트를 겁니다 — “아무 생각 없이 눌러도 이기는 구조”, “계산을 코드가 대신해 주는 구조”면 총점과 무관하게 탈락시킵니다.

아트

배경·주인공·썸네일·타이틀 이미지를 병렬로 생성합니다. 게임마다 정해진 아트 디렉션 축(종이공작 / 플랫 벡터 / 네온 / 클레이 / 픽셀 / 인쇄 / 칠판 / 도면 / 직물 / 유리 등)을 따르고, 최근 게임과 같은 축은 금지입니다.

빌드

실제 게임을 HTML 한 파일로 구현합니다. 다 만들고 나면 자기 게임에 로봇을 붙여 스스로 부숴 봅니다(§4의 무뇌봇).

수학 검산

게임을 만든 곳과 다른 회사의 AI가 문제 생성기를 통째로 돌려 정답을 전부 다시 계산합니다. 하나만 틀려도 게시 불가.

검수

100점 만점으로 채점하고, 못 고친 항목을 목록으로 남깁니다. 점수를 후하게 주지 말라는 지시가 프롬프트에 박혀 있습니다 — “평범하면 70점대”.

수리

검수에서 지적된 항목을 딱 한 번 고칩니다. 고친 뒤에는 자동 점검·수학 검산·검수를 처음부터 다시 받습니다.

레퍼런스 스카우트

게임이 몇 편 쌓일 때마다 새로운 재미 원리를 찾아 후보로 쌓아둡니다. 바로 반영되지 않고 사람이 승인해야 목록에 들어갑니다.

이 분업에는 두 가지 원칙이 있습니다. 첫째, 같은 파일을 두 에이전트가 동시에 건드리지 않습니다 — 게임 한 편에 담당 하나. 둘째, 만드는 에이전트와 판정하는 에이전트를 절대 겹치지 않게 합니다. 자기 답안을 자기가 채점하면 같은 실수를 두 번 놓칩니다.

3여러 회사의 모델을 섞는 이유

같은 모델이 만들고 같은 모델이 검산하면, 같은 맹점을 공유합니다.

이 공장은 Claude·GPT·Grok 계열의 서로 다른 회사 모델을 역할별로 나눠 씁니다. 단순히 여러 개를 쓰는 게 아니라, 어려운 판단이 필요한 단계(심사·빌드·검수)에는 상위 티어, 기획·수정에는 중간 티어를 배정합니다. 기획만은 예외로 세 회사에 동시에 맡기는데, 여기서는 정확도보다 다양성이 더 중요하기 때문입니다.

가장 중요한 규칙: 수학은 교차 검증

게임을 구현한 모델과 다른 회사의 모델이, 그 게임의 문제 생성기를 독립적으로 돌려 정답을 전수 재계산합니다. 문항 몇 개를 표본으로 보는 게 아니라 생성 가능한 문제를 쭉 뽑아서 전부 다시 풉니다.

“같은 모델이 만들고 같은 모델이 검산하면 같은 맹점을 공유한다.” — 공장 설정 파일에 적혀 있는 배정 원칙

이게 왜 필요한지 보여주는 실제 사례가 있습니다. 어떤 게임은 겉보기엔 멀쩡했고 다른 항목은 전부 통과했는데, 독립 검산에서 오답 보기 중 하나가 우연히 정답과 같은 값인 문항이 발견됐습니다. 아이 입장에서는 정답을 눌러도 틀렸다고 나오는 게임입니다. 같은 날 하루에만 세 편이 수학 문제로 즉시 폐기됐고, 그 세 편 모두 나머지 검사는 다 통과한 상태였습니다.

한국 교과서 표현도 검산 대상입니다. 「십의 자리에서 반올림」과 「반올림하여 십의 자리까지」는 완전히 다른 조작입니다(225 → 앞은 200, 뒤는 230). 이걸 헷갈려 게임 하나를 통째로 폐기한 뒤로, 이 함정은 모든 제작 지시문 맨 앞에 경고로 박혀 있습니다.

한 모델이 멈추면 자동으로 갈아탑니다

AI 서비스는 가끔 죽습니다. 실제로 어느 날 밤 네 회차가 연달아 통째로 실패한 적이 있는데, 원인은 빌드용 모델의 사용량이 소진된 것이었습니다. 그때의 폴백 장치는 “그 도구가 설치돼 있는가”만 확인하고 있어서 작동하지 않았습니다.

그래서 규칙을 바꿨습니다 — 폴백은 “도구가 있는가”가 아니라 “결과가 나왔는가”로 판단합니다. 결과물이 없거나 오류가 섞여 나오면 즉시 다른 회사 모델로 한 번 재시도합니다. 그리고 그때 조용히 사라졌던 네 회차는 나중에 소급해서 실패 기록으로 남겼습니다. 실패를 기록에서 지우지 않는 것도 규칙입니다.

4검수 — 41가지 자동 점검과 100점 채점

기계가 확실히 판정할 수 있는 것과, 사람 같은 판단이 필요한 것을 나눠서 봅니다.

① 자동 점검 41항목

먼저 프로그램이 게임을 실제 브라우저에 띄워 41가지를 기계적으로 검사합니다. 통과/실패만 있는 이진 검사입니다.

이 중 17개는 “치명” 항목이라 하나라도 걸리면 그 자리에서 제작이 중단됩니다. 그리고 이 41개 목록 자체가 과거에 실제로 밟은 지뢰의 기록입니다. 예를 들어 “다른 게임 이미지 도용 검사”는, 아트 담당 AI가 “최근에 만들어진 이미지 파일”을 찾다가 동시에 돌아가던 다른 게임의 이미지를 집어온 사고 이후에 생겼습니다.

② 무뇌봇 테스트 — “아무거나 눌러도 이기는 게임” 걸러내기

빌드 담당이 자기 게임에 생각 없는 로봇 4종을 붙여 각각 200판을 돌립니다.

로봇전략합격선
연타 봇항상 같은 버튼만 반복해서 누른다완주율 25% 이하
순환 봇1→2→3→4 순서로 돌려가며 누른다완주율 25% 이하
무작위 봇매번 아무 곳이나 아무 방향으로완주율 25% 이하
무입력 봇아무것도 하지 않고 그냥 둔다완주율 0%

표가 잘려 보이면 옆으로 밀어 보세요 →

이 시험을 넘지 못하면 그 게임은 수학을 몰라도 이길 수 있는 게임이고, 그건 수학 게임이 아닙니다. 실제로 어떤 게임은 “꾹 누르고 있기”만으로 100% 이기는 상태였는데, 문항이 1,232개나 있었는데도 그랬습니다. 진단은 이랬습니다 — “문항 수가 문제가 아니라, 결과가 입력 전에 이미 정해져 있다.” 핵심 구조를 다시 만든 뒤 무뇌봇 승률은 100%에서 0%가 됐습니다.

③ 100점 채점

마지막으로 검수 AI가 게임을 직접 플레이하고 스크린샷을 눈으로 보면서 채점합니다. 배점 자체가 이 공장의 우선순위 선언입니다.

항목배점무엇을 보는가
교육과정 정합성25성취기준이 실재하고 내용이 맞는가, 핵심 개념을 정면으로 다루는가, 학년 수준에 맞는가
수학 정확성25손으로 다시 풀어 하나라도 틀리면 0점 + 총점과 무관하게 즉시 폐기
재미20수학이 동사인가(그냥 문제창이면 감점), 30초 안에 재미있는가, 난이도 곡선이 있는가
비주얼20이 중 8점은 “앞선 게임들과 달라 보이는가”에 배정 — 최근 게임 화면과 대조합니다
모바일·성능10휴대폰에서 잘리지 않는가, 부드럽게 돌아가는가, 숫자·분수가 읽히는가

표가 잘려 보이면 옆으로 밀어 보세요 →

점수와 별개로 탈락 조건 네 가지가 더 있습니다. 아무 생각 없이 이길 수 있는가 · 한 번 실수하면 회복이 불가능한가 · 물리적 은유가 앞뒤가 맞는가 · 큰 화면에서 양옆이 텅 비어 있는가. 특히 두 번째는 아이들을 위한 게임에서 중요합니다. 한 번 틀렸다고 끝나버리면 배울 기회가 없습니다.

580점 게이트 — 절반은 게시되지 않습니다

게이트는 “목표”가 아니라 코드에 박힌 불변식입니다.

게시되려면 네 조건을 전부 만족해야 합니다. 하나라도 어긋나면 그 게임은 이 사이트에 올라오지 않습니다.

1검수 총점 80점 이상 평범하면 70점대가 나오도록 설계된 채점표입니다.
2즉시 폐기 사유 없음 수학 오류 1건, 또는 한 번 실수하면 회복 불가 → 점수와 무관하게 탈락.
3자동 점검 치명 항목 0건 41항목 중 17개는 하나만 걸려도 즉시 중단.
4독립 수학 검산 통과 다른 회사 모델의 전수 재계산에서 오류 1개만 있어도 실패.

이 80이라는 숫자는 낮출 수 없습니다. 게시 프로그램 안에 하한이 상수로 박혀 있어서, 어떤 설정값을 넣어도 80 아래로는 내려가지 않고 거부됩니다. 그리고 게시하는 입구가 하나뿐입니다 — 자동 사이클도, 사람이 손으로 되살린 게임도 같은 문을 지나야 합니다.

게시율 50%는 실패가 아니라 게이트가 일하고 있다는 증거입니다. 24편을 게시하는 동안 24편을 버렸습니다. 통과한 것만 남았기 때문에 평균이 88점인 것이고, 만약 전부 올렸다면 이 사이트의 평균은 지금보다 훨씬 낮았을 겁니다.

미달이면 딱 한 번 고칩니다

점수가 모자라면 수리 담당이 지적 사항을 전부 처리하고 자동 점검 → 수학 검산 → 검수를 처음부터 다시 받습니다. 재검수 지시문에는 이렇게 적혀 있습니다 — “이것은 재검수다. 봐주지 마라. 여전히 미달이면 폐기가 맞다.”

기회를 한 번으로 제한한 데는 이유가 있습니다. 무한히 다시 시도하게 두면 점수가 통과선에 닿을 때까지 갈아내게 되고, 그 순간 게이트는 의미가 없어집니다.

65겹 루프 — 공장이 스스로 나아집니다

게임을 만드는 건 한 줄로 흘러가는 공정이 아니라, 서로 다른 속도로 도는 다섯 겹의 되먹임입니다.

“2시간마다 게임 한 편”이라는 말은 가장 안쪽 한 겹만 설명한 것입니다. 실제로 품질을 만드는 건 그 바깥을 도는 네 겹입니다. 이 네 겹이 없으면 지금 게시된 24편 중 9편은 아예 존재하지 않고, 나머지 15편도 지금 점수를 받지 못합니다.

5겹 되먹임 루프 다이어그램 가운데 '게임 1편'을 중심으로 다섯 개의 고리가 겹겹이 돌고 있습니다. 안쪽부터 L0 생산 루프, L1 자기수정, L2 학습, L3 캠페인, L4 부활이며 각 고리의 화살표는 출발점으로 되돌아옵니다. 게임 1편 L0 L1 L2 L3 L4
다섯 고리는 모두 출발점으로 되돌아옵니다. 바깥으로 갈수록 도는 주기가 길고, 고치는 범위가 넓어집니다.
L0 · 생산 루프2시간마다단원 고르기 → 기획 3안 → 심사 → 아트 → 빌드 → 자동 점검 → 수학 검산 → 검수 → 게시 또는 폐기. 한 편을 만드는 한 바퀴.
L1 · 사이클 안의 자기수정몇 분~십몇 분검수에 걸리면 되돌아가 고치고 다시 전 과정을 탑니다. 빌드가 자기 게임을 로봇으로 부숴 보는 것도 이 층입니다.
L2 · 사이클 사이의 학습하루폐기된 게임들을 모아 실패 유형을 찾아내고, 그걸 다음 게임들의 제작 지시문에 규칙으로 심습니다. 이번 게임이 아니라 앞으로 만들 모든 게임을 고칩니다.
L3 · 캠페인며칠~주사람의 지적 하나로 이미 게시된 전체 목록을 전수 점검하고 한꺼번에 고칩니다. 그리고 같은 문제가 다시는 안 생기도록 새 검사 항목을 만듭니다.
L4 · 부활비정기버린 게임을 원인만 고쳐 다시 게이트에 세웁니다. 지금 게시된 24편 중 9편이 여기서 나왔습니다.

전체 공정 흐름도

다섯 고리가 실제 파이프라인에서 어디에 붙어 도는지 한 장으로 담은 그림입니다. 클릭하면 원본 크기로 열립니다.

수학 게임 공장의 5겹 피드백 루프 시스템 전체 흐름도 — L0 생산 파이프라인(크론 발사부터 게시·배포까지), L1 사이클 내 자기수정(수정 루프·러너 폴백·무뇌봇 자가테스트), L2 사이클 간 학습(폐기 패턴 수집→게이트 승격), L3 캠페인(사용자 지적→전수 감사→일괄 수리), L4 부활 트랙(rejected/ 보존→salvage→재게시), 그리고 게이트 3원칙과 장부·감사 스크립트
파란 박스가 한 사이클(L0)이고, 빨간 선이 미달 시 돌아가는 수정 루프입니다. 아래쪽 네 띠가 그 결과를 받아 다음 사이클로 되먹입니다.

L2가 실제로 작동한 사례

어느 하루, 여섯 회차가 연속으로 폐기됐습니다. 교육과정 점수도 비주얼 점수도 통과 수준이었는데 재미 점수 하나가 평균 6.8/20이라 게이트가 무너진 것이었습니다.

폐기작 열두 편의 검수 기록을 전부 다시 읽어서 실패 유형 여덟 가지를 뽑아냈습니다. 그중 결정적인 발견은 이것이었습니다 — 화려한 연출을 아무리 많이 붙여도, 조작이 판단과 연결돼 있지 않으면 재미 점수는 회복되지 않는다. 실제로 연출 기법 아홉 가지를 다 넣고도 재미 4점을 받은 게임이 있었습니다.

그래서 성공작들과 대조해 네 가지 축을 뽑아 기획·심사·빌드 세 단계에 각각 게이트로 심었습니다. 답을 고르는 공간과 조작하는 공간이 같은가 / 아무렇게나 눌러서 성공할 확률이 낮은가 / 실패에 이빨이 있는가 / 기획서의 핵심 재미가 코드에 실제로 있는가.

개입 전 (6회차)개입 후 (11회차)
총점 평균63.772.2  (+8.5)
재미 평균6.8 / 2012.4 / 20  (1.8배)

표가 잘려 보이면 옆으로 밀어 보세요 →

다만 정직하게 덧붙이면, 그날도 게시는 0건이었습니다. 최고점이 79점이었거든요. 게이트를 하나 올리면 병목은 사라지는 게 아니라 옆으로 이동합니다. 새로 드러난 병목(수학 오류, 그리고 같은 날 새로 도입한 디자인 다양성 감점)이 다음 사이클의 숙제가 됩니다.

L3 캠페인은 항상 다섯 박자입니다

1사람의 지적 보통 스크린샷 한 장에서 시작합니다.
2전수 감사 전 게임을 여러 화면 크기로 자동 캡처하고 AI가 판정한 뒤, 오케스트레이터가 교차 확인합니다.
3근본 원인 찾기 범인은 거의 항상 “우리가 직접 쓴 제작 지시문 몇 줄”이었습니다.
4일괄 수리 게임 한 편당 담당 에이전트 한 명씩 붙여 병렬로.
재발 방지 게이트 신설 이게 없으면 캠페인이 아니라 그냥 잡일입니다. 이후 만들어지는 모든 게임이 자동으로 이 검사를 받습니다.

실제로 있었던 캠페인들입니다. “거의 모든 게임이 휴대폰처럼 화면 가운데서만 논다”는 지적 → 20편 전수 감사 → 큰 화면용 배치 규격을 새로 만들어 11편 전환 → 데스크톱 화면 검사 항목 신설. “배지가 게임 요소를 가린다”는 지적 → 20편 × 여러 화면 크기 × 여러 상태로 280장을 캡처해 AI가 판정 → 결함 53건 확정 → 18편 전부 수리. “게임들이 다 똑같아 보인다”는 지적 → 화면 색과 코드를 기계로 비교했더니 최근 게임들의 스타일 코드가 문자 그대로 47~78% 동일했고, 원인은 모든 게임에 같은 스타일 문구를 강제로 붙이던 지시문이었습니다 → 아트 디렉션 10축을 만들고 축당 정원을 3편으로 제한.

여기서 배운 것. 품질 하한을 정하는 규칙은 반드시 획일화를 낳습니다. 검사할 수 있는 형태로 품질을 정의하면 만드는 쪽은 그 형태에 최적화하고, 그러면 전부 똑같아집니다. 그래서 하한 게이트를 만들 때는 다양성 게이트를 짝으로 붙입니다.

7버려진 게임을 되살리는 트랙

첫 점수는 그 게임의 상한이 아니라 진단값입니다.

게이트에 걸린 게임은 지워지지 않습니다. 폴더째 보관함으로 옮겨 통째로 보존됩니다. 그리고 검수관이 “원인이 국소적이다”라고 판단하면 되살릴 가치가 있는 것으로 표시됩니다.

부활이 싼 이유는 분명합니다. 기획도 그림도 코드도 이미 값을 치른 상태이고, 남은 것은 “무엇을 고쳐야 하는지 적힌 정확한 작업 지시서”뿐이기 때문입니다. 그리고 되살릴 때도 봐주기는 없습니다 — 수학 재검산, 무뇌봇 재측정, 자동 점검 41항목, 그리고 같은 채점표로 재검수. 신작과 똑같은 문을 통과해야 합니다.

게임첫 검수부활 후
겹쳐딱5892
꽝도장5187
경계폭주6591
폴짝이6590
쩍쩍7587
등불을 켜미달92

표가 잘려 보이면 옆으로 밀어 보세요 →

재미있는 건 부활 과정에서 새로 발견되는 것들입니다. 부활은 재작업이 아니라 두 번째 정밀 검사거든요. 어떤 게임에서는 정답이 하나가 아닌 문항이 발견됐습니다(직사각형도 평행사변형이니까요). 어떤 게임에서는 수학적으로 똑같이 맞는 답인데 오답 처리하는 보스가 있었습니다.

또 한 편은 게시된 뒤에 “애들이 풀 수 없는 속도”라는 지적을 받았습니다. 그래서 낙하를 계산할 시간(6초)판정하는 순간(2.4초)으로 쪼개 다시 설계하고, 어린이의 반응 속도(1.5~4.5초)를 흉내 낸 로봇으로 다시 측정해 확인했습니다. 게시 후에 받은 지적도 게임을 되돌립니다.

8솔직하게 적어두는 한계

자랑만 적으면 이 페이지의 의미가 없습니다.

사람의 관찰은 1급 입력입니다. 사람이 남긴 의견은 다음 제작 사이클의 기획 지시문과 검수 지시문에 그대로 삽입돼서, 그 게임의 채점에 직접 반영됩니다. 지금까지 이렇게 반영된 의견이 46건입니다.

궁금한 점이나 “이 게임 이런 게 이상해요” 같은 지적은 언제든 환영합니다. 대부분의 큰 개선은 스크린샷 한 장에서 시작했습니다.

게임 보러 가기 → 처음으로 ↑