Dudungsil Games두둥실게임즈
DEVLOG EP.13

Looking back: shipping a game solo in 39 days with AI tools

407 commits between creating an empty project on Sep 14 and launching on the App Store on Oct 23. Where I used AI tools, where they got stuck, and what I had to hold onto myself.

  • Period2026-09-14 ~ 10-23
  • Commits407
  • Reading time10 min

한국어 원문 읽기 →

Left, the dark card-style prototype screen captured on September 14. Right, the pixel-art battle screen from a store screenshot made on October 21
The first prototype at 5:27 PM on Sep 14 (left) and a store screenshot made on Oct 21 (right).

This devlog is the record of one person making a mobile game called Dungeon Division (마계공단: 던전사업부 in Korean). You side with the dungeon instead of the heroes, and your monster staff hold off the adventurer parties that come raiding. It's a pixel-art dungeon management and defense game, and it went live on the Korean App Store at 8:39 AM on October 23, 2026.

EP.01 through EP.12 follow the work in date order. This one looks back at the whole run. A lot of people seem to be searching for how to make a game with AI right now, so I focused on where AI game development tools actually did the work and where they got stuck. Every number here comes from the game repo's commit history and docs.

What 39 days left behind

I created the project at 4:29 PM on September 14. The first commit message was "prepare Unity development environment". I pressed the release button at 8:39 AM on October 23. There are 407 commits in between.

