
1편에서 만든 던전은 카드랑 체력 막대로 싸우는 장난감이었다. 상대를 보고 배치를 바꾸면 결과가 달라진다는 건 확인했으니, 다음 날부터는 오래 갈 구조를 만들어야 했다.
9월 15일부터 16일까지 커밋은 15개. 이 이틀 동안 문서를 엄청 썼고, 전투를 다시 짰고, 그림체를 정했고, 첫날 프로토타입을 지웠다. 이번에도 그 이틀 사이에 찍었거나 만든 그림만 넣었다.
만들기 전에 적었다: 설계 문서 18개
15일 오후에는 설계 문서 10개를 한 번에 커밋했다. 전투, 모험가, 장비, 경제와 전투 결과, 스토리, 영업(방치형 모드), 시설, 채용과 상점, 튜토리얼과 기능 해금, 토벌대. 첫날 밤에 쓴 7개랑 그날 오전에 쓴 던전 화면 문서까지 합치니 18개, 6,782줄이 됐다.
혼자 만드는 게임에 문서가 왜 이렇게 많냐고 하면, 규칙들이 다 엮여 있어서다. 장비를 바꾸면 전투가 바뀌고, 전투가 바뀌면 보상이랑 경제가 바뀌고, 경제가 바뀌면 상점이랑 성장 속도가 바뀐다. 하나를 머릿속에서만 정해 두면 며칠 뒤에 반드시 어디선가 어긋난다. 그래서 문서마다 이 문서가 어떤 문서를 전제로 하고 어떤 문서에 영향을 주는지도 적었다.
못 정한 것도 목록으로
문서를 쓰다 보면 바로 답이 안 나오는 질문이 계속 생긴다. 그런 걸 문서 여기저기 흘려 두지 않고 결정 목록으로 따로 모았다. 질문마다 일단 쓸 기본값, 대안, 영향받는 문서를 적었다. 이틀 만에 24번까지 갔다. 몇 개만 옮기면 이렇다.
| 번호 | 질문 | 정한 답 |
|---|---|---|
| D-01 | 같은 몬스터를 여러 마리 가질 수 있나? | 개체 단위. 같은 종이어도 한 마리씩 레벨, 장비가 따로 |
| D-02 | 레벨업에 뭘 쓰나? | 골드만. 경험치 없음 |
| D-06 | 전투는 턴제인가? | 실시간 + 대기시간. 0.05초 단위로 계산 |
| D-09 | 세계관 분위기는? | 마왕군 던전 사업본부의 코믹한 직장물. 로비는 던전장 집무실 |
| D-13 | 피해량에 난수를 넣나? | 안 넣는다. 무작위는 치명타랑 도주만 |
| D-16 | 장비 강화가 실패할 수 있나? | 실패 없음. 비용만 든다 |
| D-24 | 그림체는? | 고해상도 도트 |
D-09에서 어두운 마왕 이야기 대신 회사물을 고른 게 이틀 뒤 게임 이름으로 이어진다. 그 전까지 타이틀 화면엔 '던전 사업본부'라고 쓰여 있었다. 강화 실패를 없앤 것, 피해량에 난수를 안 넣은 것도 이때다. 같은 배치면 같은 결과가 나와야 "읽고 받아친다"가 성립하니까.
문서에 적은 건 그 주에 하나씩 화면으로 만들었다. 16일 오후에 찍은 방어 모드 선택 창을 보면 문서에 있던 네 가지 모드, 자유 방어, 스토리, 영업, 토벌대가 버튼으로 다 있다.

