탱크 게임 Unity 클라이언트 프로젝트

ProudNet 네트워킹 라이브러리를 사용한 멀티플레이어 탱크 게임 Unity 클라이언트 구현으로, Unity 공식 탱크 튜토리얼 템플릿을 기반으로 향상된 멀티플레이어 및 채팅 기능을 제공합니다.

📋 목차

사전 요구사항

이 Unity 클라이언트 프로젝트를 구축하기 전에 이전 문서의 탱크 서버 설정을 완료하고 다음 구성 요소가 설치되어 있어야 합니다.

필수 디렉토리 구조

project_root/
├── tank_server/          # Server project (from previous setup)
│   ├── Common/
│   ├── Server/
│   ├── Client/
│   └── Server_CPP/
├── ProudNet/            # Required: Files from ProudNet installation
│   ├── doc/
│   ├── include/
│   ├── lib/
│   ├── Sample/
│   └── util/
└── tank_unity_client/   # This Unity project (to be created)
    ├── Assets/
    ├── Packages/
    └── ProjectSettings/

필수 소프트웨어 설치

  1. Unity HubUnity Editor (2021.3 LTS 이상 권장)
  2. ProudNet Unity 탱크 클라이언트 샘플 패키지 - GitHub https://github.com/Nettention/proudnet_sample_tank_server/releases/tag/0.99 에서 다운로드 가능
  3. 완료된 탱크 서버 - 이전 서버 설정 문서에서 진행

ProudNet Unity 탱크 클라이언트 샘플 패키지 위치

ProudNet Unity 탱크 클라이언트 샘플 패키지는 다음에서 다운로드할 수 있습니다:

https://github.com/Nettention/proudnet_sample_tank_server/releases/tag/0.99
File: tank_unity_client_proudnet_sample.unitypackage

완료된 Unity 6 샘플 리포지토리

수동 설정 과정을 건너뛰고 싶은 분들을 위해, 모든 통합 단계가 이미 완료된 Unity 6 샘플 프로젝트를 제공합니다:

GitHub 리포지토리: https://github.com/Nettention/proudnet_sample_tank_unity_client

이 완료된 샘플 리포지토리에는 다음이 포함되어 있습니다:

완료된 샘플로 빠른 시작:

  1. 리포지토리 클론: git clone https://github.com/Nettention/proudnet_sample_tank_unity_client.git
  2. Unity 6 (또는 Unity 2021.3 LTS+)에서 프로젝트 열기
  3. 씬 열기: Assets/Proundnet_Demo/DemoScene/Demo_Networkd_Game_Desert.unity
  4. 탱크 서버가 실행 중인지 확인
  5. Play를 클릭하여 즉시 테스트

이 옵션은 이 문서에 설명된 완전한 통합 과정을 거치지 않고 멀티플레이어 기능을 빠르게 테스트하고 싶은 개발자들에게 권장됩니다.

게임 WebGL 빌드 데모

ProudNet 탱크 게임을 브라우저에서 바로 체험해보세요! 이는 AWS에 호스팅된 실제 멀티플레이어 서버에 연결되는 Unity 클라이언트의 라이브 WebGL 빌드입니다.

게임 기능 데모:

기술적 세부사항:

프로젝트 구조

🎮 Unity 프로젝트 에셋

Unity 전용 게임 에셋과 ProudNet 통합 구성 요소를 포함합니다.

내용:

주요 구성 요소:

🌐 네트워크 기능

ProudNet 네트워킹을 사용한 Unity 클라이언트 구현입니다.

기능:

지원 플랫폼:

🔄 프로토콜 호환성

탱크 서버 프로젝트와 동일한 프로토콜 정의를 사용합니다.

공유 구성 요소:

개발 노트

시작하기

사전 요구사항 확인

시작하기 전에 다음 사항을 확인하세요:

  1. 탱크 서버 설정 완료 - 서버 문서를 따라 C# 또는 C++ 서버 설정
  2. 탱크 서버 실행 - 탱크 서버가 실행 중이고 액세스 가능한 상태
  3. ProudNet 설치 - Unity 패키지가 사용 가능한 ProudNet 폴더
  4. Unity Hub 및 Editor - Unity 2021.3 LTS 이상 설치

1. Unity 프로젝트 생성 및 설정

단계 1: 새 Unity 프로젝트 생성

탱크 클라이언트용 새 Unity 프로젝트를 생성합니다:

