thanks locoweed unfortunately i have no time writing a tutorial like yours because iam working every minute i find on the project. however because i think its a shame that the mulitplayer forum is deserted i post here and write what iam experiencing.
i dont think iam a good coder good enough to write a tutorial like yours, iam only a average guy with a dreamgame in mind and a little team to help me
iam at the very start of finding out how things work, i wont say ill never write a tutorial but until i do i will need more knowledge.

04.05.06 today i finally got the movement working, iam using a modified version of georges stratego2 movement.

because my camera was facing down 60 degree tilt, i had to calculate the point the mouse is clicking for the unit to move to. georges code is with the camera facing down directly at the map.

i did it with a code snipped i found on the forum. here is it:

Code:

vec_set(temp.x, vector(mouse_pos.x, mouse_pos.y,2000))
vec_for_screen (temp.x, camera);
vec_sub(temp.x, camera.x);
temp.x/=temp.z;
temp.y/=temp.z;
temp.x=camera.x+(temp.x*-1)*camera.z;
temp.y=camera.y+(temp.y*-1)*camera.z;
temp.z=0;



this takes the mouse position and gets the right vector position where the mouse clicks. if you want to use this for terrain you have to trace afterwards because .z of temp is set to zero.

it works quite well except that if you click at a hill, its not 100% correct because it takes the z. coordinate at zero and traces upwards the hill. i havent found a solution for that yet.

then i was able to create the movement, after this i switched my.nosend=on; for the players entities. then i create at every client a local entity for the host player with ent_createlocal. when the host player moves i sent 4 times a second his coordinates to all the clients. with this code:

Code:

// send pos to fake every 4 sec
timer += 16 * time;
if(timer >= 64)
{
vec_set(hostplayerposition, my.x);
send_var(hostplayerposition);
timer = 0;
}



then i directly set this coordinates in the entities action. and it works! it lags like hell but i think i can smooth it out with vec_lerp to interpolate between the last received position and the actual position.
i also have to send updates when the entity stops moving so movement ends for all at the same point.

right now it only works for the host player but with 2 clients connected it consumes an average bps of 40! without nosend and 2 clients updating the host on the clients consumes 400. so sending manually is 10 times better. without other stuff like animation changes and so on. right now it only moves the host.

i guess it will take me some time to smooth this movement on the clients. i also have to find out an effiecient way to create a fake entity at all the clients for each other player, get input from this fake entities and move the real entities on the host pc and send upates to the fakes.
i dont have an idea how this system should be set up. i guess it can be done with lots of entity pointers and updating them when a client leaves or joins. i thought about haveing 10 each on the host and client corresponding to the my.player_number. but iam not shure yet.

i hope you could follow iam a bit confused right now as the code is getting bigger and bigger 2500 lines now. and i have to reorganize it and comment it soon again so that i dont lose the overview.

ill keep you updated what i find out. maybe some of you has an idea about how to efficient create fake entities on the clients and keep them updated?