jwatte's picture

How to test for duplicate packets

If you're using UDP for your networking, you will typically mark your packets with a "packet ID." That packet ID will be used to detect the case of duplicated UDP packets, and sometimes also dropped packets.

jwatte's picture

Extracting packets from a TCP stream

When you send packets over TCP, you have to precede them with a byte count, because TCP just delivers a stream of bytes, with no particular block size. If you don't delimit your packets somehow, they will run into each other, and you won't be able to tell where one ends and the next one starts.

jwatte's picture

Protection for Computer Software

Note that this is not legal advice, because legal advice applies to any particular situation. This is just an overview of different kinds of protection for computer software. There are four kinds of protection that generally apply to computer programming:

The XNA Highscores Component (distributed leaderboards, sort-of)

This is a simple game that uses the "HighscoreComponent" to manage a highscore list. It stores the list both locally, and uses Xbox Live! sessions to exchante highscore information with other players who happen to be playing the game at the same time. This way, high scores from people who are not your local players will show up, which is all kinds of cool :-)

This is version 1 of the component, from 2008. It is saved here for historical reasons. You want to get the latest version at http://www.enchantedage.com/highscores which has more features, bug fixes, and is easier to use.

XNA controller button assignments

When developing for XNA Game Studio, you have to map various game actions to various buttons on the game pad controller. Here is a list of what most games do -- if you follow this list, gamers won't be too surprised and will easily pick up your controls:

The standards that are "iron clad" and pretty much have to be followed are:

Galactic Trail - A Space-Based Real-Time Strategy Game for Xbox Live Community Games

After working on the 3D game Ko-Ado the Cloud for the Dream-Build-Play competition, I decided to relax with a simpler, 2D-based game. And what better genre to start out with than the real-time strategy game?

Managing a World of Entities in XNA

A structure that I find works very well when managing entities in games is the world/entity/component pattern. Entities in the world are nothing more than collections of components, where the components have the responsibility to "do something" with the entity.

Life just doesn't live up to the hype

I don't get it -- why can't things work the way they are supposed to?

I recently had a birthday, and bought myself a shiny new Logitech diNovo Edge bluetooth keyboard for my home theater PC (which is a Mac Mini running Vista Ultimate). Totally not necessary, but hey: birthday!

A Python wrapper for PhysX 2.8.1

What is this?

This is a distribution of a wrapper for the PhysX game physics API by NVIDIA.
It is designed for version 2.8.1 of the SDK, and will build and load with the
May 2008 PhysX runtime. Note that the September/October 2008 PhysX runtime
that is CUDA accelerated will NOT run on most machines (this is a "feature"

jwatte's picture

Write your own MMORPG in four hours using Python!

I moderate the multiplayer and networking forum on gamedev.net. It's a pretty easy job, because most users are very polite, helpful, and well behaved. However, it seems that, monthly, someone who has never written a networked program shows up and posts their "architecture" for an "MMO" server.

Syndicate content