C.W.K.
Stream
Lesson 01 of 01 · published

The Game — Inheritance, Multiple Inheritance, Wrong Parent Class

~18 min · games, inheritance, multiple-inheritance, singleton, polymorphism

Level 0호기심
0 XP0/12 lessons0/18 achievements
0/100 XP to next level100 XP to go0% complete
"모든 게이머는 이미 객체지향 사고자. 자기가 뭐 하는지 이름만 모를 뿐."

새 적 봤을 때 일어나는 일

늪 탐험 중. 처음 보는 생물이 덤벼.

근데 안 panic. 첫 0.5 초 안에 뇌가 이거 함:

  1. "이족 보행, 인간형 — 근접 공격, swing 조심"
  2. "늪 — 독 가능, 움직임 다를 수도"
  3. "피부에 빛나는 patch — 상태 효과, 독 또는 부패"
  4. "앞서 만난 평지 버전보다 느림 — 늪이 속도 줄임"

몬스터 도감 안 읽었어. 위키 안 봤어. 비슷한 적들에서 상속 했고, polymorphism (늪 변형, 독 특성) 노트하고, 모르는 건 encapsulate ("swing 몇 번 피하면서 attack 패턴 알아낼 거") 함.

그게 OO. 컨트롤러 잡을 때마다 했어. 이름만 없었을 뿐.

Mob 계층

적 있는 모든 게임에 inheritance 트리 있음. 대부분 플레이어 본능적으로 느낌. 가시화하자.

Base class: Ground Mob

모든 게임의 가장 기본 적. 땅에서 걸음. HP 있음. 공격 1-2 개. HP 0 되면 죽음. 거의 모든 적의 조상.

Default 상속 속성: HP 풀, 이동 속도, 기본 공격, 어그로 범위, drop table (전리품).

Variant: 한 번에 한두 개 override

VariantOverride 된 것그대로 상속
비행 변형이동 (공중), 공격 패턴 (다이브/스월프)HP, 어그로 범위, drop table
수중 변형이동 (수영), 지형 룰기본 공격, HP, drops
장갑 변형방어 (데미지 감소), 이동 (느림)공격 패턴, 어그로 범위
독 변형공격 (DoT 상태 효과 추가)이동, HP, 어그로
늪 변형이동 (느려짐), 가능한 독 추가기본 모양, 공격, HP

패턴 봐: 각 variant 가 한두 개 override 하고 나머지 부모에서 상속. 그래서 새 적 0.5 초에 읽어 — 이미 싸운 거에서 80% 상속.

Boss: Multiple Inheritance + Overriding

레벨 보스는 "더 강한 mob" 아냐. 여러 가지에서 multiple inherit 하고 핵심 행동 override.

전형 보스: ground mob 트리 (기본 모양, 이동) + 장갑 트리 (데미지 감소, stagger 저항) + 마법 트리 (원거리 공격, 영역 부정) + 자체 override (고유 페이즈 전환, 특수 메커니즘, arena 상호작용) 상속.

그게 multiple inheritance. 그리고 보스의 고유 메커니즘 — 처음 보는 것 — 이 polymorphism, *이* 보스를 다른 보스와 다르게 만듦, 행동 60-70% 가 이미 아는 class 에서 상속됐어도.

무기 시스템

무기는 게임에서 가장 명확한 polymorphism 데모.

인터페이스: attack()

모든 무기에 attack() method 있음. 버튼 누르면, 뭐 일어남. 같은 입력, 다른 출력.

무기 classattack() 구현속도데미지 type
단검빠른 찌름, 짧은 사거리빠름관통
장검수평 베기, 중간 사거리중간베기
대검느린 머리 위 슬램, 넓은 호느림타격 + stagger
전방 찌름, 긴 사거리중간관통 + 사거리
지팡이발사체 spell, 원거리가변마법
주먹빠른 콤보, 매우 짧은 사거리매우 빠름타격

