케이드
- 2인칭(멀티) 모드 지원을 위한 도메인 구조 확장
- 단일 캐릭터 중심 구조 → PlayerID(UUID) 기반으로 확장
GameState.characters: [UUID: CharacterState] 형태로 플레이어별 상태를 동일한 방식으로 관리하도록 변경
- 입력/요청 처리도 PlayerID 기반으로 통합
- 점프/리스폰 같은 요청을 플레이어별 분기문으로 처리하지 않고
Set<UUID> 등으로 요청을 수집/소거하는 방식으로 정리 (GameplayManager 내부)
- GameScene의 멀티 캐릭터 생성/관리 구조화
localPlayerID, opponentPlayerIDs를 받아서
characterControllers: [UUID: CharacterController]로 플레이어별 컨트롤러를 생성·저장·업데이트
- 카메라는 로컬 플레이어를 follow하도록 유지
- 충돌/식별을 위해 SpriteNode 네이밍을 PlayerID 기반으로 변경
- 노드 이름에 UUID를 포함시켜, 충돌 이벤트에서 “누가 충돌했는지” 추적 가능하게 함
- 게임 종료 로직 분리:
GameEndTracker 도입
- 시간 제한/목표 플랫폼 도달 등 종료 조건을 Scene/Manager에 섞지 않고
- 전담 객체로 분리해서
elapsed / remaining / endReason 등을 관리
- 리스크/후속 과제(작성자 참고사항)
- 몬스터 위치/판정이 로컬 카메라 기준에 종속되어 있어,
- 멀티 모드에서 플레이어별 “안전 영역/리스폰 기준”이 어긋날 가능성 → 월드 좌표 기준 분리 또는 플레이어별 기준 계산이 필요
[DEV-44] 전달 받은 상대 게임 이벤트 처리 - 2인칭 모드 [1/2] by leesungkug · Pull Request #94 · boostcampwm2025/ios05-cosmic-adventure