TDL(To_Day_List)

2026/5/12

BreadMushroom 2026. 5. 12. 21:17

1.코드카타

2.팀플 2차 기획

3.언리얼 강의 2챕터부터 다시 첨부터 해보기 /못함

4.기획 강의 복습(수치 디자인) /못함

5.팀플 구현

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

코드카타

문제1:ensure() 함수의 특징으로 올바른 것은 무엇인가?

답:false여도 복구 로직을 계속 실행할 수 있다

 

언리얼에는 오류를 확인 할 때 사용되는 함수가 2가지 있다.

check() / ensure()

check() 이 함수는 조건이 틀리면 즉시 게임을 종료 한다.(crash)

ensure()이 함수는 조건이 틀리면 게임을 종료하지 않고 어떤 함수를 거쳐 왔는지 로그를 남겨 줘서 디버깅 할 때 용이하다.

if(ensure(Pointer != nullptr)) 처럼 사용하면, 설령 포인터가 비어있어도 if문 안으로 들어가지 않을 뿐 게임이 꺼지지는 않으므로

복구 로직(예: Return 처리)을 탈 수 있게 된다.

 

문제2:IsValid() 함수가 nullptr 검사보다 더 좋은 이유는 무엇인가?

답:Pending Kill과 GC 대상 여부도 검사하기 때문

 

nullptr은 객체의 주소값만 확인 하지만 언리얼에서는 더 복잡한 GC(가비지 컬렉션)을 가진다.

어떤 함수를 Destroy()로 소멸 시켜도 객체가 소멸하는게 아니라 PendingKill(삭제대기)상태로 남아 있어서

nullptr로 확인할 경우 주소값은 아직 살아 있기 때문에 true로 확인이 돼버린다.

하지만 IsValid는 주소값 뿐만 아니라 PendingKill 상태인지도 확인하기 때문에 false로 확인한다.

즉 이런 이유로 nullptr보다 훨씬 안전한 검사인 것이다.

 

  • 가비지 컬렉터 (GC): 쓰지 않는 메모리를 자동으로 정리해주는 청소부.
  • 댕글링 포인터 (Dangling Pointer): 객체는 사라졌는데 주소값만 남아서 엉뚱한 곳을 가리키는 위험한 상태. IsValid는 이를 방지하는 일등공신입니다.

 

문제3:CDO(Class Default Object)의 역할로 가장 적절한 것은 무엇인가?

답:모든 개체의 기본값을 저장하는 템플릿 역할

 

우리가 만든 클래스를 설계도라고 한다면 CDO는 설계도 대로 만들어둔 샘플이다.

이 샘플은 엔진이 처음 켜질때 만들어지고 우리가 이 클래스를 인스턴스화 하면 

CDO 샘플로 만들어 둔 것을 복사해서 만들어 지게 된다.

  • 성능 최적화: 수백 개의 총알이나 몬스터를 스폰할 때, 매번 설계도를 해석해서 만드는 게 아니라 이미 만들어진 샘플을 '복제'만 하면 되므로 CPU 연산을 크게 아낄 수 있습니다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

팀플2차 기획

튜터님 조언

1,전체적인 톤앤매너 맞추기(실사 보단 캐주얼을 추천)

2.비주얼 이나 UI에 3명 달라 붙어서 폴리싱 (개발은 1~2명만 담당하는걸 추천)

3.게임의 완성도를 끌어 올리기 (AI시대에는 게임 완성도가 중요)

 

내가 생각한 2차 기획(게임에 재미 더하기)

뱀서류 게임에서 핵심 재미 요소
다양한 무기 / 무기 조합 / 대량의 몹을 쓸어 버리는 재미  
나만의 무기 빌드 / 맵 곳곳에 숨겨져 있는 히든 아이템이나 무기를 발견

선택의 가치
뱀서류에서 가장 중독적인 순간은 레벨업 창이 떴을 때 
빌드의 유도: 단순히 총기 A, B를 주는 게 아니라, 
'공격 속도 중심' 빌드와 '단발 위력 중심' 빌드가 명확히 갈리게 해야 합니다.
무기 진화:아예 다른 메커니즘의 무기로 변하는 '기대감'이 있어야 합니다.

카타르시스
대량의 몹을 쓸어버리는 재미는 단순히 '좀비가 죽는다'에서 오지 않습니다.
도미노 효과: 좀비 한 마리가 죽을 때 주변 좀비에게 전이되는 효과(전기, 폭발, 독)
물리적 피드백: 지금 우리 좀비들이 맞았을 때 뒤로 밀려나는 넉백이나, 죽을 때 사방으로 튀는 파티클

탐험과 변수
맵 곳곳에 숨겨진 요소는 플레이어가 수동적으로 좀비를 기다리는 게 아니라, 능동적으로 움직이게 유도
필드 드랍 아이템: 맵 구석에 '공격 속도 2배(30초)'나 '화면 전체 폭발' 아이템을 배치. 
좀비에 막혀 죽을 것 같을 때 저 아이템을 먹으러 가야 한다는 '단기 목표'가 생깁니다.
히든 무기 박스: 맵 곳곳에 랜덤으로 좋은 무기나 많은양의 스탯 상승 아이템 생성

좀비 스폰의 리듬감:2초마다 나오는 스폰 사이에 1분마다 좀비가 빨라지는 광폭화 타임 구현

 

확정된 2차 기획

  1.  
  2. 1.무기 시스템 변경 WIP
    -최대 총기 2개 제한(양손)
    -총기 + 특수 아이템 = 진화무기
    -일단 총기 종류는 권총, 샷건 정도만
    -아이템 조합 예시 권총 + 배터리 = 일렉트릭건(적중시 주변 좀비 3마리에게 피해전이)
    권총 + 독약 = 바이오건(적중시 좀비 1인에게 5초동안 독 피해를 입히고, 이동속도 저하)
    권총 + 화약 = 레퀴엠(권총이 단일 타겟이 아닌 범위 피해를 입히고, 일반권총에 3배에 데미지를 가함)
    (화약은 맵 곳곳에 숨겨져 있는 히든 아이템)
     
    2.히든 무기 박스 WIP
    -맵 곳곳에 랜덤으로 좋은 무기나 많은양의 스탯 상승 아이템 생성
    -플레이어가 능동적으로 움직일 수 있게 유도
     
    3.좀비 스폰의 리듬감 Done
    -1분마다 좀비가 빨라지는 광폭화 타임 구현
     
    4.큐브 시스템 WIP
    -게임 중 언제나 특정 키를 눌러서 큐브 인터페이스를 연다.
    -옵션을 변경할 무기를 선택해서 좀비 10킬당 큐브를 1회 돌릴 수 있게 만듦.
    -레어, 에픽, 유니크, 레전드리 등급에 따라 나오는 옵션의 종류와 변경폭이 달라짐 (메이플 큐브 시스템)
     
    5.전체적인 톤앤매너 맞추기 Done
    -일단 좀비풍에 맞춰서 맵 찾기
    -못 찾으면 그냥 그대로 
     

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

팀플구현

히든 무기 박스
-맵 곳곳에 랜덤으로 좋은 무기나 많은양의 스탯 상승 아이템 생성
-플레이어가 능동적으로 움직일 수 있게 유도

구현중..

좀비 스폰의 리듬감
-1분마다 15초동안 좀비가 빨라지는 광폭화 타임 구현

구현 완료

 

데이터 테이블로 밸런싱 잡기

좀비 / 캐릭터 테이블2개 만듦

 

좀비:체력, 데미지, 이동속도, 경험치

캐릭터:나중에 레벨업 필요 경험치양 조절할 때만 쓸 듯 일단 파일만 만듦

 

'TDL(To_Day_List)' 카테고리의 다른 글

2026/06/01  (0) 2026.06.01
2026/05/19  (0) 2026.05.19
2026/05/15  (0) 2026.05.15
2026/05/14  (0) 2026.05.14
2026/05/13  (0) 2026.05.13