• Shawn Hargreaves Blog

    Network bandwidth: packet headers

    • 5 Comments
    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...
  • Shawn Hargreaves Blog

    Virtualizing the GraphicsDevice in XNA Game Studio 2.0

    • 8 Comments
    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...
  • Shawn Hargreaves Blog

    Network latency

    • 2 Comments
    "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...
  • Shawn Hargreaves Blog

    Why do people hate Wikipedia?

    • 7 Comments
    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...
  • Shawn Hargreaves Blog

    Network compression: bitfields

    • 3 Comments
    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...
  • Shawn Hargreaves Blog

    Network packet loss

    • 0 Comments
    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...
  • Shawn Hargreaves Blog

    Network compression

    • 0 Comments
    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...
  • Shawn Hargreaves Blog

    Network compression: packed vectors

    • 1 Comments
    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...
  • Shawn Hargreaves Blog

    Network bandwidth: voice

    • 8 Comments
    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...
  • Shawn Hargreaves Blog

    Network compression: arithmetic encoding

    • 3 Comments
    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...
  • Shawn Hargreaves Blog

    Network compression: quantization

    • 2 Comments
    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...
  • Shawn Hargreaves Blog

    The Internet is a funny thing

    • 3 Comments
    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...
Page 1 of 1 (12 items)