[내일배움캠프 Unity 9기]

05/23 TIL 개인 과제 제출 및 팀프로젝트 시작 전 퓨전2 입문하기

kyvv 2025. 5. 23. 21:25

🔍 Photon Fusion 2란?

Photon Fusion 2는 Exit Games에서 개발한 Unity 전용 고성능 네트워킹 솔루션으로, 이전 버전인 Fusion 1의 후속이며 다음과 같은 특징을 가진다:

  • 고성능, 저지연 네트워킹: 게임에 맞춰 다양한 네트워크 아키텍처를 지원하며, 특히 ECS 기반의 내부 구조 덕분에 퍼포먼스가 뛰어나다.
  • 멀티 아키텍처 지원:
    • Shared: 클라이언트 간 상태를 공유 (ex. Co-op)
    • Host/Client: 호스트가 authoritative 역할 (ex. Party 게임)
    • Server/Client: 별도 서버가 authoritative (ex. Competitive 게임)
    • Simulation PredictionLag Compensation 등 최신 기술이 내장됨
  • Photon Cloud와 연동: 별도 서버 구축 없이 Fusion Cloud를 통해 매치메이킹 및 룸 관리를 할 수 있음

📘 오늘 익힌 주요 개념

1. NetworkObject와 NetworkBehaviour

  • Fusion에서는 기존 Unity의 MonoBehaviour 대신 NetworkBehaviour를 상속하여 동기화가 필요한 객체를 제어한다.
  • NetworkObject는 Fusion이 네트워크 상에서 인식할 수 있는 기본 단위이며, GUID로 식별됨.

2. Tick 기반 업데이트

  • Fusion은 FixedUpdate가 아닌 Simulation Tick 단위로 업데이트가 동작하며, 이는 서버와 클라이언트 간 동기화를 위한 핵심 단위이다.
  • 예를 들어, FixedUpdateNetwork()를 통해 네트워크에서 일관성 있는 물리 계산 수행 가능.

3. Input Authority & State Authority

  • Fusion에서는 Input Authority(입력 주체)와 State Authority(상태 권한자)를 분리하여 보다 유연한 권한 분배가 가능하다.
  • 예) 플레이어는 자신의 입력만 전송하고, 서버는 상태를 계산해 결과를 클라이언트에 동기화.

🧪 간단한 실습 내용

  • 간단한 이동 가능한 Player prefab을 만들고, NetworkCharacterControllerPrototype 컴포넌트를 사용해 동기화된 이동을 구현함.
  • 클라이언트와 서버 간 Input 동기화 테스트: OnInput()과 FixedUpdateNetwork() 내에서 이동 처리

🤔 느낀 점

Fusion 2는 처음에는 구조가 복잡해 보이지만, 아키텍처를 명확히 이해하면 오히려 Netcode for GameObjects보다 더 직관적이고 퍼포먼스 최적화된 구조를 갖고 있다는 점이 인상 깊었다. 특히 여러 동기화 전략을 선택적으로 적용할 수 있다는 점에서 다양한 게임 타입에 유연하게 대응할 수 있을 것으로 기대된다.


📌 내일 할 일

  • Lag Compensation 기능 테스트 (ex. 쿨타임 스킬 판정)
  • Fusion을 이용한 간단한 PvP 샘플 제작
  • Host Migration에 대한 이해도 높이기