Strix 아키텍처 개요

Strix는 몇 가지 요소로 구성됩니다.

  1. Strix Server: 서버 측 애플리케이션.

  2. Strix Cloud: Strix Server를 서비스로 이용할 수 있는 클라우드 솔루션. Strix Cloud 웹 인터페이스를 통해 액세스 가능.

  3. Strix Net/Strix Client: 게임 내 기능을 제공하는 C# 클라이언트 라이브러리.

  4. Strix Unity SDK: Unity 게임 엔진이 STRIX 기능을 이용하도록 도와주는 플러그인.

Strix Server와 Strix Cloud

Strix Cloud에서 새 애플리케이션을 만들고 나면 서버에 클러스터를 추가해도 됩니다. 클러스터란 중앙 마스터 서버에 연결된 방 서버를 말합니다.

마스터 서버

Strix에 있는 서버는 마스터 서버와 방 서버 두 가지입니다. 마스터 서버에는 연결된 방 서버 각각의 최신 정보와 서버에 있는 방의 정보가 들어 있습니다. 마스터는 클러스터가 진입하는 지점 역할을 합니다. 클라이언트는 마스터에서 검색 작업을 하여 특정 방이나 방 서버를 찾을 수 있습니다.

방 서버

방 서버는 플레이어가 입장할 수 있는 방을 실행합니다. 방 안에 있는 멤버들 간의 통신을 라우팅하고 방 멤버 각각에 관한 정보와 방 속성을 저장합니다. 방 서버에 들어 있는 서버는 서로 다릅니다. 방 만들기와 삭제는 애플리케이션에서 처리하며, Strix Cloud 인터페이스를 통해 방 수와 초당 메시지 수를 제한하도록 방 서버를 설정할 수 있습니다.

방 서버는 맵이나 게임 인스턴스를 실행하기보다는 플레이어 명단을 관리하고 플레이어 간 메시지를 처리합니다. 클라이언트마다 게임 상태가 따로 있으며, 서버를 통해 다른 플레이어에게 메시지가 올 때마다 업데이트됩니다. Strix 서버는 권한과 연결, 라우팅, 방/클라이언트 속성 관리를 처리합니다.

참고

마스터 서버는 방 서버도 됩니다. 간단한 시험 클러스터에 유용합니다.

Strix Net/Strix Client

Unity SDK에 기능을 제공하는 STRIX 클라이언트 측 라이브러리. 이 라이브러리에서 Strix 서버와 메시지를 주고받습니다. 이 라이브러리에서는 매치메이킹, 움직임 보간, 레플리카 동기화와 같은 게임 내 기능도 지원합니다.

Strix Unity SDK

Unity 게임 엔진용 SDK도 있습니다. 따라서 STRIX로 쉽게 개발할 수 있으며, 개별 개발 프로세스에도 잘 맞기 때문에 새 도구나 언어를 배우지 않아도 됩니다. Strix Unity SDK는 Strix Net/Strix Client에서 저수준 C# 클래스와 인터페이스하고 고위층 Unity 구성요소와도 인터페이스합니다. SDK 기능은 대부분 StrixNetwork 싱글톤과 StrixBehaviour 추상 클래스를 통해 노출됩니다.

네트워크 트랜스포트

STRIX는 몇 가지 네트워크 트랜스포트를 지원합니다. 가장 흔한 트랜스포트는 TCP로, 오버헤드가 작고 믿을 수 있는 양방향 통신 채널을 제공합니다.

STRIX는 서버 측 구성을 통해 다른 트랜스포트도 지원합니다. 가장 중요한 것은 WebSocket으로, 웹에 적합한 양방향 프로토콜입니다. Unity SDK는 WebSocket으로 WebGL 플랫폼(HTML5 클라이언트)을 지원합니다. (WebGL 지원에 관한 자세한 사항은 HTML5와 WebGL 클라이언트 만드는 방법을 참조해 주십시오.)