Unity Hub 사용:

  1. Unity Hub 열기
  2. "새 프로젝트" 클릭
  3. "3D" 템플릿 선택
  4. 프로젝트 이름 설정: Tank Unity Client
  5. 위치 설정: project_root/tank_unity_client/
  6. "프로젝트 생성" 클릭

예상 프로젝트 구조:

tank_unity_client/
├── Assets/
├── Packages/
├── ProjectSettings/
└── UserSettings/

단계 2: Unity 탱크 템플릿 가져오기

Unity 공식 탱크 튜토리얼 프로젝트를 기본 템플릿으로 가져옵니다:

Unity Asset Store를 통해:

  1. Unity Editor에서 Window > Asset Store 열기
  2. "Tanks! Complete Project" 검색
  3. 다음으로 이동: https://assetstore.unity.com/packages/essentials/tutorial-projects/tanks-complete-project-46209
  4. "내 에셋에 추가" 클릭 (이미 소유하지 않은 경우)
  5. Unity Editor에서 Window > Package Manager 열기
  6. 드롭다운에서 "My Assets" 선택
  7. "Tanks! Complete Project" 찾기
  8. "다운로드""가져오기" 클릭

가져오기 옵션:

Unity Tank Complete Project Import

Unity Tank Complete Project Import

단계 3: 싱글플레이어 템플릿 테스트

가져온 탱크 템플릿이 올바르게 작동하는지 확인합니다:

  1. 메인 씬 열기: unity_tank_client\Assets\_Tanks\Tutorial_Demo\Demo_Scenes\Demo_Game_Desert.unity로 이동
Unity Tank Demo Scene

Unity 탱크 데모 씬

  1. 플레이 모드 진입: Unity Editor에서 Play 버튼 클릭
  2. 컨트롤 테스트:
    • WASD: 탱크 이동
    • Space: 누르고 있으면 발사 파워 충전, 놓으면 포탄 발사

예상 싱글플레이어 동작:

2. ProudNet Unity 통합

단계 1: ProudNet Unity 탱크 클라이언트 샘플 패키지 가져오기

네트워킹 기능을 추가하기 위해 ProudNet Unity 탱크 클라이언트 샘플 패키지를 가져옵니다:

예상 패키지 파일:

tank_unity_client_proudnet_sample.unitypackage

Unity에서 패키지 가져오기:

  1. GitHub 릴리즈에서 tank_unity_client_proudnet_sample.unitypackage 다운로드
  2. Unity Editor에서 Assets > Import Package > Custom Package...로 이동
  3. 다운로드한 tank_unity_client_proudnet_sample.unitypackage로 이동
  4. 패키지 파일을 선택하고 "열기" 클릭
  5. 가져오기 대화상자에서 모든 구성 요소를 가져오려면 "All" 선택
  6. 프로젝트에 ProudNet을 추가하려면 "Import" 클릭
ProudNet Unity Tank Client Sample Package Import

ProudNet Unity 탱크 클라이언트 샘플 패키지 가져오기

단계 2: ProudNet 설치 확인

ProudNet 구성 요소가 올바르게 통합되었는지 확인합니다:

샘플 에셋 설치 확인:

  1. 다음 폴더 구조가 존재하는지 확인합니다:
    Assets/
    ├── Plugins/
    │   └── ProudNet/           # Contains ProudNet DLLs
    │       ├── ProudNetClientUnity.dll
    │       ├── Andorid/
    │       ├── WebGL/
    │       └── x86_64/
    ├── ProudNet_Demo/          # Demo scene and scripts
    │   ├── DemoScene/
    │   └── ProudNetScripts/
    └── Scripts/
        └── Network/            # Network-related scripts

플랫폼 설정 확인:

  1. Assets/Plugins/에서 각 DLL 선택
  2. Inspector에서 플랫폼 설정 확인:
    • Windows: x86_64 (Standalone Windows)에 대해 활성화

단계 3: 네트워크 설정 구성

탱크 게임을 위한 기본 네트워크 구성을 설정합니다:

네트워크 구성 생성:

  1. Project 창에서 마우스 오른쪽 버튼 클릭
  2. Create > ProudNet > Network Config 선택
  3. 이름을 TankNetworkConfig로 지정
  4. 다음 설정을 구성:
    • Server IP: 127.0.0.1 (테스트용 localhost)
    • Server Port: 33334 (탱크 서버 포트와 일치)

