[CS]네트워크 프로그래밍 개론

강동현·2024년 4월 19일
0

CS

목록 보기
16/19

개요

  • 네트워크 프로그래밍이 반영된 베르의 AmongUs 게임 제작 시리즈을 따라 개발 중
  • 네트워크 프로그래밍의 개념이 포함된 Mirror API를 통해 개발을 수행
  • 향후 Photon을 통한 멀티 게임 개발을 계획하고 있고,
  • 현재 단계에서 원활한 AmongUs 게임 개발과 이해를 돕기 위해 공부

서버-클라이언트

  • 게임 개발에서 네트워크 프로그래밍은 서버-클라이언트 구조로 개발된다.
  • 서버-클라이언트 구조멀티 플레이 게임성능, 보안사용자 경험에 중요한 영향을 미치는 핵심적인 디자인 요소
  • 게임의 네트워킹 모델을 기술하는 데 중요한 개념

1. 서버(Server)

  • 게임의 중앙 데이터 저장소 및 논리적인 중심 역할 수행
  • 클라이언트 간의 통신중재하고, 변경사항동기화

2. 클라이언트(Client)

  • 플레이어가 게임에 접속하여 게임을 실행하는 디바이스 또는 애플리케이션
  • 서버로부터 게임 상태수신하고 이를 표시하여 플레이어에게 노출
  • 플레이어 입력서버전달하여 게임 상태를 변경
  • 플레이어와 상호작용하고, 게임 세계에서의 활동을 표현

서버-클라이언트 모델의 동작 방식:

    1. 게임 시작
      1-1. 클라이언트가 서버에 연결하고, 서버는 클라이언트의 연결을 수락
      1-2. 클라이언트는 서버로부터 초기 게임 상태를 수신하여 게임을 시작
    1. 플레이어(클라이언트) 상호작용
      2-1. 플레이어는 클라이언트를 통해 게임 세계와 상호작용한다.
      2-2. 클라이언트는 플레이어의 입력을 서버에 전달하고, 서버는 이를 처리해 게임 상태를 업데이트
    1. 동기화
      3-1. 서버는 게임 세계의 상태를 클라이언트에게 전파
    • 이를 통해 모든 클라이언트는 동일한 게임 세계를 볼 수 있습니다.
      3-2. 서버는 클라이언트로부터 받은 입력을 사용하여 게임 상태를 계산하고, 모든 클라이언트에게 적용합니다.
    1. 게임 종료
      4-1. 게임이 종료되면, 클라이언트는 서버와의 연결을 종료하고 게임 세션을 종료합니다.

서버-클라이언트 구현 방법

  • 네트워크 프로토콜: TCP 또는 UDP 등의 네트워크 프로토콜을 사용해 서버-클라이언트 간 통신을 구현
  • 게임 로직 분리: 게임 로직서버클라이언트로 분리
    • 서버에서만 실행되어야 하는 로직클라이언트에서만 실행되어야 하는 로직을 구분
  • 네트워크 동기화: 서버와 클라이언트 간의 데이터 동기화를 위해 효율적인 동기화 메커니즘을 구현
    • 변경된 데이터서버에서(->) 클라이언트로 효율적으로 전송하여 게임 세계의 일관성을 유지
  • 보안: 클라이언트에서 실행되는 코드를 보호하고 서버와의 통신을 안전하게 보호하여 게임의 무결성을 유지
profile
GAME DESIGN & CLIENT PROGRAMMING

0개의 댓글

관련 채용 정보