ADDON BASICS
Banyak sekali addon yg menggunakan framework AceComm diatas adalah beberapa diantaranya, lalu apakah berarti semua addon itu dilarang seharusnya? Tentu tidak, sejak patch 1.12 (jadul sekali), Blizzard memberikan fasilitas komunikasi antar addon (atau client) agar fungsionalitas addon dapat ditingkatkan, namun, sayangnya tidak semua addon didesain untuk seefisien mungkin dalam mentransmisikan dan meminta data” tsb, dengan kata lain, Blizzard tidak mendesain API (layanan fungsi” dimana bisa dimanfaatkan oleh pembuat addon) Addon untuk private servers semacam WoW-Idgs. Lalu, kenapa Admin & GM Idgs melarang penggunaan addon Carbonite, Cartographer dsj? Berikut adalah fakta” mengenai addon di WoW :

- WoW tidak mengizinkan P2P data transmission antar client, artinya, kalau saya Player A, ngewisp player B, chat saya itu dikirim dulu ke server, baru server ngirim ke Player B, artinya, setiap aksi yang Anda lakukan atau dilakukan oleh client/addon WoW Anda, itu akan diproses di server dan akan ‘membebani’ server.
- Sebagian besar addon modern (patch 3.0.0 keatas) yang menggunakan Ace Framework (bisa di cek di folder addon yg bersangkutan), kemungkinan besar ‘membebani’ server, terlepas dari addon itu sejenis carbonite/carto atau tidak. Bahkan addon” yg sama sekali tidak sejenis dengan Carbonite seperti GearScore justru mengirim & meminta data sangat agresif.
- Ada 2 jenis beban addon kepada server (kasarnya saja), terkait dengan komunikasi antar-player:
Addon raid – addon yang banyak ngirim & minta data ke setiap player anggota raid, dan jumlah data Bps yg dikirimkan tergantung jenis addonnya, dan encounternya (sdg lawan mob/boss ato lagi idle) yang hanya mengirimkan banyak data ketika raid saja atau ketika sedang digunakan (sedang party/sedang raid) misalnya : HealBot, Recount, Omen, dsb.
Addon community – addon yg mengirimkan data dalam jumlah kecil, namun terus menerus terlepas dari sedang raid atau tidak, umumnya addon ini aktif bila seseorang berada dalam guild, misalnya : Carbonite, Gatherer, Xperl, dsb.
- Sejak patch 1.12, Blizzard memperkenalkan yg namanya Addon Channel, itu adalah channel dimana setiap addon bisa ‘berkomunikasi’ satu sama lain, lewat call SendAddonMessage();
MENGAPA ADDON MEMBERATKAN SERVER?
Mengapa Carbonite dsj. dilarang? Sebenarnya saya juga menanyakan hal ini ke diri saya sendiri, karena saya dan rekan” yg tahu masalah ini lumayan yakin kalau lebih byk addon yg memakan resources server ketimbang Carbo, misalnya saja kasus yg paling parah itu GearScore yg bahkan sempat dibahas di forum inter bbrp waktu lalu dan disebut sebagai “stupidest ever mod ever created”, karena addon ini byk mengirim dan meminta data setiap waktu terhadap sesama pengguna GS. Namun, saya bisa menduga” mengapa-nya, pertama, pengguna Carbonite cukup banyak (mungkin) ketimbang pengguna addon” lain, kedua, Carbonite (dengan penggunanya yg ‘cukup banyak’ itu) berkomunikasi terus menerus lewat apa yg disebut dengan Addon Channel, ke sesama pengguna Carbonite lain, DAN ke bukan pengguna carbonite, ketiga, Carbonite menyediakan fitur seperti Punks, yg memanfaatkan Addon Channel, combat log, serta trace map, untuk mendeteksi keberadaan player” lain yang belum tentu semuanya butuh di detect (misalnya keberadaan GM). Terlepas dari itu, kalau ada yg bertanya,
apakah benar Carbonite dan addon” sejenis memberatkan server? Jawabannya, IYA.
Lalu kenapa bisa terjadi ‘pemberatan’ ke server ini? Jawabnya simpel, karena addon itu bawel, maksudnya, addon itu berkomunikasi lewat global channel chat, ya seperti channel chat biasa (horde/alliance), bedanya, kita ga bisa lihat isi chat tersebut (defaultnya di hide oleh blizzard, dan tidak ada gunanya menampilkan chat tsb), atau resminya disebut sebagai Addon Communications Channel, nah, nama channelnya, tergantung dari si addonnya, misalnya CarboniteC12/CarboniteC13/HealBotX11 dsb. Untuk apa si addon berkomunikasi? Contoh yang paling sering terjadi adalah,
Guild Positions, atau posisi member” guild di map di seantero azeroth, contoh lain,
sinkronisasi data DPS pada recount atau addon” dps sejenis, contoh lain
debuff/buff status yg biasa dipake pada addon” UF (unitframes) seperti
Grid, HealBot, Xperl, dsb. Masalahnya apa? Anggaplah gini

