CREATE YOUR WORLD

멀티플레이

13min

ZEPETO 멀티플레이는 여러 사용자가 동시에 월드에 연결하고 플레이할 수 있는 모듈입니다.

서버/클라이언트 개발 및 로컬 테스트 환경을 제공합니다.

📘 공식 멀티플레이 월드 샘플

1단계 : 설치

왼쪽 상단의 [프로젝트] 패널에서 [+] 메뉴를 선택한 후 ZEPETO → 멀티플레이 서버를 선택하거나 자산 → 생성 → ZEPETO → 멀티플레이 서버로 이동합니다.

Document image


World.multiplay 패키지는 다음 항목으로 구성되며, 월드가 게시될 때 자동으로 업데이트됩니다.

  • index.ts: 서버 주요 로직 코드
  • schemas: 서버/클라이언트 통신을 위한 데이터 구조
Document image


❗️ 주의

게임당 하나의 World.multiplay 패키지만 생성할 수 있습니다.

2단계: 설정

아래 이미지에 표시된 [Open World Settings]를 클릭하여 월드 설정을 합니다.

Document image

Document image


속성

설명

버전

등록할 파일의 버전을 입력하세요.

최대 클라이언트 수

방에 접근할 수 있는 최대 인원 수를 설정합니다.

방향

화면의 방향을 선택하세요.

초대 비활성화

방 초대 기능을 비활성화합니다.

방 목록 비활성화

방 목록을 확인할 수 있는 기능을 비활성화합니다.

비공식 방 비활성화

비공식 방을 생성할 수 있는 기능을 비활성화합니다.

👍 초대 비활성화

방 초대 기능이 꺼져 있어도 테스트 링크를 통해 초대를 보낼 수 있습니다.

3단계 : 테스트 서버 실행

ZEPETO 멀티플레이는 제작자가 개발 중 서버/클라이언트를 테스트할 수 있는 로컬 서버 환경을 제공합니다.

로컬 서버 작업을 확인하려면 Unity 상단 메뉴 → 창 → ZEPETO → 멀티플레이 서버를 선택하여 서버 상태 창을 엽니다.

Document image


편집기 화면 중앙의 [▶︎(재생)] 버튼 옆에 있는 서버 버튼을 클릭합니다.

서버 상태 창에서 다음 서버 로그를 볼 수 있습니다.

Document image


4단계: 클라이언트에 연결하기(로컬 서버에 연결하기)

ZepetoWorldMultiplay 구성 요소는 클라이언트 측에서 사용되는 멀티플레이 관리자 클래스입니다.

계층 창에서 GameObject를 생성하고 ZepetoWorldMultiplay 구성 요소를 추가합니다. ZepetoWorldMultiplay 구성 요소는 멀티플레이 패키지에 자동으로 연결됩니다.

Document image


편집기 화면 중앙에 있는 [▶︎(재생)] 버튼을 클릭하여 서버 로그 창에서 클라이언트 연결 로그를 확인하세요.

Document image


개발 서버는 localhost(127.0.0.1)에서 실행되며, 포트는 프로젝트가 처음 로드될 때 설정됩니다.

다중 프로젝트를 통해 연결할 때, 연결 환경을 다음과 같이 설정하세요.

📘 다음 가이드를 참조하세요 Multiplay IP 주소에 접속하기

👍 월드가 배포된 후, ZEPETO 서버에서 실행됩니다.

Document image


5단계 : 서버 / 클라이언트 통신 기본 예제

서버 로직 구현

World.multiplay 패키지의 index.ts 파일은 서버의 주요 로직을 담당하는 코드입니다.

index.ts 파일을 열고, onCreate() 이벤트에서 메시지 유형 echo를 수신한 후 클라이언트에 전달되는 로직을 추가하세요.

📘 다음 가이드를 참조하세요 [Zepeto.Multiplay(서버) API]

JS


클라이언트 로직 구현

서버 이벤트를 전송/수신하는 데 사용되는 ZepetoWorldMultiplay GameObject에 ZEPETO 스크립트를 추가하십시오:

Document image

MultiplaySample.ts


📘 다음 가이드를 참조하십시오 Multiplay Room Message

6단계 : 출력 결과 테스트

편집기 화면 중앙의 [▶︎(재생)]을 클릭하여 서버/클라이언트를 실행하십시오. 아래와 같이 '에코' 유형 메시지의 예를 볼 수 있어야 합니다:

Document image


① 클라이언트 메시지가 서버에 수신될 때의 출력 로그입니다.

② 클라이언트에서 서버로부터 수신된 메시지의 로그입니다.

서버 코드 사용 시 주의사항

❗️ 주의

[서버 코드 내 변수 사용]

  • 변수는 서버 코드 내에서도 선언할 수 있습니다.
  • 그러나 서버에서 사용할 수 있는 캐시 메모리는 현재 512KB로 제한되어 있습니다. (이것은 나중에 변경될 수 있습니다.)
  • 512KB를 초과하면 방이 숨겨질 수 있으므로 이를 염두에 두고 개발해 주시기 바랍니다.

[서버 코드 내 루프 사용]

  • 서버 코드에서 루프 시간 제한은 2초(2000ms)로 설정되어 있습니다.
  • 블로킹 코드나 장시간 실행되는 루프를 사용하면 루프 시간 제한으로 인해 프로그램이 올바르게 실행되지 않을 수 있으므로 개발 시 이를 고려해 주시기 바랍니다.



업데이트됨 11 Oct 2024
Doc contributor
Doc contributor
이 페이지가 도움이 되었습니까?