[Photon Server] 1-1. Fusion: Introduction

scarleter99·2024년 2월 23일

[Unity] Photon Server

목록 보기
1/6
post-thumbnail

Photon Server

  • 멀티플레이어 게임 개발을 위한 서버 및 네트워킹 솔루션을 제공하는 플랫폼이다.
  • 서비스
    • Fusion
    • Quantum
    • Photon Realtime
    • Photon Chat
    • Photon Voice
    • Photon Server
    • PUN
    • Bolt

Fusion

  • 상태 동기화 네트워킹 라이브러리이다.
  • 일반적인 유니티 MonoBehaviour 코드와 유사하다.
  • Fusion 1
    • Bolt의 틱 기반 넷코드와 PUN의 클라우드 기반 편의성을 결합한 라이브러리이다.
  • Fusion 2
    • 기존 API에 새로운 기능이 추가되었다.
    • 데이터 전송, 시간 동기화, 메모리 관리 및 전반적인 CPU 성능이 향상되었다.

핵심 API

// Networked Property
[Networked] public byte life { get; set; }

// Networked Player Input
public override void FixedUpdateNetwork
{
    if (GetInput(out NetworkInputData data))
    {
        data.direction.Normalize(); // normalize to prevent cheating with impossible inputs
        _characterController.Move(5 * data.direction * Runner.DeltaTime);
    }
}

// RPC
[Rpc(RpcSources.InputAuthority, RpcTargets.StateAuthority)]
public void RPC_Configure(string name, Color color)
{
    playerName = name;
    playerColor = color;
}

토폴로지

Server Mode

  • Dedicated server가 Public IP를 가진다.
  • 서버 모드에서 서버는 모든 객체에 대해 전체 및 독점적인 상태 권한을 갖는다.

Host Mode

  • 호스트 모드에서 호스트는 서버와 클라이언트의 역할을 모두 수행한다.
  • 네트워크 세션이 호스트 소유이므로 호스트 연결이 끊어지면 손실된다.
    • 현재 호스트 연결이 끊어지면 새 클라이언트로 네트워크 권한을 전송할 수 있는 호스트 마이그레이션 메커니즘을 제공한다.

Shared Mode

  • 네트워크 객체에 대한 권한은 모든 클라이언트에게 분산된다.
  • 각 클라이언트는 처음에 자신이 생성하는 객체에 대한 상태 권한을 갖지만 다른 클라이언트에게 해당 상태 권한도 자유롭게 양도할 수 있다.
  • 네트워크 세션은 Photon Cloud가 소유하며 어떤 클라이언트라도 Photon Cloud에 연결되어 있는 한 계속 유지된다.

0개의 댓글