DIS Behaviors

Luke Hoffman ([email protected])
Thu, 19 Oct 1995 20:20:14 -0500


A couple of people have posted about messages about using the DIS protocol
for shared virtual worlds. And I thought it might be worthwhile to discuss
how DIS would apply to some of the examples we've been discussing.

First a little background. Communications in DIS are done by sending UDP
packets in a format called a Protocol Data Unit or PDU. Last time I looked
there were 26 different types of PDUs. The most important is the Entity
State PDU. The Entity State PDU contains information about an entity's
position, velocity, acceleration, and appearance. It can also contain
information on articulated or attached parts (i.e. a turret on a tank or a
blade on a windmill). The Entity State PDU is transmitted at a fixed
interval (the spec recommends every 5 seconds) unless there is a change in
state. For instance if a plane is flying on a fixed course at a fixed
speed, it position can be calculated from the last Entity State PDU. When
the course begins to change or 5 seconds have elapsed a new Entity State is
transmitted. There are also PDUs for reporting collision detection, weapons
firing, weapons detonation, radio transmissions, etc.

The Windmill Example

In a DIS simulation the Windmill would be an entity controlled by one
process. The process would transmit Entity State PDU messages to describe
the state of the windmill. The entity state messages would describe the
state of the windmill's blades as an articulated part. In our example, part
of the Entity State record would contain the position and rotation rate of
the blades. All the participants could then compute the position of the
windmill's blades at any given time.

Now another process controlling a virtual person would also transmit entity
state PDUs giving the person's position and velocity. Since the process
controlling the virtual person knows the state of the windmill and its
blades, it can check for collisions of the person with the blades. The
process controlling the windmill also checks for collisions of entities with
its blades. When either process detects a collision it sends a Collision
PDU. If the windmill process receives a Collision PDU and it has not
detected a collision it now knows to check.

It is unclear to me from the standard what should happen if one entity says
a collision occurred and the other says it didn't.

Fred and Barney Go For a Walk

In the Fred and Barney example we have these entities: Fred, Barney, and the
wallet. Each of the entities have a controlling process that transmits
Entity State PDUs. When both Fred and Barney esach for the wallet the
process controlling the wallet decides which way the wallet goes. This is
esslected in the wallets Entity State PDUs. So from the position of the
wallet Barney knows that Fred picked it up first.

_____________________________________________________
Luke Hoffman Voice: (205)922-1512x1157
COLSA Corporation FAX: (205)971-0002
6726 Odyssey Dr.
Huntsville, AL 35806


  • Next message: Jeff Sonstein, M.A.: "newsgroup exists"
  • Previous message: Keith D Rule: "A couple of DEF questions."
  • Next in thesad: Bernie Roehl: "Re: DIS Behaviors"