안녕하세요~

이번에는 포톤 서버를 구축해보겠습니다.

 

가정에 윈도우 컴퓨터가 있다면

그 컴퓨터를 이용해서 간단하게 포톤 서버를 구축할 수 있습니다.

그렇지만 요즘은 클라우드 플랫폼도 워낙 잘 나와서

클라우드 플랫폼을 이용해보도록 하겠습니다.

 

 

클라우드 컴퓨팅이란?

컴퓨팅 파워, 데이터베이스 스토리지, 애플리케이션 및 기타 IT 리소스를 필요에 따라

인터넷을 통해 제공하고 사용한 만큼만 비용을 지불하는 것을 말합니다.

 

대표적 업체로는

아마존, 마이크로소프트, 구글 등 

해외 공룡(?) 업체들이 클라우드 서비스를 제공하고 있습니다.

 

이번 포스팅은 한국 시장 절반 이상을 차지하고 있는 아마존을 이용해보겠습니다.

* 참고기사

https://www.hankyung.com/it/article/2019062745161

 

외국 클라우드社, 국내 점유율 67%

한국 클라우드 시장에서 국내 업체 입지가 좁아지고 있다. 외국 클라우드 업체의 국내 시장 점유율이 높아지면서다. 클라우드 각 분야에서도 외국 업체가 모두 1위를 차지하고 있다. 27일 정보통신산업진흥원의 ‘인공지능 확산의 핵심 인프라, 클라우드산업 동향 분석과 시사점’ 보고서에 따르면 글로벌 시장조사 업체 IDC는 지난해 외국 업체의 한국 클라우드 시장 점유율이 67%를 기록한 것으로 파악했다. 국내 시장의 업체별 점유율이 공개된 것은 이번이 처음이다.

www.hankyung.com

 

아마존은 2006년 온라인 상거래를 통해 쌓은 인프라를 개방했습니다.

그 서비스가 클라우드의 대명사인 EC2와 S3 입니다.

 

* EC2 (Elastic Compute Cloud)

* S3 (Simple Storage Service)

 

 

아마존을 이용하려면 계정부터 있어야겠죠?

 

* 홈페이지

https://aws.amazon.com/ko/

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

예측 분석 Formula One Group에서 Amazon SageMaker를 사용하여 레이스를 최적화 Formula 1에서 어떻게 Amazon SageMaker와 다른 AWS 서비스를 사용하여 레이스 의사 결정을 최적화하고 팬 경험을 개선하는지 알아보십시오. 자세히 알아보기  변혁 시작 Formula One Group은 인프라 대부분을 온프레미스 데이터 센터에서 AWS로 이전하고 Amazon SageMaker를 비롯한 AWS 기계 학습 서비스에서 이를

aws.amazon.com

 

 

* 계정 생성

무료로 계정생성을 할 수 있습니다.

 

계정을 생성하셨으니

인스턴스 생성을 해보겠습니다.

 

 

아마존 솔루션 중 EC2를 선택하세요.

 

 

* EC2란? 

Amazon Elastic Compute Cloud 로서 

안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스 중 하나 입니다.

 

간단한 웹 서비스 인터페이스를 통해 간편하게 필요한 용량을 얻고 구성할 수 있습니다.

그리고 제일 중요한 점으로 무료로 구축이 가능합니다.

리눅스는 물론 Window t2.micro 인스턴스를 무료(12개월 750시간/월) 로 제공합니다.

 

 

총 7단계만 선택하면 구축됩니다.

 

 

 

말씀해드린대로

t2.micro 유형을 선택합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

계정(비밀번호)을 받도록 하겠습니다.

인스턴스 연결을 시도하면 암호를 가져오는 버튼이 활성화되어 있습니다.

 

 

EC2 인스턴스 생성시 발급받은 키페어가 필요합니다.

 

 

* 키페어

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair

 

Amazon EC2 키 페어 - Amazon Elastic Compute Cloud

