Version: Unity 6.0 (6000.0)
언어 : 한국어
멀티플레이어
멀티플레이어 센터 사용

Unity 멀티플레이어 개요

Unity는 멀티플레이어 프로젝트를 제작하는 데 도움이 되는 다양한 멀티플레이어 패키지와 서비스를 제공합니다. 멀티플레이어 게임을 처음 시작하는 경우에는 Multiplayer Center 패키지를 추천합니다.

시작

멀티플레이어 센터

멀티플레이어 센터는 멀티플레이어 게임을 만드는 시작점을 제공합니다. 게임 요구 사항에 따라 Unity 멀티플레이어 패키지 및 서비스를 추천하며, 샘플과 튜토리얼을 활용하는 데 도움이 됩니다.

Multiplayer Center 패키지는 기본적으로 에디터에 설치되어 있습니다. 에디터에서 새 멀티플레이어 프로젝트를 만들면 자동으로 열리며, Window > Multiplayer > Multiplayer Center를 사용하여 직접 열 수도 있습니다.

멀티플레이어 서비스 및 위젯

Multiplayer Services 패키지에서는 게임에 UGS(Unity Gaming Services)를 활용하는 멀티플레이어 요소를 추가하는 SDK를 제공하여, 세션을 통해 플레이어 그룹이 게임에서 상호 작용하는 방식을 정의합니다. Multiplayer Widgets 패키지를 사용하여 워크플로의 요소를 쉽게 테스트한 후 더 발전시킬 수 있습니다.

Multiplayer Services 패키지는 기본적으로 Netcode for GameObjectsNetcode for Entities와 호환되며, 고급 사용 사례를 위한 커스텀 네트워킹 솔루션도 지원합니다.

Netcode for GameObjects

Netcode for GameObjects는 네트워킹 로직을 추상화하는 고수준 네트워킹 라이브러리로, 네트워킹 세션을 통해 여러 플레이어에게 게임 오브젝트와 월드 데이터를 한 번에 전송할 수 있습니다. 대부분의 멀티플레이어 프로젝트에 적합하지만 대형 또는 고도로 최적화된 게임을 만들고 싶다면 Netcode for Entities가 더 나은 선택일 수 있습니다. Netcode for GameObjects는 클라이언트 서버 및 분산 권한 네트워크 토폴로지를 모두 지원합니다.

Netcode for GameObjects는 멀티플레이어 툴, 멀티플레이어 플레이 모드, Dedicated Server 패키지Unity Gaming Services와 호환됩니다.

Netcode for Entities

Unity DOTS(데이터 지향 기술 스택)의 일부인 Netcode for Entities는 멀티플레이어 게임 제작에 사용 가능한 클라이언트 예측 프레임워크가 포함된 서버 권한이 있는 네트워킹 솔루션을 제공합니다. 모든 멀티플레이어 프로젝트에 사용할 수 있지만 대규모 최적화가 필요한 대규모 게임과 멀티플레이어 게임 제작 경험이 있는 고급 개발자에게 주로 권장됩니다. Netcode for Entities는 클라이언트-서버 네트워크 토폴로지만 지원합니다.

Netcode for Entities는 멀티플레이어 툴, 멀티플레이어 플레이 모드, Dedicated Server 패키지Unity Gaming Services와 호환됩니다.

멀티플레이어 게임 테스트

Multiplayer Tools

Multiplayer Tools 패키지에서는 프로파일러 및 네트워크 시뮬레이터를 비롯하여 멀티플레이어 게임을 분석, 디버깅 및 테스트할 수 있는 다양한 툴을 제공합니다. Unity 패키지 관리자를 사용하여 패키지를 설치하고 Window > Multiplayer Tools를 사용하여 에디터에서 액세스할 수 있습니다.

Multiplayer Tools는 Netcode for GameObjectsNetcode for Entities 모두와 호환됩니다.

멀티플레이어 플레이 모드

Unity 에디터에서 멀티플레이어 기능을 테스트하려면 멀티플레이어 플레이 모드를 사용합니다. 디스크의 동일한 소스 에셋을 사용하면서 동일한 개발 기기에서 최대 4개의 플레이어(메인 에디터 플레이어와 3개의 가상 플레이어)를 동시에 시뮬레이션할 수 있습니다. Unity 패키지 관리자를 사용하여 패키지를 설치하고 Window > Multiplayer Play Mode를 사용하여 에디터에서 액세스할 수 있습니다.

멀티플레이어 플레이 모드는 Netcode for GameObjects, Netcode for Entities, Dedicated Server 패키지, Unity Gaming Services와 호환됩니다.

유틸리티

Unity 전송

멀티플레이어 게임 개발을 위한 로우레벨 네트워킹 라이브러리인 Unity Transport 패키지입니다. Netcode for GameObjectsNetcode for Entities 모두에 대한 기본 프로토콜이지만, 커스텀 솔루션과 함께 사용할 수도 있습니다. Unity Transport는 UDP(User Datagram Protocol) 및 WebSocket을 통해 제공되는 연결 기반 추상화 레이어(빌트인 네트워크 드라이버)를 사용하여 Unity 엔진이 지원하는 모든 플랫폼을 지원합니다.

Unity 패키지 관리자를 사용하여 패키지를 설치할 수 있습니다.

전용 서버

Dedicated Server 패키지를 사용하면 다른 프로젝트를 생성할 필요 없이 서버 및 클라이언트 역할 간에 프로젝트를 전환할 수 있으므로, 전용 서버 빌드 타겟을 대상으로 하는 경우 멀티플레이어 개발 워크플로를 개선할 수 있습니다. 패키지 관리자를 사용하여 패키지를 설치할 수 있습니다.

Dedicated Server 패키지는 Netcode for GameObjects, Netcode for Entities멀티플레이어 플레이 모드와 호환됩니다.

Unity Gaming Services

Multiplayer Services 패키지에서는 게임에 UGS(Unity Gaming Services)를 활용하는 멀티플레이어 요소를 추가하는 SDK를 제공하여, 세션을 통해 플레이어 그룹이 게임에서 상호 작용하는 방식을 정의합니다.

Multiplay Hosting

Multiplay Hosting은 Unity의 확장 가능한 서버 호스팅 플랫폼입니다. 게임을 호스팅하고 스케일링하는 셀프 서비스 경험으로 인프라를 대규모로 실행하고 운영하는 복잡도를 제거할 수 있으므로, 멀티플레이어 프로젝트 개발에 집중할 수 있습니다.

로비

Unity의 Lobby 서비스는 멀티플레이어 게임에서 플레이어가 서로를 발견하고 연결할 수 있는 방법을 제공합니다.

매치메이커(Matchmaker)

Unity Matchmaker는 게임 인스턴스에 원격 플레이어를 자동으로 할당하며 매치메이킹 로직을 커스터마이즈하는 데 도움이 됩니다.

Relay

Unity Relay를 사용하면 플레이어가 참여 코드를 사용하여 게임 인스턴스에 연결할 수 있습니다. Relay 서비스는 전용 게임 서버 대신 프록시 역할을 하는 유니버설 Relay 서버를 통해 연결을 제공합니다.

멀티플레이어
멀티플레이어 센터 사용