Skip to main content

Quantum Load Balancing

Repo

Sign in

Apa itu Load Balancing?

  • Load Balancing adalah proses sebuah sistem untuk memproses player dari awal masuk ke server multiplayer hingga masuk ke room game yang sesuai.
  • Load Balancing ini bisa dilakukan secara otomatis maupun dapat dikostumisasi oleh player

Load Balancing Dalam Quantum

  • Load Balancing Quantum masih mirip dengan Realtime (cuma di extend dikit aja fungsi nya)
  • Load Balancing ini berupa class yang harus terus di ada di game dan mengatur
  • Secara garis besar, step buat masuk game room:
    • Connect with Master / Region Master
    • Join Lobby
    • Create / Join Room

Implementasi Load Balancing Quantum

  • Setup Load Balancing

    Untitled

    Notes:

    • Perlu simpan QuantumLoadBalancingClient dari awal game hingga selesai (lebih gampang bisa pake singleton)
    • AppSetting bisa diganti pake yng lain, tinggal pilih aja pas Construct QuantumLoadBalancingClient
    • Tiap Update di Unity perlu call Service() di Load Balancing nya.
  • Connect with Master

    • Connect ke master pake fungsi ConnectUsingSettings di QuantumLoadBalancingClient tadi

      Untitled

    • Sekarang kalian bisa set class yang mau dapet callback dari Load Balancing nya pake interface, disini Login Controller pake IConnectionCallbacks dan langsung implement fungsi2 interface nya

      Untitled

    • Habis itu subscribe ke Load balancing pake AddCallbackTarget

      Untitled

    • salah satu fungsi interface nya adalah OnConnectedToMaster, ini callback saat berhasil connect ke master, bisa langsung dimasukin ke lobby biar gampang

      Untitled

  • Join Lobby

    • Join Lobby pake fungsi OpJoinLobby, disini ada parameter TypedLobby, tapi blm di riset lebih lanjut cara pakai dan untuk apa nya, pake default dlu cukup

      Untitled

    • Sama seperti tadi, perlu bikin class yang implement interface biar dapet callback, dan subscribe ke load balancing.. karena udah di lobby, yang ini pake ILobbyCallbacks dan IMatchmakingCallbacks buat return kalo user bikin room atau join room

      Untitled

    • AddCallbackTarget otomatis ngedetek interface apa si class ini dan disetup callbacknya sesuai interface nya, jadi walau banyak interface cuma perlu sekali subscribe

      Untitled

    • buat callback udh masuk lobby nya bisa ambil pake OnJoinedLobby

      Untitled

    • di awal bakal otomatis sekalian update room list di OnRoomListUpdate, ini juga bakal di trigger tiap kali ada perubahan room list (atau per 1 detik gitu kurang paham) jadi baiknya gk langsung ubah room list disini, ubah data aja

      Untitled

  • Create Room

    • Buat Create room bisa langsung aja pake OpCreateRoom

      Untitled

    • Callback nya pake yang dari IMatchmakingCallback tadi, OnCreatedRoom. Kalo bikin room sekalian Join juga, jadi OnJoinedRoom juga ke trigger

      Untitled

  • Join Room

    • Buat join ada banyak opsi, bisa join random, atau otomatis create room kalo gagal

      Untitled

    • Sisanya handling OnJoinedRoom aja yang ke trigger