Quantum Load Balancing
Repo
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
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
-
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
-
Habis itu subscribe ke Load balancing pake AddCallbackTarget
-
salah satu fungsi interface nya adalah OnConnectedToMaster, ini callback saat berhasil connect ke master, bisa langsung dimasukin ke lobby biar gampang
-
-
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
-
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
-
AddCallbackTarget otomatis ngedetek interface apa si class ini dan disetup callbacknya sesuai interface nya, jadi walau banyak interface cuma perlu sekali subscribe
-
buat callback udh masuk lobby nya bisa ambil pake OnJoinedLobby
-
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
-
-
Create Room
-
Buat Create room bisa langsung aja pake OpCreateRoom
-
Callback nya pake yang dari IMatchmakingCallback tadi, OnCreatedRoom. Kalo bikin room sekalian Join juga, jadi OnJoinedRoom juga ke trigger
-
-
Join Room
-
Buat join ada banyak opsi, bisa join random, atau otomatis create room kalo gagal
-
Sisanya handling OnJoinedRoom aja yang ke trigger
-
No Comments