경일게임아카데미 멀티 디바이스 메타버스 플랫폼 개발자 양성과정 20221018 개인 공부 2022/04/04~2022/12/14

Jinho Lee·2022년 10월 18일
0

2022.10.18 개인 학습 - 팀 프로젝트 이슈 - Photon Server를 이용한 서버 구축

개요

Photon Server SDK 설치 및 실행

Server

  1. Photon Server SDK 다운로드 페이지

    • 서버 SDK는 압축 파일(자동 압축 해제 실행 파일)로 제공된다.
      압축 해제하여 바로 사용 가능하다.

  1. 라이선스 받기

    • 무료로 100 CCU 라이선스를 받을 수 있다.

    • 위 압축 해제한 폴더의 deploy\bin_Win64 경로에 다운 받은 라이선스 파일을 옮긴다.

  2. PhotonControl.exe 실행

    • deploy\bin_Win64 경로에 존재

    • 위 트레이 바의 좌측 하단 아이콘

    • 관리자 권한을 확인한다.

      • 관리자 권한은 Photon 설정을 위해 필요하다.
    • 아이콘을 클릭하여 Photon 제어 메뉴를 연다.

    • PhotonControl 기능

      • Photon 의 기동과 종료

      • Photon 서버스의 설치, 기동과 종료

      • "LoadBalancing (MyCloud)"의 게임서버 설정 변경

      • Photon 성능 모니터(PerfMon)카운터 설정 및 오픈

      • 로그 파일 오픈

      • 탐색기에서 작업 경로 오픈

      • Photon 최신 버전을 사용하고 있는지 검증

      • 참고

  3. LoadBalancing 인스턴스 시작

    • 위 PhotonControl의 Photon 제어 메뉴에서 아래 그림과 같이 LoadBalancing (MyCloud)에서 Start as Application를 선택, 시작한다.

    • PhotonControl 아이콘이 회색/흰색에서 파란색이 되면 서버가 준비된 것이다.

    • 참고 : 5분 안에 Photon 시작하기

  4. 클라이언트 연결

Deply 폴더

  • deploy 폴더 : Photon Server 실행에 필요한 모든 것이 있다.

Binaries

  • deploy\bin_Win64 : 바이너리 폴더

    • PhotonSocketServer.exe: 실제 Photon server 실행 파일.

    • PhotonServer.config : Photon Server 환경 구성

    • PhotonControl.exe : Photon의 컨트롤 UI

    • Photon Server 라이선스 파일

  • command-line Argument 또는 PhotonControl을 사용하여 서버를 시작할 수 있다.

Tools

  • deploy\bin_tools : Photon 사용에 있어서 유용한 도구

    • 7zip: 압축 파일 생성과 추출 도구. 디버그 정보를 파일로 압축하는 데 사용.

    • baretail: 로그 뷰어. PhotonControl에서 최신 로그를 보기 위해서 사용.

    • firewalltool: Windows 방화벽 내의 Photon용 규칙을 자동 설정하기 위해서 사용.

    • perfmon: 파일에 카운터 로깅을 설정할 때 사용되는 PerfMon 카운터 목록이 있다. Photon 카운터 설명은 아래를 참고.

Application

  • Photon을 사용하려면 Application(서버 등) 별로 binaries 폴더 옆에 별도의 폴더가 있어야 한다.

    • ex. deploy\NameServer
  • Application의 어셈블리는 반드시 폴더 하위 bin 폴더에 있어야 한다.

    • ex. deploy\NameServer\bin
  • Application은 PhotonServer.config에서 설정된다.

LoadBalancing 인스턴스

  • 로드밸런싱(LoadBalancing)의 사전적 의미

  • Photon의 Application는 각각 클라이언트가 무엇을 할 수 있고 무엇을 할 수 없는지, 그 권한을 정의한다.

  • 기본적으로 Photon은 Photon Cloud 및 PUN과 호환되는 LoadBalancing (MyCloud) Application과 함께 제공된다.

  • LoadBalancing (MyCloud)를 실행하는 것으로 클라이언트는 PUN, Photon Voice, Photon Realtime(일명 LoadBalancing Client API)을 사용할 수 있다.

  • LoadBalancing (MyCloud)NameServer, Master Server, GameServer 등 세 개의 Photon Application을 시작한다.

    • NameServerMaster Server로 사용자를 리다이렉션한다.

    • 새로운 룸이 생성되거나 룸이 존재하여 참가할 수 있을 때, Master Server는 클라이언트를 GameServer로 전송한다.

  • 기본적으로 서버 호스트와 같은 기기의 클라이언트만이

  • LoadBalancing Application의 서버 구현에 대한 설명은 다음을 참고