네트워크 구성 세부사항:

TankNetworkConfig 연결 설정:

참고: 처음에는 standalone 빌드를 위해 포트 33334를 사용합니다. 나중에 WebGL 빌드의 경우 C++ 서버 구현에서만 사용 가능한 WebSocket 포트 33335를 사용합니다(C# 서버는 WebSocket 연결을 지원하지 않음).

2.5. PIDL 통합 워크플로 (선택사항이지만 권장)

이전 문서에서 서버 설정을 완료했다면 생성된 PIDL 파일을 재사용할 수 있습니다:

옵션 A: 서버 프로젝트에서 복사 (권장)

탱크 서버 프로젝트를 사용할 수 있다면 편의 배치 스크립트를 사용하세요:

# Navigate to tank_server directory
cd tank_server

# Run the copy script
copy_client_generated_to_unity.bat

스크립트 수행 작업:

Copies from tank_server/:
├── Server/Tank_stub.cs     → unity_tank_client/Assets/Proundnet_Demo/ProudNetScripts/Generated/
├── Server/Tank_proxy.cs    → unity_tank_client/Assets/Proundnet_Demo/ProudNetScripts/Generated/
├── Server/Tank_common.cs   → unity_tank_client/Assets/Proundnet_Demo/ProudNetScripts/Generated/
└── Common/Vars.cs          → unity_tank_client/Assets/Proundnet_Demo/ProudNetScripts/Common/

예상 출력:

===== ProudNet Generated Files Unity Copy Script =====
Copying PIDL generated files...
        1 file(s) copied.
        1 file(s) copied.
        1 file(s) copied.
Copying common files...
        1 file(s) copied.

Copy completed! The following files have been copied to Unity project:
- ..\unity_tank_client\Assets\Proundnet_Demo\ProudNetScripts\Generated\Tank_stub.cs
- ..\unity_tank_client\Assets\Proundnet_Demo\ProudNetScripts\Generated\Tank_proxy.cs
- ..\unity_tank_client\Assets\Proundnet_Demo\ProudNetScripts\Generated\Tank_common.cs
- ..\unity_tank_client\Assets\Proundnet_Demo\ProudNetScripts\Common\Vars.cs

Press any key to continue...

옵션 B: 수동 PIDL 생성 (서버 프로젝트가 없는 경우)

서버 프로젝트가 없다면 다음이 필요합니다:

  1. Common 폴더의 Tank.PIDL 파일에 대한 액세스
  2. ProudNet/util/PIDL.exe -cs Tank.PIDL -outdir Generated 실행
  3. 생성된 파일을 Unity 디렉토리에 수동으로 복사

프로토콜 호환성 이점:

3. 탱크 멀티플레이어 통합

단계 1: 네트워크 스크립트 개요

탱크 Unity 클라이언트는 ProudNet RMI(Remote Method Invocation)를 기반으로 구축된 포괄적인 네트워킹 시스템을 사용합니다. 실제 스크립트 구조는 다음과 같습니다:

핵심 네트워크 스크립트:

Assets/
├── Scripts/Network/
│   ├── GameNetworkManager.cs     # Main network manager (Singleton)
│   └── NetworkTank.cs           # Individual tank network synchronization
├── Proundnet_Demo/ProudNetScripts/
│   ├── Common/
│   │   └── Vars.cs              # Protocol version and server configuration
│   └── Generated/               # Auto-generated from Tank.PIDL
│       ├── Tank_common.cs       # RMI message IDs and constants
│       ├── Tank_proxy.cs        # Client-to-server RMI calls
│       └── Tank_stub.cs         # Server-to-client RMI handlers

GameNetworkManager.cs - 주요 기능:

NetworkTank.cs - 개별 탱크 기능:

생성된 RMI 클래스 (Tank.PIDL에서):

중요 참고사항: Generated/ 폴더의 파일들은 이전 문서의 C# 서버 구현 중에 생성된 정확히 동일한 파일입니다. 이는 서버와 Unity 클라이언트 간의 100% 프로토콜 호환성을 보장합니다. Unity 클라이언트는 동일한 PIDL 생성 네트워킹 코드를 재사용합니다.

구현된 주요 네트워크 기능:

단계 2: 사전 구성된 멀티플레이어 씬 열기

Unity 탱크 클라이언트에는 ProudNet 통합이 포함된 사전 구성된 멀티플레이어 씬이 포함되어 있습니다:

네트워크 준비 씬 열기:

  1. Assets\Proundnet_Demo\DemoScene\로 이동
  2. Demo_Networkd_Game_Desert.unity 씬 열기
  3. 이 씬은 필요한 모든 네트워킹 구성 요소로 이미 구성되어 있습니다
ProudNet Network Demo Scene

ProudNet 네트워크 데모 씬

단계 3: 네트워크 구성 확인 (선택사항)

씬은 사전 구성되어 있지만 필요한 경우 네트워크 설정을 확인하거나 수정할 수 있습니다:

GameNetworkManager 설정 (이미 구성됨):

  1. 계층 구조에서 GameNetworkManager GameObject 선택
  2. Inspector에서 GameNetworkManager 구성 요소 설정 확인:
    • Server IP: 127.0.0.1 (테스트용 localhost)
    • Server Port: 33334 (standalone 빌드용 TCP)
    • WebSocket Port: 33335 (WebGL 빌드 전용) [참고: 이 설정은 standalone 빌드에서는 inspector에 숨겨져 있지만 나중에 WebGL용으로 빌드할 때 사용됩니다]
    • Auto Connect On Start: 자동 연결을 위해 활성화
GameNetworkManager Inspector

GameNetworkManager Inspector

사용자 정의 옵션:

4. 멀티플레이어 기능 테스트

단계 1: 탱크 서버 시작

Unity 클라이언트를 테스트하기 전에 탱크 서버가 실행 중인지 확인하세요:

C++ 서버

cd tank_server/Server_CPP
run.bat

예상 서버 출력:

========== Tank Server Started ==========
TCP Server listening on 0.0.0.0:33334
WebSocket Server listening on 0.0.0.0:33335/ws
Ready to accept connections from all network interfaces
==========================================
Server is running. Commands:
status: Show connected clients

단계 2: Unity 클라이언트 연결 테스트

탱크 서버에 대한 Unity 클라이언트 연결을 테스트합니다:

Unity 에디터 테스트:

  1. Unity 에디터에서 Play 버튼 클릭
  2. Unity 콘솔 및 게임 뷰에서 연결 상태 확인

예상 서버 응답:

Client connected: Host ID = 6
New tank created for client 6 with tank type -1 and health 100.000000/100.000000
Not enough clients to create P2P group (need at least 2)
========== SendTankType Received ==========
From client 6: tankType=-1
========== SendTankType Processing Completed ==========

Unity 게임 뷰:

Unity Game Initial Screen

Unity 게임 초기 화면

단계 3: 멀티 클라이언트 테스트

여러 Unity 클라이언트로 멀티플레이어 기능을 테스트합니다:

두 번째 Unity 인스턴스:

  1. Unity 프로젝트 빌드: File > Build and Run으로 이동
  2. 빌드 설정 구성:
    • 대상 플랫폼: PC, Mac & Linux Standalone
    • 아키텍처: x86_64
    • : Demo_Networkd_Game_Desert.unity 씬 추가
  3. 빌드: "Build and Run"을 클릭하여 standalone 실행 파일 생성
  4. Standalone 실행: 이것은 두 번째 클라이언트 인스턴스를 생성합니다. 빌드가 성공한 후 빌드 위치에서 직접 게임을 실행할 수 있습니다 (예: Build/unity_tank_client.exe)
Windows Standalone Build Settings

Windows Standalone 빌드 설정

Build Completed

빌드 완료

Multi-Client Gameplay

멀티 클라이언트 게임플레이

대안 테스트 방법:

예상 멀티 클라이언트 동작:

Unity Client 1 (Editor):
[ProudNet] Connected to server successfully
[ProudNet] Assigned Client ID: 6
[P2P] Other player joined: Client ID 7
[TankGame] Tank Type Selected: 1 (health: 225)
[TankGame] Remote tank spawned for player 7 (Type: 0, health: 150)

Unity Client 2 (Standalone):
[ProudNet] Connected to server successfully  
[ProudNet] Assigned Client ID: 7
[P2P] Other player joined: Client ID 6
[TankGame] Tank Type Selected: 0 (health: 150)  
[TankGame] Remote tank spawned for player 6 (Type: 1, health: 225)

여러 클라이언트가 있는 서버 로그:

Client connected: Host ID = 6
New tank created for client 6 with tank type -1 and health 100.000000/100.000000
Not enough clients to create P2P group (need at least 2)
Client connected: Host ID = 7
New tank created for client 7 with tank type -1 and health 100.000000/100.000000
Sending existing player info to new client: ID=6, Type=-1, Health=100.000000/100.000000
P2P group created with 2 members, Group ID: 8

========== Tank Selection and Spawning ==========
========== SendTankSpawned Received ==========
From client 6: position=(20.959999,11.930000), direction=212.665558, tankType=1, health=225.000000
Tank spawned for client 6 at (20.959999,11.930000)
========== SendTankSpawned Received ==========
From client 7: position=(20.959999,11.930000), direction=212.665558, tankType=0, health=150.000000
Tank spawned for client 7 at (20.959999,11.930000)

5. 멀티플레이어 기능 테스트

이동 동기화 테스트

여러 클라이언트에서 실시간 탱크 이동을 테스트합니다:

클라이언트 1 동작:

클라이언트 2 관찰:

예상 네트워크 메시지:

Client 1 → Server: SendMove(posX: 15.2, posY: 30.1, direction: 45)
Server → Client 2: OnTankPositionUpdated(clientId: 3, posX: 15.2, posY: 30.1, direction: 45)

발사 및 발사체 테스트

포탄 발사 동기화를 테스트합니다:

클라이언트 1 동작:

클라이언트 2 관찰:

예상 네트워크 메시지:

Client 1 → Server: SendFire(shooterId: 3, direction: 180, launchForce: 25, posX: 15.2, posY: 30.1)
Server → Client 2: OnSpawnBullet(clientId: 3, shooterId: 3, direction: 180, force: 25, ...)
Server → All: OnTankHealthUpdated(clientId: 4, health: 85, maxHealth: 100)

P2P 채팅 시스템 테스트

플레이어 간 실시간 메시징을 테스트합니다:

클라이언트 1 동작:

클라이언트 2 관찰:

체력 및 피해 테스트

체력 동기화 및 피해 효과를 테스트합니다:

피해 시나리오:

예상 결과:

6. WebGL 배포 (선택사항)

WebGL 빌드 구성

Unity 탱크 클라이언트를 웹 애플리케이션으로 배포합니다:

빌드 설정:

  1. File > Build Settings로 이동
  2. WebGL 플랫폼 선택
  3. "Switch Platform" 클릭
  4. 씬 추가: Demo_Networkd_Game_Desert.unity가 포함되어 있는지 확인
  5. ProudNet 플러그인 설정 구성 (중요!)
  6. WebGL 플레이어 설정 구성 (중요!)
WebGL Build Settings

WebGL 빌드 설정

WebGL용 ProudNet 플러그인 구성

WebGL 플랫폼으로 전환한 후 ProudNet 플러그인 설정을 구성해야 합니다:

중요한 WebGL 제한사항: ProudNet은 WebGL 플랫폼이 선택되었을 때 에디터 내 플레이 모드를 지원하지 않습니다. 네트워킹 기능을 테스트하려면 WebGL 버전을 빌드하고 배포해야 합니다. WebGL 플랫폼에서는 네트워크 테스트를 위한 에디터 플레이 모드가 작동하지 않습니다.

단계 1: .NET DLL에 대한 에디터 비활성화

  1. Assets/Plugins/ProudNet/로 이동
  2. ProudDotNetClientUnity.dll 선택
  3. Inspector → 플랫폼 설정:
    • Editor: ❌ (체크 해제)
ProudNet .NET DLL Platform Settings

ProudNet .NET DLL 플랫폼 설정

단계 2: x86_64 DLL에 대한 에디터 비활성화

  1. Assets/Plugins/ProudNet/x86_64/로 이동
  2. ProudNetClient.dll 선택:
    • Editor: ❌ (체크 해제)
  3. ProudNetClientPlugin.dll 선택:
    • Editor: ❌ (체크 해제)
ProudNet x86_64 DLL Platform Settings

ProudNet x86_64 DLL 플랫폼 설정

단계 3: WebGL 파일에 대한 에디터 활성화

  1. Assets/Plugins/ProudNet/WebGL/로 이동
  2. JSClient.jslib 선택:
    • Editor: ✓ (체크)
    • WebGL: ✓ (체크)
  3. NewJSClient.jslib 선택:
    • Editor: ✓ (체크)
    • WebGL: ✓ (체크)
  4. ProudNetClientPlugin-webgl.dll 선택:
    • Editor: ✓ (체크)
    • WebGL: ✓ (체크)
ProudNet WebGL Files Platform Settings

ProudNet WebGL Files Platform Settings

Critical: If these settings are not configured correctly, the WebGL build will fail or the networking will not function properly.

WebGL Player Settings Configuration

Configure Unity's WebGL-specific settings for optimal local testing:

Publishing Settings (Critical for Local Testing):

  1. Go to Edit > Project Settings > Player > WebGL Settings
  2. Expand Publishing Settings section
  3. Set Compression Format: Disabled
    • This is essential for local web server testing
    • Compressed builds may not work with simple HTTP servers
    • Can be re-enabled for production deployment
WebGL Publishing Settings

WebGL Publishing Settings

Recommended WebGL Settings:

Publishing Settings:
├── Compression Format: Disabled (for local testing)
├── Name Files As Hashes: ❌ (unchecked)
├── Data Caching: ❌ (unchecked)  
├── Debug Symbols: Off
└── Power Preference: High Performance

Memory Settings:
├── Initial Memory Size (MB): 32
├── Maximum Memory Size (MB): 2048
├── Memory Growth Mode: Geometric
└── Geometric Memory Growth Cap (MB): 96

: 프로덕션 배포 시 다운로드 크기를 줄이기 위해 Gzip 압축 형식을 활성화할 수 있지만, 서버 호환성 문제를 피하기 위해 로컬 테스트에서는 비활성화하세요.

WebGL 네트워크 구성:

WebGL 네트워크 구성

WebGL 네트워크 구성

WebGL 테스트

탱크 클라이언트의 웹 버전을 테스트합니다:

주의: WebGL 플랫폼이 선택된 상태에서는 Unity 에디터 플레이 모드에서 ProudNet 네트워킹이 작동하지 않습니다. 네트워킹 기능을 테스트하려면 전체 빌드 프로세스를 완료해야 합니다.

빌드 프로세스:

  1. Build Settings에서 "Build" 클릭
  2. 출력 폴더로 사용할 폴더 생성 또는 선택: 예 - WebGL_Build/
  3. 빌드 완료 대기 (몇 분 소요될 수 있음)

로컬 웹 서버 설정:

중요: WebGL 빌드는 웹 서버에서 호스팅해야 하며 HTML 파일을 로컬에서 직접 열어서는 플레이할 수 없습니다.

방법 1: Python HTTP 서버

# WebGL 빌드 폴더로 이동
cd WebGL_Build/

# Python 3 (권장)
python -m http.server 8000

# Python 2 (Python 3을 사용할 수 없는 경우)
python -m SimpleHTTPServer 8000

# 사용자 정의 포트 예제
python -m http.server 3000

예상 Python 출력:

Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
127.0.0.1 - - [23/May/2024 10:30:15] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [23/May/2024 10:30:15] "GET /Build/unity_tank_client.wasm HTTP/1.1" 200 -

방법 2: VS Code Live Server 확장

  1. 확장 설치:
    • VS Code 열기
    • 확장으로 이동 (Ctrl+Shift+X)
    • Ritwick Dey의 "Live Server" 검색
    • "설치" 클릭
  2. WebGL 빌드 호스팅:
    1. VS Code에서 WebGL_Build/ 폴더 열기
    2. index.html 우클릭
    3. "Open with Live Server" 선택
    4. 브라우저가 자동으로 http://127.0.0.1:5500에서 열림

방법 3: Node.js http-server (대안)

# 전역 설치 (일회성 설정)
npm install -g http-server

# 빌드 폴더로 이동하여 서버 실행
cd WebGL_Build/
http-server -p 8000

# CORS 활성화 (필요한 경우)
http-server -p 8000 --cors

접속 URL:

웹 브라우저 테스트:

  1. 웹 브라우저 열기
  2. http://localhost:8000으로 이동
  3. 게임이 WebGL로 브라우저에서 로드됨
  4. 데스크톱 버전과 동일한 멀티플레이어 기능

예상 WebGL 동작:

WebGL 브라우저 게임플레이

WebGL 브라우저 게임플레이

문제 해결

일반적인 문제 및 해결 방법:

연결 문제

ProudNet 통합 문제

빌드 문제

WebGL 문제

디버깅 도구:

도움말: