가구 분해·수리 미니게임 시스템 설계
드라이버로 가구를 분해하고 렌치로 고치는 미니게임을 붙였다. 입력·운반·적재 판정이 이미 있는 프로젝트라, 설계의 대부분은 '무엇을 새로 만들지 않을까'를 정하는 일이었다.
드라이버로 가구를 분해하고 렌치로 고치는 미니게임을 붙였다. 입력·운반·적재 판정이 이미 있는 프로젝트라, 설계의 대부분은 '무엇을 새로 만들지 않을까'를 정하는 일이었다.
가구를 든 채 계단 앞에 서면 전진이 멈췄다. 상한을 두 번 올려도 안 됐고, 상한을 조건부로 푸는 것으로 풀렸다. 그다음엔 오르긴 오르는데 멈칫거리는 문제가 남았다.
가구를 잡는 순간 몸 앞에서 빙글 도는 결함을 세 번에 나눠 고쳤다. 매번 다른 자리였지만 원인은 같은 종류였다 — 회전을 어느 기준에서 재고 있었는가.
기존 기능 자동 검사 371항목이 전부 통과한 뒤에도 두 건이 남아 있었다. 판이 시작된 뒤 들어온 클라이언트에게만 가구가 옛 자리로 보이고 손에 든 아이템이 스케일 0으로 깨졌는데, 원인은 둘 다 '알리기'와 '상태로 두기'를 구분하지 않은 것이었다.
7인용 턴제 카드 게임(리슨 서버)에서 접속이 끊기면 그 좌석이 통째로 사라져 승패가 즉시 뒤집혔다. 승패 판정이 실제로 읽는 값을 역추적해 PlayerState·폰·좌석 예약 중 무엇을 남길지 정하고, 폰을 떼어낼 훅과 복귀 시 재빙의 경로까지 설계 결정을 정리한다.
BG(뱅! 카드게임 프로토타입)에 좌석 소유를 전담하는 컴포넌트를 넣고 메인메뉴를 별도 레벨로 분리했다. 좌석 배정 훅을 InitNewPlayer로 잡은 이유, 좌석 번호를 연속으로 채우지 않기로 한 근거, 그리고 맵 이동을 메인메뉴 한 번으로만 허용한 분기까지 설계 결정을 정리한다.
핵심 접근 — 자식 반환값으로 병합 판정하는 상향식 분할 정복
언리얼의 어서션 셋을 가르는 축은 '실패했을 때의 반응'과 '컴파일에서 빠질 때 식이 남는가' 두 개다. UE 5.8 엔진 헤더에서 세 매크로의 실제 정의와 빌드 구성별 활성 여부를 확인하고, 흔한 설명과 어긋나는 지점 두 가지를 정리했다.
핵심 접근 — 부분 순열 백트래킹 + set 중복 제거 + 시행 나눗셈 판정
핵심 접근 — a+b > b+a 비교자로 정렬해 이어 붙이기