KIM DUKJIN · AI MAKING NOTES

한마디에서
솔빛농장까지

“농장 라이프를 즐기는
컨셉의 게임을 만들고 싶습니다.”

김덕진 소장의 짧은 요청으로 시작한 농장 게임.
방송용 캐릭터와 자동농장을 더하고,
누구나 플레이할 수 있는 두 버전으로 공개했습니다.

기획·시연 김덕진 소장제작 ChatGPT Work

오두막과 풍차, 넓은 잔디밭이 있는 솔빛농장의 배경 원화
01 상상한 농장이 파일이 되고,
플레이할 수 있는 게임이 되었습니다.
실제 게임에 사용한 배경·캐릭터 자산을 구성한 이미지
2공개 게임 버전
60초한글 자막 영상
38장기술 해설 강의

게임을 즐기고,
어떻게 만들었는지 이해하는 기록.

하고 싶은 일을 말하면,
어디까지 완성할 수 있을까?

출발점은 분명했습니다. 농사를 짓고, 두더지에게서 작물을 지키고, 수확물을 팔아 집과 농지를 키우는 게임. 마지막 목표는 대농부가 되는 것이었습니다.

이후 방송에서 보여주기 위해 인물 사진을 닮은 두더지와 자동 운영을 요청했습니다. 결과를 본 뒤에는 “예전과 무엇이 달라졌기에 이런 작업이 가능한가?”라는 질문이 이어졌습니다. 이 페이지는 그 질문에 실제 결과물과 구현 과정으로 답합니다.

짧은 요청, 이어지는 피드백

첫 요청 뒤에 사진 캐릭터, 자동농장, 배너 수정이 추가됐습니다. 최종 결과에는 여러 차례의 제작과 수정이 담겨 있습니다.

같은 농장, 두 가지 플레이

설치 없이 브라우저에서 시작합니다.
각 게임은 새 탭에서 열립니다.

솔빛농장 원본의 농장 배경ORIGINAL

농장 생활의 기본

솔빛농장 원본

밭을 갈고, 물을 주고, 수확물을 팔아 농장을 넓혀갑니다. 두더지가 나타나면 작물을 지켜주세요.

  • 당근·토마토·밀·호박 재배
  • 집·농지·도구 업그레이드
  • 수확과 판매로 대농부 도전
원본 게임 시작
BROADCAST EDITION안경을 쓴 안대표 두더지 캐릭터웃는 이프로 두더지 캐릭터

방송에서 함께 즐기기

안대표와 이프로 방송판

사진을 바탕으로 만든 두더지가 더 자주 찾아옵니다. 이름이 뜨는 출몰 배너와 자동농장도 더했습니다.

  • 기분나쁜 안대표·기분좋은 이프로
  • 농사 자동 / 전체 운영 자동 선택
  • 퇴치 성공 시 해당 출몰 배너 종료
방송판 게임 시작
처음 플레이한다면 · 조작과 자동농장 안내
  1. 게임에서 도구를 고르고 밭을 눌러 경작하고 씨앗을 심습니다.
  2. 물을 준 뒤 자란 작물을 수확하고 판매합니다.
  3. 두더지가 나타나면 눌러 퇴치합니다. 번 돈으로 집·농지·도구를 업그레이드합니다.
방송판의 자동 운영 범위
동작농사만 자동전체 자동
경작·씨앗 구매·물주기·수확자동자동
수확물 판매직접자동
집·농지·도구 업그레이드직접자동
두더지 퇴치별도 자동 퇴치 옵션으로 선택

농사만 자동에도 씨앗값은 필요합니다. 자금이 부족하면 수확물을 직접 판매하세요. 진행 상태는 각 기기·브라우저에 저장되며, 다른 기기와 자동으로 동기화되지는 않습니다. 자동농장은 게임 탭이 보이는 상태에서 진행됩니다.

게임 뒤에서 일어난 일

한국어 자막이 포함된 1분 영상입니다.
음성 없이 내용을 따라갈 수 있습니다.

영상 속 순서

MP4 내려받기

영상 내용을 글로 읽기

짧은 요청 뒤에는 여러 단계의 작업이 있습니다. 요구를 규칙으로 풀고, 코드를 작성하고, 이미지를 연결하고, 실행 결과를 확인해 수정합니다.

저장소에는 결과물과 소스 이력이 남습니다. 완성된 게임은 브라우저에서 실행되며, 플레이할 때 AI 모델을 계속 호출하지 않습니다. 모델의 개선과 실행·검증·저장·배포 환경이 함께 결과를 만듭니다.

