Welcome to MSDN Blogs Sign in | Join | Help

December 2007 - Posts

Network compression: arithmetic encoding

Arithmetic encoding is one of those obscure tools that is rarely used, but every now and then is the only thing that can do the job. It's the oddly sized Allen-key of network data compression. Arithmetic encoding is cool because not many people have heard

Network compression: bitfields

Bitfields are just like this most totally awesome old-skool way of packing data, dude! C# programmers rarely have an excuse to mess with such things, but network packet compression offers an excuse par excellence, so let us mess away. A byte is 8 bits.

Network compression: packed vectors

The Microsoft.Xna.Framework.Graphics.PackedVector namespace contains types that could be described as "quantization for lazy people". This functionality was originally designed for packing textures and vertex buffers into smaller GPU formats, but is equally

Network compression: quantization

Fewer bits take up less space than more bits. If you have a number that you know will always be in the range 0-100, there is no need to send a 4 byte integer over the wire. Cast it to a byte first. Sometimes you can reduce the necessary range by offsetting

Network compression

Because network bandwidth is so limited, it is critically important to compress all the data you send over the wire. Generalized compression algorithms like zip don't tend to be much use here. To get good results, that kind of compression needs a reasonably

Network bandwidth: voice

Bandwidth is needed for more things than just the data you send yourself. The XNA Framework handles voice automatically, but every time you speak into the headset, we have to send that data out over the wire. The voice stream is heavily compressed, using

Network bandwidth: packet headers

Network bandwidth refers to how much data you have room to send over the wire. As you approach the limit, you will see increased amounts of packet loss. If you go over the limit, you will eventually get disconnected from your session. The XNA Framework

Network packet loss

Networks are not reliable. When you send a data packet, many things can happen: It might arrive at the other end. It might never arrive. Packets might arrive, but in a different order to how you sent them. Packets might arrive, but their contents could

Network latency

"The time has come", the Walrus said, "to talk of networking "... The network game programmer has three mortal enemies: Latency makes your data arrive late Packet loss makes some data not arrive at all Bandwidth limits how much data you can send I shall

Why do people hate Wikipedia?

To celebrate the release of XNA Game Studio 2.0 , I'm going to write about something completely unrelated. I'm getting increasingly fed up with reading articles dissing Wikipedia. For some reason its very existence makes some people (who mostly seem to

Virtualizing the GraphicsDevice in XNA Game Studio 2.0

In the 2.0 XNA Framework, we virtualized the graphics device. That sounds pretty cool, huh? But what does it actually mean, and why should you care? In summary, you no longer have to care about a bunch of stuff you used to have to care about. You can

The Internet is a funny thing

I recently discovered that my colleague Nazeeh ElDirghami has his own blog . And not just any blog, but one full of actual posts about actual XNA stuff! Weird how you can work with someone for ages, yet totally fail to notice what their virtual alter-ego
 
Page view tracker