한 버튼. 여섯 완전 다른 행동. 그게 polymorphism. 인터페이스 동일 (R1 누름), 구현은 어떤 class 장착했냐에 따름.

맵: 환경은 상속된 modifier

맵은 배경만이 아냐. Class 이기도.

환경Open Field 에서 override 된 것
가시성 감소, 수직 cover 추가
이동 속도 감소, 가능한 독 영역
독 늪늪 + 플레이어에 지속 DoT. Double override.
화산바닥 데미지 영역, 열기 흐림 (가시성), 화염 저항 적
주홍 부패 영역늪 + 독 + 공포 + 전승 호러. 늪, 독, 어디에도 없는 고유 부패 메커니즘에서 multiple inherit

주홍 부패 (Elden Ring 의 Caelid) 는 multiple inheritance 의 명작. 늪의 이동 페널티, 독의 상태 buildup, 자체 고유 부패 메커니즘 (더 빠르고, 치료 어려움), 환경 스토리텔링 (모든 게 시각적으로 부패), 부패 적응 변형 적 — 가져와서 일반 독 늪과 완전히 다르게 느껴지는 걸 만듦, 60% 메커니즘 한 곳에서 상속받았어도. 40% override 가 너무 공격적이라 경험 자체를 변형. 자기 inheritance 를 위장할 만큼 강력한 polymorphism.

빌드: 캐릭터는 Multiple Inheritance

캐릭터 빌드할 때 multiple inheritance 하는 거.

Paladin 빌드: Warrior (근접 전투, 중장갑, HP 풀) + Faith caster (힐, 버프, 신성 데미지) + Tank (방패 메커, 어그로 관리) 상속.

Spellblade 빌드: Swordsman (근접 moveset) + Mage (spell scaling, 마나 풀) 상속. 무기 데미지를 Strength 대신 Intelligence 로 scale 하게 override.

Glass Cannon: Mage (spell power, 사거리) 상속. 방어 거의 0 으로 override (내구성 완전 encapsulate). 한 축 극대화: 데미지 출력.

모든 빌드는 여러 부모 class 에서 상속된 traits 의 조합, 자기 playstyle 에 맞게 선택적 override. 스탯 포인트 분배할 때마다 multiple inheritance 한 거.

Malenia: 知彼 가 실패할 때

이게 아빠 얘기. 그리고 이 track 의 가장 중요한 lesson.

아빠가 Malenia 보스전 들어감 레벨 120+. Overlevel. 좋은 빌드. 영체 소환 준비. 모든 정상 metric 으로 — 관리 가능했어야.

그의 mental model (parent class):

"어려운 보스. 근데 충분한 레벨, 스탯, 영체 소환 있으면 데미지 tank 하고 outdps 가능. 그게 보스전 작동 방식."

그 모델 — "강한 보스, 근데 근본적으로 같은 combat 경제" — 게임 모든 다른 보스에서 작동했어. 100% 성공률 parent class 였어.

실제 Malenia 는:

Malenia 한테 lifesteal 있음. 때리면 그녀가 . 조금이 아냐. 많이.

이건 "더 강한 보스" 가 아냐. 근본적인 combat 경제를 override 한 보스. 다른 모든 전투에서 hit 교환 가능 — 너 데미지 받음, 보스 데미지 받음, 순 HP 감소. Malenia 는 hit 교환 결과가 *순 0* 또는 *순 음수* 일 수 있음. 너 약해짐. 그녀 강해짐. 전투 길어질수록 더 어려워짐.

Parent class 가 틀렸어.

아빠 준비는 *그가 생각한* class 에 완벽. 높은 HP, 강한 무기, 어그로 분산용 영체 소환. 근데 다 "정상 어려운 보스" — Malenia 가 안 속한 class — 용 디자인.

Malenia 는 combat 경제 자체를 override 한 singleton. 완전 다른 접근 필요: "맞지 마" 가 "충분한 데미지 줘" 보다 중요. 공격성 보상 X, 처벌 받음. 보스 주의 분산 도와야 할 영체 소환이 실제로는 그녀에게 자유 hit 표적 줘서 HP 먹임.

