클라이언트는 요청하고 서버가 판정한 뒤 복제 값으로 화면을 갱신한다
입력, 판정, 복제, 표현을 분리해야 멀티플레이어 구조가 흔들리지 않는다.
| 흐름 | 맡는 객체 | 확인 기준 |
|---|---|---|
| Client Input | 발사, 상호작용, 이동 의도를 만든다 | 로컬 예측과 서버 요청을 분리한다 |
| Server RPC | 소유권, 거리, 쿨다운, 치트 가능성을 검증한다 | 검증 없이 상태를 바꾸지 않는다 |
| GameMode / State | 규칙 확정은 GameMode, 공유 결과는 GameState에 둔다 | 서버 전용과 전체 공유를 나눈다 |
| Client View | OnRep, UI, 이펙트가 복제된 결과를 표시한다 | 표현 로직이 서버 판정을 덮지 않는다 |
HasAuthority 위치, Owner, 복제 범위를 먼저 정하면 네트워크 코드가 덜 꼬인다.