When I go to join a multiplayer game in StarCraft 2, sometimes the game client says it is downloading a few items before it enters the queue. This notice appears at the top center of the screen, and is soon replaced by the the "looking for players" message and then the "players found" message.

What is it downloading? Presumably I already have all the game content, and also presumably it can't fetch data on my opponents (such as their avatars) until it has decided who to match me with, which can be minutes later. Blizzard isn't issuing micro-patches this way, are they?

Edit: After the recent patch, these downloads took even more time. I'd love to know what's being downloaded, so I'm adding a bounty.

"After the recent patch, these downloads took even more time." It should only take longer the first time after the patch (for each matchup type, i.e. 1v1 2v2 3v3 4v4, FFA) The number of files downloaded I believe is the same as the number of available maps for that matchup, but I'm not 100% positive of that. If it's been slow every time after the patch then I haven't experienced that before.
–
Davy8Sep 22 '10 at 23:57

5 Answers
5

I noticed earlier today that as of 1.1, the Blizzard maps were updated from v0.1 to v1.0. (Agria Valley is currently at v1.2.) Also, in the SC2 Editor, some Blizzard maps are showing up as not downloaded:

I haven't played 3v3 since pre-1.1, so all the updated 3v3 maps are still marked as Not Downloaded.

So, here's what I think it is:
When you join the matchmaking queue, the game asks Battle.net for a list of maps you might about to be playing on. If you have the latest versions of all the maps, this will probably only take a second.

If any maps are out of date, however, the game will update them. This will take a few seconds for each map since they're around a megabyte each.

This system would let Blizzard publish updated versions of maps, or add new ones to matchmaking, between actual patches.

I'm marking this as the correct answer for the investigative research, and since it mentions Mag Roader's answer. The fact that the maps have different versions and aren't downloaded to begin with indicates that downloading/checking maps is at least part of the process!
–
WikwocketSep 29 '10 at 14:48

(Probably) The maps! You don't start with them all (or any?) and must download the appropriate player # maps before you can play.

Presumably, yes, this does mean Blizzard can do micro patches on the maps themselves without needing to change the game client.

Edit: As per comments, it could also be doing a small check to ensure your maps are in fact up-to-date and not hacked. This wouldn't necessarily require downloading the full maps, but would require downloading something (albeit small) for verification. But it's still likely to be map related.

Edit: Also, yes, my answer is speculative. The people who know the answer for sure are people who have looked at the game code. If such people reply with a better answer, please upvote that! :D

Edit: The other day I moused over the downloads as they were coming in. There was a tooltip and, indeed, it claimed to be downloading maps.

How does it know which map I need to download if it has not matched me with players yet? Also, if this were the case, wouldn't I have all the maps by now and so no longer see this?
–
WikwocketSep 9 '10 at 2:08

1

It might also use that time to compute the hash of the map/executable, to make sure you both have the latest correct, unhacked versions of the map/exe.
–
BlueRaja - Danny PflughoeftSep 9 '10 at 4:52

Every time you search breaking news is requested from customer.teliacarrier.com.

Confirmed with Process Monitor, it first makes a request to a subdomain of that URL and then saves a file in

C:\ProgramData\Blizzard Entertainment\Battle.net\Cache\Download

that is called breakingNews.txt which is empty but allows them to interrupt the league queue if needed.

You can confirm this yourself looking at the modified times of the files, the only other things you might encounter that have recently changed (but not when entering the league) are the news images...

I guess the first time after you start the game your league settings are updated to match the league you are allowed to play in; so for example if you play in Practice you will have the slow settings and if you advance to ranked leagues you will have faster settings.

Why: Because I guess this doesn't happen when you load SC2 itself so you can go to single player without waiting for your slow connection. The profile data probably contains less or different data so it isn't updated in that case either. And it should always be made up-to-date when you enter multi-player in case you have played SC2 before on another computer...

Files: Besides creating/accessing some cached .s2m* files,
the only readable file I could find contains this:

Teliacarrier is the European provider of Battle.net servers ( Source ), and "breaking news" usually refers to the login news box in Blizzard games. This could be part of it, but I wonder why it'd check this on queuing for play, and why it'd say "item 1 of 9"?
–
WikwocketSep 28 '10 at 17:01

I've did this check on subsequent searches, not on the first one after I started the game... I did this now and updated my post accordingly. About the "breaking news", it is by default an empty file sent to the client... If it were not an empty file, I guess the breaking news would interrupt the player when he searches. Perhaps to note him that the Battle.net Match Making system is down...
–
Tom WijsmanSep 28 '10 at 21:15

My last time it said "item 1 of 3", item 1 being the "breaking news" for sure, item 2 might be the weird file containing the locale stuff and item 3 being the file that causes the various things to happen... But what exactly? We won't be able to figure that out as the protocol is encrypted, the game is protected and the files are encrypted...
–
Tom WijsmanSep 28 '10 at 21:22

One thing to note: I'm talking about cached files here, the files of SC2 itself are left untouched and aren't even being accessed when you start to search. So, it isn't updating the content nor verifying it...
–
Tom WijsmanSep 28 '10 at 21:29

I'm awarding the bounty to you, because I feel this investigative work goes above and beyond the call of duty. Clearly the game is downloading some news, some configuration info, and some map info. Interesting!
–
WikwocketSep 29 '10 at 14:51

I think blizzard check that maps are recent ones. E.g. if they make small bugfix to map, then they just update it on their server, and system distribute it across players.
As Mag already mentioned it most probably hashes, that your game send to server, and server decide do you need to update map or not.

I think it is pretty stupid that this checks done for every match, as these updates quite rare. But maybe it is done against hackers.

PS: it is also just an assumption, so unless someone verify it with packet spoofer we can't be sure.

If you really want in-depth details, you'll need to get a Packet-Sniffer running, but the problem is, it's not allowed. When SC2 catches you, it's buh-bye account, because it can be construed as a cheat.

But packet sniffing is the way to go. You can analyze each packet sent and received in detail.

I would say chances are extremely low that the packets are encrypted - packet-encryption is expensive, and pointless in this case (they don't care about evesdroppers, and it does not prevent local packet-sniffing - your system needs to decrypt the packets at some point)...
–
BlueRaja - Danny PflughoeftSep 28 '10 at 21:22

Why would packet encryption be expensive and pointless? You should see how it works because it's not expensive at all... Do you know them? They do care about evesdroppers, why? Because they are also preventing local packet-sniffing and so you won't be able to decrypt the packets without going around their security system, which is: 1. Extremely hard to do. -- 2. Leaves you with other things to figure out. -- 3. Is a good way to risk your account as that's cheating.
–
Tom WijsmanSep 28 '10 at 21:39