연동 요구 사항
Learn the requirements your game server must meet to integrate with Multiplay Hosting.
읽는 시간 2분최근 업데이트: 21일 전
Multiplay Hosting 서비스를 사용하여 게임을 호스팅하고 스케일링하려면 게임이 특정 요구 사항을 충족해야 합니다. 아래 가이드라인은 Multiplay Hosting을 사용하기 위해 게임을 준비하는 방법을 설명합니다. 대부분의 요구 사항은 빌드, 특히 빌드 실행 파일에 관한 내용입니다. 빌드는 게임을 실행하는 데 필요한 모든 파일을 캡슐화한 것입니다. 빌드 실행 파일은 빌드 내의 실행 파일입니다. 빌드를 생성할 때 빌드 실행 파일을 지정해야 합니다.
일반 요구 사항
이 섹션에서는 Multiplay Hosting을 사용하기 위해 빌드가 충족해야 하는 일반적인 요구 사항을 설명합니다. 자세한 내용은 다음 요구 사항을 참조하십시오.운영체제
빌드 실행 파일이 Linux(Ubuntu 20.04)에서 실행될 수 있어야 합니다. 빌드를 생성할 때 빌드가 지원하는 운영체제를 지정할 수 있습니다. Multiplay Hosting은 64비트 애플리케이션만 지원합니다.파라미터화된 값
빌드가 파라미터화된 값의 정보 사용을 지원해야 합니다. Multiplay Hosting은 구성 변수,server.json fileserver.jsonserver.json시작 조건
server.jsonallocatedID""네트워크 어댑터 바인딩
빌드의 게임 서버 포트와 쿼리 프로토콜 서버 포트가 모두0.0.0.0동적 포트 번호
빌드가 게임 데이터 전송을 위한 동적 포트 번호 사용을 지원해야 합니다. Multiplay Hosting은 서버 인스턴스별로 포트 번호를 생성하며, 이때 서버 시작 시 포트가 충돌하지 않도록 오프셋이 포함됩니다.
이 기능을 활용하기 위해 빌드 실행 파일이
$$port$$$$port$$-port $$port$$
로그 디렉토리
빌드는 서버 인스턴스별로 로그를 생성할 수 있어야 합니다. Multiplay Hosting은 Unity Dashboard를 통해 서버 로그를 표시하며, 여기에서 로그를 확인, 검색, 다운로드할 수 있습니다. 실행 파라미터와 구성 변수를 통해 빌드가 로그 파일을 저장하는 위치를 제어할 수 있습니다. 예를 들어 실행 파라미터로-logFile$$log_dir$$로그 디렉토리 요구 사항은 선택 사항입니다. 로그 디렉토리를 설정하지 않으면 Unity Dashboard에서 로그와 크래시 덤프에 액세스할 수 없습니다.-logFile $$log_dir$$/engine.log
쿼리 프로토콜
요구 사항은 아니지만, 베스트 프랙티스는 빌드가 SQP 같은 서버 쿼리 프로토콜의 쿼리에 대한 응답을 지원하는 것입니다. 서버 쿼리 프로토콜은 서버 인스턴스에서 서버 상태나 할당된 플레이어 수와 같은 정보를 원활하게 쿼리할 수 있는 프로토콜입니다. 일반적으로 응답에는 값이 계속 동적으로 업데이트되는 정적 변수가 있습니다. Multiplay Hosting는 쿼리 프로토콜 응답을 통해 서버 인스턴스의 상태를 파악합니다. 빌드가 쿼리 프로토콜을 지원하지 않거나 쿼리 프로토콜이 올바르지 않게 설정된 경우, Multiplay Hosting이 서버 인스턴스를 무응답 상태로 판단할 수 있습니다. 또한 쿼리 프로토콜을 통해 Multiplay Hosting이 각 서버에서 CCU(동시 접속자 수), 활성 할당, 실패한 할당, 플랫폼별 연결된 플레이어 수, 서버 이벤트와 같은 실시간 데이터를 관찰하고 리포트할 수 있습니다.할당 후 정리
빌드는 어떤 방식으로든 할당 후(세션 종료 후) 정리를 지원하여 다음 할당을 위해 게임 서버를 준비해야 합니다. 할당 후 정리에는 다음과 같은 방법이 있습니다.- 게임 세션 종료 시 로비 또는 준비 상태로 돌아갑니다.
- 프로세스를 정상적으로 종료(예: 종료 코드 0)합니다.
컨테이너 빌드 요구 사항
Multiplay Hosting 빌드를 생성할 때 여러 방법으로 빌드 파일을 업로드할 수 있습니다. 한 가지 방법은 Docker와 Multiplay Hosting 컨테이너 레지스트리를 사용하여 빌드의 컨테이너화된 버전을 업로드하는 것입니다. 컨테이너 빌드를 사용하려면 빌드 컨테이너가 일반적인 요구 사항 외에도 특정 요구 사항을 충족해야 합니다.기본 이미지로 컨테이너 빌드 생성
linux-build-image 템플릿 컨테이너는 컨테이너 빌드 사용과 관련된 대부분의 추가 요구 사항을 처리합니다. 대부분의 경우, 기본 이미지를 사용합니다. Dockerfile 상단에 다음 라인을 추가하여 기본 이미지를 사용할 수 있습니다.FROM unitymultiplay/linux-base-image:<tag>
<tag>컨테이너 빌드 직접 생성
Dockerfile 파일을 직접 생성하려는 경우, 사용자가 직접 컨테이너가 다음 요구 사항을 충족하는지 확인해야 합니다.| 요구 사항 | 설명 |
| 컨테이너가 |
| 컨테이너에 mpukgame 사용자가 실행하는 |
# ========================================================##========================================================-# Unity base image stuff##unity-base-image-stuff------------------# ========================================================##========================================================-FROM ubuntu:20.04 AS mpukRUN addgroup --gid 2000 mpukgame && \ useradd -g 2000 -u 2000 -ms /bin/sh mpukgame && \ mkdir /game && \ chown mpukgame:mpukgame /game && \ apt update && \ apt upgrade && \ apt install -y ca-certificatesUSER mpukgame# ========================================================##========================================================-# Custom game stuff##custom-game-stuff---------------------# ========================================================##========================================================-FROM mpuk AS game# copy game files here##copy-game-files-here# for example:##for-example:WORKDIR /gameCOPY --chown=mpukgame . .# set your game binary as the entrypoint##set-your-game-binary-as-the-entrypointENTRYPOINT [ "./gamebinary" ]