요청이 기능이 되는 여섯 단계

사용자의 의도와 실제 구현을
나란히 따라가 봅니다.

01

게임의 목표를 정하다

“농사를 짓고 대농부가 되는 게임”

경작·파종·물주기·수확·판매를 연결하고, 번 돈을 업그레이드에 쓰도록 규칙을 만들었습니다. 골드와 밭, 작물 상태를 코드로 관리합니다.

기술적으로는

engine.js가 게임 규칙을, game.js가 입력과 화면을 맡습니다. 규칙을 화면과 분리해 농사·판매·저장을 화면 없이도 검증할 수 있게 했습니다.

농지는 12칸에서 최대 36칸으로 늘고, 집은 판매가를, 도구는 성장 속도를 높입니다. 누적 판매 6,500 G와 최고 단계 업그레이드가 대농부 달성 조건입니다.

남은 결과농사와 경제가
연결된 원본 게임
02

방송용 캐릭터를 만들다

“사진을 게임 느낌에 맞게 넣어줘”

사진의 특징을 살려 두더지 캐릭터를 만들고, 배경 제거와 가장자리 처리를 보완했습니다. 등장할 때 크기·위치·투명도를 시간에 따라 바꿔 움직임을 연결했습니다.

사용자가 제공한 안경 쓴 인물 사진사진의 특징을 살린 안대표 두더지
기분나쁜 안대표
사용자가 제공한 웃는 인물 사진사진의 특징을 살린 이프로 두더지
기분좋은 이프로
어떤 문제를 고쳤을까요?

생성된 이미지에는 투명 배경처럼 보이는 체크무늬가 실제 픽셀로 남아 있었습니다. 테두리와 연결된 밝은 중립색 영역만 지우는 처리를 추가해 얼굴과 눈의 밝은 부분을 보존했습니다. 이번 자산에 맞춘 보완 방식입니다.

남은 결과게임에 들어간
두 인물 캐릭터
03

방송 흐름에 맞추다

“두더지가 조금 더 자주 나오게”

방송판의 출몰 시도 간격을 7–11초로 줄이고, 안대표와 이프로가 번갈아 나타나게 했습니다. 등장 이벤트에 캐릭터 이름을 연결해 상단 배너에 표시합니다.

출몰 조건과 표시 시간

원본의 출몰 시도 간격은 17–30초입니다. 실제 등장은 작물과 현재 두더지 수 조건을 충족할 때 이뤄집니다. 방송판의 방어 시간은 9초이며, 자동 퇴치는 캐릭터가 보이도록 3.4초 기다린 뒤 실행합니다.

남은 결과캐릭터별 출몰 문구와
더 짧아진 대기
04

자동화의 범위를 나누다

“농사만, 또는 매매와 건물 구매까지”

농사만 자동으로 하는 모드와 판매·업그레이드까지 처리하는 전체 자동 모드를 나눴습니다. 두더지 자동 퇴치는 별도로 선택할 수 있습니다.

자동농장은 어떻게 판단하나요?

automation.js는 수확, 물주기, 심기, 밭갈기 순서로 가능한 동작을 고릅니다. 전체 자동은 5초 간격으로 수확물을 팔고 다음 씨앗 자금을 남긴 뒤 업그레이드합니다.

이 자동농장은 정해진 규칙으로 움직입니다. 게임 실행 중 생성형 AI를 계속 호출하지 않습니다.

남은 결과사용자가 선택하는
자동 운영 범위
05

작은 불편을 고치다

“작물을 지켰으면 배너도 없애줘”

두더지를 퇴치하면 같은 캐릭터의 출몰 배너를 즉시 해제하도록 바꿨습니다. 수동 클릭과 자동 방어가 같은 처리 경로를 사용합니다.

실제 수정 로직 보기
if (r.type === 'mole') {
  if (announcement?.kind === r.kind) {
    announcement = null;
  }
}
updateUI();

화면을 새로 만드는 대신 방어 성공 이벤트가 배너 표시 상태도 바꾸게 했습니다. 실제 코드의 해당 부분을 설명용으로 발췌했습니다.

남은 결과상황과 함께 종료되는
알림 배너
06

검증하고 공개하다

“별개 버전으로, 누구나 접속하게”

게임 규칙과 자동 운영을 확인한 뒤 원본과 방송판을 각각 공개했습니다. 이후 구현 원리를 38장 강의와 1분 자막 영상으로 정리했습니다.

확인한 범위

