Phil,
Heh, flinging messages every loop would be an insane amount of data! I had to time-slice all objects by doing the following: Each client exe that is running holds a dynamic Remote Client UDT Array. Those udt's contain buckets for all of the remote clients data that the local client would need:
Type RemoteClientData
ircID as integer
srcNick as string
srcAvatar as string
srcAvTexture as string
frcRotRem as float
frcMovRem as float
frcAng as float
EndType
Dim RCD() as RemoteClientData
the last three items RotRem,MovRem, and Ang are whats used during movement. When a client clicks a point on the floor your function returns the new angle, pumped into frcAng. Then the pick distance is placed in MovRem, and RotRem uses a version of what frcAng has but it has been processed into a total number of "steps" as opposed to absolute angle facings. Once the local client has this data in place
it is sent to the server who sends it to all other clients. So now in my main loop I process myself and remote clients simultaneously by altering their angles and positions by a constant speed (float value) until the values are zero (or nearly zero) but the trick being they only get processed once per loop, not continually until their value is empty.
This method produces smooth, simultaneous movement and encompasses a clients total rotation and foward movement all in one small message to the server - which was key
I am sure I could explain this better but that would take me hours
but to answer the original question about whats being used as far as the ultimate dbp function calls, those would be TURN OBJECT LEFT/RIGHT, and MOVE OBJECT. They work well for this incrementally time-sliced system.
We had four on there yetserday and everyone was moving and talking, and there was no lag or local hiccups whatsoever - and my fps stayed in the 400 range the whole time.
Would love to chat more - come to Lightning.Chattingaway.com
Port 6667, and then do /JOIN #DarkBasic
DBP_NETLIB_v1.4.3 - 65 FREE Functions * Click Logo