네트워크 프로그래밍
이 반영된 베르의AmongUs
게임 제작 시리즈을 따라 개발 중네트워크 프로그래밍
의 개념이 포함된Mirror API
를 통해 개발을 수행- 향후
Photon
을 통한멀티 게임 개발
을 계획하고 있고,- 현재 단계에서 원활한
AmongUs 게임 개발
과 이해를 돕기 위해 공부
- 게임 개발에서 네트워크 프로그래밍은
서버-클라이언트
구조로 개발된다.서버-클라이언트 구조
는멀티 플레이 게임
의성능
,보안
및사용자 경험
에 중요한 영향을 미치는 핵심적인 디자인 요소- 게임의 네트워킹 모델을 기술하는 데 중요한 개념
- 게임의 중앙 데이터 저장소 및 논리적인 중심 역할 수행
클라이언트
간의통신
을중재
하고,변경사항
을동기화
플레이어
가 게임에 접속하여 게임을 실행하는디바이스 또는 애플리케이션
서버
로부터게임 상태
를수신
하고 이를 표시하여 플레이어에게 노출- 플레이어
입력
을서버
에전달
하여 게임 상태를 변경- 플레이어와 상호작용하고, 게임 세계에서의 활동을 표현
게임 시작
1-1. 클라이언트가 서버에 연결하고, 서버는 클라이언트의 연결을 수락
1-2. 클라이언트는 서버로부터 초기 게임 상태를 수신하여 게임을 시작
플레이어(클라이언트) 상호작용
2-1. 플레이어는 클라이언트를 통해 게임 세계와 상호작용한다.
2-2. 클라이언트는 플레이어의 입력을 서버에 전달하고, 서버는 이를 처리해 게임 상태를 업데이트
동기화
3-1. 서버는 게임 세계의 상태를 클라이언트에게 전파
- 이를 통해 모든 클라이언트는 동일한 게임 세계를 볼 수 있습니다.
3-2. 서버는 클라이언트로부터 받은 입력을 사용하여 게임 상태를 계산하고, 모든 클라이언트에게 적용합니다.
게임 종료
4-1. 게임이 종료되면, 클라이언트는 서버와의 연결을 종료하고 게임 세션을 종료합니다.
네트워크 프로토콜
:TCP
또는UDP
등의네트워크 프로토콜
을 사용해서버-클라이언트 간 통신
을 구현게임 로직 분리
:게임 로직
을서버
와클라이언트
로 분리
서버에서만 실행되어야 하는 로직
과클라이언트에서만 실행되어야 하는 로직
을 구분네트워크 동기화
: 서버와 클라이언트 간의데이터 동기화
를 위해효율적인 동기화 메커니즘
을 구현
변경된 데이터
를서버에서(->) 클라이언트
로 효율적으로 전송하여 게임 세계의 일관성을 유지보안
: 클라이언트에서 실행되는 코드를 보호하고 서버와의 통신을 안전하게 보호하여 게임의 무결성을 유지