유니티 엔진 - 게임 프로젝트/Photon을 사용한 멀티 플레이어 게임

서버 연결 - 1) Photon PUN의 사용

monstro 2026. 3. 9. 16:12
728x90
반응형

- 개요

프로젝트는 Photon PUN 프레임워크를 사용하여 멀티플레이어 네트워크 시스템을 구현한다

단, 프로젝트의 규모가 커질수록 PUN 프레임워크가 아닌 Photon Fusion을 사용할 것을 권장한다

따라서 프로젝트의 구성은 PUN 프레임워크를 중심으로 작업하였다

 

- Photon 네트워크 동작 구성

Photon은 P2P 방식의 네트워크가 아닌 중간의 클라우드를 거쳐 플레이어를 연결하는 방식으로 동작한다

그리고 이러한 Photon의 구성 요소는 다음과 같다

  • Room : 실제 게임 플레이가 이루어지는 독립된 공간
    • 인원 제한비공개 여부 설정 가능
  • Lobby : 방을 생성하거나 목록을 확인하고 선택하는 공간
  • Master Client : 방에 가장 먼저 접속한 플레이어
    • 해당 방의 환경 설정게임의 중추적인 권한이 부여됨

 

Photon PUN은 위와 같은 구성 요소로 이루어져 있으며 

최종적으로 리슨 서버 방식을 지원한다

 

- Photon Server Setting 관련 설정

Server Setting 애셋

 

Photon PUN 패키지를 프로젝트에 설치하고 Photon 클라우드와 연동하면

프로젝트의 네트워크 관련 설정을 담고 있는 Photon Server Setting 애셋이 생성된다

해당 애셋에서 설정할 수 있는 속성은 다음과 같다

  • 1) App ID Pun : 같은 게임을 플레이하기 위해 반드시 동일한 ID를 사용해야 함
  • 2) Fixed Region : 기본적으로 사용자와 가장 가까운 서버에 자동 연결됨

 

 

Unity에서 프로젝트를 빌드하는 경우 Development Build 속성에 관해 다음과 같이 처리할 수 있다

  • Development Build 체크 : 프로젝트에 대한 모든 사용자동일한 서버로 연결
  • Development Build 체크해제 : 각각의 사용자가장 가까운 서버로 연결

 

- PUN 스크립트 작성의 구성요소

Photon PUN 기반의 프로그램에서 스크립트를 작성하는 방법은 다음과 같다

  • Photon.Pun 네임스페이스 : Photon의 기본 기능을 사용하기 위한 필수 네임 스페이스
  • MonoBehaviourPunCallbacks 클래스 : 서버와의 통신을 위해 MonoBehaviour 대신 상속
  • override 사용 : 서버에서 일어나는 특정 상황에 맞춰 함수를 오버라이드하여 서버와 통신
  • 기본 함수 사용 : 클라이언트에서만 동작하는 로직기본 함수를 사용
728x90
반응형