Hi there,
For replay, I am replicating a bunch of "Tarray<Fvector>" s which are being updated in tick continuously, and i am getting this warning then recording stops. I am not trying to send this data from Server to client, only i want this data in my Replay. if I remove the replicate property for those bunch, i am not getting the warning and i could able to play the replay.
I know its is a huge amount of data, But i need this need this data for my replay.
I could write the data into file, but knowing the exact data size at the exact moment is little bit difficult and it is not in Sync with the other data…(i am still trying…)
What i want is, some tips to change the source code (in the DataChannel and RepLayout classes)
And whether it is possible or not ?
Please Help me…
well i have commented the following lines in DataChannel.cpp (soure taken from GitHub UE 4.25 -plus)
lines no: 1107 to 1111:
1107: FNetConnection…Send(Connection, ErrorMsg)
1108: Connection->FlushNet(true);
1109: Connection->Close();
1111: return PacketIdRange;
Recording ran for a few seconds more ( than usual)…( no Warning message like No Demo Replay is coming) ( frame rate is falling though)
if i stopped the recording, then play Reply, it is playing correctly…BUT…
if i increasing the recording time, I am getting a crash at the destructor of “FScopedIteratorArrayTracker”
(line no…2028) in RepLayout.cpp class…
Please Help me…
How much data are you trying to replicate?
The maximum amount is 65.536 bytes if I remember correctly.
There is also a limit for the maximum array size, which is also 65.536.
If you are below these values, it might be that you have not configured your project to make use of the maximum values.
There are two settings in the ProjectSettings → Engine → Network called “MaxArraySize” and “MaxArrayMemory”.
You could turn those up to max.
Alternatively, add the following lines to your DefaultEngine.ini (this is the same as doing the configuration via the Editor’s ProjectSettings):
[/Script/Engine.NetworkSettings]
net.MaxRepArraySize=65535
net.MaxRepArrayMemory=65535
If the issues is that you are above those limits, then you won’t be able to use the built in replication system (at least I don’t know of a way to go beyond the limits). You would then have to either extend the existing system by replicating your data in smaller chunks or build your own system.
Thanks for the reply…
At the crash location i.e. destructor of “FScopedIteratorArrayTracker”,
There is this line:
check(cmdIndexIterator->ChangelistIterator.ChangedIndex - OldChangedIndex <=ArrayChangedCount)
When i checked,
cmdIndexIterator->ChangelistIterator.Num() is 76190
OldChangedIndex is 13 and ArrayChangedCount is 2
the Value of “cmdIndexIterator->ChangelistIterator.ChangedIndex” is 65551 (which is greater than 65535)…
So, i have to extend the existing the System. could you give me tips on how to extend the existing System…Please…