"관전이 이 게임의 절반이다"
첫날 전투는 카드 위에서 숫자가 깎이는 화면이었다. 규칙 확인용으론 충분했는데, 이 게임은 배치하고 나서 전투를 지켜보는 시간이 꽤 길다. 기획서 목표가 층마다 15~20초, 방어 한 번에 1~2분이었다. 그 시간이 지루하면 게임 전체가 지루해진다.
그래서 15일 전투 설계 문서에 이렇게 적었다.
카드+체력 막대 표현과 납작한 사이드뷰는 모두 버린다. 이유: 관전이 이 게임의 절반이다.
새 전투 화면은 비스듬히 내려다보는 넓은 방이다. 위에서 모험가가 내려오고 아래에 내 몬스터들이 서 있다. 맨 아래엔 몬스터 초상이 쭉 있어서 궁극기 게이지가 차면 초상을 눌러 직접 쓴다. 자동이랑 배속 버튼도 거기 있다. 잘 만든 수집형 RPG들 전투 화면을 많이 참고했는데, 가져온 건 그림체가 아니라 구도랑 연출이다.
하루 만에 생긴 전투 캐릭터 24체
방향을 정한 그날 저녁, 전투용 도트 캐릭터를 처음 만들어 넣었다. 처음엔 캐릭터 9체에 153프레임, 전장 배경 1장, 속성 효과 정도였다. 밤 11시쯤엔 24체 408프레임, 배경 4장, 속성 효과 20종, 상태 이상 표시 18종, 궁극기 컷인까지 연결해 놨다. 하루에 이만큼 한 건 지금 다시 봐도 좀 신기하다.

캐릭터 시트는 AI 이미지 생성으로, 전장 배경이랑 속성 효과는 AI 도트 도구인 PixelLab으로 만들었다. 시트는 6칸 × 4줄 규격이다. 위에서부터 대기 4프레임, 공격 6프레임, 피격 2프레임, 쓰러짐 5프레임이고 초당 12프레임으로 돈다. 캐릭터를 추가할 때 이 규격대로 시트 한 장만 만들면 된다.
속성은 3개에서 5개로
속성도 그날 다섯 개로 늘렸다. 첫날의 화염·물·자연에 빛과 어둠을 추가했다.
| 속성 | 공명하면 강해지는 쪽 | 많이 나오는 쪽 |
|---|---|---|
| 화염 | 공격 | 몬스터·모험가 둘 다 |
| 물 | 생존 | 몬스터·모험가 둘 다 |
| 자연 | 속도 | 몬스터·모험가 둘 다 |
| 빛 | 보호 | 모험가 |
| 어둠 | 치명 | 몬스터 |
빛이랑 어둠은 서로한테 강하다. 모험가 쪽에 빛이 많고 몬스터 쪽에 어둠이 많아서, 용사 대 마왕군 구도가 속성 분포에도 그대로 보인다. 그날 밤까지 일반 몬스터 15종, 보스 4종, 모험가 직업 6종을 데이터랑 스킬까지 채워 넣었다.
개발자 노트전투 계산과 연출은 이벤트 큐로만 잇는다
새 전투 엔진에서 제일 신경 쓴 건 계산이랑 연출을 완전히 떼는 거였다. 전투 코어는 0.05초 단위로 규칙대로 계산하고, 결과를 "누가 누굴 때렸다", "누가 쓰러졌다" 같은 이벤트 큐로만 내보낸다. 화면은 그 큐를 읽어서 그리기만 한다.
- 공격 대상 규칙 12가지 (맨 앞 적, 체력 제일 낮은 적, 후열에서 체력 낮은 적 등). 앞줄이 비면 뒷줄로 넘어간다
- 예외도 같은 틀에 넣었다. 도발 중인 몬스터가 있으면 단일 공격이 그쪽으로 쏠린다. 보물상자로 위장한 미믹은 처음 3초 동안 '탐욕' 특성 파티한테만 보인다
- 상태 이상 18종은 CSV 표로 관리. 지속 피해는 1초마다 정산하고, 보스한테는 군중 제어를 절반만 건다
- 피해 공식은 능력치 합산 → 방어 → 치명 → 받는 피해 증가 순서로 계산하고 최소 1. 난수는 치명타랑 도주에만 쓴다
이렇게 해 두니 화면 없이도 전투를 수백 번 돌릴 수 있었다. 첫날의 9가지 조합 검사도 새 엔진 검사로 옮겼다. 그 뒤로 연출을 몇 번 갈아엎었는데, 그때마다 승패 계산은 따로 검사할 수 있어서 마음이 편했다.
층 안에 들어가는 모든 것(몬스터, 보스, 나중에 넣을 함정이나 시설물)을 '층 엔티티' 하나로 다루게 확장 지점도 미리 열어 뒀다. 함정 콘텐츠는 아직 없다. 넣게 되면 데이터 표랑 프리팹만 추가하면 된다.
15일 밤, 던전이 깊어졌다
전투 엔진을 붙이고 나서도 그날 밤에만 커밋을 다섯 개 더 했다. 기획서에선 2, 3단계로 미뤄 뒀던 것들인데 하다 보니 그냥 당겨서 만들었다.
- 굴착: 던전 레벨 1~30. 필요한 악명과 골드를 채우고 굴착하면 층이랑 배치 상한이 늘어난다.
- 프리셋: 던전 Lv.5부터 기본, 스토리, 영업 배치를 따로 저장해 두고 바꿔 쓸 수 있다.
- 배치 화면: 몬스터를 고르고 칸을 누르거나, 목록에서 끌어다 놓는다. 끄는 동안 기운, 공명, 층 조합이 어떻게 바뀌는지 미리 보여 주고 놓아야 저장된다.
- 정찰탑: 레벨이 오를수록 모험가 개별 속성, 특성이랑 물약, 들고 있는 장비까지 미리 보인다.
- 보상과 악명: 파티는 등급별로 오고, 많이 막을수록 악명이 올라서 더 세고 돈 많은 파티가 온다.
보상 숫자도 이때 처음 제대로 잡았다. 숙련 등급 4인 파티를 전멸시키면 골드 180에 악명 +45, 두 명만 쓰러뜨리고 나머지가 도망가면 골드 60에 악명 +15. 반대로 뚫리면 악명이 60 깎인다. 첫날 프로토타입의 "이기면 40골드" 같은 임시 공식은 이때 버렸다.