Anggap A dan B menggunakan Carbonite dan A,B,C,D,E,F berada dalam guild yg sama, dalam setiap waktu, mereka secara periodik akan menginformasikan lokasi mereka (posisi dimana, map apa). Misal si A, dia akan ngirim pesan lokasi tersebut ke C, D, E, F, dan B, terlepas apakah C,D,E,F menggunakan Carbonite atau tidak, jadi, pengguna Carbonite disini, akan selalu mengirimkan pesan itu ke semua member guildnya, bedanya, setelah si B menerima pesan lokasi si A, si B akan merespon balik kalau datanya diterima dan dia akan mengirimkan pesan posisi dia. Jadi untuk satu kali pengiriman data lokasi, jumlah pengiriman data disini ada 6, termasuk respon balik dari si B. Nah, itu baru satu kali kirim loh, tergantung dari si penulis addon, dalam satu menit bisa dikirim hingga 10-60x bila si yang bikin ndak pake ThrottleLib, bisa kita bayangkan, kalau semua anggota guild online bersamaan 100 orang, dan semuanya pake Carbonite, berapa besar data yg dikirimkan permenit? perjam? Dan ini baru Carbonite saja, yang notabene besar data yg dikirimkan kecil (kisaran antara 10-50 bps cuman untuk posisi guild member/orang/detik), beberapa addon, seperti
DBM mengirimkan footprint hingga 100-200 bytes per detik, jadi kalau full raid, setiap raid akan mengirimkan/menerima data tambahan sebesar 5kbps, yang juga merupakan besar data yang harus dihandel oleh server! dan inilah yang disebut" sebgai penyebab
LAG dan
SPIKES pada server...
SOLUSI
Melarang setiap addon, dalam hal ini anggaplah Carb dan sejenisnya untuk dipakai di server idgs, cukup baik dan efisien, namun bisa menjadi tidak efektif karena siapapun toh tidak bisa mengetahui secara pasti kalau setiap player pada setiap waktu selalu mematikan carbonitenya? Dan itu baru carbonite, banyak addon lain yang memberikan beban ke server jauh diatas itu (bisa lihat diatas). Dan bagaimana cara mengeceknya? Mudah saja, bagi teman” yg ingin tahu, siapa saja yg menggunakan addon yg melakukan broadcast lewat addon channel bisa memanfaatkan addon ini :
Ada solusi lain untuk mengeliminir penggunaan addon channel, berikut ini membutuhkan sedikit kerja keras, namun mudah”an dapat membantu para admin idgs beserta GM”nya untuk mengatasi masalah beban server oleh karena addon, yaitu dengan merilis versi aman dari setiap (atau mungkin beberapa) addon yang dikhawatirkan ‘memberatkan’ server, caranya dengan memodifikasi penggunaan fungsi SendAddonMessage dalam addon bersangkutan, misalnya pada Carbonite :
Dengan mematikan penggunaan fungsi SendAddonMessage, maka kita akan
mematikan kemampuan si Carbonite untuk berinteraksi dengan server dan player lain. Hasilnya, sudah saya test dengan scanner SpamFu, dalam selang lebih dari 2 jam,
Carbonite sama sekali tidak mengirimkan data apapun ke server. Dengan kata lain, carbonite yg sudah dimodifikasi ini, sama sekali tidak membebani server dari sisi cross-communication.
Share This Thread