<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>개인 개발 on To the Moon</title><link>https://junstellar.github.io/tags/%EA%B0%9C%EC%9D%B8-%EA%B0%9C%EB%B0%9C/</link><description>Recent content in 개인 개발 on To the Moon</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><lastBuildDate>Sat, 29 Aug 2026 09:00:00 +0900</lastBuildDate><atom:link href="https://junstellar.github.io/tags/%EA%B0%9C%EC%9D%B8-%EA%B0%9C%EB%B0%9C/index.xml" rel="self" type="application/rss+xml"/><item><title>AI로 게임 만들기 #10 — 두 번 만들고 두 번 버렸습니다 (공개빌드 #10)</title><link>https://junstellar.github.io/p/ai-game-lab-build-10/</link><pubDate>Sat, 29 Aug 2026 09:00:00 +0900</pubDate><guid>https://junstellar.github.io/p/ai-game-lab-build-10/</guid><description>&lt;img src="https://junstellar.github.io/p/ai-game-lab-build-10/dice-push.webp" alt="Featured image of post AI로 게임 만들기 #10 — 두 번 만들고 두 번 버렸습니다 (공개빌드 #10)" /&gt;&lt;p&gt;&lt;a class="link" href="https://junstellar.github.io/p/ai-game-lab-build-9/" &gt;지난 편&lt;/a&gt;의 오디세이아에 이어, 열 번째 게임을 만들었습니다. &lt;strong&gt;두 번 만들었고, 두 번 다 버렸습니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;그래서 이번 편에는 새 게임이 없습니다. 대신 &lt;strong&gt;두 번 물린 이야기&lt;/strong&gt;를 씁니다.&lt;/p&gt;
&lt;p&gt;버린 두 개는 지우지 않고 그대로 올려뒀습니다. 게임 랩 목록에는 없지만 주소로는 들어갈 수 있어요. 읽으시다가 궁금하면 직접 눌러보세요.&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;&lt;a class="link" href="https://junstellar.github.io/games/dice-yacht/" &gt;첫 번째 시제품 — 오늘의 주사위&lt;/a&gt;&lt;/strong&gt; · &lt;strong&gt;&lt;a class="link" href="https://junstellar.github.io/games/dice-push/" &gt;두 번째 시제품 — 한 번 더&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="열-번째는-그림-없는-게임으로-가려-했습니다"&gt;열 번째는 그림 없는 게임으로 가려 했습니다
&lt;/h2&gt;&lt;p&gt;지금까지 만든 게임들은 &lt;a class="link" href="https://junstellar.github.io/p/claude-local-image-generation/" &gt;ComfyUI&lt;/a&gt;로 그린 이미지를 씁니다. 그런데 이미지는 유한합니다. 아무리 많이 그려도 언젠가 나왔던 게 또 나오고, 그때부터 흥미가 떨어지죠.&lt;/p&gt;
&lt;p&gt;그래서 이번엔 &lt;strong&gt;그림 없이 만들자&lt;/strong&gt;고 정했습니다. 주사위 눈까지 CSS 점으로 찍는 게임. 이 판단 자체는 지금도 맞다고 생각합니다.&lt;/p&gt;
&lt;h2 id="첫-번째--완성했는데-손이-안-갔습니다"&gt;첫 번째 — 완성했는데 손이 안 갔습니다
&lt;/h2&gt;&lt;p&gt;야추(Yacht) 방식으로 만들었습니다. 주사위 다섯 개를 세 번까지 굴려 열두 개 족보를 채우는 게임.&lt;/p&gt;
&lt;p&gt;잘 돌아갔습니다. 족보 채점은 경계값까지 열여덟 가지를 검증했고, 보너스도 라운드 진행도 정확했습니다. 파일 하나 21KB, 그림 한 장 안 썼습니다.&lt;/p&gt;
&lt;p&gt;그리고 열었는데 — &lt;strong&gt;손이 안 갔습니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="첫 번째 시제품 — 열두 칸에 숫자를 채우는 화면" class="gallery-image" data-flex-basis="208px" data-flex-grow="86" height="1040" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://junstellar.github.io/p/ai-game-lab-build-10/dice-yacht.webp" srcset="https://junstellar.github.io/p/ai-game-lab-build-10/dice-yacht_hu_764d70869ad5e92a.webp 800w, https://junstellar.github.io/p/ai-game-lab-build-10/dice-yacht.webp 904w" width="904"&gt;&lt;/p&gt;
&lt;p&gt;처음엔 설명이 부족한 줄 알았습니다. 점수판에 &lt;code&gt;포카드&lt;/code&gt; &lt;code&gt;풀하우스&lt;/code&gt; &lt;code&gt;S.스트레이트&lt;/code&gt;라고만 적혀 있었으니까요. &lt;strong&gt;뭘 만들어야 그 점수가 나는지가 화면 어디에도 없었습니다.&lt;/strong&gt; 야추를 아는 사람만 읽을 수 있는 화면이었죠.&lt;/p&gt;
&lt;p&gt;그런데 규칙을 다 정리하고 나서도 그대로였습니다. 문제는 설명이 아니었습니다.&lt;/p&gt;
&lt;h2 id="야추엔-긴장이-없습니다"&gt;야추엔 긴장이 없습니다
&lt;/h2&gt;&lt;p&gt;&lt;img alt="긴장 곡선 비교 — 야추는 한 판 내내 평평하고, 푸시-유어-럭은 굴릴 때마다 치솟았다 터진다" class="gallery-image" data-flex-basis="469px" data-flex-grow="195" height="940" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://junstellar.github.io/p/ai-game-lab-build-10/dice-tension.webp" srcset="https://junstellar.github.io/p/ai-game-lab-build-10/dice-tension_hu_41997b6820b72825.webp 800w, https://junstellar.github.io/p/ai-game-lab-build-10/dice-tension_hu_d8ebc0ef7fee0d74.webp 1600w, https://junstellar.github.io/p/ai-game-lab-build-10/dice-tension.webp 1840w" width="1840"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;잃을 게 없습니다.&lt;/strong&gt; 매 라운드 무조건 점수를 챙기고 넘어갑니다. 0점을 박아도 그냥 다음 라운드죠. 위험이 없으면 긴장도 없습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;결정이 스릴이 아니라 숙제입니다.&lt;/strong&gt; &amp;ldquo;5의 합 20점이냐 포카드 23점이냐&amp;quot;는 심장이 뛰는 선택이 아니라 계산 문제입니다. 최적해가 있어서, 익숙해지면 기계적으로 두게 됩니다.&lt;/p&gt;
&lt;p&gt;그리고 결정적으로 — &lt;strong&gt;야추는 원래 여럿이 둘러앉아 떠들면서 하는 게임입니다.&lt;/strong&gt; 재미의 절반이 사람인데, 혼자 폰으로 하면 그게 빠지고 &lt;strong&gt;엑셀 채우기&lt;/strong&gt;만 남습니다.&lt;/p&gt;
&lt;h2 id="두-번째--이번엔-숫자로-맞췄습니다"&gt;두 번째 — 이번엔 숫자로 맞췄습니다
&lt;/h2&gt;&lt;p&gt;갈아엎었습니다. 같은 주사위인데 매 순간 결정이 있는 방식으로요.&lt;/p&gt;
&lt;p&gt;굴려서 점수 나는 눈만 챙기고, 남은 걸로 &lt;strong&gt;또 굴릴지 멈출지&lt;/strong&gt; 고릅니다. 굴렸는데 점수 나는 눈이 하나도 없으면 &lt;strong&gt;그 라운드는 전부 소멸.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="두 번째 시제품 — 한 번 더 굴릴지 멈출지 고르는 화면" class="gallery-image" data-flex-basis="230px" data-flex-grow="95" height="880" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://junstellar.github.io/p/ai-game-lab-build-10/dice-push.webp" srcset="https://junstellar.github.io/p/ai-game-lab-build-10/dice-push_hu_ba7b3e9764c84bed.webp 800w, https://junstellar.github.io/p/ai-game-lab-build-10/dice-push.webp 844w" width="844"&gt;&lt;/p&gt;
&lt;p&gt;이번엔 감으로 안 맞추고 &lt;strong&gt;자동 플레이어를 3천 판씩 돌렸습니다.&lt;/strong&gt; 겁쟁이(한 번 챙기고 바로 멈춤), 신중(터질 확률 30%에서 멈춤), 욕심(45%까지), 무모(터질 때까지).&lt;/p&gt;
&lt;p&gt;주사위 다섯 개일 땐 &lt;strong&gt;라운드당 굴림이 평균 1.8회&lt;/strong&gt;였습니다. 두 번 굴리면 라운드가 끝나니 긴장이 쌓일 틈이 없었죠. &lt;strong&gt;여섯 개로 늘리자 최적점이 생겼습니다.&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;전략&lt;/th&gt;
					&lt;th&gt;평균 점수&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;겁쟁이&lt;/td&gt;
					&lt;td&gt;1058&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;신중&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;1343&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;욕심&lt;/td&gt;
					&lt;td&gt;1082&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;무모&lt;/td&gt;
					&lt;td&gt;0&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;덜 굴려도 손해, 더 굴려도 손해. 원하던 모양이었습니다.&lt;/p&gt;