Amazon EC2 키 페어 Amazon EC2는 퍼블릭 키 암호화 기법을 사용하여 로그인 정보를 암호화 및 해독합니다. 퍼블릭 키 암호화 기법은 퍼블릭 키를 사용하여 데이터를 암호화하고, 수신자가 프라이빗 키를 사용하여 해당 데이터를 해독하는 방식입니다. 퍼블릭 키와 프라이빗 키를 키 페어라고 합니다. 퍼블릭 키 암호화 기법을 사용하면 암호 대신 프라이빗 키를 사용하여 인스턴스에 안전하게 액세스할 수 있습니다. 인스턴스를 시작할 때 키 페어를 지정합니다

docs.aws.amazon.com

 

 

 

윈도우에서 제공하는 원격접속 프로그램을 이용해

접속을 해보세요.

 

 

 

 

 

 

 

<< 접속이 안되는 경우 >>

1. 보안그룹설정

2. 원격접속 프로그램 설정

을 한번 확인해보세요.

 

 

 

1. 보안그룹설정

 

설정되어있는 그룹을 선택 후

인바운드 규칙을 설정합니다.

예를 들어,

 

* RDP (Remote Desktop Protocol)

원격 데스크톱 프로토콜

 

 

 

 

2. 원격 접속 프로그램

Microsoft Remote Desktop 10

 

 

 

 

 

 

윈도우 서버를 설치하면

집에서 사용하는 윈도우처럼 익스플로러가 존재합니다.

그래서 익스플로러를 이용해 포톤 홈페이지에서 포톤 서버 SDK를 다운로드 받으시면 됩니다.

 

 

 

받은 SDK를 실행하세요.

 

포톤 서버 폴더가 하나 생깁니다.

그 중 deploy 폴더에서 설치된 윈도우 비트에 맞는 폴더로 오시면

PhotonControl 실행파일이 있습니다.

 

 

PhotonControl이 실행하면 

라이센스를 연결하거나 로드밸런스, MMO 어플리케이션을 동작할 수 있게 됩니다.

 

감사합니다!

 

참!

포톤 서버 라이센스 연결은  다음 포스팅을 참고하시면 됩니다.

https://photonkr.tistory.com/18?category=1030314

 

Photon Server 라이센스 연결

오늘은 포톤 서버 라이센스 연결해보겠습니다. 먼저, 포톤 서버 SDK 설치를 하셔야겠죠? https://www.photonengine.com/ko-KR/sdks#serverserver 포톤 서버 SDK 다운로드 페이지입니다. 현재는 server 4 다운로드..

photonkr.tistory.com

 

 

 


 

 

 

Photon 공식 홈페이지 
https://www.photonengine.com/ko-kr/Photon


★Photon Help Center
https://support.photonengine.jp/hc/ko

 

 

★Photon Korea 공식 블로그
https://photonkr.tistory.com

 

 

★Photon Korea 페이스북

https://www.facebook.com/photoncloudkr

 

 

★Photon Korea 유투브

https://bitly.kr/photonyoutube

'Photon > Server' 카테고리의 다른 글

Photon Server 라이센스 연결  (0) 2018.11.04

사랑하는 가족들과

밝은 보름달처럼 좋은 추억 많이 만드세요!

 

 

 


Photon 공식 홈페이지 
https://www.photonengine.com/ko-kr/Photon


★Photon Help Center
https://support.photonengine.jp/hc/ko

 

 

★Photon Korea 공식 블로그
https://photonkr.tistory.com

 

 

★Photon Korea 페이스북

https://www.facebook.com/photoncloudkr

 

 

★Photon Korea 유투브

https://bitly.kr/photonyoutube

'소식' 카테고리의 다른 글

