--- id: wiki-2026-0508-love-and-deepspace title: Love and Deepspace category: 10_Wiki/Topics status: verified canonical_id: self aliases: [LADS, 恋与深空, Love and Deepspace, Papergames Otome] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [otome, gacha, 3d-character-romance, papergames, mobile-narrative] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: design-pattern framework: 3D-otome-gacha --- # Love and Deepspace ## 매 한 줄 > **"매 Love and Deepspace는 Papergames 의 매 3D real-time-rendered otome romance gacha"**. 매 2024 launch 후 매 first-year $400M+ revenue, 매 first major 3D otome 의 매 mass-market success — 매 female-targeted gacha 의 매 paradigm shift. ## 매 핵심 ### 매 Genre Innovation - **3D 실시간 rendering**: 매 prior otome (Mr Love, Tears of Themis) 의 매 2D static art vs 매 LADS 의 매 fully 3D animated love-interest models. - **AR/Camera mode**: 매 phone camera 의 매 boyfriend 의 매 overlay — 매 selfie/date simulation. - **Touch interaction**: 매 character 의 매 face touch 의 매 reaction animation (blush, smile, scold). ### 매 Monetization Levers - **Memory gacha (cards)**: 매 SSR memory card 의 매 0.6% rate, 매 90-pull pity, 매 100-pull guarantee. - **Outfit gacha**: 매 limited cosmetic gacha for love-interest costumes. - **VIP/season pass**: 매 매 monthly + 매 quarterly tier. ### 매 응용 1. Mr Love: Queen's Choice (Papergames 2017) — 매 2D predecessor. 2. Tears of Themis (HoYoverse) — 매 mystery-otome variant. 3. Project Sekai 의 character-romance (rhythm hybrid). ## 💻 패턴 ### Memory gacha pity system ```typescript interface PityState { pulls: number; hardPity: number; // 100 — guaranteed SSR softPity: number; // 75 — rate increases linearly lastSSRpull: number; } function pullRate(pity: PityState): number { if (pity.pulls >= pity.hardPity) return 1.0; if (pity.pulls < pity.softPity) return 0.006; // base 0.6% // Soft pity ramps from 0.6% to 50% between 75-99 const progress = (pity.pulls - pity.softPity) / (pity.hardPity - pity.softPity); return 0.006 + progress * (0.5 - 0.006); } ``` ### Featured-character 50/50 system ```python # When SSR drops, 50% chance of featured character # Lose-streak guarantees featured next SSR def resolve_ssr_drop(state): if state.lose_streak == 1: # Guaranteed featured return state.banner.featured_character else: if random() < 0.5: return state.banner.featured_character else: state.lose_streak = 1 # next SSR is guaranteed featured return random.choice(state.banner.standard_pool) ``` ### 3D character animation state machine ```typescript type EmotionState = 'neutral' | 'happy' | 'sad' | 'shy' | 'angry' | 'love'; class LoveInterestController { affection: number = 0; emotion: EmotionState = 'neutral'; onTouch(area: 'face' | 'hand' | 'hair'): EmotionReaction { // Different areas trigger different reactions based on affection if (this.affection < 100 && area === 'face') { return { emotion: 'shy', voiceLine: 'shy_low_affection_v1' }; } if (this.affection >= 1000 && area === 'face') { this.emotion = 'love'; return { emotion: 'love', voiceLine: 'love_high_affection_v3' }; } return { emotion: 'neutral', voiceLine: null }; } } ``` ### AR camera mode integration ```typescript // Use ARKit/ARCore to anchor 3D character in real-world space import { ARSession, ARAnchor } from 'arkit-bridge'; async function startDateMode(loveInterestId: string) { const session = await ARSession.start({ planeDetection: 'horizontal' }); session.onPlaneDetected(async plane => { const anchor = await session.addAnchor(plane.center); await loadCharacterAt(loveInterestId, anchor); enableTouchInteraction(); }); } ``` ### Date scene branching dialog ```python # Otome dialog tree — choices affect affection class DialogNode: def __init__(self, line, choices): self.line = line # love-interest line self.choices = choices # [(text, affection_delta, next_node), ...] # Sample n1 = DialogNode("저녁 뭐 먹을까?", [ ("좋아하는 거 먹자", +5, n2_loving), ("아무거나", -2, n2_dismissive), ("내가 만들어줄게", +10, n2_special), ]) ``` ### Outfit/skin storage ```typescript interface CosmeticInventory { loveInterestId: string; ownedOutfits: Set; equippedOutfit: string; // Outfits affect 3D model + dialog flavor } async function equipOutfit(userId: string, liId: string, outfitId: string) { const inv = await getInventory(userId, liId); if (!inv.ownedOutfits.has(outfitId)) throw new Error('NOT_OWNED'); inv.equippedOutfit = outfitId; await refreshSceneAssets(userId, liId, outfitId); } ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | Otome game 의 graphical fidelity | 매 3D real-time (LADS standard) vs 매 2D illustrated (legacy) | | Gacha rate 설계 | 매 0.6% SSR + 매 75/100 pity + 매 50/50 featured | | Player intimacy mechanic | 매 touch interaction + 매 AR camera | | Live-ops cadence | 매 6-week character banner + 매 monthly outfit | **기본값**: 매 3D rendered otome + 매 dual gacha (memory + outfit) + 매 AR/touch intimacy — 매 LADS canonical formula. ## 🔗 Graph - 부모: [[Gacha Mechanics Analysis]] · [[Game Monetization Strategy]] - 변형: [[포켓몬 마스터즈 EX(Pokemon Masters EX)]] · [[Final Fantasy XV- A New Empire]] - 응용: [[Live Operations (LiveOps)]] · [[Dynamic Offers]] · [[고래 유저 (Whale Players)]] - Adjacent: [[Player-Experience-Modeling]] · [[하이브리드 수익화]] · [[Algorithmic Rhetoric]] ## 🤖 LLM 활용 **언제**: 매 otome game 의 3D character system design, 매 gacha pity tuning, 매 female-target monetization analysis. **언제 X**: 매 male-target shooter / strategy game (매 otome mechanics 의 매 mismatch). ## ❌ 안티패턴 - **0.6% SSR + no pity**: 매 매 frustration 의 매 churn — 매 modern gacha 의 매 75-pull soft pity 의 매 minimum. - **Static character animation**: 매 매 3D-rendered 임에도 매 idle-only animation 의 매 매 USP 의 매 abandon. - **Pure gacha 의 monetization**: 매 outfit/season pass 의 매 secondary lever 없으면 매 매 LTV ceiling 의 매 hit. ## 🧪 검증 / 중복 - Verified (Sensor Tower 2024 LADS revenue report, Papergames investor disclosures, Western press reviews). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — LADS 3D-otome paradigm + gacha/AR patterns |