Scoping...
by Eylem Ugurel · in Torque Game Engine · 03/27/2007 (3:02 pm) · 3 replies
I think, "Camera FOV" and "Camera Distance" is taken into account to lately in the "scopeQuery" system.
ShapeBase::onCameraScopeQuery calls mSceneManager->scopeScene(query->pos, query->visibleDistance, cr)
SceneManager->scopeScene doesnt use neither "Camera Distance" nor "Camera FOV" anywhere. Puts everything to the scope list.
I don't see "Camera Distance" and "Camera FOV" to be used until "gameBase::getUpdatePriority". But there is a problem with this approach. With this approach, we try to put all the scoped objects based on their priority in the packet stream to client. But we don't trying to minimize the bandwidth.
For example, I set "ServerToClient data rate" to about "7kb" sec. 70-80 players are there in the scene but, only 15-20 of them are in the current players "Camera FOV" and only 5-10 of them is near the player worth to be ghosted. But Torque uses all the 7kb and ghost nearly all of them every time. But I don't want this 7kb to be used every time. I want it to be used as low as possible and used at this max limit only at required times. I want the Server to only scope the objects and players in the Camera Fov and limited to some distance. But I think, in order to do this, object should be filtered at higher levels in the system like scopeQuery or scopeScene.
What do you think?
ShapeBase::onCameraScopeQuery calls mSceneManager->scopeScene(query->pos, query->visibleDistance, cr)
SceneManager->scopeScene doesnt use neither "Camera Distance" nor "Camera FOV" anywhere. Puts everything to the scope list.
I don't see "Camera Distance" and "Camera FOV" to be used until "gameBase::getUpdatePriority". But there is a problem with this approach. With this approach, we try to put all the scoped objects based on their priority in the packet stream to client. But we don't trying to minimize the bandwidth.
For example, I set "ServerToClient data rate" to about "7kb" sec. 70-80 players are there in the scene but, only 15-20 of them are in the current players "Camera FOV" and only 5-10 of them is near the player worth to be ghosted. But Torque uses all the 7kb and ghost nearly all of them every time. But I don't want this 7kb to be used every time. I want it to be used as low as possible and used at this max limit only at required times. I want the Server to only scope the objects and players in the Camera Fov and limited to some distance. But I think, in order to do this, object should be filtered at higher levels in the system like scopeQuery or scopeScene.
What do you think?
About the author
#2
If your gameConnection controls the Player object, server scopes only visible (ghosts amount can be seen by pressing "N" while in game, "ghost updates" is the exact amount of objects the info is transmitted about, and only whithing in range).
If you switch to the camera - server starts ghosting ALL objects into your gameConnection.
May be this is your issue?
P.S. there is nice article exists on TDN about ghosting.
03/28/2007 (2:50 am)
Not sure about cam FOV / distance, but here is one thing I've seen:If your gameConnection controls the Player object, server scopes only visible (ghosts amount can be seen by pressing "N" while in game, "ghost updates" is the exact amount of objects the info is transmitted about, and only whithing in range).
If you switch to the camera - server starts ghosting ALL objects into your gameConnection.
May be this is your issue?
P.S. there is nice article exists on TDN about ghosting.
#3
if this is the situation, why?
03/28/2007 (2:51 pm)
"If your gameConnection controls the Player object, server scopes only visible (ghosts amount can be seen by pressing "N" while in game, "ghost updates" is the exact amount of objects the info is transmitted about, and only within the range)."if this is the situation, why?
Eylem Ugurel
Default Studio Name