Beta 3 Bug: Server Client Multiplayer with adding TSStatic Object Crashes. [FIXED]
by JesseL · in Torque 3D Professional · 07/04/2009 (9:39 am) · 15 replies
I pulled up two instances of the game. One with a server/client and one with a client. I had the client connect to the server/client. I then had the client connect to the server/client. I then told the server to create an TSStatic Object on the instance with a server/client. The client just crashed out. I Then tried just making a staticshapedata. This caused the client to crash as well. This worked just fine in Beta 1. What do I do?
I had clicked the Software Only mode for DirectX 3D 9. This seems to make it crash more often.
I had clicked the Software Only mode for DirectX 3D 9. This seems to make it crash more often.
About the author
I just realized that if I wanted to create a cat that caught on fire and ran up a telephone pole and then burst into a blue waterfall. That wouldn't be to hard!
#2
07/06/2009 (8:50 am)
Why are you hosting a multiplayer game for a level editing session?
#3
07/06/2009 (11:47 am)
Michael I am adding objects to the scene through script. This is a requirement for the particular game I am creating.
#4
No idea really, because I've just ported my Kaboom pack to Torque 3D and it works just fine -- it uses StaticShapeData and adds/replaces shapes on the fly. I haven't tried adding TSStatics through script though.
07/06/2009 (1:32 pm)
Ahh, sorry... I misinterpreted what you said.No idea really, because I've just ported my Kaboom pack to Torque 3D and it works just fine -- it uses StaticShapeData and adds/replaces shapes on the fly. I haven't tried adding TSStatics through script though.
#5
07/06/2009 (1:59 pm)
So wait. You can host two sessions of T3D beta 3 and when you are on your server and you add a TSStatic to the scene it doesn't crash on you?
#6

