Skip to content

Create Room Flow

Alea Farrel edited this page Jan 15, 2026 · 1 revision

🏠 Create Room Flow

Halaman ini menjelaskan alur lengkap ketika Host membuat room multiplayer baru di Rapid Texter GUI.


πŸ“‹ Daftar Isi


🎯 Gambaran Umum

Ketika user memilih "Create Room" di menu multiplayer, sistem akan:

  1. Menerima input nama pemain
  2. Generate UUID unik untuk identifikasi
  3. Memulai TCP Server untuk menerima koneksi
  4. Mengatur status sebagai Host dan Authority
  5. Memulai UDP Broadcasting untuk mengumumkan room

πŸ“Š Diagram Alur

Create Room Flow

Diagram Mermaid

flowchart LR
    subgraph START_END [" "]
        A([Start: User pilih Create Room])
    end
    
    subgraph PROCESS_CREATE [" "]
        B[/Input: Player Name/]
        C[Generate UUID unik untuk pemain]
        D[Inisialisasi TCP Server di port 52765]
        E{TCP Server berhasil dimulai?}
        F[Set status: isRoomCreator = true]
        G[Set status: isAuthority = true]
        H[Set status: isConnected = true]
        I[Set status: isInLobby = true]
        J[Mulai UDP Broadcasting di port 52766]
        K[Broadcast paket announce setiap 1 detik]
    end
    
    subgraph END_CREATE [" "]
        L([End: Room berhasil dibuat, menunggu pemain])
        M[/Output: Error - Server gagal dimulai/]
        N([End: Gagal membuat room])
    end
    
    A --> B
    B --> C
    C --> D
    D --> E
    E -->|Ya| F
    E -->|Tidak| M
    M --> N
    F --> G
    G --> H
    H --> I
    I --> J
    J --> K
    K --> L
Loading

πŸ“ Penjelasan Detail

Step 1: Input Nama Pemain

User memasukkan nama yang akan ditampilkan ke pemain lain
  • Nama ini akan dikirim dalam paket HELLO saat handshake
  • Nama akan muncul di lobby dan leaderboard hasil race

Step 2: Generate UUID

Sistem generate UUID unik untuk identifikasi pemain
  • UUID digunakan untuk:
    • Identifikasi unik setiap pemain dalam mesh
    • Penentuan authority (UUID terendah = authority)
    • Deteksi koneksi duplikat

Step 3: Inisialisasi TCP Server

TCP Server dimulai di port 52765
Parameter Nilai
Port 52765
Protokol TCP
Max Connections 8 (MAX_PLAYERS)

Step 4: Validasi Server

Sistem memeriksa apakah TCP Server berhasil dimulai
  • Berhasil: Lanjut ke step berikutnya
  • Gagal: Tampilkan error dan batalkan pembuatan room

Step 5: Set Status Host

Atur berbagai flag status untuk host
Flag Nilai Keterangan
isRoomCreator true Penanda sebagai pembuat room
isAuthority true Penanda sebagai authority game
isConnected true Penanda sudah terhubung
isInLobby true Penanda berada di lobby

Step 6: Mulai UDP Broadcasting

UDP Broadcasting dimulai di port 52766

Paket announce berisi:

  • hostName: Nama host
  • IP: Alamat IP host
  • port: Port TCP (52765)
  • playerCount: Jumlah pemain saat ini

Step 7: Broadcast Loop

Paket announce dikirim setiap 1 detik (1000ms)
  • Guest yang sedang scanning akan menerima paket ini
  • Room akan muncul di daftar room yang tersedia
  • Jika tidak ada broadcast dalam 5 detik, room dianggap stale

⚠️ Kemungkinan Error

Error: Server Failed to Start

Penyebab Solusi
Port 52765 sudah digunakan Tutup aplikasi lain yang menggunakan port tersebut
Firewall memblokir Izinkan aplikasi di pengaturan firewall
Permission denied Jalankan dengan privilege yang sesuai

πŸ”— Navigasi