포톤은 스토리지 기능이 없습니다.
그래서 다른 회사에서 제공하는 스토리지를 사용하여
계정관리, 유저 데이터 관리를 하는 것이 좋습니다.
그래도
멀티플레이 중 상황을 파악하고 싶거나
서버에서 게임 컨트롤을 하고 싶거나
치트, 해킹에 대한 대책이 필요합니다.
이럴때 포톤에서는
1. Webhooks, WebRPC
2. Photon Server
3. Plugin
을 가지고 대응하면 됩니다.
포톤 플러그인이란 .NET 의 DLL 로서
Photon Server의 LoadBalancing 어플리케이션 단에서, 룸 내의 이벤트에서 동작합니다.
* DLL (Dynamic Link Library) : 동적연결라이브러리
여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는 라이브러리입니다.
<플러그인 실행단계>
1. Intercept the hook call
2. Alter call info
3. Injection custom code
4. Process hook call
5. Injection custom code
6. Return
<플러그인에서 가능한 액션>
1. 이벤트
2. 타이머
3. HTTP 엑세스
4. 프로퍼티 설정
5. 퀵 아웃
타이머는 1회, 반복 2종류가 있습니다.
1회
CreateOneTimeTimer(Action callback, int dueTimeMs)
반복
CreateTimer()
퀵아웃 은 플러그인으로 유저를 방에서 퇴출하는 액션입니다.
IPluginHost.RemoveActor()
<플러그인 구조, 동작>
Hive는
Photon 4 게임 서버의 핵심입니다.
PluginFactory 는
플러그인의 인스턴스를 생성하기 위한 클래스로서
룸 생성시 Hive에서 호출됩니다.
* 팩토리 패턴
디자인 패턴 중 하나로서
모든 팩토리 패턴에서는 객체 생성을 캡슐화합니다.
팩토리 패턴에는 팩토리 매서드 패턴과 추상 팩토리 패턴이 있습니다.
* 팩토리 매서드
객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정
* 추상 팩토리 패턴
인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스 지정하지 않고도 생성
<플러그인 구현 범위>
★Photon 공식 홈페이지
https://www.photonengine.com/ko-kr/Photon
★Photon Help Center
https://support.photonengine.jp/hc/ko
'Tip' 카테고리의 다른 글
[Photon 팁]포톤엔진 구매-클라우드편 (0) | 2018.09.28 |
---|---|
[Photon 팁]포톤엔진 구매-서버편 (0) | 2018.09.07 |
[Photon 팁]포톤엔진을 유니티(Unity 3D)에 적용 (0) | 2018.07.23 |
[Photon 팁] 포톤 Cloud vs Server (0) | 2018.06.20 |