Setelah beberapa bulan terlibat dalam pengerjaan proyek game online (dari perancangan sampai development), akhirnya aku mendapatkan kenyataan bahwa hal paling awal yang musti dipikirkan benar adalah masalah Load Balancing. Terutama sekali untuk game online berjenis multi player, atau lebih dikenal dengan istilah MMOG atau Massive Multiple-player Online Game.
Mungkin timbuk pertanyaan. Seawal apakah? Jawabannya adalah seawal mungkin. Bahkan sebelum memulai fase desain high level untuk sistem, metoda/arsitektur load balancing mana yang akan digunakan harus sudah ditentukan. Mengabaikan desain load balancing dan langsung hajar masuk ke fase desain high level tidak akan menyebabkan game yang didevelop tidak bisa berfungsi. Tapi, seperti pengalamanku sendiri, load balancing akan menjadi momok dikemudian hari. Ujung-ujungnya high level sistem anda harus diubah total. Tau kan apa akibatnya mengubah high level proses jika aplikasi sudah jadi dibuat? Ditambah lagi, MMOG bukan hanya terdiri atas sebuah client dan sebuah server. Melainkan terdiri atas sebuah client dan banyak server. Ada game server, ada login server, ada world server, dan sebagainya.
Selain masalah yang telah dibeberkan di atas, mengapa load balancing menjadi demikian penting? Tidak lain karena beberapa alasan sebagai berikut:
- Konektivitas. Keterbatasan sistem operasi (OS) yang hanya bisa melayani 64K koneksi per mesinnya.
- Proses kalkulasi pada server. Menurut beberapa sumber, sebuah server MMOG idealnya hanya bisa melayani 3000-4000 pemain saja, dengan spesifikasi server menggunakan processor Intel Xeon 2.4GHz dan memory 2GB. Malah ada sumber lain yang secara ekstrem mengatakan bahwa sebuah server MMOG optimum hanya melayani 500 pemain saja. Menurut saya, untuk MMOG berjenis RPG atau MMORPG, pendapat terakhir inilah yang paling masuk akal.
Konsep dari load balancing adalah “membagi game/world/area/ dan rule dari game ke dalam beberapa server sehingga koneksi dan proses kalkulasi dapat dibagi menjadi relatif merata“. Ujung-ujungnya, penerapan load balancing sebenarnya untuk meningkatkan skalabilitas dari game itu sendiri. Apalah artinya MMOG jika hanya sanggup melayani sedikit pemain. Namanya juga MMOG, target pemainnya harus puluhan ribu, bahkan ratusan ribu, atau mungkin jutaan orang.
Setelah melamun cukup lama dan setelah cukup banyak menghabiskan kertas anak-anak R and D di sini untuk corat-coret, akhirnya muncul tiga jenis arsitektur untuk load balancing yang mungkin diterapkan untuk MMOG yang sedang kami kembangkan, yaitu:
- Serialized architecture.
- Peer to Peer architecture.
- Star/Lattice architecture.
Untuk penjelasan masing-masing arsitektur mungkin pada lain judul aja kali yah karena memang walaupun hanya konsep, tapi cukup banyak juga materinya.
