River object causes client to fail - LOGGED
by Netwyrm · in Torque 3D Professional · 06/03/2010 (11:42 am) · 10 replies
On client attach, if a river object has been added to a mission file, the client will lock up and require a force quit. The object load will never complete, and the client will crash out. This happens if within one of my elaborate missions, or a simple Empty Mission.
I just spent several days removing objects and loading the client, and it was the river object which scotched the Object load (all the datablocks loaded). I had first assumed it was the lights I had been adding, but it was not the case--I had added a river and apparently failed to test from a client immediately afterwards, then gotten to work on a more elaborate issue which I took to be the culprit. Pulling all that back out didn't fix it, however.
Adding and subtracting the river by changing the mission file confirmed it as the culprit. The river had been added with the River tools, although it should be noted that attempting to edit the river after creation had resulted in a crash as soon as a node was touched. I'd worked around it by editing the node positions in the mission file, and forgotten about it completely (hey, it *was* part of the scenery...)
Issue described is similar to this thread in the Beta 2 reporting forum, although it seems to have been describing the problem as being with the datablock load:
http://www.torquepowered.com/community/forums/viewthread/92547/
I just spent several days removing objects and loading the client, and it was the river object which scotched the Object load (all the datablocks loaded). I had first assumed it was the lights I had been adding, but it was not the case--I had added a river and apparently failed to test from a client immediately afterwards, then gotten to work on a more elaborate issue which I took to be the culprit. Pulling all that back out didn't fix it, however.
Adding and subtracting the river by changing the mission file confirmed it as the culprit. The river had been added with the River tools, although it should be noted that attempting to edit the river after creation had resulted in a crash as soon as a node was touched. I'd worked around it by editing the node positions in the mission file, and forgotten about it completely (hey, it *was* part of the scenery...)
Issue described is similar to this thread in the Beta 2 reporting forum, although it seems to have been describing the problem as being with the datablock load:
http://www.torquepowered.com/community/forums/viewthread/92547/
About the author
My adventures in T3D are chronicled at http://www.worldofantra.com. Please be aware the subject is sword-and-sorcery, and the occasional bloody or bare body part may be in scope.
#2
06/03/2010 (4:22 pm)
Hi Chris, thanks for responding. Here is the river, clipped from the mission file.new River(NERiver) {
SegmentLength = "10";
SubdivideLength = "2.5";
FlowMagnitude = "2";
LowLODDistance = "50";
density = "1";
viscosity = "1";
liquidType = "Water";
baseColor = "45 108 171 255";
fresnelBias = "0.3";
fresnelPower = "6";
specularPower = "48";
specularColor = "1 1 1 1";
waveDir[0] = "0 1";
waveDir[1] = "0.707 0.707";
waveDir[2] = "0.5 0.86";
waveSpeed[0] = "1";
waveSpeed[1] = "1";
waveSpeed[2] = "1";
waveMagnitude[0] = "0.2";
waveMagnitude[1] = "0.2";
waveMagnitude[2] = "0.2";
overallWaveMagnitude = "1";
rippleTex = "core/art/water/noise02";
rippleDir[0] = "0 1";
rippleDir[1] = "0.707 0.707";
rippleDir[2] = "0.5 0.86";
rippleSpeed[0] = "-0.065";
rippleSpeed[1] = "0.09";
rippleSpeed[2] = "0.04";
rippleTexScale[0] = "7.14 7.14";
rippleTexScale[1] = "6.25 12.5";
rippleTexScale[2] = "50 50";
rippleMagnitude[0] = "1";
rippleMagnitude[1] = "1";
rippleMagnitude[2] = "0.3";
overallRippleMagnitude = "0.1";
cubemap = "DefaultSkyCubemap";
fullReflect = "0";
reflectPriority = "1";
reflectMaxRateMs = "15";
reflectDetailAdjust = "1";
reflectNormalUp = "0";
useOcclusionQuery = "1";
reflectTexSize = "256";
waterFogDensity = "0.1";
waterFogDensityOffset = "1";
wetDepth = "1.5";
wetDarkening = "0.2";
foamTex = "core/art/water/foam";
foamScale = "1";
foamMaxDepth = "2";
foamColorModulate = "0.5 0.5 0.5";
distortStartDist = "0.1";
distortEndDist = "20";
distortFullDepth = "3.5";
clarity = "0.5";
underwaterColor = "0 0 0 0";
position = "4315.02 4150.5 1150.41";
rotation = "1 0 0 0";
scale = "1 1 1";
canSave = "1";
canSaveDynamicFields = "1";
locked = "true";(continues)
#3
06/03/2010 (4:23 pm)
(continued from previous)Node = "4315.019531 4150.498535 1150.406738 60.000000 25.000000 0.000000 0.000000 1.000000";
Node = "4330.222656 4066.506104 1153.356934 50.000000 20.000000 0.000000 0.000000 1.000000";
Node = "4314.590820 4006.517334 1155.338135 40.000000 20.000000 0.000000 0.000000 1.000000";
Node = "4322.909668 3955.905029 1155.725708 40.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4304.191895 3920.620361 1155.262085 40.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4284.547852 3860.553711 1156.467163 40.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4259.371582 3801.965576 1158.474609 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4236.307617 3752.531006 1160.357300 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4202.083008 3727.537354 1159.573975 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4178.754883 3695.131592 1161.213135 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4154.735352 3677.847900 1161.188232 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4143.020996 3650.584717 1161.720215 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4123.640625 3610.073975 1158.637451 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4097.604004 3584.600342 1159.170288 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4069.096191 3559.545654 1158.649414 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4045.288818 3527.621094 1159.967651 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "4023.320313 3494.609619 1161.206909 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3999.202881 3482.411621 1161.235352 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3969.815186 3444.459473 1158.958618 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3936.890869 3415.785889 1158.275391 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3902.023926 3417.503418 1158.269043 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3845.066650 3418.063232 1158.387085 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3797.465820 3389.188477 1157.448120 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3744.094238 3326.042969 1159.336182 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3696.239746 3321.653564 1162.589478 30.000000 15.000000 0.000000 0.000000 1.000000";(continues)
#4
Looks like 54--now that I count them, it does seem like "many". Sure looked "real" though!
I suppose I will wait until after the next beta drop before trying rivers again.
06/03/2010 (4:25 pm)
(continued from previous)Node = "3666.502197 3341.765381 1161.478760 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3639.343994 3348.131836 1161.886475 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3615.406006 3326.768555 1163.029785 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3589.647949 3300.385742 1164.364258 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3542.329346 3273.070068 1163.920410 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3516.535889 3283.952148 1162.797363 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3474.776611 3286.959717 1161.937622 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3430.795898 3268.052979 1161.901855 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3402.456787 3243.418457 1163.864380 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3348.653564 3242.486572 1168.648926 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3323.972412 3237.400146 1168.824829 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3291.813965 3238.522461 1162.339966 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3255.656982 3235.335449 1162.617676 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3216.533691 3192.638916 1162.035522 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3204.737793 3141.380371 1162.361572 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3167.411377 3085.193604 1163.499390 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3122.199707 3053.171875 1161.948242 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3089.871826 3030.890381 1162.531860 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3073.271729 3008.364990 1162.246460 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3039.112549 2994.970215 1162.519897 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "3003.980225 2996.186523 1162.467041 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "2981.110596 3015.847656 1161.731201 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "2945.628662 3064.109863 1161.731201 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "2889.455566 3070.292236 1161.662231 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "2849.970459 3055.515625 1161.592773 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "2773.348389 3001.957275 1151.837891 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "2731.425781 2979.033447 1107.963257 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "2687.593994 2945.252930 1092.399414 30.000000 15.000000 0.000000 0.000000 1.000000";
Node = "2687.593994 2945.252930 1089.899414 30.000000 15.000000 0.000000 0.000000 1.000000";
};Looks like 54--now that I count them, it does seem like "many". Sure looked "real" though!
I suppose I will wait until after the next beta drop before trying rivers again.
#5
I would recommend either trying to get it under 32 (just a guess at the best maximum but it is an educated guess) or splitting it up somehow.
06/03/2010 (4:37 pm)
If I had to guess off the top of my head...you are very likely blowing out the max packet size when sending to the client with that many nodes.I would recommend either trying to get it under 32 (just a guess at the best maximum but it is an educated guess) or splitting it up somehow.
#6
My fault, really, for adding an element and failing to test it independently before I started into something else.
06/03/2010 (7:22 pm)
Thank you Matt for a concrete target to shoot for. Taking out every other node made it look funny, so I think I'm still waiting for the editor!My fault, really, for adding an element and failing to test it independently before I started into something else.
#7
06/22/2010 (7:24 am)
Heh. Once I got over the bout of teh stupid, it occurred to me it wasn't so much a problem of lessening the number of dots. Fifty datapoints divides rather neatly into two subsets of 25 datapoints each, which leaves me with only the matter of camoflaging a pair of endpoints successfully, solvable by plopping a bridge on top. Thanks again, Matt, for pointing out the limitations of the river design.
#8
06/22/2010 (11:05 am)
Glad to help =)
#9
Splitting the objects up into 25-point segments did enable the river editor tools to select and drag river nodes, and work with them on depth and width setting in the inspector, but the client absolutely will not load until I go into the mission file and pull both pieces out.
Hangs up forever at the loading screen, so this is getting tabled until the next rev when I will try to set it up again.
07/06/2010 (1:58 pm)
Nope, teh stupid, it comes and goes... at least it's not burning (much) this time... Splitting the objects up into 25-point segments did enable the river editor tools to select and drag river nodes, and work with them on depth and width setting in the inspector, but the client absolutely will not load until I go into the mission file and pull both pieces out.
Hangs up forever at the loading screen, so this is getting tabled until the next rev when I will try to set it up again.
#10
08/20/2010 (10:21 pm)
Logged as TQA-843
Torque 3D Owner Chris