The most beneficial thing Blizzard could do right now is to fundamentally change the organization of the custom maps list. The changes I'm about to outline, in of themself, even if no other changes were accompanied with it, would stop most of the #!#!@ing currently going on. Of course, there will probably be a lot of haters and various other complainers with various suggestions and complaints even if everything is fixed, but there's nothing we can do about that...
(Keep in mind, any Blizzard staff reading this, that I am fully aware that you have thought about -- or at least read about -- most, if not all of this. I'm typing all of this out because I take my passions seriously. If you decide to implement some or all of these suggestions, I will not expect nor desire any credit, since this is something that many of us want.)
Playing a Map
Currently: We'll start with the basics. Take Blizzard's current assumption: the player wants to play his favorite map quickly with some random group of people. The current system does this very well; a new player will probably like one of the maps in the set of the 30 most popular maps, and scrolling down to that map, joining it, and starting a game is a very simple task that will result in exactly the stated goal. Mission accomplished.
The Problem: A game like StarCraft II will see all types of players going online to play some matches, as one would expect just by observing what happens in the previous Battle.net iterations. (Actually, I will be using the original Battle.net as a sort of factual basis for some of these points.) Not everyone is going to be interested in playing some bandwagon popular maps all of the time, and some players will want to just skip straight to some lesser-known projects that they made or know about through friends, websites, etc. If the previous Battle.net was any indication, many players would be browsing the custom game list for some new and interesting maps. However, a majority of the players indeed are generally looking to repeatedly play a favorite map, but even those players change it up every now and then and play something completely different, just to keep things interesting.
To sum things up, just about every player is going to look for less-popular maps that are new and entertaining. The problem therein is that unless one happens to have a large group of friends online at the same time (all of whom are willing to play the same map at someone's whim), nobody is going to be able to break from the most-played maps. The reason for this is that the current system forces a popularity system, driving the less-popular maps way down in the list of maps. A few other attributes, such as the "Show More Maps" button that makes it just about impossible to quickly scroll down, the fact that the list is basically unchanging and every publicly-available map is on the "Join Custom Map" list at all times even though filling them all up with players is logistically impossible, the lack of any kind of personalization or ratings, and the issue that "hosting" a map is almost useless (I'll get to that later), ensure that the only maps that get played are the popular maps. Of course, if one combines this with the popularity system, we get a sort of internal feedback loop where the popular maps stay popular and the unpopular maps are given virtually no chance.
A Solution: There are multiple ways to approach this. The best way I can think of is to partially revert to the old system: a psuedo-server list. Firstly, the maps list should ideally be listed in a top->down fashion, similar to how the original StarCraft's battle.net layout. Also, the "Show More Maps" button should be completely removed. Instead of listing every single map in the join menu, only those maps that are currently being hosted by someone should be in the server list. Instead of hiding every open game under a general map title and making it impossible to discern any information of the game except the map being played, every hosted game of the same map (or its versions) should be placed in a nested, collapsible item containing the map name and the number of open games contained therein. The old hosted map name thing should be reintroduced, since it allows the person "hosting" the game to do various things such as calling attention to the map, announcing a new version, listing some rules or modes to be used in the game, as well as allowing the players to feel like the map they joined or hosted is a much more personal, relatible, and enjoyable experience. After all, it's the little things like this that make all the difference, and it's one of those touches that I thought made the original Battle.net the best there is and ever was.
The organization should be, by default, by chronological order of hosting: when opening up the custom maps list, all of the currently open lobbies should be listed, and then any future hosted maps should be listed below the current list unless the map being hosted is already in the list, in which case the map should instead be put into the corresponding collapsible partition. This avoids most of the the ever-present problem of dozens of "Fastest Map", "DotA: Allstars", and "Big Game Hunters" maps that dominated the lists in the previous games, since they will be all thrown together so that a player interested only in joining a particular map can view all of the open games in one place, while a player interested in finding a new game to play won't have to wade through dozens of the same map that he/she is sick and tired of playing.
Not only do these changes bring some familiarity back to the returning veterans of WarCraft II/III and StarCraft, it also improves the old system with some new tricks, making the "Battle.net 2.0" title more worthy of its name, thus allowing players to attach to the new system more readily due to the psychological connection established with the first iterations of Battle.net.
Hosting a Map
Currently/The Problem: Since the basics are covered, we can move on to the next rung: the issue of hosting a map vs. joining a map. I don't think there's anything remarkably right about this topic, so I won't bother segregating the "Currently" and "The Problem" categories, since they're largely the same thing in this case. Right now, not many players even bother with "hosting" a map, since hosting an unpopular map gets no joins and hosting a popular map simply makes it take longer to get a game going (because the hosted map is put into a lower priority than the public auto-created lobby) with very little benefit. Basically, there's little to no reason to ever host a game in the current setup, unless one has a bunch of friends to invite. Maybe that was Blizzard's intention, but then again I'll never really figure out how Battle.net ended up like this in the first place.
Also, it's worth noting that there is very little distinction from the "host" and the other players right now. After all, Blizzard's servers host all of the games, for better or for worse. This boils down to the fact that nobody is the host and the "host" of the game is pretty much a player with limited admin powers over the game. In the previous Battle.net systems, the Blizzard servers did not host the custom games themselves (as far as I know, Blizzard did not even host the waiting room lobbies), thus forcing the host of the game to actually host the game using their own bandwidth and computing power. Obviously, this caused the online quality of the game to be a random crap shoot in WarCraft III (no pings were displayed), while StarCraft was slightly better off due to the (slightly buggy) ping bars in the maps and players lists. However, the host of the game truly was a host and, by rule of honor, was entitled to having admin power over the game, the settings, and the players who could play the map. As it is right now in Battle.net 2.0, the "host" of the game is more of an artificiality with no basis for power. This bit of psychology degrades the quality of the experience somewhat, but is not as serious as the fact that everybody can "host", regardless of computer quality or bandwidth.
Suppose the institutions in the previous section were implemented: who would be hosting and who would decide to join? In all of the previous Battle.net games, many people were forced to join maps rather than host them because of bandwidth issues or configuration problems. This rightly seems bad, but then again it allowed the people who could host to expect some people to join, simply because a great deal of players had no other choice. It just worked out in a sort of symbiosis that there was always a group of people to host maps and another, much larger group to join them. However, there is not much to be done about this; now that all restrictions from hosting have been eliminated, there is no turning back. This is something that the players will have to adjust to, but there is a way to try to get the best of the situation...
A Solution: First, to address the issue of the "host" identity: the only solution is to just hope that the players balance the situation out by themselves. If too many people host, some hosts will give up and join some existing games. If too many people are joining and getting the interesting maps filled up too quickly, a couple players might give up and just host the map themselves. It causes an extra headache but it's probably unavoidable.
However, the situation can be helped by allowing hosts to optionally host maps on their own bandwidth, which would in turn make the experience feel a bit more personal/cozy. At best, it could allow a host with an exceptional connection to offer better gameplay than what the Blizzard servers can provide (lower ping, thus lower delay). At worst, it could cause a few hapless players to join a game hosted by someone with an internet connection with the quality of two tin cans connected by a long string, wasting a few minutes of their lives as half of the players drop immediately while the rest suffer from an order delay of 3 seconds or more. The worst of it can be avoided with a ping display, so that hosts showing a ping of >9000 can be ignored. Much of the rest of the hosting problems can be fixed through the proper implementation of the fixes outlined in the previous topic, as it would allow people to join underplayed or recently-released maps. The beauty of such a solution is that some of these underplayed maps will become popular as time goes on, as more people will play the map over time, come to like it, and in turn host it more. After a while, people may become bored with the map and it will eventually be hosted less and less until it is forgotten again with a new set of maps to take its place. This is the natural life cycle of a map on the original Battle.net, and it was a beautiful phenomenon that gave every map a more-or-less equal chance at success (at least, until bots dominated the list).
Even if the custom maps list is monopolized by a single very successful map, similar to how "DotA: Allstars" took over the maps list in WarCraft III, a collapsible map organization system like I outlined in the previous topic would solve virtually all of the problems caused by such an occurrence, as the default state of the maps list would give every map an equal amount of space in the list (ironically, similar to the current setup).
To sum things up, if the players are given greater access to maps that are hosted by others (ideally, in an organized fashion), the whole system will improve tremendously. All of this can be supplemented with additional ideas, such as an option to sort by map popularity or map rating (a facebook/youtube-esque thumbs up or thumbs down system would work fine, but a 1-5 star rating system could also work out because everyone has only one account -- this could be enforced by forcing the person doing the rating to post a comment with the rating).
A final, miscellaneous note: I'm sure you (Blizzard) have noticed that popularity is not a measure of quality, so supplementing or even replacing the popularity system with a ratings system (or a combination of the two if you're feeling creative) would offer a much better idea of a map's quality than what we've got now.
Making a Map
I've been writing too much for today; I'll finish tomorrow.
Edited by DarkRevenant on 8/4/2010 8:33 PM PDT