Data transfer technology has come a long way since I first stepped onto the internet and the amount of gamers that are using an internet connection that cannot be classified as broadband is probably minimal. Still, downloading patches for games can still take quite a while and downloading full games or expansions for them even longer. If you buy a game on steam on release day for example you might have to wait for hours or in some cases even days before you can finally start playing it. Modern day games are simply huge and take a lot of data to play – or do they?
[This post was written in advance because I am on holiday. Please excuse the lack of actuality, I won’t be able to respond to current events that happen while I’m away.]
By far the largest amount of data of most games comes to us in the form of art assets – videos, textures, 3D models, sound files, and all that good jazz. The game’s engine is usually a really small part of the total data volume, yet that is pretty much the only part that is constantly needed. When playing an MMORPG for example there is no need for you to already have the art assets for the final boss on your system, all you need is the game engine and the starting zone.
The logical step from there to allowing users to play a game before it has completed downloading isn’t very far, yet it has taken quite a while to arrive in mainstream gaming. Magic Online did it years ago, loading “optional” assets while the player was already enjoying the game. (A feature they scrapped with many other when transferring development of the game in house. Now we get lengthy patch procedures instead – hooray.) Apparently Guild Wars does something similar and game rental service Metaboli also had the technology years ago. Now Blizzard seems to be switching to it – at least they are testing it in the Cataclysm beta – and we all know that where Blizzard goes, others follow.
Personally I consider this a very important step in gaming technology. The longer players have to wait for a download to finish, the less interested they will be in actually downloading your game. If you are producing AAA retail titles this probably isn’t much of a problem for you, but if you are running an alternative business model (free-to-play, shareware, what have you) it can be very important to convince people to play your game. The player that just found your website likely isn’t looking for something to play in three days, but rather something to play right now. While not completely instantaneous, the streaming of content can greatly reduce the download barrier between the player finding an interesting game and actually getting to play it.
An optimal implementation would of course try to predict quite accurately which parts of the game the player will need next so that streaming can happen in the background and will ideally never be noticed by the player. The more linear your game is, the easier this will be of course, but even in an open world should allow for more or less accurate guesses.