2.2.6 DN_NAMETABLE
The name table is a concept used by DirectPlay to keep all participants in a game session in sync with the different actions that are being performed.
The name table is really a table of players and groups that are included in the game session. Each change to the state of the table is a versioned name table operation. Any participant in the game session who applies these operations will generate a view that is consistent with every other players' name table.
The following table identifies the name table operations that can be performed.
Action |
Meaning |
---|---|
0x000000C6 |
DN_INSTRUCT_CONNECT (section 2.2.1.9) |
0x000000D0 |
DN_ADD_PLAYER (section 2.2.1.7) |
0x000000D1 |
DN_DESTROY_PLAYER (section 2.2.2.2) |
0x000000D7 |
DN_CREATE_GROUP (section 2.2.4.2) |
0x000000D8 |
DN_DESTROY_GROUP (section 2.2.4.8) |
0x000000D9 |
DN_ADD_PLAYER_TO_GROUP (section 2.2.4.4) |
0x000000DA |
DN_DELETE_PLAYER_FROM_GROUP (section 2.2.4.6) |
0x000000DB |
DN _UPDATE_INFO (section 2.2.5.2) |
The host/server is responsible for all name table operations, and all peers in the game session MUST maintain their own name table copy for use in host migration. All participants MUST also preserve a record of all operations that they have performed on the name table that have incremented the version number used during host migration.
The first operation in the name table is set to a version number of 1 and each subsequent operation increments the version by one. Every time the modulo 4 result of the new version number of the name table is equal to 0, each non-host peer SHOULD send a DN_NAMETABLE_VERSION message to the host reporting the current name table version of the peer. The host SHOULD track the versions reported by all peers and determine the oldest version number from all reports. When the oldest version number advances, the host SHOULD send a DN_RESYNC_VERSION message to all participants indicating the new oldest value. All participants SHOULD then release their records of all name table operations with versions older than this value, as they will no longer be needed during host migration.