코어 루프
01 게임
이 게임의 한 바퀴와 그 시계를 정합니다. 틱이 없는 벽시계 파생 모델입니다. 주머니의 수량도 자동 전투의 대미지도 타임스탬프 차이의 소급 계산값입니다. 앱을 꺼도 진행되고, 인터벌은 없습니다.
한 줄 요약 — 자원을 더하는 타이머가 없습니다. 타임스탬프를 저장해 두고, 읽을 때마다
floor(경과 / 단위)를 다시 셉니다.
1. 벽시계 파생 모델
| 저장 위치 | 필드 | 시작점 |
|---|---|---|
| 주민마다 | VillagerState. | 마지막 주머니 비운 시각 |
| 전사마다 | VillagerState. | 마지막 전투 정산 시각 |
채집 원형 공식(src/game/gather.ts 헤더):
capacity = BASE + (level - 1) * PER_LEVEL
amount = min(capacity, max(0, floor((now - gatheredAt) / MS_PER_UNIT)))
세 함수(villagerPouchCapacity, villagerGatherMs, gatheredAmount) 상세는 채집과 주머니.
| 상수 | 값 |
|---|---|
GATHER_ | 8,000 ms |
| 단위당 시간 하한 | 2,000 ms |
POUCH_ | 100 |
POUCH_ | 10 |
| 레벨 | 용량 | 만충까지 |
|---|---|---|
| 1 | 100 | ≈ 13분 20초 |
| 5 | 140 | ≈ 18분 40초 |
| 10 | 190 | ≈ 25분 20초 |
| 20 | 290 | ≈ 38분 40초 |
전투: src/game/battle-auto.ts의 syncAutoBattle. BATTLE_HIT_MS = 4,000 ms. 오프라인에 여러 스테이지 정리 가능.
| 채집 | 전투 | |
|---|---|---|
| 결과 | 순수 파생값 | 누적 상태(damageDealt, highestCleared) |
| 별도 정산 | 필요 없음 | syncBattle() 필요 |
| 보상 | 수거해야 가방으로 | 클리어는 전리품 자루에 쌓고, 수거해야 가방으로 |
syncBattle() 호출 5곳: 스토어 생성 직후, 전사 상세 열릴 때, 전사 상세 갱신, 1초 틱, 주민 상세 닫을 때.
버프는 from/until 구간, buffedWorkMs가 배율 적분. 용량 버프만 창 최댓값. 상세는 요리와 음식 효과.
2. 한 바퀴
| 단계 | 화면 | 조작 | 호출 |
|---|---|---|---|
| 영입 | 주민 탭 → 영입 오버레이 | 직업 → 후보 → 영입 | recruitVillager |
| 방치 | (없음) | 없음 | 시간만 흐름 |
| 수거 (개별) | 주민 상세 | 가방으로 옮기기 | collectVillager |
| 수거 (일괄) | 주민 탭 → 수거 명세서 | 모두 수거 → 수거 | collectAllVillagers |
| 수거 (전리품) | 주민 상세(전사) | 전리품 → 가방으로 옮기기 | collectBattleSpoils |
| 판매 | 가방 탭 | 타일 → 판매 → 수량 확인 | sellResource |
| 요리·제작 (주문) | 주민 상세(요리사/대장장이) | 요리하기/제작하기 → 제작 | craft |
| 요리·제작 (완성) | (없음, 대기가 끝나면) | 없음 | syncCrafting |
| 제작 대기 단축 | 주민 상세 → 제작 중 → 항목 | 즉시 완료 (인장) | rushCraftJob |
| 음식 사용 | 주민 상세 | 사용 | consumeFood |
| 레벨업 | 주민 상세 | 레벨 업 | levelUpVillager |
| 장비 | 주민 상세 | 슬롯 → 장착 / 각인 | equipItem · enchantEquipment |
| 광산 이동 | 주민 상세(광부) | 이동 → 확인 | setMinerMine |
| 던전 출정 | 주민 상세(전사) | 출정 → 확인 | setBattleDungeon |
| 미션 보상 | 미션 탭 | 받기 | claimMission |
| 출석 보상 | 미션 탭 → 접속 | 오늘의 보상 받기 | claimLoginReward |
새 세이브: 골드 120, 인장 0, 주민 0명, 빈 가방. 명부와 영입, 주민과 직업 참조. 수거 경로: 개별(상세), 일괄(명세서, 무료·무제한), 전리품(전사 상세, 전사 개인). 자동 수거는 없습니다. 레벨업 비용 10 × n × (n + 10) 골드(v26에서 경험치 삭제). 성장과 레벨 참조. 전투는 루프와 병렬(던전과 몬스터, 전투). 미션은 탭 열 때 syncMissions() 리셋 판정(미션과 출석). 미션·출석·전투의 골드·인장이 다음 영입 재원(두 재화, 경제 균형).
3. 부팅과 오프라인 정산
| 순서 | 일어나는 일 |
|---|---|
| 1 | createGameStore(0) — 세이브 읽기. 버전이 다르면 백업 후 폐기하고 새로 시작, 파싱 실패면 백업 후 영속화 중단 |
| 2 | syncBattle() 1회 — 오프라인 전투 정산 |
| 3 | 로케일·오디오·골드 연출 바인딩 |
| 4 | 계정·클라우드 pull·쿠폰·네이티브 (비동기, 순서 보장) |
| 5 | introSeen false → 세계관과 인트로 컷씬, 그 외 → buildGame() |
| 6 | buildGame() — 6개 화면 DIV, visibility 전환. 시작 탭 = 주민 |
쿠폰은 클라우드 pull 이후. 세이브와 마이그레이션, 구조 개요 참조.
4. 루프를 가속하는 것
| 가속기 | 곱하는 대상 | 출처 |
|---|---|---|
채집 버프 (gather_) | 채집 창 시간 적분 | 포자 수프 ×1.25, 마녀의 약차 ×1.5, 광부 꼬치 ×1.6 |
용량 버프 (pouch_cap) | 주머니 상한 (창 최댓값) | 꽉찬 도시락 ×1.5, 480분 |
즉시 수확 (harvest) | 분→개수, 가방에 직접 | 생선 스튜 8분 |
전사 공격력 (warrior_atk) | 전사 개인 전투 시간 적분 | 불꽃 전골 ×1.25, 용린 스테이크 ×1.6 |
전리품 (loot_) | 클리어당 추가 드랍 (전사 개인) | 독초 절임 +1, 30분 |
장비 gatherSpeed | 단위당 시간 나눔 | 주무장 1.2 × 장신구 1.1 = 1.32 |
장비 atk | 전사 개인 공격력 | 전사 장비 3슬롯 |
| 각인 | 보너스 1 + 0.4 × level 배 (최대 ×2.2) | 인장 8 / 14 / 20 |
광고 (collect_) | 일괄 수거 +10% | 수거 명세서, 10분 쿨다운 |
광고 (gather_) | 선택 주민 채집 속도 ×1.5, 20분 | 주민 카드, 20분 쿨다운 |
왕실 가죽 가방 (perm_) | 주머니 용량 ×2 | 인장소 영구 특권 |
집사의 손길 (perm_) | 개별·일괄 수거 ×1.1 · 전 채집 속도 ×1.5 | 인장소 영구 특권 |
5. 루프를 막는 것
| 벽 | 효과 |
|---|---|
| 주머니 용량 상한 | Lv.1 ≈ 13분, Lv.10 ≈ 25분 만충. 넘친 시간 회수 불가 |
| 인구 | 상한 없음. 명부 42명이 천장. 차단: taken → seals → gold |
| 던전 레벨 게이트 | 전사 본인 레벨. 통행 허가 인장 10. 던전과 몬스터 |
| 광산 레벨 요구 | 인장 개방 허가 (round(levelReq × 0.75) + 3) |
레시피 레퍼토리 / levelReq | 다른 주민 영입 또는 레벨업 |
| 재료·골드 부족 | 채집·전투·판매·미션 |
6. 이 루프에 없는 것
- 온보딩 튜토리얼은 첫 실행에 한 번 — 집사가 탭을 짚고, 소개하는 탭 네 개는 플레이어가 직접 누릅니다(누르면 그 화면이 실제로 열리고, 다음 카드는 그 화면 안을 짚습니다).
영입게이트로 끝냅니다 (tutorialSeen, 세계관과 인트로). 다시 보기는 설정 - 자동 수거 없음 — 예외 없음. 수거는 언제나 플레이어가 누릅니다 (2026-08-10,
perm_collect부팅 수거 삭제) - 미션 리셋 타이머 없음 — 탭을 열 때 판정
- 체력 소모 없음 — 항상 100%,
status도 불변 - 어긋남은 구현 상태에 있습니다
이어서 읽기
- 채집과 주머니 — 공식·광산·수거 규칙의 상세
- 전투 — 정산 규칙과 전사 개인 전투
- 화면 구성 — 6개 탭과 오버레이의 구조
- 명부와 영입 — 비용표와 차단 규칙
- 요리와 음식 효과 — 버프 적분 상세