이미 이전 시리즈 글을 보셨거나 이전 버전의 Photon Server를 사용해 보셨다면 컴퓨터나 클라우드 VM으로 Photon Server를 실행하는 것이 얼마나 간단한 일인지 잘 아실 겁니다.
이번 글에서는 기본적인 설치 및 초기 설정과 일부 신규 기능을 소개하고자 합니다.
아직 글을 읽지 않았거나 Photon Sever를 사용한 적이 없는 분이라면, 이번 기회에 v5를 설치해서 실행해보세요!
설명에 따라 SDK를 다운로드하면 5분 이내에 서버를 실행할 수 있습니다. 그리고 유저가 연결하기만 기다리면 됩니다~
설치 준비
Photon 서버의 최소 설치 조건은 Windows 8.1 or Windows Server 2012 R2 x64에 .NET framework 4.6 이상의 환경입니다. 물론 최신 버전의 windows에 설치하는 것이 가장 좋죠. :)
일반적으로 개발 시에는 코딩이나 설정 화면을 보기가 편하도록 Windows Desktop 버전을 권장하고 실제 접속 시에는 물론 Windows Server의 환경을 사용하는 편이 보다 안정적입니다~
C# .NET으로 Photon Server와 관련된 APP 플러그인(Application or Plugins) 개발 시에는 Visual Studio 2019 이후 버전을 권장합니다.
설치 단계
1. 다운로드:
Photon Server의 설치 및 개발 패키지 SDK 다운로드 링크: https://www.photonengine.com/ko-kr/sdks#server-sdkserverserver
2. 압축 풀기:
다운로드한 서버 SDK 패키지는 자동 압축 해제 실행 파일입니다. 이런 방식 덕분에 압축된 .dll 파일은 일부 압축 해제 프로그램에서 "untrustworthy"라는 신뢰할 수 없는 파일로 표기되지 않습니다. 압축 해제 시 파일은 원하는 위치에 해제할 수 있지만 되도록이면 빈 폴더를 미리 준비해두는 편이 좋습니다.
3. 라이선스 획득 License:
Photon Server는 라이선스(License)를 획득해야만 실행할 수 있습니다. Photon 공식 홈페이지의 관리 화면에서 Photon Server vX의 100 CCU License를 획득할 수 있습니다. 초기 개발 및 전기 테스트 시에는 우선 100 CCU의 라이선스를 사용하여 Photon Server를 실행하면 됩니다.
4. PhotonControl 실행:
압축을 해제한 디렉터리로 이동하여 deploy\bin_Win64에서 exe를 찾아 실행한 후 프로그램이 시스템 관리자(Admin) 권한으로 실행되었는지 확인하세요. Photon Server는 Photon Services를 컴퓨터 서버로 설정하기 위해 시스템 권한이 필요합니다.
5. LoadBalancing 실행:
시스템 리스트의 Photon Control 아이콘(바탕화면 우측 하단에 기본 설정됨)을 찾아 흰색/회색 아이콘을 클릭하여 Photon Control 메뉴를 여세요.
Photon 애플리케이션의 선택 사항 중 LoadBalancing (MyCloud)를 선택한 후 "Start as Application"를 선택합니다.
6. OK!
이제 Photon Server를 실행했습니다!!
실행 확인
정말로 실행에 성공했나 확인하고 싶으세요?
Photon Control에서 LoadBalancing (MyCloud)을 애플리케이션으로 실행(Start as application)하면 아래 그림과 같습니다.
실행을 클릭한 후 Photon Control의 시스템 리스트 아이콘이 Photon Logo와 같은 파란색으로 바뀌면 Photon 서버의 준비가 완료된 것입니다.
참고 이미지:
Photon Service 실행 중, 아이콘이 파란색 동그라미로 변함.
이때 PhotonControl에서 Open Logs를 선택합니다.
Open Logs는 프로그램 1개를 실행하여 현재 모든 Photon Services 실행 현황의 로그를 다음 화면처럼 관찰할 수 있습니다.
서버 실행~
Log에서 “Service is running… “이라고 뜬다면, Yeah, 성공이에요!
다만, 위에서 우리는 App 방식으로 Photon Server를 실행했으며 원래는 2가지 방식으로 실행하도록 디자인되었음을 잊으면 안 됩니다.
● Run Server as an Application → 애플리케이션 방식으로 실행하기 장점은 원할 때면 언제나 Photon Server를 실행하거나 종료할 수 있고 테스트 시 문제가 있다고 생각될 때면 프로그램을 종료하고 재실행할 수 있어 상대적으로 깔끔한 환경에서 실행할 수 있습니다. 그러므로 개발 시 언어 선택 모드에 매우 적합하며 이런 방식으로 실행할 때는 Photon Sever의 프리셋도 debug mode여서 개발자가 더 편하게 오류를 삭제할 수 있습니다.
● Run Server as a Service→
시스템 구성 요소 서비스 방식으로 실행하기의 장점은 Windows 시스템을 재부팅할 때 자동으로 로딩 및 실행되어 시스템 재부팅 시 서버가 로그인되지 않는 경우를 방지할 수 있습니다. 혹은 수동으로 Photon Server 전원을 켰을 때 서버가 중단되어도 모르는 상황을 방지할 수 있고 온라인 부서 환경에서 사용하기에 적합합니다.
만일 Service가 실행 중이라면 Photon Control을 꺼도 실행 중인 서버는 종료되지 않는답니다~ 실행 중인 Service를 종료하려면 LoadBalancing (MyCloud)에서 Stop Services를 선택해야만 Service를 종료할 수 있습니다.
SDK 소개
Photon Server SDK 패키지에는 리스트가 몇 개 포함되어 있는데요. 그 중 deploy 리스트가 가장 중요합니다.
다른 리스트들은 doc, lib 및 src-server (applications)처럼 Photon Server Application 개발에 필요한 리소스 파일입니다.
Deploy 리스트
우리는 deploy\bin_Win64를 Binary 파일이라고 부를 건데요. 모두 Photon 실행 시 필요한 파일들이고 이 리스트에는 다음 파일이 포함되어 있습니다.
● exe: 실제 Photon 서버 실행 파일
● config
● exe
● Photon License 서버 라이선스 파일
Command Line으로 실행 명령 방식으로 서버를 실행할 수도 있고, PhotonControl로 서버를 실행/정지 할 수도 있습니다.
LoadBalancing Instance
설계적으로 보면 Photon은 전체 게임 연결+논리 구조로 다른 “애플리케이션”을 하는 것입니다. 다른 애플리케이션은 클라이언트가 수행할 수 있는 작업과 수행할 수 없는 작업을 정의합니다. 예시: 팀 구성 기능. 애플리케이션의 Instance 실체의 경우 임무가 다르긴 하지만, 서로 다른 임무에 대해 일부 협력 작업을 수행할 수 있습니다.
PhotonControl을 실행하면 기본 설정인 LoadBalancing (MyCloud) 애플리케이션이 있는데 온라인 Photon Cloud의 작동방식과 매우 유사합니다.
LoadBalancing (MyCloud)를 실행하면 PUN, Photon Voice 혹은 Photon Realtime(LoadBalancing Client API라고도 함)로 바로 연결할 수 있습니다.
사실상 LoadBalancing (MyCloud)을 사용하면 독립된 3개의 Photon 애플리케이션을 실행할 수 있습니다.
NameServer, Master Server and Game Server.
● Name Server는 Client로 사용 가능한 Master Server를 임포트할 수 있습니다.
● NameServer 1개는 다수의 MasterServer를 대응할 수 있습니다..
● 새 방이 생성되면 Master Server는 Client를 Game Server로 전송합니다.
● MasterServer 1개는 다수의 GameServer를 대응할 수 있습니다.
● 게임 1라운드가 끝나면 Game Server는 Client를 Master Server로 전송합니다.
Photon Server 구조, 독립적이면서 서로 협력하여 작업하는 3개의 Application.
Photon Server 초기 설정은 Master Server와 Game Server는 같은 기기에 있는 Client만 접속 가능하며 다른 도메인이 필요하거나 네트워크의 클라이언트가 연결을 원할 경우, 추가 IP/Port를 설정해야 합니다.
사용 가능한 Node에서 IP 혹은 hostname을 설정하고 Region을 선택하여 변경할 수 있습니다.
Game Server IP 설정
PhotonControl 메뉴에서 Game Server IP Config를 선택하면 호스트의 IP 주소가 표시됩니다. “Public“ 혹은 “Local” 섹션에서 원하는 설정으로 전환하거나 선택하시기 바랍니다.
Autodetect Public을 선택하면 Photon을 실행할 때, 서버가 공용 인터넷 IP(Public Internet IP)를 자동으로 탐색하여 사용합니다.
Game Server의 IP 주소를 설정하면 deploy \ LoadBalancing \ bin \ GameServer.xml.config에 저장되며 IP주소 역시 수동으로 사용자 지정값으로 편집할 수 있습니다.
네, 모두들 Photon Server 5의 설치, 실행, 리스트 구조 및 초기 설정에 대해 어느 정도 파악이 되셨겠죠. 아주 간단하죠~
향후 보안 상의 문제를 고려하여 기본값과 다른 TCP/UDP의 IP/Port로 교체하거나 프로그램의 전송 효율을 높이고 버퍼 영역의 크기를 비교적 적절하게 변경하고자 하는 경우 해당 설정들도 PhotonServer.config에서 합리적인 값으로 변경하고 테스트할 수 있습니다.
추후 다음 글에서 서버 설정 파일의 기타 세부 설정에 대해 차례로 언급할 예정입니다. 그러니 공식 SNS에 공유하는 기사와 토론에 많은 관심 부탁드려요~ 궁금한 사항이 있으시면 언제든 SNS로 메시지를 보내주세요. 함께 의논해보아요~