2026년 9월 9일 제작 기록에는 농사·판매·저장 등 기본 시나리오 6개와 방송판 시나리오 7개, 총 13개 테스트 통과가 남아 있습니다. 전체 자동의 대농부 달성도 통제된 시뮬레이션으로 확인했습니다.

이는 모든 기기의 화면 품질이나 장시간 서비스 운영을 보장하는 수치는 아닙니다. 광범위한 브라우저·기기 검증은 별도 과제로 남았습니다.

남은 결과공개 게임 2개
강의·영상 자료

완성까지 이어주는 네 가지 역할

이번 사례는 모델과 작업 환경이
함께 만든 결과입니다.

01

모델

요구를 해석하고 규칙을 정합니다. 코드를 만들고 결과를 읽어 다음 수정을 결정합니다.

02

실행 도구

코드를 실제 파일로 쓰고 실행합니다. 이미지 생성, 테스트, 배포 같은 작업을 수행합니다.

03

검증과 수정

실행 결과와 오류를 다시 읽습니다. 문제가 있으면 필요한 부분을 고치고 확인합니다.

04

저장과 공개

소스와 결과물을 남깁니다. 방문자는 공개 주소에서 완성된 코드를 실행합니다.

짧은 요청 뒤에 여러 번의
작성·실행·확인·수정이 있습니다.

“한 번에 만들었다”는 체감과
내부 작업 횟수는 다를 수 있습니다.

모델의 변화

GPT-6 Astra에서 달라진 점

공식 가이드는 복잡한 다단계 작업 수행과 변경된 요구 반영의 개선을 설명합니다. 비동기 도구 호출 같은 API 기능도 작업을 이어가는 데 활용할 수 있습니다.

이번 세션의 내부 API 사용 로그는 공개되지 않았으므로 특정 신기능이 직접 성공을 만들었다고 단정하지 않습니다.

OpenAI 모델 가이드 ↗

비교할 때의 기준

이전 모델도 앱 제작을 지원했습니다

GPT-5 공식 가이드에도 새 앱 제작과 여러 파일 수정 능력이 설명돼 있습니다. 과거의 실패 경험을 분석하려면 모델 버전뿐 아니라 도구·권한·시간과 오류 기록을 함께 봐야 합니다.

강의에서는 Claude Fable의 지원 기능도 구분해 설명합니다. 이번 한 사례로 모델 간 성공률을 비교하지 않습니다.

GPT-5 코딩 가이드 ↗
Work의 저장소는 왜 중요할까요?

임시 작업 공간

파일을 편집하고 실행하는 공간입니다. 장기 보관을 전제로 하지 않습니다.

Library

PPT·영상처럼 저장한 산출물을 다음 작업에서 다시 찾아 활용합니다.

Git 저장소

사이트의 소스와 변경 이력을 남깁니다. 원본과 방송판을 구분해 관리합니다.

브라우저 저장

방문자의 자금과 밭 상태를 해당 기기·브라우저에 저장합니다.

파일이 남아 있다는 것과 모델이 그 내용을 항상 읽고 있다는 것은 다릅니다. 후속 작업에서는 필요한 파일을 다시 찾아 문맥으로 가져옵니다.

ChatGPT Work 공식 안내 ↗

자주 묻는 토큰 이야기

만드는 동안의 토큰과
플레이할 때의 실행은 다릅니다.

이번 제작의 실제 총 토큰 수는 미확인입니다. 전체 호출의 사용량 원장이 제공되지 않았습니다.

완성된 게임은 브라우저의 JavaScript로 작동합니다. 자동농장을 켜도 그 자체로 LLM 토큰이 계속 발생하지 않습니다. 강의의 ‘46만 토큰’은 계산 방법을 설명하는 가상 예시입니다.

더 자세히, 한 장씩 읽기

38장의 핵심 내용과 발표자 설명을
브라우저에서도 볼 수 있습니다.

자료를 불러오지 못하면 아래에서 원본 PPT를 내려받아 보실 수 있습니다.

이 장면의 발표자 설명

강의 장면을 선택하면 설명이 표시됩니다.

강의·영상은 2026년 9월 9일 제작 기록을 담았습니다. 모델 사양과 요금 예시는 당시 기준입니다. 웹페이지의 게임 주소와 연결 자료는 2026년 9월 24일 확인했습니다.

무엇을 만들고 싶은지,
먼저 말해보는 일.

사용자는 목표를 정하고 결과를 보며 피드백했습니다.
AI는 도구를 사용해 그 의도를 실행 가능한 결과로 연결했습니다.
이 기록은 그 과정을 직접 보고 설명하기 위한 사례입니다.

솔빛농장 체험하기