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

I Built a Tutorial, Then Played It on My Phone

On the 18th, 40 commits went into a tutorial, a story script and an app icon, and the game's progression changed shape. On the 21st I played it on my phone and fixed most of what I wrote down in one day.

  • Period2026-09-18 ~ 09-21
  • Commits59
  • Reading time14 min

한국어 원문 읽기 →

Three story cutscene frames made on Sep 21, showing the dungeon office, the knight Robel and Director Gremlin
Story cutscene previews made on the afternoon of Sep 21.

By the end of part 3 the game ran. You could grow monsters, steal gear and clear story chapter 1. The problem was that someone opening it for the first time had no idea what to do. Lots of screens, lots of menus, zero explanation.

(If you're new here: Dungeon Division is a mobile dungeon defense game where adventurer parties raid your dungeon and you place monster staff on each floor to stop them.)

So on September 18 I started with a tutorial. That day had 40 commits. The 19th and 20th had none, and the first commit on the morning of the 21st was a doc of notes I'd taken while playing on my phone. This part covers those four days. As always, the images are only things made at the time.

Starting with the tutorial

A new game gives you two Ember Slimes, a Coral Crab, a Moss Golem and the final boss Naia. Before this, a new save still came with the 8 prototype monsters and an empty boss slot, so that day I made it match the design. Nothing is placed for you on purpose. The first placement should be the player's.

I laid the tutorial out in 9 steps.

StepWhat happens
T01 PostingPrologue: Mir from HR opens with "Congratulations on your posting to the Dungeon Division of Netherworld Inc."
T02 First guestsAlert that the first adventurers are coming, the defend button, jump to story 1-1
T03 PlacementShows the enemy is a 3-member Nature party, has you place monsters in slots
T04 First defenseLocked at 1× speed. "Skills fire automatically when the cooldown fills." Try Rockfall
T05 SettlementLoot, Notoriety and MVP explained
T06 Level upThe secretary slime appears; level one monster to Lv.2
T07 HiringApprove the memo in the in-tray, one free hire
T08 Dungeon tabTour the dungeon by elevator, end on the placement screen
T09 MatchupsSee the Water party in 1-2 and pick Nature monsters

I drew speech bubbles, a finger pointer and highlight frames, and made the guide portraits that day: the secretary slime and an HQ guide.

Tutorial guide portraits and pointers made on Sep 18
Tutorial art from the Sep 18 commits. Left to right: the secretary slime, the HQ guide portrait, a tap pointer and a drag pointer.

The first full run kept getting stuck

Every rule check passed, but when I actually clicked through from start to finish, the run kept getting stuck. Around 10 a.m. I had an AI tool drive the editor's play mode from a fresh save all the way to T08 and fixed the spots one by one.

  • On the placement step you could pick up a monster but had nowhere to put it. The tutorial blocks touches outside the highlighted area, and it had highlighted the monster list while dimming the slots.
  • Placing a single monster advanced to the next bubble, so the first defense had to be fought with one monster.
  • Stage 1-1 normally ends on floor 1, but the bubble waiting for "Heading down to floor 2" stayed on screen, sitting over the result button.

More turned up when I played it again in the afternoon. Using Rockfall twice ended 1-1 on floor 2, so you never saw the boss floor. I limited powers to one use in the first defense only. Tapping the free hire finished the step instantly and wiped the hiring animation. And the skip button sat right next to "Next," so I moved it to the top-right corner.

I also added a "Restart from scratch" button to the development build settings. Before that, seeing the tutorial from the beginning meant deleting the save file by hand.

Dev notesDeadlocks in forced-input tutorials

Forced tutorial steps eat any touch outside the highlight. But a step like placement, which needs two taps in two places (list and slot), always deadlocks if you highlight only one. So drag bubbles no longer block input, and the step advances on a "monster placed" event.

Bubbles that wait on battle ("This is floor 2" and so on) got a close button. Closing one only hides the bubble. The step still advances on its original event. If closing skipped to the next bubble, you'd get "This is floor 2" while still on floor 1. One rule decides which bubbles get a close button, and a check verifies that the 3 battle-waiting bubbles have one while Rockfall-tap and "Next" bubbles don't.

For the power limit, the check spams Rockfall at every start time and confirms it only fires once and the run still reaches Naia and wins.

Mir from HR and the company glossary

That afternoon I wrote a separate reference doc for the story script: Netherworld Inc.'s org chart, characters, a company glossary and tone rules.

Netherworld Inc. is a public corporation and the chairman is the Demon King, who never appears. He only shows up as a stamp in the approval box and a portrait. The player is the manager of Dungeon 7 in the Dungeon Division, nicknamed the "deficit dungeon." Memos come from HQ's planning office, and the chapter 2 rival is the Trap Division, which is after the Dungeon Division's budget. HQ tracks three numbers: escape rate (share of adventurers who leave alive, target 0%), revenue and industry reputation.

I also pinned down how the jokes work. HQ is stiff, the secretary is practical, and only the adventurers are dead serious. The laugh comes from the temperature gap between the three, so I wrote that if anyone borrows another's tone, it falls apart.

My favorite part was the table that gives every game system a company word. Screen labels keep the plain system terms like "assign" and "defend," and the company words appear only in dialogue and memos.

SystemIn dialogue and memos
Adventurer partyvisitors, guests
Party wipedEscape rate 0% ("shared as a best practice")
Dungeon breachedincident, complaint ("please submit an incident report")
Level uptraining
Awakeningpromotion ("Moss Golem, promoted to assistant manager")
Gear / lootingsupplies / recovering lost property
Excavationbuilding extension
Lineup presetshift roster

I set up the characters too. Mir from HR is friendly but goes strictly by the manual and adds "Congratulations!" even to bad news. At first, the HQ guide art was standing in for Mir in the tutorial. At 3:51 p.m. I drew a proper will-o'-the-wisp Mir, and 20 minutes later redrew Mir with sparkly eyes to match the secretary's style. In the evening I drew the chapter 2 rival, Director Gremlin.

How Mir's portrait changed, and Director Gremlin
Sep 18. Left to right: the HQ guide standing in for Mir, the first Mir at 3:51 p.m., Mir redrawn at 4:12 p.m., and Director Gremlin drawn in the evening.

The same day I wrote the script for all 12 stages of chapter 2, "Quarterly Review." There's also a rule that the secretary's lines can't depend on a specific species. I might swap the secretary for another monster later, so lines like "I'll go wake the slimes" are banned.

The app icon

Around 2 p.m. I made the app icon. I pulled four candidates: the secretary slime under an arch, a slime peeking through a door gap, a horned iron door with weapons, and a staff member holding a key. I picked the first one, and exported Android adaptive, round and legacy versions.

Four app icon candidates and the final icon
Icon candidates from the Sep 18 commit. The four on the left are the candidates; the far right is the final icon.

Switching progression to the story

At 2:11 p.m. I bumped the design doc to v0.3. This was the biggest decision of the day.

The original plan made Notoriety and dungeon level the backbone. You earned Notoriety in free defense, expanded the dungeon by excavating, and features opened along the way. The trouble is that it leaves players unsure what to do right now. So I moved the backbone to story chapters. The goal is always one thing: clear the next stage. New features open through HQ approval when you clear stages. Dungeon level only grows structure like floors, slots and boss escort seats. Free defense, business, facilities and hiring became places you go to grow when the story stops you.

I built the walls on purpose. 1-6, 1-8 and 1-10 became "wall" stages with a wall marker on the map and hints. Lose at a wall and the result screen shows up to 3 growth recommendation cards: unapproved business earnings, leveling the weakest placed monster, better gear sitting in storage, a free hire, free defense. Tap one and it finishes settlement and takes you there. Lose at the same wall three times in a row and the secretary says something.

Wall difficulty was tuned with the simulator. It assumes a story-only player and runs chapter 1 through real settlement. Regular stages had to sit at 90%+ win rate, walls at 40% or less, rising to 85%+ after one day of growth (15 free defenses plus business). Running it showed that with looted gear and real gold flowing in, the old walls were all easy, so I raised wall adventurer levels: 1-6 from 8 to 11, 1-8 from 6 to 9, 1-10 from 14 to 16.

I recalculated the economy as well. Each dungeon title (Unknown, Rumored, Infamous…) was tuned to take 1, 2, 3, 4 and 5 days, by cutting costs and leaving income alone. In part 3 I said the gold for Lv.1 to 70 dropped to 132,000. One day later I cut it again, to around 16,000.

Playing it on my phone

The 8:48 a.m. commit on the 21st isn't code, it's a doc. I'd installed the game on an Android phone and played until the 1-6 wall stopped me, plus free defense, business and facilities, and wrote everything down. The top of the doc says "Causes are guesses, code not checked yet."

There were 4 bugs.

  1. Pressing the phone's back button just closed the app.
  2. Losing a free defense restarted the first tutorial from the beginning.
  3. After that, every free defense ended with "Go to office" popping up.
  4. Tapping the recommended lineup in story mode produced a lineup that broke the stage's restrictions.

And 7 rough spots. Story restrictions were hard to notice. The monster list at the bottom scrolled sideways, which felt awkward. It wasn't clear when a battle had ended, and the settle button was hard to see. There was no way to see how many Soulstones you had. Business and facilities had no explanation on first visit. The facility screens all looked the same.

Free defense was also way too easy. Stuck at the 1-6 wall, I ran free defenses and every adventurer went down on floor 1. Two ideas came out of that: show around four parties when you enter free defense and let you pick one, and cap daily entries with tickets.

Everything I fixed that day

That day had 19 commits. All 4 bugs were fixed before 10 a.m.

The back button problem was Android's newer back gesture setting (Predictive Back). It was enabled, so the OS took the key first and closed the app before the game's own "back" handling ever saw it. I turned that off and made unconfirmed quit requests go back one screen instead.

The tutorial restart was my own mistake. I'd attached the "rewind the tutorial if you lose the scripted 1-1 defense" rule to every loss. So any free defense loss wiped tutorial progress. Bug 3 was a side effect of that.

The recommended lineup had two causes. The recommender knew nothing about stage restrictions, and chapter 1 judges lineups as if you had 6 monsters even as the dungeon grows, while the recommender filled up to the dungeon's cap. Past dungeon Lv.3, every chapter 1 recommendation was being rejected.

Dev notesRepairing saves that were already broken, and checking every recommendation

Saves where the tutorial got rewound are fixed automatically on load. If there's a clear record for a stage after 1-1, the forced tutorial must have finished, so those saves get every step marked complete again. If the player lost 1-1 itself, nothing past it is cleared, so it rewinds as originally designed.

The recommender now judges using the rules at that stage and places monsters needed for restrictions like "at least n" first. After the fix I checked that recommendations could start a defense across all 22 stages at dungeon Lv.1, 3, 5 and 7. Before the fix, 4 to 13 were rejected at each level under the same conditions. That full sweep lives on in the story checks. If your monsters simply can't meet a restriction (only 1 Nature monster for 1-6, say), the recommendation popup now says "Your staff can't meet this restriction: at least 3 Nature (1/3)."

The text size on the placement screen sent me down a hole for a bit. The pixel font snaps to two sizes, 11px and 14px, and enlarging inside a text with size tags stretches the bitmap and blurs it. So sizes are split into separate text objects, and emphasis uses color only. I also measured the strings for all 22 stages to make sure they fit in the box.

While I was at it, I changed the restriction policy. Unlike stars, restrictions block you from starting a defense at all. Putting those on regular stages was just frustrating. So restrictions stayed only on the 3 wall stages (1-6: at least 3 Nature, 1-8: 4 or fewer monsters, 2-8: 1 awakened), and the rest became star conditions. The Fire ban on 1-5 "Frost Hunt" is now "earn a star by winning without Fire." HQ memo lines changed from "prohibited" to "bonus" too.

I worked through the rough spots the same day.

  • The card at the top of the story placement screen got a bigger stage name, and conditions now show a green ✓ when met and a red ✕ when broken. A slot that breaks a restriction on its own gets a red background, and list cards dim.
  • The monster list became a 4-column vertical grid.
  • When a battle ends, the screen darkens and shows success or failure, why it ended and how long it took, with a big "See Settlement" button.
  • Soulstone counts for all five elements are pinned above the monster list.
  • Business and the 5 facilities show a guide on first visit.
  • Every facility got its own interior art.
The 5 facility interiors drawn on Sep 21
Facility interiors from the Sep 21 commit, in order: Treasury, Hatchery, Training Ground, Forge and Watchtower.

For free defense I wrote a doc first and then changed it. When you enter, you compare four parties (Easy, Normal, Challenge, High Risk) and pick one. Each has different power and rewards. The reason it had been easy was that visiting parties were decided by Notoriety alone, so the same old guests kept coming even as the story moved on. Story progress counts now. Running 20 times with a roster right before 1-6, the old version ended on floor 1 every time, while the Challenge party never once ended on floor 1. I kept the easy party on purpose, for farming.

Tickets are 20 a day. They refill to 20 at 5 a.m., with no carry-over and no hourly recharge. My feedback notes also said "recharge 1 per hour," but I dropped it when I cleaned things up.

Free defense placement screen and monster comparison on the afternoon of Sep 21
Screens saved to the repo around 5 p.m. on Sep 21. On the left placement screen you can see 'Compare 4 candidates' and Tickets 20/20 at the top and the 4-column monster grid below. On the right, card comparison by rarity.

In the afternoon I added guild trends and nemeses too. The element of incoming parties shifts based on the auras you used in your last 20 defenses, and parties that flee or break through come back as nemeses, stronger, 3 to 6 defenses later.

All of this was verified in the editor and with automated checks, though. The doc from that day says "needs recheck on a real Android device."

Story art that afternoon, too

That afternoon I also gave each story cutscene its own pixel art and added lobby theme music. At night I hooked up a sound effect system that changes with the situation.

Story cutscene previews from the afternoon of Sep 21
Cutscene previews saved to the repo on the afternoon of Sep 21: chapter 1 'First Day at Work', 'The Seat Kept Empty' and 'The Name Not in the Report'.

And that night I took the monster roster to 50 species. More on that next time.

Key commits, 2026-09-18 to 21

  1. Starting monsters, prologue, tutorial T01-T09
  2. Scripted first defense, fixes for stuck spots found while running it
  3. Economy retuned for 1/2/3/4/5 days per title
  4. 10 more monsters, art by rarity
  5. Design doc v0.3, progression moves to the story
  6. App icon
  7. Story script reference (org chart, characters, glossary)
  8. Mir's portrait
  9. Wall difficulty via story progression simulation
  10. Chapter 2 (12 stages), Director Gremlin
  11. Android playtest feedback written up
  12. Back button and tutorial rewind fixes
  13. Restriction-aware recommendations, placement screen cleanup
  14. Playtest UX fixes, opponent choice in free defense
  15. Free defense tickets
  16. Story cutscenes, lobby music
  17. Situational sound effects

Looking back on the four days

The 18th was the day I looked at what I'd made alone as if I were someone playing it for the first time, and the 21st was the day I played it on a real phone. Both ended in roughly the same place. Even when every check passes, tapping through by hand always finds a spot where you get stuck. Still, splitting the feedback into bugs, rough spots and ideas meant I could deal with most of it in a single day.

Next up: the roster grows to 180 monsters and the combat finally gets some weight, September 22-23. If you want to see the game first, there's the game page (in Korean).

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.