2022.10.18 개인 학습 - 팀 프로젝트 이슈 - Photon Server를 이용한 서버 구축
아래 R&D 문서는 매우 간략화 된 내용임을 밝힙니다.
자세한 기술 및 설정을 알려면 다음 공식 Documentation을 참고하길 추천합니다.
영어 문서 쪽이 버그 없이 작동합니다.
링크 이동 등이 문제 없이 작동합니다.
Photon Server API Documentation: Photon Server API Documentation
서버 SDK는 압축 파일(자동 압축 해제 실행 파일)로 제공된다.
압축 해제하여 바로 사용 가능하다.
무료로 100 CCU 라이선스를 받을 수 있다.
위 압축 해제한 폴더의 deploy\bin_Win64
경로에 다운 받은 라이선스 파일을 옮긴다.
PhotonControl.exe 실행
deploy\bin_Win64
경로에 존재위 트레이 바의 좌측 하단 아이콘
관리자 권한을 확인한다.
아이콘을 클릭하여 Photon 제어 메뉴를 연다.
PhotonControl 기능
Photon 의 기동과 종료
Photon 서버스의 설치, 기동과 종료
"LoadBalancing (MyCloud)"의 게임서버 설정 변경
Photon 성능 모니터(PerfMon)카운터 설정 및 오픈
로그 파일 오픈
탐색기에서 작업 경로 오픈
Photon 최신 버전을 사용하고 있는지 검증
참고
위 PhotonControl의 Photon 제어 메뉴에서 아래 그림과 같이 LoadBalancing (MyCloud)
에서 Start as Application
를 선택, 시작한다.
PhotonControl 아이콘이 회색/흰색에서 파란색이 되면 서버가 준비된 것이다.
참고 : 5분 안에 Photon 시작하기
클라이언트 연결
IP 주소 환경 구성을 통해 네트워크 상 클라이언트 연결이 가능하다.
참고 : 5분 안에 Photon 시작하기
deploy
폴더 : Photon Server 실행에 필요한 모든 것이 있다.deploy\bin_Win64
: 바이너리 폴더
PhotonSocketServer.exe: 실제 Photon server 실행 파일.
PhotonServer.config : Photon Server 환경 구성
PhotonControl.exe : Photon의 컨트롤 UI
Photon Server 라이선스 파일
command-line Argument 또는 PhotonControl을 사용하여 서버를 시작할 수 있다.
deploy\bin_tools
: Photon 사용에 있어서 유용한 도구
7zip: 압축 파일 생성과 추출 도구. 디버그 정보를 파일로 압축하는 데 사용.
baretail: 로그 뷰어. PhotonControl에서 최신 로그를 보기 위해서 사용.
firewalltool: Windows 방화벽 내의 Photon용 규칙을 자동 설정하기 위해서 사용.
perfmon: 파일에 카운터 로깅을 설정할 때 사용되는 PerfMon 카운터 목록이 있다. Photon 카운터 설명은 아래를 참고.
Photon을 사용하려면 Application(서버 등) 별로 binaries 폴더 옆에 별도의 폴더가 있어야 한다.
deploy\NameServer
Application의 어셈블리는 반드시 폴더 하위 bin
폴더에 있어야 한다.
deploy\NameServer\bin
Application은 PhotonServer.config에서 설정된다.
로드밸런싱(LoadBalancing)의 사전적 의미
서버에 가해지는 부하(로드, Load)를 분산(밸런싱, Balancing)하는 것
클라이언트와 서버풀 사이에 위치하여 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리한다.
참고
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을 시작한다.
NameServer
는 Master Server
로 사용자를 리다이렉션한다.
새로운 룸이 생성되거나 룸이 존재하여 참가할 수 있을 때, Master Server
는 클라이언트를 GameServer
로 전송한다.
기본적으로 서버 호스트와 같은 기기의 클라이언트만이
LoadBalancing Application의 서버 구현에 대한 설명은 다음을 참고
네트워크 상의 클라이언트와 연결해야 하는 경우 공용 IP를 사용해야 한다.
Server R&D에서의 방법
deploy\LoadBalancing\GameServer\bin
GameServer.xml.config
deploy\LoadBalancing\Master\bin
Master.xml.config
위 파일을 열고 127.0.0.1
과 localhost
로 써있는 코드를 모두 Public IPv4 주소로 변경한다.
방화벽, 라우터 및 스위치를 설정해야 한다.
주의 사항
서버가 LAN을 사용하고 클라이언트가 WiFi를 사용하면 다른 네트워크에 있을 수 있다.
모든 장치가 동일한 IP 범위에 있는지 확인한다.
공용 IP는 고정 IP를 사용하지 않는 한 변경 될 수 있다.
PhotonControl 메뉴에서 Edit Nameserver.json
을 선택한다.
deploy\NameServer.json
파일이 열린다.사용 가능한 노드의 필드 중 하나에 IP 주소 또는 호스트 네임을 설정한다.
(선택) 지역 토큰(region token)을 변경한다.
기본 변경 방법 - 버그로 인해 사용 불가. 수동으로 편집 추천
PhotonControl 메뉴에서 Game Server IP Config
를 선택한다.
Host Machine의 IP 주소가 나열되며, public
또는 local
로 표시된다. 이 중 하나를 선택한다.
Autodetect public
항목은 Photon이 시작될 때 서버가 공용 인터넷 IP를 감지하도록 한다.버그 사항 참고 포럼
Game Server IP 주소 저장
deploy\LoadBalancing\bin\GameServer.xml.config
수동으로 편집할 수 있다.
플러그인(plugin)이란?
호스트 응용 프로그램과 서로 응답하는 컴퓨터 프로그램
추가 프로그램을 설치하여 특정 기능을 수행할 수 있도록 하는 확장 소프트웨어
Photon Server는 자신이 사용할 기능을 집합한 자신만의 플러그인을 만드는 기능을 제공한다.
단계별 지침서를 우선 참고하길 권하며, 이는 Photon Server 플러그인 사용이 익숙지 않은 사용자를 위한 지침서이다.
숙달되기 전까지는 단계별 지침서에 따라 주의깊게 따라해야 한다.
참고
5분 안에 Photon 시작하기 : 공식 튜토리얼
[Photon Server API Documentation: Photon Server API Documentation] : 공식 API 문서
can't change Game Server IP Config : PhotonControl 오류 관련 포럼
단계별 지침서 : 초심자를 위한 Photon Server 플러그인 생성, 구성 및 사용 방법 지침서
Photon 플러그인 지침서 : Photon Server 플러그인 생성, 구성 및 사용 방법 지침서
10-1. 고라니TV : Photon Server 유니티 멀티게임 만들기 webinar 1탄
11-1. 고라니TV : Photon Server 유니티 멀티게임 만들기 webinar 2탄