이때 로비에서는 안경 쓴 불씨 슬라임 비서가 "야근 수당은 장비로 주시는 거죠?"라고 하고, 위에는 "본사 전달: 오늘도 안전한 침입을!"이 떠 있었다. 타이틀 문구는 "오늘도 안전한 침입을 준비합니다". 지금 보면 회사물 분위기가 시스템보다 이런 대사로 먼저 잡혀 가고 있었다.
팝업 대신 결재함
로비에서 하나 더 정한 게 있다. 로비에 들어올 때 팝업을 자동으로 안 띄운다. 자리를 비운 사이에 생긴 일은 서류가 돼서 책상 위 결재함에 쌓이고, 플레이어가 한 장씩 결재한다. 영업 실적 보고서, 부화 완료 보고, 숙적 경보, 새 기능을 여는 승인 공문, 사무실이 커질 때 오는 인사 발령 같은 것들이다.
보상이 있는 서류가 위로 오고, 맨 위에 '전체 결재' 버튼이 있다. 결재 안 한 서류는 저장돼서 앱을 꺼도 안 없어진다. 20장이 넘으면 확인만 하면 되는 오래된 서류부터 알아서 처리하고, 보상 서류는 절대 자동으로 안 지운다. 서류가 쌓이면 결재함 위에 장수가 뜨고 비서가 "결재 서류 올라왔습니다!" 하고 말을 건다.
들어올 때마다 팝업이 줄줄이 뜨는 대신, 서류로 쌓아 두고 내가 원할 때 넘기는 구조다. 회사물 설정이랑도 잘 맞는다. 우편함이랑은 섞지 않기로 했다. 우편은 운영 보상용, 결재함은 게임 안에서 일어난 일용이다.
던전이 크면 사무실도 큰다
로비 사무실은 던전 레벨에 따라 바뀌게 설계했다. 처음엔 창고 구석이다. 상자 위에 서류, 촛불 하나, 고장 난 수동 엘리베이터. Lv.5부터는 책상이랑 벽 게시판이 있는 던전장 사무실이 되고, 계획상으로는 집무실, 본부장실을 거쳐 Lv.30이면 마왕 초상화가 걸린 사업본부장실까지 간다. 단계가 바뀌면 로비로 돌아올 때 인부 몬스터들이 짐을 옮기는 짧은 연출을 넣기로 했다. 아직 안 열린 기능의 물건은 단계가 돼도 '공사 중' 천으로 덮어 둔다.
15일 오후엔 2단계 사무실 배경도 만들었다. 창고 상자 자리에 서류 캐비닛이랑 선반, 제대로 된 책상이 놓인 그림이다. 커버에 있는 그 사무실이다.
그림체는 도트로
15일 오전에 로비에 처음으로 그림을 넣었다. 횃불 켜진 던전 사무실, 수동 엘리베이터, 서류함, 안경에 넥타이 맨 불씨 슬라임 비서. AI 이미지 생성 도구로 만든 그림이었다. 요청할 땐 분명 '도트 아트'라고 썼는데, 받아 보니 도트라기보단 정교한 채색 일러스트에 가까웠다.