2019년 7월 Photon세미나  (0) 2019.07.21
2019년 5월 Photon 세미나  (0) 2019.05.24
Unite2019에서 만나요!  (0) 2019.05.15
Photon Korea 유투브 오픈 이벤트!  (0) 2019.04.22
2019년 4월 Photon 세미나  (0) 2019.04.12

 

 

구조도

PUN :

릴레이 서버. API 중 최상위 레벨은 PUN 코드로, 네트워크 객체, RPC 등과 같은 Unity의 기능을 구현합니다. 두번째 레벨은 Photon 서버, 매치메이킹, 콜백 등과 관련된 로직이 포함되어 있습니다. 가장 낮은 레벨은 DLL 파일들로 이루어져 있으며, 직렬화/비직렬화, 프로토콜 등과 같은 것으로 구성되어 있습니다.

 

Bolt :

호스팅된 클라이언트. 위 이미지의 2,3번 유저는 직접 연결이 불가능하여 포톤을 통해 접속하고, 4,5,6번 유저는 직접 연결이 가능하여 1번 유저가 직접 호스팅을 하고 있습니다.

 

 

 

지연보상

동기화 문제에서 발생하는 증상으로써 한 클라이언트에서 보내는 메시지가 다른 클라이언트로 ‘이동’하는데 걸리는 시간차이 때문에 발생합니다. 움직임이 느린 경우 눈에 띄지 않을 수도 있습니다. 그러나 이동 속도가 매우 빠르면 다른 게임에서 차이가 명확하게 표시될 수 있습니다.

PUN : OnPhotonSerializeView함수에서 포지션 격차를 보완하고, FixedUpdate함수에서 회전 격차를 보완합니다.

코드 예시

OnPhotonSerializeView함수는 PhotonView에 대한 동기화 데이터를 쓰고 읽을 수 있도록 초당 PUN에 의해 ​​여러 번 호출됩니다. 이는 PhotonView가 정기적으로 동기화하는 데이터를 사용자가 정의할 수 있습니다. 즉, 전송되는 내용과 클라이언트가 데이터를 사용하는 방법을 정의합니다. 이 함수 인자로 PhotonStream을 받습니다. PhotonView를 제어하는 ​​클라이언트의 "쓰기"모드 (PhotonStream.IsWriting == true)와 제어 클라이언트가 전송 한 원격 클라이언트의 "읽기 모드"입니다. 스트림에 값을 쓰지 않으면 PUN은 업데이트를 건너 뜁니다.

 

Bolt : Bolt Physics를 이용해서 격차를 보완합니다.

코드예시

Bolt Physics를 사용하기 전에 Bolt Hit Box Body 컴포넌트를 추가해야합니다. 그리고 나서 RaycastAll 함수를 이용하면 됩니다. 

* RayCast란? 3차원 공간에서 어느 한 점(시작점)에서 Ray를 정해진 방향(direction vector)으로 진행하여 Ray와 충돌되는 객체를 구하는 방법

 

 

 

동기화

PUN : RPC(원격 프로시저) 등. 같은 룸에 있는 다른 클라이언트에 있는 메소드를 호출하는 것입니다. 호출될 함수에는 '[PunRPC]' 속성이 적용되어 있어야 합니다. PhotonView가 함수를 호출합니다.

 

* RPC 조금 더 자세히

https://photonkr.tistory.com/22

 

[PUN]RPC 알아보기

포톤은 여러 서비스를 제공합니다. Realtime, PUN 등등 그 중 PUN은 원격프로시저호출(Remote Procedure Call)을 지원합니다. * 프로시저(Procedure)란? - 루틴이나 서브루틴 및 함수와 같은 뜻 - 어떤 행동을 수..

photonkr.tistory.com

Bolt : 이벤트 입력. 즉, 플레이어가 입력한 w,a,s,d 키, 마우스 클릭 등 이런 input을 동기화 합니다.  또한 3D물리엔진을 구비하고있고 클라이언트쪽에서 움직임을 예측하며 롤백기능이 있어 서버와 클라이언트가 일치하도록 조절해줍니다

 

 