&lt;h2 id="짐작이-또-틀렸습니다"&gt;짐작이 또 틀렸습니다
&lt;/h2&gt;&lt;p&gt;라운드가 아직 짧게 느껴져서, 파클(Farkle)의 고전 규칙을 떠올렸습니다. &lt;strong&gt;&amp;ldquo;최소 300점을 넘겨야 멈출 수 있다.&amp;rdquo;&lt;/strong&gt; 강제로 더 굴리게 만드니 긴장이 늘겠거니 했죠.&lt;/p&gt;
&lt;p&gt;재보니 정반대였습니다.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;&lt;/th&gt;
					&lt;th&gt;겁쟁이&lt;/th&gt;
					&lt;th&gt;신중&lt;/th&gt;
					&lt;th&gt;격차&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;최소 없음&lt;/td&gt;
					&lt;td&gt;1058&lt;/td&gt;
					&lt;td&gt;1343&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;+27%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;최소 300점&lt;/td&gt;
					&lt;td&gt;1282&lt;/td&gt;
					&lt;td&gt;1321&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;+3%&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;최소 점수는 긴장을 더한 게 아니라 &lt;strong&gt;결정을 없앴습니다.&lt;/strong&gt; 모두를 같은 플레이로 몰아버려서, 잘 두든 못 두든 점수가 비슷해졌습니다. 그대로 넣었으면 게임을 망칠 뻔했습니다.&lt;/p&gt;
