20241107 / Unity_6차 9주차 금요일
저번에 이어서 멀티플레이를 구현하기 위해 네트워킹 프로그램 초보자도 쓰기 좋은
PUN2( Photon Unity Networking 2 ) 에셋을 받았다.
PUN2의 특징과 기능은 다음과 같다.
주요 특징
- 손쉬운 Unity 통합: PUN 2는 Unity와 긴밀하게 통합되어 있어 Unity 개발자들이 사용하기 쉽습니다. 플러그인 형태로 제공되어 간단히 Unity 프로젝트에 추가하고 사용할 수 있습니다.
- 다양한 네트워크 모델 지원: PUN 2는 동기화된 상태 유지 및 실시간 데이터 교환이 중요한 멀티플레이어 게임에 적합한 네트워크 모델을 지원합니다. 주로 룸(Room) 기반의 모델을 사용하여 클라이언트들이 특정 룸에 접속해 함께 게임을 즐길 수 있습니다.
- 높은 확장성: PUN 2는 Photon Cloud와 연동되어 있어 별도의 서버 설정 없이 손쉽게 전 세계의 플레이어들을 지원할 수 있습니다. 유저 수가 증가해도 Photon의 서버 인프라를 통해 확장 가능하며, 필요한 경우 Photon Server를 직접 구축해 독립적으로 운영할 수도 있습니다.
- 객체 및 상태 동기화: 게임 내의 객체 상태를 자동으로 동기화할 수 있어, 플레이어들이 동일한 게임 상태를 유지하도록 합니다. 예를 들어, 캐릭터의 위치, 애니메이션, 스코어 등을 실시간으로 동기화할 수 있습니다.
- RPC (Remote Procedure Call): PUN 2는 RPC 기능을 제공하여, 특정 클라이언트 또는 모든 클라이언트에서 특정 함수를 실행할 수 있습니다. 이를 통해 플레이어 간의 상호작용을 보다 쉽게 구현할 수 있습니다.
주요 기능
- 룸 매치메이킹: PUN 2는 룸 기반의 매치메이킹 기능을 제공하여, 플레이어가 빠르게 매칭되고 게임에 참가할 수 있게 해줍니다.
- 간단한 동기화: 위치, 애니메이션, 상태 등을 쉽게 동기화할 수 있는 PhotonView, PhotonTransformView 등의 컴포넌트를 제공합니다.
- 커스텀 프로퍼티: 플레이어나 룸에 커스텀 프로퍼티를 설정하여 게임 내 상태나 설정을 저장하고 공유할 수 있습니다.
- 서버 타입 선택: Photon Cloud 서버를 사용할지, Photon 서버를 직접 구축할지 선택할 수 있으며, Photon Cloud를 사용하면 전 세계의 여러 지역에서 지연 시간을 줄이기 위한 지역 서버도 선택할 수 있습니다.
무료버전은 동시 접속자 제한이 20명인데 호스트가 서버 역할을 하는 게임을 만들더라도
공개 매칭이 가능하려면 많이 부족한 숫자긴 하다.
물론 공부하는 용도로 쓰기엔 충분하고도 남는다.