Intermediate

warning: Creating default object from empty value in /home/hplus/enchantedage.com/modules/taxonomy/taxonomy.pages.inc on line 33.
You've been doing it for a few years.
jwatte's picture

Marshalling (serializing data) in C++ using auto-generated headers

This package provides simple generation of headers and source for marshalling binary data between C++ structs and byte streams. The nice thing about it is that you can easily extend the system to support generating property sheets, or going to/from XML, or one of a number of other things you want to do to data structures. You do so by just adding new visitor classes, without having to change the data structure code.

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.

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:

A light-weight thread pool ("worker task") library for Xbox and Windows XNA.

The Xbox has a special threading architecture. It has six hardware threads, spread over three hardware cores.

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.

The RayCar ODE physics demo (with source code)

The ODE physics library (http://www.ode.org/) has been around for a long time. Often, people ask "how do I do a good arcade car" or "how do I do a good character simulation" using ODE.

jwatte's picture

Improved XNA Thread Pool object

This post includes a thread pool class for the XNA Framework that works better on the Xbox than the thread pool class in the Compact CLR. The main thread can choose to get notified about task completion with a callback function, or by waiting on a pre-allocated wait handle, or do fire-and-forget on the thread tasks.

jwatte's picture

Extracting Vertices and Triangles from an XNA Model

Here is some code that lets you extract the vertices and indices from a loaded XNA Model. You do not need to use any special processor, such as the JigLibX VertexProcessor or some derivative of the ModelProcessor -- it works straight out of the box!

jwatte's picture

Download and Install Etwork

Download the latest version of etwork. You can find the file at the Etwork start page.

Unzip the archive somewhere where you can easily get to it. I use a folder called "c:\code" on my machine, but you can put it in your "My Documents", or "/usr/local/src", or wherever you feel like.

Syndicate content