Game Development Community

Walls and shackles need to overcome the limit (4032 and more)...

by Olexiy Kravchuk · in Torque 3D Professional · 05/04/2014 (12:40 pm) · 6 replies

I have a question, last night I discovered that it is impossible in the same level, create more (4032) visible objects, the rest which will be created, although they will be is registered in the level, and this can be collision if they are rigid, but they are is invisible!and in the next time, when the level load, the program will crash, I need to overcome this limit (significantly (+ / -) 65536 unit loads, or even more). How to implement it, where there is one lever that affects it? If it is certainly exists somewhere?

#1
05/04/2014 (1:00 pm)
I do not need, so all of them visible at the same time, sufficiently order to they are visible in a certain specified radius around the player, the rest for its boundary do not pressure on resources, but when a player comes, they appear. And also did not have a failure during the boot of level, after exceeding this limit in the scene.
#2
05/05/2014 (8:24 am)
In the engine files, look in sim/netConnection.cpp for this line:
public:
   /// Some configuration values.
   enum GhostConstants
   {
      GhostIdBitSize = 12,//4096
      MaxGhostCount = 1 << GhostIdBitSize, //4096,
      GhostLookupTableSize = 1 << GhostIdBitSize, //4096
      GhostIndexBitSize = 4 // number of bits GhostIdBitSize-3 fits into
   };

You must change the GhostIdBitSize to increase the number of visible ghosts. If you change it to 13 bits, the number of visible ghosts would be 8192, 14 would be 16384, and so on. Of course, this will increase your network traffic. To limit the radius visible around the player, adjust the visibleDistance in your LevelInfo.
#3
05/05/2014 (10:36 am)
Thank you, a lot, this information is really useful for me, although I can not right this moment, to use it.
But now I have another new question. I'm in this, is not competent. But it seemed to me that the traffic on the network is sent as a minimal integer 1 byte = 8 bits? I mean that to send (12bit) still need to send two "whole" (8 bits * 2) bytes that is 16-bit? or there is some more sophisticated system?
#4
05/06/2014 (10:00 am)
Olexiy, you are correct, 1 byte = 8 bits. If you want to learn about the networking system in Torque, a good place to start is in the official documentation here.Look in Scripting/Advanced/Networking to find a good explanation of the system.
#5
05/06/2014 (12:58 pm)
To add a little here - the network system packs the data before sending and adds any needed padding. This minimizes the bandwidth used because at worst you send an extra 31 bits (might be only 7 - but I believe that data is sent in 32bit format).
#6
05/07/2014 (11:35 am)
Joseph thanks for pointing I will reread this section again so grasp the essence, more than once!

Richad this interesting information about sending data, but a little confused by what steps involved Number of (7, 31, 32)??? How are they happening for transformation?

PS just in case I'm sorry for my stupid polls, just when I was translating the text on my language, not in every case, I can understand that someone is trying to explain I need more detailed information, for the assimilation of this. Thanks again for your help.