Seamless MMO module.

당신의 유니티 게임서버를 더욱 강력하게 만들어 보세요.

라이선스 문의

소개

PikkoServer는 수천명의 동시 접속자를 같은 공간에 수용할 수 있는 MMO게임용 로드 밸런서이자 로드 배포 프로그램입니다. PikkoServer는 엔진이 아닙니다 – 여러 다른 엔진과 함께 사용될 수 있는 외부 모듈입니다. 따라서 게임은 PikkoServer를 위해 특별한 환경이나 언어로 제작될 필요가 없이 기존에 사용되던 방식과 툴을 그대로 사용할 수 있습니다. Ulink를 사용하면 PikkoServer를 이용한 프로그래밍이 더욱 더 쉬워집니다.

PikkoServer는 여러대의 서버가 게임의 한 지역을 운영할 수 있게 해줍니다. PikkoServer는 각 서버를 분산시켜 해당 지역의 일부분과 오브젝트만을 처리하도록 해줍니다. 이 서버들은 uLink로 쓰여진 일반 서버에 PikkoServer 프레임워크와 연동하기 위한 익스텐션이 붙어서 동작합니다. PikkoServer는 각 서버와 완전히 분리되어 동작하며 최적화된 분산을 위한 조율을 담당합니다. PikkoServer는 각 서버가 포함하는 지역과, 네트워크 오브젝트들의 위치를 인식하고 있으며 오브젝트가 서버의 경계선을 벗어날때 해당 오브젝트를 다음 서버로 넘겨주게 됩니다.

클라이언트는 이렇게 분산된 서버들을 알지 못하며 그저 단순한 하나의 지역으로 인식합니다. PikkoServer는 여러 서버의 정보들을 취합하여 클라이언트에게 온전한 하나의 세계를 제시합니다.

Architecture.

네트워크 관점에서 보면 PikkoServer는 사실상 똑똑한 트래픽 라우터입니다. 셀 서버와 클라이언트는 가장 먼저 PikkoServer에 접속을 하게되고 이후 모든 트래픽은 PikkoServer를 거치게 됩니다. 클라이언트로부터의 트래픽은 해당 트래픽을 처리하는 셀 서버로 보내집니다. 클라이언트는 현재 할당된 셀서버 이외에 근처의 셀서버들로부터도 정보를 받게 됩니다. PikkoServer는 클라이언트가 현재 상황에 필요한 모든 정보를 받을 수 있도록 주관합니다.

PikkoServer가 세계의 상태를 알수 있도록 각 셀서버는 담당하는 오프젝트들의 포지션을 PikkoServer에게 정기적으로 전송합니다. 이러한 작업은 uLink에 의해 자동으로 이루어지며 개발자가 별도의 구현을 할 필요가 없지만 업데이트 주기와 같은 몇몇 매개 변수는 게임에 적합한 수치로 설정이 가능합니다.

PikkoServer는 각 셀 서버가 보내오는 위치 및 지역정보를 토대로 언제 오브젝트가 셀서버의 구역을 벗어나 핸드오버가 필요해 지는지를 판단합니다. 오브젝트가 구역을 벗어나면 오브젝트의 상태를 요청하는 핸드오버 메세지가 원 셀 서버로 보내집니다. 셀서버는 해당 오브젝트의 상태를 직렬화(serialize)하여 PikkoServer로 재전송하여야 합니다. PikkoServer는 이 정보를 새 셀 서버로 보내 오프젝트가 완벽하게 같은 상태로 새로운 셀 서버에 할당되도록 합니다. 직렬화 방식의 구현은 셀서버 개발자의 역할이 됩니다.

새로운 소식을 받아보세요.

메일링 리스트를 구독하시면 채팅 기능, 문서 업데이트, 신규 예제, 흥미로운 비디오, 최신 툴등에 관련된 새로운 소식들을 받아보실 수 있습니다

제품 정보

기술소개(pdf)

매뉴얼

Target platforms

Web Player

PC & Mac Standalone

iPhone, iPod Touch & iPad

Android

Xbox 360

PS3

Nintendo Wii

Dev. platforms

Linux / Windows

Language support

JavaScript (UnityScript)

C#

Boo