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