This project is read-only.

Bandwidth Considerations

Aug 26, 2009 at 2:58 AM

The merging of worlds between XNA and Silverlight means a lot of things, one thing I didn't see a lot of information on though is bandwidth considerations. In Silverlight you have a lot of control over this from compressing payloads, to on demand loading of media and even assemblies. Certainly there are compromises to make when you're trying to make one application work in two very different environments. That being said, does anyone know answers to these specific questions:

  1. Does Silversprite wait until a media file is needed before downloading it (audio, images, content files)?
  2. Is there a best practices for breaking out our media such that it will download progressively as gameplay proceeds instead of all at the top (i.e. split them into separate assemblies, take caution when/where they are referenced)?
  3. Will I have better or worse bandwidth performance by splitting functionality into separate assemblies?

I am making a game that will have a great deal of graphics. At no time will someone playing the game see even 1/10th of the graphics during a single instance of play.


Aug 26, 2009 at 3:21 AM

Great questions. Currently media (images, audio) have to be included in the XAP file as content. I've been thinking over the last few days about also supporting assets as Resources and hitting the server if not found in the XAP file. Maybe it would also make sense to be able to specify a XAP at the content manager level so that you could support storing assets in several XAP files and grabbing them as needed.  

Sep 13, 2009 at 8:28 PM

I like those ideas, I can see how they could be implemented in a way that takes a lot of the need to worry about it from the developer. I know the Content namespace is one of the areas of SilverSprite that isn't built out entirely yet. Building that out would not only allow SilverSprite developers to take advantage of a lot of free source code out there that depends on it, but it could also be implemented in a way that makes the experience for the player better in terms of wait time and bandwidth by only loading media once it has been requested.