IP 주소 구성

  • 네트워크 상의 클라이언트와 연결해야 하는 경우 공용 IP를 사용해야 한다.

    • Server R&D에서의 방법

      • deploy\LoadBalancing\GameServer\bin

        • GameServer.xml.config
      • deploy\LoadBalancing\Master\bin

        • Master.xml.config
      • 위 파일을 열고 127.0.0.1localhost로 써있는 코드를 모두 Public IPv4 주소로 변경한다.

  • 방화벽, 라우터 및 스위치를 설정해야 한다.

  • 주의 사항

    • 서버가 LAN을 사용하고 클라이언트가 WiFi를 사용하면 다른 네트워크에 있을 수 있다.

      • 위 클라이언트가 서버에 연결할 수 없는 경우, 라우터가 WiFi와 LAN 간 연결을 허용하는지 확인한다.
    • 모든 장치가 동일한 IP 범위에 있는지 확인한다.

    • 공용 IP는 고정 IP를 사용하지 않는 한 변경 될 수 있다.

Master Server IP 구성

  • PhotonControl 메뉴에서 Edit Nameserver.json을 선택한다.

    • 텍스트 편집기로 deploy\NameServer.json 파일이 열린다.
  • 사용 가능한 노드의 필드 중 하나에 IP 주소 또는 호스트 네임을 설정한다.

  • (선택) 지역 토큰(region token)을 변경한다.

Game Server IP 구성

  • 기본 변경 방법 - 버그로 인해 사용 불가. 수동으로 편집 추천

    • PhotonControl 메뉴에서 Game Server IP Config를 선택한다.

    • Host Machine의 IP 주소가 나열되며, public 또는 local로 표시된다. 이 중 하나를 선택한다.

      • 위 IP 주소 선택지 중 Autodetect public 항목은 Photon이 시작될 때 서버가 공용 인터넷 IP를 감지하도록 한다.
    • 버그 사항 참고 포럼

  • Game Server IP 주소 저장

    • deploy\LoadBalancing\bin\GameServer.xml.config

    • 수동으로 편집할 수 있다.

공식 문서 참고를 권하는 기능들

커스텀 플러그인 만들기

  • 플러그인(plugin)이란?

  • Photon Server는 자신이 사용할 기능을 집합한 자신만의 플러그인을 만드는 기능을 제공한다.

    • 이를 활용해 구현하고자 하는 서비스에 맞는 플러그인을 만들 수 있을 것이다.
  • 단계별 지침서를 우선 참고하길 권하며, 이는 Photon Server 플러그인 사용이 익숙지 않은 사용자를 위한 지침서이다.

  • 숙달되기 전까지는 단계별 지침서에 따라 주의깊게 따라해야 한다.

    • 더 많은 활용을 바란다면 참고란의 Photon 플러그인 지침서를 참고하자.
  • 참고

Application

PhotonControl

NameServer

LoadBalancing

Photon Server 환경 구성(Config)

TCP / UDP 포트 번호

연결 해제 분석

기타 기능

예외 처리

IPv6 전환

성능 시험

용어집

참고

  1. 5분 안에 Photon 시작하기 : 공식 튜토리얼

  2. [Photon Server API Documentation: Photon Server API Documentation] : 공식 API 문서

  3. can't change Game Server IP Config : PhotonControl 오류 관련 포럼

  4. Photon Server 5 설치 및 설정

  5. 단계별 지침서 : 초심자를 위한 Photon Server 플러그인 생성, 구성 및 사용 방법 지침서

  6. Photon 플러그인 지침서 : Photon Server 플러그인 생성, 구성 및 사용 방법 지침서

  7. 플러그인 : 위키백과

  8. 로드밸런서의 개념과 특징 : 네이버 포스트

  9. 로드밸런싱 어플리케이션

  10. Photon Server 유니티 멀티게임 만들기 webinar 1탄

10-1. 고라니TV : Photon Server 유니티 멀티게임 만들기 webinar 1탄

  1. Photon Server 유니티 멀티게임 만들기 webinar 2탄

11-1. 고라니TV : Photon Server 유니티 멀티게임 만들기 webinar 2탄

  1. 포톤코리아

  2. [Photon엔진강좌] Photon Server 소개 및 설치

  3. 용어집

도움이 될 것 같은 자료

0개의 댓글