매치메이킹

다른 유저와 같이 플레이하기 위하여 룸에 입장하는 것은 Photon에서 매우 쉽습니다. 

PUN : 기본적으로 3가지 방법을 제공합니다. 1. 서버에게 매칭되는 룸을 찾은 후 입장 2. 친구를 따라 룸에 입장 3. 룸의 목록을 얻어 사용자가 하나를 선택하여 입장. 여러 방법 중 대표적인 하나를 예로 들면, JoinRandomRoom 함수를 이용해 룸에 입장할 수 있습니다. 즉, 로비에서 룸에 입장하고, 룸이 없으면 입장 실패합니다. 로비를 많이 생성했다면 맞는 룸을 찾기 위하여 JoinRandomRoom 함수를 반복해야 할 수 있습니다. 이 메소드는 현재 참여한 로비내에 있는 룸을 찾거나 로비에 있지않는 상태라면 디폴트 로비에서 찾습니다.

 

Bolt : Bolt.Matchmaking.BoltMatchmaking 클래스를 이용합니다. 순서로는 현재 세션 얻어오기->세션 생성하고 갱신하기->만든 세션에 참여하기. 세션에 참여하는 방법은 udp로, 이름으로, 랜덤으로 할 수 있습니다. 

코드예시

세션 얻어오기

세션 생성

세션 참여

 

 

Bolt.Matchmaking.BoltMatchmaking 클래스 API

https://doc-api.photonengine.com/en/bolt/current/class_bolt_1_1_matchmaking_1_1_bolt_matchmaking.html

 

Photon Bolt Engine API: Bolt.Matchmaking.BoltMatchmaking Class Reference

Join a Session in a random fashion. In order to filter the rooms the player can join, you can make use of the UdpSessionFilter class and pass custom parameters. Parameters sessionFilterSession filter parameters tokenJoin Token Example: public void Join(str

doc-api.photonengine.com

 

추천 게임장르

PUN : 퍼즐, 턴베이스 등

 

Bolt : FPS, TPS, 슈팅 등

 

아래 링크에서 플랫폼, 장르, Photon 서비스를 필터링하여 출시된 게임을 확인할 수 있습니다.

https://www.photonengine.com/ko-kr/pun/showcase#allPlatforms-allGenres-allTypes

 

Photon PUN을 이용한 게임 : | Photon Engine

MULTIPLAYER REALTIME PUN BOLT QUANTUM COMMUNICATION CHAT VOICE SELF-HOSTED SERVER 멀티플레이를 간단하게 실현합니다! Photon Realtime 인디/프로 개발자 누구나 실시간 멀티 플레이어 게임을 개발하여 세계로 진출할 수 있습니다. Photon PUN 인디/프로 개발자 누구나 실시간 멀티 플레이어 게임을 개발하여 세계로 진출할 수 있습니다. Photon BOLT 비교불가! Photon B

www.photonengine.com

 

 

요약

PUN : Photon Realtime을 유니티에 매우 적합하게 만든 제품입니다. 네트워킹 경험이 적다면 PUN으로 시작하는 것이 좋습니다.

Bolt : 이벤트 기반의 네트워크 솔루션입니다. 기술문서를 참고하면서 개발하시면 됩니다.

 


 

Photon 공식 홈페이지 
https://www.photonengine.com/ko-kr/Photon


★Photon Help Center
https://support.photonengine.jp/hc/ko

 

 

★Photon Korea 공식 블로그
https://photonkr.tistory.com

 

 

★Photon Korea 페이스북

https://www.facebook.com/photoncloudkr

 

 

★Photon Korea 유투브

https://bitly.kr/photonyoutube

'Photon > Bolt' 카테고리의 다른 글

[Photon Engine]유니티짱을 이용한 Bolt 시작하기  (0) 2019.08.20

+ Recent posts