Day one, Sep 14Around launch, Oct 23
Design docs738, a bit over 15,000 lines
Game code (C#)a few prototype files395 files, a bit over 51,000 lines
Automated checksnone121 editor check files
Monsters8185 (counting grade variants)
Storynone10 chapters plus hard mode
In-app productsnone20, all approved in review

The code and doc line counts are from the repo as of today (October 26), so they're a little off from launch day. Some days have no commits at all: Sep 19, 20 and 25, Oct 3 and 6. One day (Sep 18) has 40 commits, and some have 3.

The prototype's lineup screen from Sep 14 next to the lineup screen in an Oct 21 store screenshot
Left: the prototype lineup screen at 5:24 PM on Sep 14. Right: a store screenshot made from real gameplay on Oct 21. Slots per floor, tap a card to place it: that structure never changed.

Put the day-one lineup screen next to the launch screen and the art has nothing in common, but the structure is the same. Each floor has slots, you look at the incoming party, and you place monsters. The board I put together in the first hour survived all the way to launch. That surprised me a bit.

Making a game with AI: which tools did what

I used AI tools heavily on this game. I'm not hiding it, and people keep asking, so here's the list.

AreaToolWhat it did
Code, docs, checksClaude CodeRead the design docs, wrote code and editor checks, made commits
Editor linkMCP for Unity (Unity MCP)Let the AI open the Unity editor, build scenes and run play mode
Early artAI image generationThe Sep 15 lobby painting, the first character sheets
Pixel artPixelLabCharacters, adventurers, gear icons, cutscenes, effects
Voices and SFXElevenLabsStaff voices by grade, bosses, layered battle sounds

Of the 450 commits in the repo as of October 26, 286 list a Claude model as co-author. I also set up a config file so Codex could use the same Unity connection.

People call this "vibe coding a game", but I almost never worked by giving a loose instruction and seeing what came back. From day one I scoped each job: "finish this task from this doc, and it's done when this is true." I think that habit is what got me through the 39 days.

Dev notesHow big one handed-off task was

When I handed off work, I included the design doc's item number. Something like "T03 lineup step in 15_tutorial_unlock; done when the 'monster placed' event fires." Then checking the result just meant comparing it against the doc.

Wherever I could, the "done" condition became an editor check: can the recommended lineup actually start a fight across 22 story stages at 4 dungeon levels, does an old save still open after the save format changes, that kind of thing. That's how the check files piled up to 121. On October 15 I added a runner that executes every check at once inside the open Unity editor.

I also worked across two computers. Android builds happened on a Windows desktop, and each time I left a handoff doc saying how far I'd gotten and what needed checking on the other PC. The AI tools read those docs and pick up from there. The phrase "cross-machine handoff" first shows up in a commit message on October 1.

What worked: docs, checks and sheer volume

Writing docs first helped the most. In EP.02 I threw away the day-one prototype and wrote 18 design docs before rebuilding, and those docs stayed the reference until the end. Every big piece of work after that, like the endgame, payments and localization, also started with a numbered doc. 31 is the endgame, the 20s are payments and the shop, 35 is localization.

Some of the volume I could never have done alone: 185 monsters, 540 gear icons, scripts for 10 story chapters, a backstory for every staff member, and moving over 2,500 Korean strings into a structure that could be translated, then building the English version. As I wrote in EP.08, there was one day where all 54 adventurer looks got redrawn. I handed that kind of repetitive work to AI tools and spent my own time choosing and fixing.

The balance simulator earned its keep too, from fixing a 0% win rate in EP.03 to the 84-day endgame growth check in EP.07. Nobody is going to hand-play 84 days to see if the curve holds.

What didn't: the parts AI couldn't do alone

The art style kept drifting

The first lobby picture in EP.02 was supposed to be pixel art and came back as a painted illustration. So I redid it as pixel art with PixelLab, redrew 24 characters in EP.03, regenerated 130 staff on September 26, and on October 7 redrew all 54 adventurers to match the staff style. Each piece looked fine on its own. Put them on one screen and they didn't belong together. In the end I had to line things up side by side and set the standard myself.

The writing sounded like AI

On September 30 I tore up a big chunk of the in-game text. In story chapters 6 to 10 there were 36 secretary hints that had been copy-pasted and 60 identical adventurer entrance lines, and I rewrote them so each stage had its own. I also cut tutorial lines calling working features "coming soon" and dev labels that had leaked onto the screen.

The next day I fixed names. Vague color words like "Ashen Expedition" and "Mossy Trackers" became the Flame Expedition and the Forest Trackers, and I stripped grade prefixes like "Radiant" and "Mythic" from 130 rows of staff names. "Radiant Quiet Munea" became "Quiet Munea". The doc from that day calls it "feedback to fix wording that all starts to feel the same." AI is great at producing plausible phrases in bulk, and once they pile up everything sounds alike. Reading it and filtering it was my job.

Checks passed, hands-on play still got stuck

When I first installed the game on a phone in EP.04, four bugs showed up, with every automated check passing. Some, like the back button closing the app, can't be reproduced in the editor at all. The save bugs in EP.09 were similar. Problems that only hit players with an old save after the save format changes don't appear in tests that start fresh.

Accounts, review and policy were on me

Store developer accounts, business registration, payment profiles, the privacy policy, loot box odds disclosure (required by Korean law) and app review were things AI couldn't finish for me. We drafted docs and checklists together, but verifying my identity and clicking "agree" was my part. A good share of the time to launch went here. That's in EP.10 and EP.11.

The decisions were mine

Reading the commit history again, every turn in direction has a decision of mine behind it. On September 18 I moved the game's progression axis from infamy and dungeon level to story chapters. On September 22 I renamed every on-screen "monster" to "staff", because if the setting is a public corporation chaired by the Demon Lord, the joke only works when monsters are salaried employees. On October 12 I chose where purchase records would live and wrote down a cost ceiling first. On October 14 I decided that a refund would not claw back staff or resources the player had already received. Launching in Korea only was a call like that too.

AI tools were useful for laying out the options and reasons behind each of these. They made pros-and-cons tables, updated the docs and carried a decision into code and checks quickly. Which way to go still had to come from the person who wanted to play that game. Ask the same question twice and you can get two answers, so whatever I decided went into a doc with a date. That way the next day's task gets done against the same standard.

If you're making a game alone

A few things I'd tell myself after doing this. Not rules, just what I did this time.

Writing down "what counts as done" before handing anything to AI mattered most. Without it you end up judging whether the result looks plausible, and AI always produces something plausible.

For art, I wish I'd locked in a few reference images in the first week. I set the standard late and redrew the same characters several times.

Schedule the first on-device test early. Mine was day 8, and everything that came up that day was invisible in the editor.

And write commit messages as real sentences. That's the only reason I could write all 13 of these posts from the commit log alone.

Curious about the game?

Eight store screenshots made on Oct 21
The eight iOS store screenshots committed on Oct 21 (Korean build): battle, dungeon, lineup, resonance, staff roster, loot, business and story.

Dungeon Division is out now on the Korean App Store for iPhone and iPad. It's free with in-app purchases. You scout the incoming party's elements, place monsters on each floor according to the five-element matchups, and the battle plays out automatically. Gear dropped by defeated adventurers becomes your monsters' gear, and Open for Business mode keeps the dungeon running while you're away. The story follows a new Manager handed a money-losing dungeon at a public corporation chaired by the Demon Lord, and it leans toward dark comedy. You can switch the game to English in Settings. The Android (Google Play) version isn't out yet.

If you found this while looking for indie or pixel-art games, the game page (in Korean) has more screenshots.

The full series

EpisodeDatesWhat it covers
EP.01Sep 14From an empty project to a fighting dungeon in an hour
EP.02Sep 15-1618 design docs and the pixel-art style
EP.03Sep 17Monster growth, gear and the game's name
EP.04Sep 18-21The tutorial and the first on-device test
EP.05Sep 22-23180 monsters and game feel
EP.06Sep 24-29The story from chapter 4 to the ending
EP.07Sep 29-Oct 5Guildmaster battles and hard mode
EP.08Oct 7-11Redrawing 54 adventurers and the gear icons
EP.09OctoberThe days saves kept breaking
EP.10OctoberShop, rewarded ads and the payment server
EP.11Oct 13-21Internal testing, TestFlight and submitting for review
EP.12Oct 21-25App Store launch and the English version

39 days went by faster than I expected, and the commits haven't stopped since launch. I started the English version's design the night of launch, and this morning I was still tweaking the dungeon map screen. I'll keep writing as the updates go out.

NOW AVAILABLE

Dungeon Division

Heroes are intruders, monsters are staff. Save Dungeon No. 7 from being shut down.

Available on the Korean App Store (iPhone/iPad), with English in Settings. Android is not out yet.