--- id: wiki-2026-0508-bioshock-2007 title: BioShock (2007) — Game AI & Environmental Narrative category: 10_Wiki/Topics status: verified canonical_id: self aliases: [BioShock, Rapture, Big Daddy, Little Sister, environmental narrative, ecological AI] duplicate_of: none source_trust_level: B confidence_score: 0.85 verification_status: applied tags: [game-design, ai, environmental-narrative, immersive-sim, bioshock, fsm, ecological-ai, rapture] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: game design applicable_to: [Game AI Design, Narrative Design, Emergent Gameplay] --- # BioShock (2007) — Game AI ## 📌 한 줄 통찰 > **"매 ecosystem 의 살아있는 듯"**. 매 BioShock 의 AI 는 매 player 의 chase 만 X — 매 own rule 의 organic actor (Big Daddy ↔ Little Sister). 매 simple FSM + 매 environmental narrative 의 결합 의 immersive sim 의 milestone. 매 "intentional 연출" 의 AI design 의 power. ## 📖 핵심 ### 매 game (2007 Irrational Games) - 매 underwater dystopia "Rapture". - 매 immersive sim genre. - 매 Ken Levine 감독. - 매 narrative + 매 emergent gameplay. ### 매 AI 의 핵심 character #### Splicer (적) - 매 plasmid 중독 의 humans. - 매 bezerker / leadhead / spider / Houdini. - 매 simple state machine: idle / patrol / attack / flee. - 매 environmental hazard 의 react. #### Big Daddy - 매 Little Sister 의 protector. - 매 NEUTRAL until provoked. - 매 Little Sister 의 attack 시 매 berserk. - 매 unkillable 의 feel (high HP + damage). #### Little Sister - 매 ADAM harvester. - 매 Big Daddy 의 follow. - 매 vulnerable. → 매 player 의 morale choice (rescue / harvest). ### 매 ecological AI #### Faction system - 매 splicer ↔ Big Daddy ↔ Little Sister. - 매 turret / camera 의 hack 의 ally. - 매 NPC vs NPC 의 fight 의 emergent. #### Reactive environment - 매 oil + fire = 매 burning. - 매 water + electric = 매 chain shock. - 매 hack security camera → ally. #### Audio diary - 매 environmental narrative 의 핵심. - 매 dead resident 의 voice. - 매 player-paced lore. ### 매 design lesson #### 1. Simple AI + Strong narrative = 매 strong feel - 매 BioShock 의 AI 의 매 trivial FSM. - 매 narrative 의 weight 의 매 "complex" 의 perception. #### 2. Emergent > scripted - 매 plasmid + AI rule = 매 player 의 invent. - 매 designer 의 모든 case 의 anticipate X. #### 3. Environmental storytelling - 매 audio log + 매 corpse position + 매 graffiti. - 매 "show" don't "tell". - 매 Rapture 의 fall 의 매 explicit 의 X. #### 4. Moral choice - 매 Little Sister 의 rescue / harvest. - 매 ending 의 두 가지. - 매 player agency. #### 5. Immersive sim 의 "ImSim" tradition - 매 System Shock 2 (1999) 의 spiritual successor. - 매 Deus Ex / Dishonored / Prey 와 의 lineage. - 매 simulation > scripted. ### 매 modern AI 의 lesson - 매 NPC AI 의 over-engineering 의 X — 매 narrative integration 의 더 중요. - 매 ecological multi-agent 의 player 의 invent. - 매 environmental narrative 의 RPG / open-world 의 best practice. - 매 "actor" 의 player ≠ 매 chase target. ## 💻 패턴 (응용 — game AI design) ### Faction system ```ts enum Faction { PLAYER, SPLICER, BIG_DADDY, LITTLE_SISTER, SECURITY, } const RELATIONS: Record = { 'PLAYER:SPLICER': 'hostile', 'PLAYER:BIG_DADDY': 'neutral', // 매 until provoked 'PLAYER:LITTLE_SISTER': 'neutral', 'SPLICER:BIG_DADDY': 'hostile', // 매 emergent fight 'SPLICER:LITTLE_SISTER': 'hostile', 'BIG_DADDY:LITTLE_SISTER': 'friendly', }; function relation(a: Faction, b: Faction): string { return RELATIONS[`${Faction[a]}:${Faction[b]}`] || 'neutral'; } ``` ### Big Daddy provoke logic ```ts class BigDaddy { state: 'guarding' | 'enraged' = 'guarding'; protectedSister: LittleSister; update(scene: Scene) { if (this.state === 'guarding') { if (this.protectedSister.recentDamage > 0) { this.state = 'enraged'; this.target = this.protectedSister.lastAttacker; } } else if (this.state === 'enraged') { // 매 chase + heavy damage this.chargeTo(this.target); } } } ``` ### Audio log (environmental narrative) ```ts type AudioLog = { id: string; speaker: string; date: string; // 매 in-game timeline position: Vec3; audioFile: string; transcript: string; }; function placeAudioLog(log: AudioLog, scene: Scene) { scene.add({ type: 'pickup', interactable: true, onPickup: () => playAudio(log.audioFile), visualHint: 'glowing tape', position: log.position, }); } ``` ### Hack + ally ```ts class SecurityCamera { faction = Faction.SECURITY; hack(by: Player) { this.faction = Faction.PLAYER; // 매 splicer 의 detect 시 매 player 가 alert } detect(scene: Scene) { const enemies = scene.entities.filter(e => RELATIONS[`${this.faction}:${e.faction}`] === 'hostile' ); enemies.forEach(e => this.alarm(e.position)); } } ``` ### Emergent interaction (oil + fire) ```ts class OilPuddle { onTouch(entity: Entity, world: World) { if (entity.tags.includes('flame')) { this.transform('FireField', { duration: 10 }); // 매 nearby splicer 의 burn → emergent } } } class WaterPuddle { onTouch(entity: Entity, world: World) { if (entity.tags.includes('electric')) { this.transform('ElectrifiedWater', { affectedRadius: 5, damage: entity.damage, }); } } } ``` ### Moral choice tracker ```ts class MoralityTracker { rescued = 0; harvested = 0; onLittleSisterRescue() { this.rescued++; grantReward('rescue'); } onLittleSisterHarvest() { this.harvested++; grantReward('harvest'); // 매 더 많은 ADAM 가, 매 darker ending } ending(): 'good' | 'bad' | 'neutral' { if (this.rescued > this.harvested * 2) return 'good'; if (this.harvested > this.rescued * 2) return 'bad'; return 'neutral'; } } ``` ## 🤔 결정 기준 (응용 — modern game AI) | 상황 | BioShock lesson | |---|---| | Strong narrative game | 매 simple AI + 매 deep lore | | Sandbox | 매 ecological multi-faction | | Lore delivery | 매 audio log + 매 environmental | | Emergent gameplay | 매 system 의 interact | | Moral choice | 매 player agency 강조 | | Open world NPC | 매 daily routine + faction | **기본값**: 매 narrative > AI complexity. 매 system 의 multiply (player invents). ## 🔗 Graph - 부모: [[Immersive-Sim]] - 변형: [[BioShock-Critique]] - 응용: [[Environmental-Narrative]] - Adjacent: [[Baiting]] ## 🤖 LLM 활용 **언제**: 매 game narrative design. 매 immersive sim AI. 매 environmental storytelling. 매 NPC ecology. **언제 X**: 매 specific game (다른 IP 의 mechanic). 매 PvP balance. ## ❌ 안티패턴 (game design) - **AI 의 over-engineer**: 매 narrative 의 lose. - **No environmental hint**: 매 lore X. - **Big Daddy 의 unprovokable boss**: 매 player choice X. - **Single faction**: 매 emergent X. - **Moral choice 의 binary 의 explicit**: 매 immersion X. - **Loot box (BioShock 가 안 함)**: 매 narrative violate. ## 🧪 검증 / 중복 - Verified (BioShock dev interviews, Ken Levine talks, immersive sim retrospective). - 신뢰도 B. - Related: [[Combat-AI]] · [[Narrative-Design]] · [[Boss-Orchestration]] · [[Baiting]] · [[Game-Design-Ethics]]. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — character + ecological + lesson + 매 faction / Big Daddy / moral code |