&lt;h2 id="다-맞췄는데-재미가-없었습니다"&gt;다 맞췄는데 재미가 없었습니다
&lt;/h2&gt;&lt;p&gt;확률까지 버튼에 그대로 띄웠습니다. &amp;ldquo;한 번 더 — 2개 · 터질 확률 44%&amp;rdquo; 옆에 &amp;ldquo;멈추기 — 550점 확정&amp;rdquo;. 확률을 보여주니 결정이 진짜 결정이 되더군요.&lt;/p&gt;
&lt;p&gt;그리고 다시 열었는데 — &lt;strong&gt;여전히 재미가 없었습니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;여기서 접었습니다. 규칙을 통째로 바꿔서 두 번 만들었는데 두 번 다 안 걸렸으면, 문제는 규칙이 아니라 &lt;strong&gt;장르&lt;/strong&gt;입니다.&lt;/p&gt;
&lt;h2 id="답은-이미-제-게임-목록에-적혀-있었습니다"&gt;답은 이미 제 게임 목록에 적혀 있었습니다
&lt;/h2&gt;&lt;p&gt;버리기로 하고 나서야 지금까지 만든 걸 다시 봤습니다.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;게임&lt;/th&gt;
					&lt;th&gt;재미의 정체&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;🗑️ &lt;a class="link" href="https://junstellar.github.io/games/paper-hoop/" &gt;종이 농구&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;당겨서 놓고 → &lt;strong&gt;날아가는 걸 본다&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;🎣 &lt;a class="link" href="https://junstellar.github.io/games/deep-fishing/" &gt;심해 낚시&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;챔질하는 &lt;strong&gt;찰나의 손맛&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;🪐 &lt;a class="link" href="https://junstellar.github.io/games/space-merge/" &gt;우주 진화&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;떨어뜨리면 &lt;strong&gt;터지듯 합쳐진다&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;🍰 &lt;a class="link" href="https://junstellar.github.io/games/stack-tower/" &gt;디저트 탑&lt;/a&gt;&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;타이밍&lt;/strong&gt; 맞춰 딱&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;제가 제일 아끼는 것들은 죄다 &lt;strong&gt;손과 눈으로 하는 게임&lt;/strong&gt;이었습니다. 결과가 0.5초 안에 몸으로 옵니다.&lt;/p&gt;