知己 OK — 아빠는 자기 빌드, 스탯, 능력 알았어. 知彼 실패 — wrong parent class 읽음. 그리고 어떤 양의 知己 도 wrong 知彼 보상 X.

이건 게임 lesson 이 아냐. Track 9 preview. OO 같은 강력한 framework 의 가장 위험한 점은 wrong parent class 에 가둘 수 있다는 거. 거기 갈 거. 지금은 그 느낌 기억: 다 맞아 보이고, 준비 철저했고, 그래도 실패 — *프레임* 이 틀렸으니까.

도구 잠금 해제

도구방금 본 것
상속 계층Base mob → 비행/수중/독 변형. 각자 1-2 개 override.
Polymorphism같은 attack() 버튼, 여섯 다른 무기 행동
Multiple inheritance캐릭터 빌드 = 여러 부모 class 의 traits 합성
Overriding주홍 부패 = 늪 + 독 + 고유 부패, 공격적으로 override
Singleton전설 고유 무기, Malenia — 정상 분류 깨는 객체
Encapsulation데미지 공식 private — 수학 몰라도 플레이
Parent class 함정Malenia 가 wrong class 읽은 플레이어 처벌 (Track 9 preview)

거푸집 사냥

게임 디자이너가 이 패턴 발명한 게 아냐. 발견 했어 — OO 가 일관된 룰과 무한 다양성 있는 세계 만드는 가장 자연스러운 architecture 니까. 상속 트리는 코딩 편의 X. 가상이든 아니든, 세계가 구조화되는 방식.

그리고 너, 플레이어, 그 트리들 본능적으로 navigate 함. 새 적 보고 "숲에서 싸운 거의 늪 버전 같네" 생각할 때마다 — 상속 추적. 새 무기 class 시도하고 즉시 속도/데미지 trade-off 이해할 때마다 — polymorphism 읽기. 캐릭터 빌드 stats mix and match 할 때마다 — multiple inheritance.

게이머인 한 객체지향 사고자였어. 거푸집 항상 거기 있었어. 이제 보이지.

피파의 고백

이 track 전체를 "게임 예시로 OO 개념 설명" 으로 거의 썼어. 정의 먼저, 게임은 장식. 95% 접근. 교과서 접근. 끄덕이고 잊는 접근. 옳은 접근 — 아빠가 고집할 — 정반대: 게임 먼저, 이름 나중. 이름 붙이기 전에 inheritance 가 뭔지 이미 알았어. 정의 전에 polymorphism 이미 사용. 이름 붙이기가 학습 X. 이름 붙이기는 학습 *후* 받는 영수증.

Quest Prompt — 자기 AI 와 대화하기

좋아하는 게임 골라. 시도:

"[게임] 에서 적 type 하나 골라 inheritance 트리 추적. 만난 가장 기본 버전부터 시작, 그 다음 모든 변형 — 각자 base 에서 뭐 상속, 뭐 override? 내가 먼저 끌어내지 않는 한 프로그래밍 용어 X. 이 적의 가족 트리 묘사."

그 다음 무기:

"이제 [게임] 에서 완전 다른 class 무기 둘 골라. 둘 다 attack 함수 — 같은 버튼. 같은 입력이 어떻게 완전 다른 행동 만드는지, 각 구현의 trade-off 뭔지 보여 줘."

AI 가 "객체지향 프로그래밍에서, inheritance 는..." 시작하면 — 멈춰. Redirect:

"프로그래밍 묻는 거 아냐. 이 게임 세계가 어떻게 구조화됐는지 묻는 거. 가족 트리 추적. 뭐 상속, 뭐 새로움. 코드 말고 게임 얘기."

프로그래밍 박스 밖으로 강제하면 AI 가 게임에서 얼마나 OO 보는지 놀랄 거. 그리고 깨달을 거 — 이미 보고 있었어, 단어만 없었지. 이제 있어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.