gameplay implementation

게임 시스템은 책임 주인부터 정한다

입력, 규칙, 상태, UI, AI를 한 그래프에 섞지 않고 언리얼 프레임워크 클래스와 컴포넌트 경계에 맞춰 나누면 구현 순서가 선명해집니다.

책임 질문
owner 상태를 소유하고 저장하는 클래스
event 입력과 게임 규칙이 들어오는 지점
feedback UI, 애니메이션, 사운드로 되돌리는 결과

언리얼 클래스별로 맡길 일을 나눈다

구현 단위
맡길 책임
주의할 경계
검증 기준
GameMode
승패, 스폰, 기본 클래스 지정, 서버 권한 규칙
클라이언트 UI 상태를 직접 들고 있지 않음
게임 시작과 종료 조건을 서버에서 재현
PlayerController
입력, 카메라, UI 모드, Pawn 조작 의도 전달
캐릭터의 체력과 인벤토리를 직접 소유하지 않음
입력 변경이 Pawn 행동으로만 이어지는지 확인
Character / Pawn
이동, 점프, 공격 실행, 애니메이션 상태 갱신
재사용 가능한 기능은 컴포넌트로 분리
입력, 애니메이션, 충돌 판정이 한 루프로 동작
Component / Data
인벤토리, 스탯, 상호작용, Data Asset과 Data Table
UI 표시와 저장 포맷을 같은 클래스에 섞지 않음
데이터 수정이 UI와 게임 규칙에 일관되게 반영
Widget / AI
UMG 피드백, AI Controller, Blackboard, Behavior Tree
표시와 판단은 상태 원본을 읽어 반응하게 둠
체력, 인지, 목표 변화가 화면과 행동에 반영

기능 하나는 세로로 완성한다

입력

액션 매핑과 Controller가 플레이어 의도를 명확히 전달합니다.

상태 변경

Character와 Component가 이동, 데미지, 아이템 상태를 바꿉니다.

피드백

Widget, 애니메이션, 사운드가 상태 변화를 플레이어에게 되돌립니다.

검증

로그, 디버거, 테스트로 서버 권한과 데이터 흐름을 확인합니다.