&lt;p&gt;주사위는 야추든 파클이든 &lt;strong&gt;머리로 숫자를 판단하는 게임&lt;/strong&gt;입니다. 화면에 움직이는 게 없어요. 제가 뭘 만들면 재밌어하는지는 이미 만들어놓은 것들에 다 적혀 있었는데, 정작 저만 그걸 안 보고 있었습니다.&lt;/p&gt;
&lt;h2 id="그래픽-줄이자가-화면이-안-움직인다가-됐습니다"&gt;&amp;ldquo;그래픽 줄이자&amp;quot;가 &amp;ldquo;화면이 안 움직인다&amp;quot;가 됐습니다
&lt;/h2&gt;&lt;p&gt;이번에 제가 세운 조건은 **&amp;ldquo;이미지 에셋을 줄이자&amp;rdquo;**였습니다. 그런데 만들다 보니 어느새 **&amp;ldquo;화면이 움직이지 않아도 된다&amp;rdquo;**로 바뀌어 있었습니다.&lt;/p&gt;
&lt;p&gt;이 둘은 전혀 다릅니다. &lt;strong&gt;그림 파일이 없는 것과 화면이 정지해 있는 건 다른 문제입니다.&lt;/strong&gt; 도형과 선만으로도 얼마든지 움직일 수 있는데, 저는 한 번에 둘 다 없애버렸습니다.&lt;/p&gt;
&lt;p&gt;바이브 코딩을 하면서 계속 겪는 일인데, &lt;strong&gt;조건을 애매하게 잡으면 결과는 가장 극단으로 갑니다.&lt;/strong&gt; &amp;ldquo;줄이자&amp;quot;라고 하면 &amp;ldquo;없애자&amp;quot;가 되어 돌아옵니다. 이번엔 그걸 눈으로 확인할 때까지 몰랐습니다.&lt;/p&gt;
&lt;h2 id="이번에-배운-것"&gt;이번에 배운 것
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;재미는 측정이 안 됩니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;지난 편들에서 저는 측정으로 많은 걸 잡았습니다. &lt;a class="link" href="https://junstellar.github.io/p/ai-game-lab-build-6/" &gt;병합할수록 공간이 남는&lt;/a&gt; 구조적 결함도, &lt;a class="link" href="https://junstellar.github.io/p/ai-game-lab-build-8/" &gt;배경이 아니라 대비가 문제였던 것&lt;/a&gt;도, &lt;a class="link" href="https://junstellar.github.io/p/ai-game-lab-build-9/" &gt;화면이 시키는 대로 하면 지는&lt;/a&gt; 판도 숫자가 알려줬습니다. 이번에도 측정은 제대로 작동했습니다. 밸런스는 잡혔고, 확률은 정확했고, 틀린 짐작도 잡아냈습니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;그런데 그게 재미를 만들어주진 않았습니다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;숫자로 답할 수 있는 건 &lt;em&gt;어떻게 만들 것인가&lt;/em&gt;까지였습니다. &lt;em&gt;무엇을 만들 것인가&lt;/em&gt;는 재보기 전에 정해야 하는 문제였고, 저는 거기서 두 번 틀렸습니다.&lt;/p&gt;
&lt;p&gt;그래서 다음부터는 순서를 바꾸기로 했습니다. &lt;strong&gt;&amp;ldquo;이 게임의 재미는 정확히 이 순간이다&amp;quot;를 한 문장으로 먼저 적고 시작합니다.&lt;/strong&gt; 그 문장이 안 써지면 만들지 않습니다. 완성한 뒤에 재미를 묻는 건 늦습니다. 두 번 버리고서 알았습니다.&lt;/p&gt;
&lt;h2 id="목록을-다시-짰습니다"&gt;목록을 다시 짰습니다
&lt;/h2&gt;&lt;p&gt;다음에 만들 후보에서 &lt;strong&gt;머리로 계산하는 게임을 통째로 걷어냈습니다.&lt;/strong&gt; 주사위도, 카드 배치도, 암산도 뺐습니다. 대신 &lt;strong&gt;그림 없이도 화면이 움직이는 게임&lt;/strong&gt;으로 다시 채웠습니다.&lt;/p&gt;
&lt;p&gt;버린 두 개가 아깝진 않습니다. 두 번 만들어보고서야 &lt;strong&gt;제가 뭘 만들면 안 되는지&lt;/strong&gt; 알았으니까요. 아홉 개를 만드는 동안 몰랐던 걸, 열 번째를 버리면서 알았습니다.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;버린 시제품 둘은 그대로 열어뒀습니다. 어디가 재미없는지 직접 확인해 보셔도 좋고요. 저는 두 번째가 그래도 좀 낫다고 생각하는데, 어느 쪽도 다시 켜고 싶진 않더군요.&lt;/p&gt;
&lt;p&gt;👉 &lt;strong&gt;&lt;a class="link" href="https://junstellar.github.io/games/dice-yacht/" &gt;오늘의 주사위 (첫 번째)&lt;/a&gt;&lt;/strong&gt; · &lt;strong&gt;&lt;a class="link" href="https://junstellar.github.io/games/dice-push/" &gt;한 번 더 (두 번째)&lt;/a&gt;&lt;/strong&gt; · &lt;a class="link" href="https://junstellar.github.io/games/" &gt;AI 게임 랩 전체 보기&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>