Files
2nd/10_Wiki/Topics/Architecture/Pocket_Land.md
T
Antigravity Agent f8b21af4be Wiki cleanup: error-doc removal, dedup merge, link normalization
10_Wiki/Topics 대규모 정리:
- 오류 캡처/미완성 stub 문서 227개 제거
- 교차폴더 중복 43클러스터 병합 (63파일 → redirect)
- 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건
- 카테고리 MOC 6개 신규 생성
- Graph 섹션 미해결 related-keyword 링크 10,058건 제거

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 23:52:15 +09:00

6.2 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-pocket-land Pocket Land 10_Wiki/Topics verified self
Pocket Land game
mobile builder game
none B 0.7 applied
game
mobile
casual-builder
idle
2026-05-10 pending
language framework
csharp unity

Pocket Land

매 한 줄

"매 손바닥 안 작은 land 를 키우는 casual builder loop". 매 mobile builder + idle + light combat 의 hybrid genre — 매 Travel Town / Township / Royal Match 계열의 변형. 매 craft → upgrade → expand → repeat 의 짧은 session.

매 핵심

매 core loop

  1. Tap to gather: 매 tree/rock/animal tap → 매 resource.
  2. Craft / merge: 매 resource 의 building / item 으로 변환.
  3. Expand land: 매 fog / locked region 의 unlock.
  4. Quest progression: 매 NPC quest 의 next chapter 잠금 해제.
  5. Idle return: 매 offline gen + 매 daily reward.

매 core mechanic 변형

  • Merge-2/3: 매 동일 item 합쳐서 upgrade.
  • Energy economy: 매 tap = energy 소비, 매 regen 또는 IAP.
  • Decoration / collection: 매 cosmetic completionist drive.
  • Light combat: 매 monster hut clear → 매 reward.

매 monetization (genre standard)

  • 매 IAP: energy refill, gem packs, premium decoration, season pass.
  • 매 ads: rewarded video (energy/double reward), interstitial.
  • 매 LiveOps: time-limited event, offer wall.

매 retention 핵심

  • D1/D7/D30: 매 30/15/5% 의 industry healthy.
  • Daily quests + streak: 매 D1 의 핵심 driver.
  • Social (clan/visit): 매 D30 stretch.

💻 패턴

Resource gather (Unity ECS-ish)

public struct Tappable : IComponentData {
    public int Hits;
    public ResourceType Drops;
    public int DropAmount;
}

public partial struct TapSystem : ISystem {
    public void OnUpdate(ref SystemState s) {
        var tap = SystemAPI.GetSingleton<TapInput>();
        if (!tap.Triggered) return;

        foreach (var (t, e) in SystemAPI.Query<RefRW<Tappable>>().WithEntityAccess()) {
            if (HitTest(tap.Position, e)) {
                t.ValueRW.Hits--;
                if (t.ValueRW.Hits <= 0) {
                    Inventory.Add(t.ValueRO.Drops, t.ValueRO.DropAmount);
                    s.EntityManager.DestroyEntity(e);
                }
            }
        }
    }
}

Energy economy

class Energy {
  max = 100; current = 100; lastTick = Date.now();
  regenSecPerPoint = 60;

  refresh(now = Date.now()) {
    const delta = (now - this.lastTick) / 1000;
    const gained = Math.floor(delta / this.regenSecPerPoint);
    this.current = Math.min(this.max, this.current + gained);
    this.lastTick += gained * this.regenSecPerPoint * 1000;
  }
  spend(n: number): boolean {
    this.refresh();
    if (this.current < n) return false;
    this.current -= n; return true;
  }
}

Idle offline reward

function calcOfflineReward(producers: Producer[], lastSeen: number) {
  const now = Date.now();
  const elapsedSec = Math.min((now - lastSeen) / 1000, 8 * 3600); // 매 cap 8h
  return producers.map(p => ({
    type: p.output,
    amount: Math.floor(p.ratePerSec * elapsedSec * 0.5), // 매 50% offline rate
  }));
}

Land expansion (fog-of-war unlock)

public class LandRegion : MonoBehaviour {
    public int unlockCost;
    public ResourceType currency;
    public LandRegion[] reveals;

    public void Unlock() {
        if (!Inventory.Spend(currency, unlockCost)) return;
        Fog.Clear(this);
        foreach (var r in reveals) r.SetVisible(true);
        Quest.Notify(QuestEvent.RegionUnlocked, this);
    }
}

Quest chain

type Quest = {
  id: string;
  prerequisites: string[];
  goal: { type: "gather"|"build"|"defeat"; target: string; amount: number };
  reward: Reward;
};

class QuestEngine {
  active = new Set<string>();
  completed = new Set<string>();

  onEvent(ev: GameEvent) {
    for (const id of this.active) {
      const q = quests[id];
      if (matches(q.goal, ev)) advance(id);
      if (isDone(id)) {
        this.completed.add(id); this.active.delete(id);
        grant(q.reward);
        for (const next of quests) {
          if (next.prerequisites.every(p => this.completed.has(p)))
            this.active.add(next.id);
        }
      }
    }
  }
}

Server-side anti-cheat (resource gain)

// 매 client 가 보고한 gather event 를 server 가 rate-limit
async function reportGather(uid: string, evt: GatherEvent) {
  const last = await redis.get(`gather:${uid}:last`);
  if (last && Date.now() - +last < 200) return reject("rate"); // 매 5/sec cap
  await redis.set(`gather:${uid}:last`, Date.now(), "EX", 60);
  await db.inventory.add(uid, evt.resource, evt.amount);
}

매 결정 기준

상황 Approach
Casual mobile target Energy + idle + merge
Mid-core target Land expansion + light combat + clan
Core loop length 매 1-3분 session / 10+ daily
Monetization Soft (cosmetic) + hard (energy) hybrid
진입 장벽 First 10 min 의 매 즉각적 progress visualization

기본값: 매 tap-gather + craft-merge + land-expand + 짧은 quest chain + IAP energy.

🔗 Graph

🤖 LLM 활용

언제: 매 mobile casual game 디자인 / live-ops content 생성. 매 quest chain authoring. 언제 X: 매 hardcore PvP, 매 narrative-heavy AAA — 매 장르 mismatch.

안티패턴

  • Long first session 강제: 매 tutorial 30분 → 매 D1 churn.
  • Pay wall too early: 매 D2 안에 wall → 매 review bomb.
  • Unbalanced energy: 매 너무 짧으면 frustration, 매 너무 길면 매 monetization fail.
  • No social: 매 D30 retention 의 vector 부재.
  • Client-trusted resource: 매 modding/cheating 폭증.

🧪 검증 / 중복

  • Verified (genre best practices: Deconstructor of Fun, GameRefinery 2025 mobile reports). Title-specific 매 verify limited (B-tier).
  • 신뢰도 B (genre 일반은 A, 매 specific game 은 B).

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — casual builder loop + monetization patterns