simple multiplayer FPS

Blitz3D Forums/Blitz3D Beginners Area/simple multiplayer FPS

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

This code runs very slow on my network. It has fine frames per second on both computers, but it takes about two minutes to register what happened on one computer on the other.
Does anybody know why it is so slow?
How can I make it faster?
StartNetGame()
name=Input("Name:")
id=CreateNetPlayer(name)
Graphics3D 640,480
SetBuffer BackBuffer()
target=LoadImage("target.bmp")
light=CreateLight()

ground=LoadTerrain("ground.bmp")
ScaleEntity ground,2,50,2
PositionEntity ground,-256,-75,-256
groundtex=LoadTexture("groundtex.bmp")
ScaleTexture groundtex,10,10
EntityTexture ground,groundtex
EntityType ground,2

guy=CreateCube()
PositionEntity guy,100,0,100
ScaleEntity guy,1,2,1
EntityRadius guy,1,4
EntityType guy,1
camera=CreateCamera(guy)
PositionEntity camera,EntityX(guy),EntityY(guy)+.5,EntityZ(guy)-1,1
PointEntity camera,guy
CameraClsColor camera,0,100,255
gravity#=0
health=100

otherguy=CreateCube()

Type youbullet
	Field mesh
	Field time
End Type

Collisions 1,2,2,2
Collisions 3,2,2,1
Collisions 3,6,1,1
Collisions 5,1,1,1

MoveMouse 200,200
While Not KeyDown(1)
mxs#=MouseXSpeed()
mys#=MouseYSpeed()
MoveMouse 200,200
TurnEntity guy,0,-mxs,0
TurnEntity camera,mys,0,0
If EntityCollided(guy,2)
	gravity=-.2
	If KeyDown(17) Then MoveEntity guy,0,0,.5
	If KeyDown(31) Then MoveEntity guy,0,0,-.5
	If KeyDown(32) Then MoveEntity guy,.5,0,0
	If KeyDown(30) Then MoveEntity guy,-.5,0,0
	TranslateEntity guy,0,gravity,0
Else
	gravity=gravity+(-1-gravity)/50
	TranslateEntity guy,0,gravity,0
EndIf
If MouseHit(1)
	b.youbullet=New youbullet
	b\mesh=CreateSphere()
	ScaleMesh b\mesh,.1,.1,.1
	b\time=300
	PositionEntity b\mesh,EntityX(camera,1),EntityY(camera,1),EntityZ(camera,1),1
	RotateEntity b\mesh,EntityPitch(camera,1),EntityYaw(camera,1),EntityRoll(camera,1),1
	EntityType b\mesh,3
	EntityRadius b\mesh,.1
EndIf

For b.youbullet=Each youbullet
	MoveEntity b\mesh,0,0,1
	TranslateEntity b\mesh,0,-.01,0
	If EntityCollided(b\mesh,2) Then b\time=0
	b\time=b\time-1
	If b\time<0
		FreeEntity b\mesh
		Delete b
	EndIf
Next
sendx$=LSet(EntityX(guy),10)
sendy$=LSet(EntityY(guy),10)
sendz$=LSet(EntityZ(guy),10)
sendpi$=LSet(EntityPitch(guy),10)
sendya$=LSet(EntityYaw(guy),10)
sendro$=LSet(EntityRoll(guy),10)
SendNetMsg(1,sendx+sendy+sendz+sendpi+sendya+sendro,id,0,0)
If RecvNetMsg()
	msg$=NetMsgData()
	PositionEntity otherguy,Left(msg,10),Mid(msg,11,20),Mid(msg,21,40)
	RotateEntity otherguy,Mid(msg,31,10),Mid(msg,41,10),Right(msg,10)
EndIf

If health<0 Then CameraClsColor camera,255,0,0

UpdateWorld
RenderWorld
Text 0,0,health
DrawImage target,(GraphicsWidth()/2)-32,(GraphicsHeight()/2)-32
Flip
Wend
End