If it's a recurring problem then I would suggest trying to run a debug build and capture the crash (post a callstack or any error messages that show up) so that we could better help you.
07/06/2009 (2:26 pm)
Yep. Silly me even had three instances running (one server - two clients). Added three different TSStatics (meshes) successfully, as well as several StaticShapes (scripted objects). Of course if a client attempts to add anything then it would kick them to the MainMenu. Visitor1 (a client) took the screenshot, Visitor was the server player, Visitor2 was another client.
If it's a recurring problem then I would suggest trying to run a debug build and capture the crash (post a callstack or any error messages that show up) so that we could better help you.
#7
07/06/2009 (5:00 pm)
Yes, I was going to cry but I figured out what I did. In DirectX 3D 9 control panel I had clicked Software Only :/
#8
07/06/2009 (5:07 pm)
Ouch... yea... your performance should be a ton better now too. :)
#9
> FPS Genre Kit_DEBUG.dll!DecalData::getMaterialInstance() Line 219 + 0x30 bytes C++
FPS Genre Kit_DEBUG.dll!DecalManager::prepRenderImage(SceneState * state=0x0a615cd8, const unsigned int stateKey=8100, const unsigned int __formal=4294967295, const unsigned int __formal=4294967295) Line 932 + 0xd bytes C++
FPS Genre Kit_DEBUG.dll!SceneGraph::treeTraverseVisit(SceneObject * obj=0x053fd728, SceneState * state=0x0a615cd8, const unsigned int stateKey=8100) Line 323 C++
FPS Genre Kit_DEBUG.dll!SceneGraph::_buildSceneTree(SceneState * state=0x0a615cd8, unsigned int objectMask=4294967295, SceneObject * baseObject=0x053e8ac8, unsigned int baseZone=0, unsigned int currDepth=1) Line 186 C++
FPS Genre Kit_DEBUG.dll!SceneGraph::renderScene(SceneState * sceneState=0x0a615cd8, unsigned int objectMask=4294967295) Line 190 C++
FPS Genre Kit_DEBUG.dll!SceneGraph::renderScene(ScenePassType passType=SPT_Diffuse, unsigned int objectMask=4294967295) Line 165 C++
FPS Genre Kit_DEBUG.dll!GameRenderWorld() Line 314 C++
FPS Genre Kit_DEBUG.dll!GameTSCtrl::renderWorld(const RectI & updateRect={...}) Line 41 C++
FPS Genre Kit_DEBUG.dll!GuiTSCtrl::onRender(Point2I offset={...}, const RectI & updateRect={...}) Line 178 C++
FPS Genre Kit_DEBUG.dll!GameTSCtrl::onRender(Point2I offset={...}, const RectI & updateRect={...}) Line 75 C++
FPS Genre Kit_DEBUG.dll!GuiCanvas::renderFrame(bool preRenderOnly=false, bool bufferSwap=true) Line 1498 C++
FPS Genre Kit_DEBUG.dll!GuiCanvas::handlePaintEvent(unsigned int did=0) Line 204 C++
FPS Genre Kit_DEBUG.dll!fastdelegate::FastDelegate1<unsigned int,void>::operator()(unsigned int p1=0) Line 993 + 0x1a bytes C++
FPS Genre Kit_DEBUG.dll!Signal<void __cdecl(unsigned int)>::trigger(unsigned int a=0) Line 323 + 0x17 bytes C++
FPS Genre Kit_DEBUG.dll!Journal::Call<Signal<void __cdecl(unsigned int)>,unsigned int>(Signal<void __cdecl(unsigned int)> * obj=0x054e0a00, void (unsigned int)* method=0x10536bf8, unsigned int a=0) Line 541 + 0xa8 bytes C++
FPS Genre Kit_DEBUG.dll!JournaledSignal<void __cdecl(unsigned int)>::trigger(unsigned int a=0) Line 52 + 0x12 bytes C++
FPS Genre Kit_DEBUG.dll!GuiCanvas::paint() Line 1326 C++
FPS Genre Kit_DEBUG.dll!fastdelegate::FastDelegate0<void>::operator()() Line 908 + 0x16 bytes C++
FPS Genre Kit_DEBUG.dll!Signal<void __cdecl(void)>::trigger() Line 312 + 0x13 bytes C++
FPS Genre Kit_DEBUG.dll!Process::processEvents() Line 62 C++
FPS Genre Kit_DEBUG.dll!StandardMainLoop::doMainLoop() Line 512 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!torque_enginetick() Line 76 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!TorqueMain(int argc=1, const char * * argv=0x0274ca40) Line 369 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!torque_winmain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, char * lpszCmdLine=0x006369a0, HINSTANCE__ * __formal=0x00000000) Line 423 + 0x17 bytes C++
FPS Genre Kit_DEBUG.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpszCmdLine=0x006369a0, int nCommandShow=1) Line 47 + 0x16 bytes C++
FPS Genre Kit_DEBUG.exe!__tmainCRTStartup() Line 263 + 0x2c bytes C
FPS Genre Kit_DEBUG.exe!WinMainCRTStartup() Line 182 C
kernel32.dll!7532e4a5()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
ntdll.dll!771acfed()
ntdll.dll!771ad1ff()
07/13/2009 (3:53 pm)
Well, I thought that this would fix my issue completely but it did not. Sometimes It works. Other times it does not. I have no idea why :/ I tried reinstalling my DirectX, Physics, T3D beta and then loaded the default FPS mission and did the regular mission went into game and tried to add an object via script or otherwise and it still crashes. Finaly got it to crash on a Debug build: Heres the thread history.> FPS Genre Kit_DEBUG.dll!DecalData::getMaterialInstance() Line 219 + 0x30 bytes C++
FPS Genre Kit_DEBUG.dll!DecalManager::prepRenderImage(SceneState * state=0x0a615cd8, const unsigned int stateKey=8100, const unsigned int __formal=4294967295, const unsigned int __formal=4294967295) Line 932 + 0xd bytes C++
FPS Genre Kit_DEBUG.dll!SceneGraph::treeTraverseVisit(SceneObject * obj=0x053fd728, SceneState * state=0x0a615cd8, const unsigned int stateKey=8100) Line 323 C++
FPS Genre Kit_DEBUG.dll!SceneGraph::_buildSceneTree(SceneState * state=0x0a615cd8, unsigned int objectMask=4294967295, SceneObject * baseObject=0x053e8ac8, unsigned int baseZone=0, unsigned int currDepth=1) Line 186 C++
FPS Genre Kit_DEBUG.dll!SceneGraph::renderScene(SceneState * sceneState=0x0a615cd8, unsigned int objectMask=4294967295) Line 190 C++
FPS Genre Kit_DEBUG.dll!SceneGraph::renderScene(ScenePassType passType=SPT_Diffuse, unsigned int objectMask=4294967295) Line 165 C++
FPS Genre Kit_DEBUG.dll!GameRenderWorld() Line 314 C++
FPS Genre Kit_DEBUG.dll!GameTSCtrl::renderWorld(const RectI & updateRect={...}) Line 41 C++
FPS Genre Kit_DEBUG.dll!GuiTSCtrl::onRender(Point2I offset={...}, const RectI & updateRect={...}) Line 178 C++
FPS Genre Kit_DEBUG.dll!GameTSCtrl::onRender(Point2I offset={...}, const RectI & updateRect={...}) Line 75 C++
FPS Genre Kit_DEBUG.dll!GuiCanvas::renderFrame(bool preRenderOnly=false, bool bufferSwap=true) Line 1498 C++
FPS Genre Kit_DEBUG.dll!GuiCanvas::handlePaintEvent(unsigned int did=0) Line 204 C++
FPS Genre Kit_DEBUG.dll!fastdelegate::FastDelegate1<unsigned int,void>::operator()(unsigned int p1=0) Line 993 + 0x1a bytes C++
FPS Genre Kit_DEBUG.dll!Signal<void __cdecl(unsigned int)>::trigger(unsigned int a=0) Line 323 + 0x17 bytes C++
FPS Genre Kit_DEBUG.dll!Journal::Call<Signal<void __cdecl(unsigned int)>,unsigned int>(Signal<void __cdecl(unsigned int)> * obj=0x054e0a00, void (unsigned int)* method=0x10536bf8, unsigned int a=0) Line 541 + 0xa8 bytes C++
FPS Genre Kit_DEBUG.dll!JournaledSignal<void __cdecl(unsigned int)>::trigger(unsigned int a=0) Line 52 + 0x12 bytes C++
FPS Genre Kit_DEBUG.dll!GuiCanvas::paint() Line 1326 C++
FPS Genre Kit_DEBUG.dll!fastdelegate::FastDelegate0<void>::operator()() Line 908 + 0x16 bytes C++
FPS Genre Kit_DEBUG.dll!Signal<void __cdecl(void)>::trigger() Line 312 + 0x13 bytes C++
FPS Genre Kit_DEBUG.dll!Process::processEvents() Line 62 C++
FPS Genre Kit_DEBUG.dll!StandardMainLoop::doMainLoop() Line 512 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!torque_enginetick() Line 76 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!TorqueMain(int argc=1, const char * * argv=0x0274ca40) Line 369 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!torque_winmain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, char * lpszCmdLine=0x006369a0, HINSTANCE__ * __formal=0x00000000) Line 423 + 0x17 bytes C++
FPS Genre Kit_DEBUG.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpszCmdLine=0x006369a0, int nCommandShow=1) Line 47 + 0x16 bytes C++
FPS Genre Kit_DEBUG.exe!__tmainCRTStartup() Line 263 + 0x2c bytes C
FPS Genre Kit_DEBUG.exe!WinMainCRTStartup() Line 182 C
kernel32.dll!7532e4a5()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
ntdll.dll!771acfed()
ntdll.dll!771ad1ff()
#10
ntdll.dll!77140004()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
user32.dll!7546a602()
> FPS Genre Kit_DEBUG.dll!Journal::Call<Signal<void __cdecl(unsigned int)>,unsigned int>(Signal<void __cdecl(unsigned int)> * obj=0x054f0a00, void (unsigned int)* method=0x10536bf8, unsigned int a=0) Line 541 + 0xa8 bytes C++
FPS Genre Kit_DEBUG.dll!JournaledSignal<void __cdecl(unsigned int)>::trigger(unsigned int a=0) Line 52 + 0x12 bytes C++
FPS Genre Kit_DEBUG.dll!GuiCanvas::paint() Line 1326 C++
FPS Genre Kit_DEBUG.dll!fastdelegate::FastDelegate0<void>::operator()() Line 908 + 0x16 bytes C++
FPS Genre Kit_DEBUG.dll!Signal<void __cdecl(void)>::trigger() Line 312 + 0x13 bytes C++
FPS Genre Kit_DEBUG.dll!Process::processEvents() Line 62 C++
FPS Genre Kit_DEBUG.dll!StandardMainLoop::doMainLoop() Line 512 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!torque_enginetick() Line 76 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!TorqueMain(int argc=1, const char * * argv=0x00e3ca40) Line 369 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!torque_winmain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, char * lpszCmdLine=0x005f69a0, HINSTANCE__ * __formal=0x00000000) Line 423 + 0x17 bytes C++
FPS Genre Kit_DEBUG.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpszCmdLine=0x005f69a0, int nCommandShow=1) Line 47 + 0x16 bytes C++
FPS Genre Kit_DEBUG.exe!__tmainCRTStartup() Line 263 + 0x2c bytes C
FPS Genre Kit_DEBUG.exe!WinMainCRTStartup() Line 182 C
kernel32.dll!7532e4a5()
ntdll.dll!771acfed()
ntdll.dll!771ad1ff()
07/13/2009 (4:43 pm)
Now when I try to just go into editor mode its giving me errors:ntdll.dll!77140004()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
user32.dll!7546a602()
> FPS Genre Kit_DEBUG.dll!Journal::Call<Signal<void __cdecl(unsigned int)>,unsigned int>(Signal<void __cdecl(unsigned int)> * obj=0x054f0a00, void (unsigned int)* method=0x10536bf8, unsigned int a=0) Line 541 + 0xa8 bytes C++
FPS Genre Kit_DEBUG.dll!JournaledSignal<void __cdecl(unsigned int)>::trigger(unsigned int a=0) Line 52 + 0x12 bytes C++
FPS Genre Kit_DEBUG.dll!GuiCanvas::paint() Line 1326 C++
FPS Genre Kit_DEBUG.dll!fastdelegate::FastDelegate0<void>::operator()() Line 908 + 0x16 bytes C++
FPS Genre Kit_DEBUG.dll!Signal<void __cdecl(void)>::trigger() Line 312 + 0x13 bytes C++
FPS Genre Kit_DEBUG.dll!Process::processEvents() Line 62 C++
FPS Genre Kit_DEBUG.dll!StandardMainLoop::doMainLoop() Line 512 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!torque_enginetick() Line 76 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!TorqueMain(int argc=1, const char * * argv=0x00e3ca40) Line 369 + 0x5 bytes C++
FPS Genre Kit_DEBUG.dll!torque_winmain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, char * lpszCmdLine=0x005f69a0, HINSTANCE__ * __formal=0x00000000) Line 423 + 0x17 bytes C++
FPS Genre Kit_DEBUG.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpszCmdLine=0x005f69a0, int nCommandShow=1) Line 47 + 0x16 bytes C++
FPS Genre Kit_DEBUG.exe!__tmainCRTStartup() Line 263 + 0x2c bytes C
FPS Genre Kit_DEBUG.exe!WinMainCRTStartup() Line 182 C
kernel32.dll!7532e4a5()
ntdll.dll!771acfed()
ntdll.dll!771ad1ff()
#11
Are you using TSShapeConstructor with the TSStatic that causes the crash? There was a bug in beta3 that would cause a crash with certain TSShapeConstructor commands.
Also, is the TSStatic shape file a DTS or a DAE?
07/13/2009 (5:46 pm)
Hi JesseL,Are you using TSShapeConstructor with the TSStatic that causes the crash? There was a bug in beta3 that would cause a crash with certain TSShapeConstructor commands.
Also, is the TSStatic shape file a DTS or a DAE?
#12
07/14/2009 (2:12 am)
Imagine a weapon that shoots out a beam with a trailing particle effect. Where the beam hits a shapeBased Object is created based off of a collada model .dae. This object is then moved around by the player by submitting commands to the server and updates in realTime. There is no collision on it at all. Just the "new" command was used and the object was placed at the closest world .5 gridline. I try to do it while another player is in game and it crashes. If people are able to do this without error then I'm thinking perhaps I need to reinstall my operation system and just do a full format or something because this is just too wierd.
#13
If you're doing the former, be aware that clients cannot create objects. Period. Script calls to "new" for any objects derived from NetObject will try to create a server object. Since clients are not servers, this will cause unexpected behaviors.
07/14/2009 (8:08 am)
Wait, exactly how are these objects being created by the clients? You're calling new right away, or are you using commandToServer() to tell the server to create the required object?If you're doing the former, be aware that clients cannot create objects. Period. Script calls to "new" for any objects derived from NetObject will try to create a server object. Since clients are not servers, this will cause unexpected behaviors.
#14
07/14/2009 (8:43 am)
To put Manoel at rest. All multiplayer objects are created on the server and then ghosted to the clients.
#15
07/22/2009 (1:17 am)
Ok, after a full reinstall. I figured it out. I had declared a datablock in a function call "onCollion" with a custom made projectile. DOH! anyways so I move the datablock delcaration back to the correct side of the engine and it works great now!
Torque Owner JesseL
Pyrotronics-Games