Skip to content

Multiplayer Overview

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

🌐 Multiplayer Overview

Halaman ini berisi dokumentasi lengkap tentang sistem multiplayer pada Rapid Texter GUI, termasuk arsitektur jaringan, komponen sistem, dan alur kerja.


πŸ“‹ Daftar Isi


πŸ—οΈ Arsitektur Jaringan

Sistem multiplayer Rapid Texter menggunakan arsitektur Peer-to-Peer (P2P) Full Mesh. Dalam arsitektur ini, setiap klien (pemain) terhubung langsung ke semua klien lainnya, membentuk jaringan mesh penuh.

      Player A
       /    \
      /      \
Player B ---- Player C
      \      /
       \    /
      Player D

Keuntungan Arsitektur Full Mesh

Aspek Keterangan
Latensi Rendah Data dikirim langsung antar peer tanpa melalui server pusat
Tidak Ada Single Point of Failure Jika satu peer disconnect, koneksi lain tetap berjalan
Skalabilitas Lokal Cocok untuk multiplayer LAN dengan jumlah pemain terbatas

Komponen Utama

Komponen Port Protokol Fungsi
UDP Discovery 52766 UDP Penemuan room di jaringan LAN
TCP Mesh 52765 TCP Koneksi data antar peer
Authority - - Floating Authority dengan aturan UUID terendah

πŸ”§ Komponen Sistem

1. UDP Discovery (Port 52766)

UDP Discovery digunakan untuk:

  • Host: Broadcast informasi room setiap 1 detik
  • Guest: Menerima broadcast dan menampilkan daftar room yang tersedia

2. TCP Mesh (Port 52765)

TCP Mesh digunakan untuk:

  • Koneksi data antar peer
  • Handshake awal (HELLO packet)
  • Sinkronisasi game (progress, finish, results)

3. Floating Authority

Authority dalam sistem ini bersifat "floating" (berpindah):

  • Awalnya host adalah authority
  • Jika host disconnect, authority berpindah ke peer dengan UUID terendah
  • Authority bertanggung jawab untuk:
    • Memulai game
    • Mengirim countdown
    • Menghitung dan broadcast hasil akhir

πŸ“‘ Tipe Paket Jaringan

Paket Deskripsi Arah Komunikasi
HELLO Handshake awal dengan info pemain Bi-directional
PEER_LIST Daftar peer untuk pembentukan mesh Host β†’ Guest
READY_CHECK Permintaan konfirmasi ready Host β†’ All
READY_RESPONSE Respons konfirmasi ready Guest β†’ Host
COUNTDOWN Sinyal countdown sebelum race Host β†’ All
GAME_START Sinyal mulai race Host β†’ All
GAME_TEXT Distribusi teks game Host β†’ All
PROGRESS_UPDATE Update progress mengetik real-time All β†’ All
FINISH Notifikasi pemain selesai All β†’ All
PLAYER_LEFT Notifikasi pemain keluar All β†’ All
RACE_RESULTS Hasil akhir dengan ranking Host β†’ All
PLAY_AGAIN_INVITE Undangan bermain lagi Host β†’ All
PLAY_AGAIN_RESPONSE Respons undangan Guest β†’ Host
KICK Mengeluarkan pemain Host β†’ Target

πŸ“Š Konstanta Sistem

Konstanta Nilai Keterangan
DISCOVERY_PORT 52766 Port UDP untuk discovery
TCP_PORT 52765 Port TCP untuk koneksi mesh
ANNOUNCE_INTERVAL_MS 1000 Interval broadcast (1 detik)
PROGRESS_UPDATE_MS 50 Interval update progress (50ms)
ROOM_TIMEOUT_MS 5000 Timeout room stale (5 detik)
SCAN_TIMEOUT_MS 30000 Timeout scanning (30 detik)
MAX_PLAYERS 8 Maksimum pemain per room

πŸ“– Alur Dokumentasi

Untuk memahami sistem multiplayer secara menyeluruh, ikuti alur dokumentasi berikut:

1️⃣ Create-Room-Flow

Pelajari bagaimana host membuat room baru, termasuk:

  • Inisialisasi TCP Server
  • Setup UDP Broadcasting
  • Penentuan status authority

2️⃣ Join-Room-Flow

Pelajari bagaimana guest bergabung ke room, termasuk:

  • Scanning UDP untuk menemukan room
  • Koneksi TCP ke host
  • Handshake dan pembentukan koneksi

3️⃣ Full-Mesh-Flow

Pelajari pembentukan jaringan Full Mesh, termasuk:

  • Proses handshake antar peer
  • Distribusi peer list
  • Koneksi ke peer lain dalam mesh

Lihat alur lengkap dari awal sampai akhir, termasuk:

  • Entry point menu multiplayer
  • Game flow dan sinkronisasi
  • Race results dan play again

πŸ“š Dokumentasi Tambahan

Tip

Dokumentasi Lebih Lengkap

Untuk dokumentasi lebih lengkap tentang Rapid Texter termasuk mode single player, cara bermain, dan fitur lainnya, silakan kunjungi:

Wiki Rapid Texter (TUI)