This document is about: SERVER 4
SWITCH TO

Photon Server 소개

Photon은 굉장히 빠르고 매우 쉽게 사용할 수 있는 온프레미스 실시간 소켓 서버이며 크로스 플랫폼 멀티 플레이어 게임 개발 프레임워크 입니다.

Photon Server 멀티플레이어 API를 이용하여 여러 플레이어들이 공유된 게임 세션에 참여하고 플레이어들의 플랫폼에 상관없이 접속한 플레이어 간에 데이터와 메시지 전송을 실시간으로하며 동기화 해 줍니다.

멀티플레이어 게임 백엔드를 갖게 됩니다!

Photon 클라우드는 클라이언트 SDK를 이용하여 다음과 같은 다양한 장르의 게임을 개발 할 수 있으며 아래에 보여드린 장르에 국한되지 않습니다:

  • 일인칭 슈팅 게임
  • 레이싱 게임
  • 마인크래프트와 같은 장르의 게임
  • 실시간 캐쥬얼 게임
  • 동기, 비동기식 게임
  • ...

Photon Server 어플리케이션을 통하여 자신만의 멀티플레이어 게임 백앤드를 구축하고 운영하는 프레임워크을 갖게 됩니다.

모든 어플리케이션은 C# 소스코드가 제공됩니다. 앱은 성능에 최적화 되어 있으며 바로 사용 할 수 도 있고 필요에 따라 커스터마이징 될 수 있습니다. 디플로이는 자동 재시작 또는 수동 재시작을 지원 하는 xcopy 디플로이를 사용하여 매우 편리 합니다.

Photon Server SDK 에서 사용할 수 있는 어플리케이션은 다음과 같습니다.

  • LoadBalancing: 서버간 로드 밸런스 해 주는 스케일링 - Photon Cloud의 막강한 기능 입니다!
  • MMO: 매우 큰 세계관과 수 많은 플레이어들이 참여하는데 사용되는 솔루션.
  • Lite: 가장 기본적인 Photon 개념(동작, 이벤트)을 이용하여 초기 단계에 사용됩니다.

지금 무료 SDK 를 받아 보세요. 가입 후에 무료로 100 CCU 라이선스를 다운로드 할 수 있습니다!

핵심 구조

Photon Server 아키텍처

photon high level architecture
Photon High 레벨 아키텍처

성능상의 이유로 Photon 코어C++ 언어로 개발 되었습니다.

  • 코어는 고성능 소켓 핸들링을 위하여 IOCP(IO Completions Ports)를 사용합니다.
  • 프로토콜의 헤비 리프팅을 구현 합니다.
  • 신뢰할 수 있는 UDP(RUDP),TCP,HTTP 와 웹 소켓을 지원 합니다.

비즈니스 로직은 코어에 의하여 .NET CLR 내에서 수행됩니다.

  • Photon에서 실행되는 어플리케이션이 포함되어 있습니다.
  • C# 또는 .NET 언어에 기반하여 작성 되었습니다.

프로토콜

Photon Server 코어는 다음 프로토콜들을 지원 합니다.

  • 신뢰할 수 있는 UDP (eNET 기반)와 클라이언트-서버간 아키텍쳐를 위하여 특별히 튜닝됨
  • 바이너리 TCP
  • 웹 소켓
  • HTTP

전송 프로토콜은 꼭 필요한 기능만을 넣어 매우 슬림합니다. Photon 은 각 클라이언트 플랫폼의 네트워크 레이어를 잘 포장해 놓았습니다. 게임 클라이언트들이 플랫폼과 프로토콜에 관계없이 통신 할 때 해시테이블에 데이터를 넣고 그냥 보내면 됩니다. Photon이 알아서 직렬화/비직렬화를 해줍니다.

Server 개발 프레임워크 (C#)

어플리케이션은 개발 프레임워크의 최상단에 위치해 있으며 일반적인 작업을 수행 합니다.

  • RPC 호출은 오퍼레이션 인스턴스에 단순하고 유연하게 매핑 됩니다.
  • 파이버를 통하여 메시지를 전달 함으로써 쓰레드 문제가 해결 됩니다.
  • Photon 은 CPU가 방해 되지 않는 선에서 최대 대역폭을 이용 하도록 설계 되었습니다.

서버 개발 툴

코드를 Visual Studio 의 F5 디버그를 통해서 완벽하게 실행 합니다! .NET 개발의 가장 기본적인 클래스 툴을 사용하세요.

데이터 보관소(DBs)

Photon Server 는 퍼시스턴스 레이어를 제공 하지 않습니다.

.NET/Windows 는 모든 주요 제품들을 지원 합니다.

선택적으로 ORM(매핑) 레이어는 nHibernate - Lightspeed ORM - Codesmith Tools 을 사용하세요.

Back to top