| Warcraft III - Hosting information |
|
This site is for everyone who wants to host Warcraft 3 games with latency reduction to improve the gameplay for his clients. What options do i have to host Warcraft 3 games? 1. Local Area Network (LAN) 2. Battle.Net (BNet) 3. ListChecker (LC) 4. GGClient (GGC) 5. Lainbot 6. DotaClient (DC) What's the difference between lags and spikes? In Warcraft 3 you've got a minimum delay (latency) of 100ms (LAN) or 250ms (Bnet). That means if you click to move your hero it takes at least 100/250ms until you see the hero reacting to your commands (except the host, he has no delay at all). That's the big difference to first person shooters like Quake or CounterStrike. There your latency (minimum delay) is depending on your ping to the server. People who always play WC3 with 100ms latency in LAN or with LC really feel the difference if they play on normal BNet just because there is a real difference in latency. Of course your latency can go over 100ms (depending on your ping to the host). Then your actions get more delayed and that is called "lag". The maximum delay is 6-8 times higher than the minimum delay (Consequently 0.8s in LAN and 2s in BNet). If your connection to the host is even worse there will be packetloss. If some data packets get lost your hero will start moving many steps at a time. That's called a "spike". A data packet contains game information like "Hero X moved one step forward and attacked creep Y". The host sends data packets every 100/250ms to each client. So why do i get disconnected sometimes? Warcraft 3 will claim there's a disconnect when there are too many data packets missing. The smaller the latency the less time WC3 has to resync. Therefore the possibility to have a disconnect is bigger when the host is using LC instead of normal BNet. What does ListChecker do? http://bonta.kun.free.fr/listchecker/ You host a WC3 game in LAN-mode so WC3 thinks it's a LAN game and sets the latency to 100ms. In the background LC connects to BNet and posts your game to the game lobby and everyone can see it in normal BNet and join. For this trick LC needs WinPcap to interfere with your data packets. Special about ListChecker: - Ping clients What does GGClient do? http://gg-game.com/ It simulates a LAN in every chatroom (It's of course no real LAN regarding your pings to each other. Any game you host will send data packets to your LAN and these data packets are routed somewhere else (here the IPs of the other guys using GGC) by GGC). Depending on the chatroom you're in you can see the hosted LAN games of other players. The host just creates a normal LAN game (=100ms latency). All this routing takes more CPU usage/bandwidth. That's why not everyone is a good host in GGC. Special about GGClient: - Level system (high-skilled rooms) What does LainBot do? http://lainbot.tk/ Lainbot hosts a BNet game from a (dedicated) server. This way every player in the game has a latency of 100ms because no player is host at the same time. It even can change the latency within the running game! If someone is complaining about spikes you can increase the latency. If not decrease it! :) Special about Lainbot: - Namespoofer check - Latency change within the game - Ping / country check - You need a second CD-Key What does DotaClient do? http://www.dotaclient.com DotaClient changes the "latency switch" of Warcraft 3 in the memory. This way you just create a normal BNet game and Warcraft 3 will use the latency given by DotaClient. Special about Dotaclient: - Namespoofer check - Anti-Hack - Bans AuthId if someone maphacks or customkicks. - Stat-Tracking (very nice! show creep kills/denys, herolvls, etc after the game on a webpage) - Different latencies to setup before the game (30,55,85,100,140,250) Does my ping to the host change something? It depends. If your ping is below 100ms to an LC-host you'll just feel the latency of 100ms. If it's bigger you'll experience lag or spikes or even a disconnect sometimes. That's why it's not too good to host DotaClient/LainBot with very little minimum delay (50ms for example). You'll get massive spikes if not everyone has such a good ping/connection to the host. The lower the latency the more spikes or even disconnects you'll get. A high latency is not that good either because of some obvious reason :-) What's the difference between UDP and TCP networking? Somebody told me LC is so much better because it uses UDP packets. First of all: That is absolutely wrong. UDP sends packets into the network without building up a connection to the destination. You don't know if the packets reached their destination or not. UDP does not guarantee reliability or ordering in the way that TCP does. (imagine your hero doing your commands in the wrong order, haha!) TCP builds up a connection to the destination and provides reliable, in-order delivery. In Warcraft 3 UDP is used to send out hosting information. "Hey all other WC3 users, i'm hosting a game called blabla" and then you see the game called "blabla" in your list. TCP is then used to exchange the game data. http://en.wikipedia.org/wiki/User_Datagram_Protocol http://en.wikipedia.org/wiki/Transmission_Control_Protocol I don't believe you! The friend who told me about UDP and LC is a real geek! You can check it out yourself. Go download Wireshark http://www.wireshark.org/ This a network protocol analyzer. With it you can check what Warcraft 3 is doing (with / without LC, DC, GGC and so on). What can i do to be a good host? What program is best? There's no best program. If you have kickass up/download bandwidth GGC, LC, DC (with 100ms latency) and Lainbot (with 100ms latency) will show no difference at all. If your upload/cpu is not that good GGC will perhaps not work as good as the other tools. The good (sometimes bad for some clients) thing about DotaClient and Lainbot is that you can lower the latency below 100ms. In Lainbot even within the game. As mentioned above your clients will experience more spikes if you lower the latency too much. You'll have to find a balance between many spikes and high latency. What's this Banlist all about? http://www.wc3banlist.de/ Banlist is a tool to show information about your clients. You can ping your clients or show the country where they're from. In addition you can 'ban' players if they leave or do something you don't like. The ban however is made according to the player's name. If he just logs on with another name you won't recognize him. In contrast to that DotaClient bans according to a player specific AuthID. For more information about that check the DotaClient webpage. If you want to use Banlist use the newest beta version. With it you can ping all your clients even if they are behind a router (command: /latall). What's your recommendation? I use DotaClient (@140ms to prevent disconnects) because it's easy to use and has better latency reduction than the other tools. In addition you have real Anti-Hack if everyone uses it. Check out their homepage: http://www.dotaclient.com. If you have problems running it just post in their forum. You'll get a quick response! If you don't play with fixed team setups (like on http://www.dota-league.com/) i recommend to use Banlist (newest beta) in addition. You can ping your clients and get information where they're from. If you are a host in the U.S. you don't want to have players from Europe or somewhere the other site of the world. I'm host and some people complain about lag/spikes. What can i do? Change used program? It doesn't depend on the program you use. It just depends on the selected latency and the quality of the connection between you and each client. Let's say you host with DotaClient @ 100ms and some people have spikes. It won't change anything if you use LC instead. However if you set the latency to 140ms in DotaClient the spikes will probably disappear at the expense of a 40ms higher latency. If somebody is still complaining about spikes it's because the connection between you and him is bad. Find another host then. Don't let the spiking guy host! Perhaps it is fine for everyone else but you'll experience those spikes then because your connection to him is not too good :) I'm using the /latall function of Banlist but the ping with LC seems to be much better. Why is that? That's because Listchecker halves the pings. This way the LC ping just shows how much time a data packet needs in ONE direction. Banlist shows the usual "ping" - time a data packet needs to go the client and back. If you don't believe this try it once with ListChecker and a second time with Banlist or ask the developer of ListChecker about it. |