Okay! NetVex is presentable now, I would say. The ships fly around, connections seem to work, the ship models are loading, etc. etc. fine and dandy! What's missing still (I just realized) is that I need to make remote objects die (for now) when their connection dies. In the future there will actually have to be some handoff mechanism for much of this, but that will do for now since the only remote objects are ships.
Most of the bugs arose from the zone-stuff. Those are annoying bugs, I really wish I had implemented zoning in the physics engine itself, rather than the AI engine (but it works so...) It's just the kind of comprimise you have to make.
The other major bug was due to division-by-zero on the quaternion interpolator. It was so hard to track because I'm used to just printing offset information from the matrix, that sort of thing (because till now when ships disappear it's usually because they flew to the other side of the universe)
Further, I *think* I maybe found the NaN bug. It was to do with the collision handler between mesh objects and planetary objects. Hooray because, that was an insane, annoying bug. I couldn't find it because I kept looking for the call in phyiscs apply force routines, whereas it was in a hard-init routine (i.e., when you collide with the planet, it doesn't apply a counterforce, but rather enforces a hard constraint; I wasn't looking in the right spot!)
I guess I should look at that winsock code. It's nasty, it's not terribly rewarding, but it's worth doing at this point before I forget how the low level network layer is supposed to work =) I will write a simple chat client utilizing it, this is probably the easiest way to test it.
I'll have to leave synchronizing weapons until later. At any rate, I do still have to implement command streams before I can do that, but it's ultimately not so hard. So I'll have to code the frightening winsock now =)
also Go Flames Go!