
XNA Game Studio makes it possible to write games for the Xbox without being a developer with good publisher contacts and lots of money to pay for marketing and Xbox development kits. This is great!
However, because the XNA Indie Games system is not fully controlled by Microsoft, certain features of Xbox Live! are not available, because they would be too easily abused. These features include online Leaderboards, and unlockable Achievements.
The XNA community has developed alternatives to those functions. Many XNA games contain "Awardments" that can be unlocked, and many more XNA games use the XNA Network Highscores component to implement distributed, peer-to-peer highscore sharing. The name for this is generally "Online Highscores" rather than "Leaderboards," because the latter name is reserved for use by Microsoft-certified titles that use the real Xbox Live! functionality.
This article introduces version 2 of the XNA Online highscores component, which is free for you to use in your own game under the terms of the MIT license.

VMWare workstation is in many ways a great product. It allows you to do all kinds of nifty set-ups that let multiple virtual machines talk to each other and the rest of the world, within the confines of your local PC.
However, there are some problems with it. I have a couple of virtual machines that I use as a sandbox for developing networked applications at work. These are hosted inside a Dell Inspiron XPS 1330 laptop. The laptop travels between networks frequently. At work, it's usually plugged in, but sometimes gets un-plugged and goes on wireless-G. On the train, it goes on a Sprint WAN card. At home, it generally goes on another wireless-G network.

I used to do serialization using all kinds of fancy templates and macros. You can create pretty elegant systems that way. However, at some point, simplicity should win out. Here's a system that might work just fine for you:
A simple packet class, which really is all you need:
class packet { public: packet() : pos_(0) {} void append(void const *data, size_t size) {

While I'm thinking about lighting, I'm dropping in a camera, and a player model based on kW Animation and kW X-port. This is mainly for proportion, and to get a feeling for what a unified scene will look like.

So, I'm generating a dungeon-like structure procedurally (in Rogue-like tradition).
Initially, I just lit it using a "sunlight" type directional light. However, that looks approximately like ass. Mainly because that's not how dungeons are actually lit, I guess :-)

Last week-end, I lost the boot disk for my Linux server. Mostly, that server just serves as a file server for MP3 files, photos and ripped DVDs these days, but not being able to listen to music or watch movies does cramp your style a little bit.

I recently have answered several questions about how to structure a networking library such that it can be easy to use for users of the library and/or when expanding the game you're writing. Here are some thoughts on that. (Code examples in C++)
Networking generally ends up needing to do three things:
1) Mirror state updates from one object to another.
2) Request remote services ("RPC").

Here's a general illustration of how a networked game server works. While the animation is somewhat fast, you can just fix your eyes on a particular spot and read the explanation text as it shows up.

Don't Repeat Yourself.
That's a great rule for writing code. If you find that you repeat yourself in code, then you're probably doing something wrong. Writing code should be about expressing what's unique about something, not filling out standard forms of data. (Copy-and-Paste coding is the worst version of this)

Show how to generate a random planet based on midplace displacement noise and
a simple height map color ramp. Note that you typically want to add some cloud
cover for the best effect.
Press Space / A to generate a new planet.
Press Backspace / B to view the height map.
Press Y / Y to view the color map.
Released into the public domain by Jon Watte. You may freely use this in your