그날 전투 화면 방향을 정하면서 그림체도 같이 정해야 했다. 채색 일러스트로 가서 캐릭터를 부위별로 잘라 움직이거나, 고해상도 도트로 가거나. 전투에선 수십 종이 공격하고 맞고 쓰러져야 하는데, 도트는 프레임 애니메이션이랑 잘 맞아서 움직이는 캐릭터를 만들기가 오히려 쉬웠다. 위에서 본 전투 캐릭터들도 그렇게 프레임 시트로 만든 거다. 코믹한 회사물 분위기에도 도트가 더 어울렸다.
그래서 고해상도 도트로 확정했고, 다음 날 로비 그림을 진짜 도트로 바꿨다.

새로 그린 게 아니라 원화 구도를 살린 채로 도트로 변환했다. 엘리베이터, 책상, 비서 자리가 그대로라 화면 배치를 하나도 안 고쳐도 됐다. 같은 날 패널, 아이콘, 결과 배너, 게이지도 도트로 새로 만들고 한글 픽셀 글꼴도 넣었다.

개발자 노트되돌릴 수 있게 바꾸기
원본은 안 지웠다. 도트 버전은 Pixel/ 폴더에 같은 파일 이름으로 넣고, 설정값 하나(PixelOffice)로 원화랑 도트를 바꿔 끼울 수 있게 했다.
- 도트 배경은 272×360 픽셀이고 화면엔 정확히 2배, 보간 없이(Point 필터) 그린다. 배율이 정수가 아니면 도트가 뭉개진다.
- 변환은 원화를 같은 비율로 줄인 다음 PixelLab의 이미지 기반 도트 변환을 걸었다. 원화를 얼마나 따라갈지 정하는 강도값이랑 시드를 바꿔 가면서 구도가 안 무너지는 값을 골랐다.
- UI 테두리는 나무, 철, 칩, 슬롯, 양피지 다섯 가지 스킨으로 나눴다. 기본은 철이고, 나무는 주요 버튼이랑 로비 소품에만 써서 누를 곳이 눈에 띄게 했다.
- 한글 픽셀 글꼴은 무료 라이선스인 Galmuri. 글자 크기를 픽셀 격자에 맞춰 반올림한다.
생성할 때 넣은 요청문이랑 설정값은 그림 폴더 README에 남겨 뒀다. 나중에 같은 느낌으로 더 만들 때 꼭 필요하다.
전투 끝나고 1초: 결과 화면과 정산
16일 오후엔 전투 결과 화면을 만들었다. 승리·패배 배너, 상대 파티 요약, MVP 몬스터, 숫자가 올라가는 보상, 얻은 장비 카드, 악명 게이지, 전투 기록 보기. 화면을 누르면 연출을 건너뛴다. 방어에 실패하면 가진 골드의 10%를 잃는데 상한이 있고, 100골드 미만이면 안 잃는다.
플레이어한테는 그냥 결과 화면이지만 만드는 입장에선 제일 조심해야 하는 순간이다. 보상, 손실, 장비, 악명, 다음 손님까지 한꺼번에 바뀌는데 그 중간에 앱이 꺼지면 보상이 두 번 들어오거나 반만 들어올 수 있다.
개발자 노트정산은 다 계산하고 저장은 한 번
정산할 때 요약, 보상, 손실, 지갑, 악명, 다음 방문 파티까지 전부 메모리에서 먼저 계산하고, 저장은 마지막에 딱 한 번 한다. 중간에 오류가 나면 저장 파일은 그대로 남는다.
- 같은 전투를 두 번 정산하지 않게 정산마다 요청 ID를 기록한다. 첫날 만든 "장비 받았음" 표시들은 이 ID 하나로 바꿨다.
- 저장이 실패하면 결과 화면 확인 버튼을 막고 다시 시도를 띄운다.
- 전투 중에 앱이 꺼졌으면 저장해 둔 '정산 대기 결과'로 결과 화면을 다시 띄운다.
이틀 동안 저장 형식이 v4(결재함), v5(정산 대기 결과 복구), v6(5속성, 새 배치 구조)로 세 번 바뀌었고, 바뀔 때마다 이전 저장을 새 형식으로 옮기는 코드를 같이 넣었다. 그래도 저장은 나중에 한 번 크게 말썽을 부린다. 그건 시리즈 뒤쪽에서 따로 쓸 생각이다.
프로토타입 삭제, 그리고 첫 APK
16일 오후 2시 37분 커밋 메시지에 이런 줄이 있다. "프로토타입 어댑터와 프로토타입 씬을 삭제한다." 첫날 한 시간 만에 만든 던전이 여기서 사라졌다. 전투 화면은 새 전투 씬이, 장비 보관함은 대장간 화면이 이어받았다. 9가지 조합 검사만 새 엔진 쪽으로 옮겨서 살려 뒀다.
같은 날 저녁엔 안드로이드 설치 파일(APK)을 뽑는 빌드 스크립트를 만들었다. 프로젝트 기본 패키지 이름에 하이픈이 들어가 있었는데, 안드로이드 앱 ID로는 쓸 수 없는 글자라서 이때 새로 정했다. 에디터 메뉴로도, 에디터를 안 띄운 배치 모드로도 빌드할 수 있게 해 뒀다. 사흘 만에 처음으로 휴대폰에 넣어 볼 수 있게 됐다.
2026.09.15~16 커밋 로그
- 공통 기반, 로비 범위 마무리
- 던전장 집무실 로비, 결재함, 첫 로비 그림
- 설계 문서 10개 추가
- 정산 대기 결과 복구, 3/4 시점 전장 방향 결정
- 5속성, 던전 배치, 몬스터 모델
- 새 전투 엔진 (이벤트 큐, 대상 규칙, 상태 이상)
- 전장 연출, 첫 도트 캐릭터 9체
- 전투 흐름, 시너지, 몬스터 스킬, 보상
- 굴착, 프리셋, 모험가 파티
- 끌어다 놓는 배치 화면, 정찰 정보 공개
- 전투 연출 마무리, 도트 캐릭터 24체
- 결과 화면과 정산, 프로토타입 삭제
- UI 스킨, 픽셀 글꼴, 로비 도트 전환
- 안드로이드 APK 빌드 스크립트
이틀을 돌아보면
첫날만큼 드라마틱한 이틀은 아니었는데, 여기서 정한 게 한 달 내내 따라다녔다. 결정 목록은 그 뒤로도 조금씩 늘어서 지금은 27번까지 있다. 도트 그림체, 이벤트 큐로 나눈 전투, 한 번에 저장하는 정산은 지금 게임에도 그대로 남아 있다.
다음 편은 9월 17일, 몬스터가 레벨업하고 각성하고, 용사한테 뺏은 장비가 진짜 장비 시스템이 된 날이다. 그리고 그날 게임 이름이 정해진다. 지금 게임이 궁금하면 게임 소개 페이지에서 볼 수 있다.

CLOSED TEST
마계공단: 던전사업부
용사는 침입자, 몬스터는 직원. 지금 만들고 있는 이 던전을 출시 전에 가장 먼저 운영해 보세요.
만 14세 이상 · 참여 보상 없음 · Google 설문지로 이동합니다. 테스트 일정은 아직 정해지지 않았어요.