Tutorial: How to Transfer HUGE files using RPC calls in C++ / Unreal Engine

  Рет қаралды 712

kirby561

kirby561

Күн бұрын

Пікірлер: 4
@llanowar90
@llanowar90 11 ай бұрын
thank you for the tutorial, this is very helpful. hope you do more
@paultorreiter2272
@paultorreiter2272 3 ай бұрын
Hi- very helpful tutorial - any idea how I can increase the network speed tho? rn I can only get up to 1MB/s with this technique. I also cant really figure out what exactly is the bottleneck.. I tried increasing the network speed variables in the config, but that did not change how fast the reliable packets get delivered..maybe increase the network tick rate of the playercontroller ? LG Paul
@kirby561
@kirby561 3 ай бұрын
Thanks. For pushing the limits of bandwidth, there are a lot of limits to look at. The basic params to adjust this are: DefaultEngine.ini [/Script/Engine.Player] ConfiguredInternetSpeed=100000 ConfiguredLanSpeed=100000 - These set UPlayer::ConfiguredInternetSpeed and UPlayer::ConfiguredLanSpeed in Player.h [/Script/OnlineSubsystemUtils.IpNetDriver] MaxClientRate=100000 MaxInternetClientRate=100000 MaxNetTickRate=99999 DefaultGame.ini [/Script/Engine.GameNetworkManager] TotalNetBandwidth=600000 MaxDynamicBandwidth=25000 MinDynamicBandwidth=12000 Unfortunately at the end of the day the network system is tied in with the tick rate for some reason and this makes it hard to maximize bandwidth in general. If you notice above, MaxNetTickRate (which defaults to 120) limits how many times per second UNetConnection will tick, which ends up being the bottleneck. Even if you change that to 99999 it will still be limited by how fast your game is ticking in general but I was able to get up to 5MB/s by turning that up. It's also probably a bad idea to do that in the config file because you probably don't always want that since a high framerate would flood the network for all the other network related things when you probably only want this to apply to a specific transfer. For my use case this doesn't matter but if you just want to send the file as fast as possible you may need to modify the engine net code to give yourself direct access to a side channel on the same socket from a background thread or something unless there's another method I missed. You could always open a whole separate socket and send data on that but you would need a second open port to the server and then you could always have issues where 1 connection is alive and the other isn't that you would need to handle.
@paultorreiter2272
@paultorreiter2272 3 ай бұрын
@@kirby561 wow tx a lot for that thorough answer- I will give it a shot^^ yeah I also was playing around with setting up a tcp connection and reading out the ip addresses from the steam session, but I guess I will stick around with your solution for now.. Still have a lot to learn
The Quest To Make Unbreakable Glass
22:23
Veritasium
Рет қаралды 112 М.
СКОЛЬКО ПАЛЬЦЕВ ТУТ?
00:16
Masomka
Рет қаралды 2 МЛН
Каха и лужа  #непосредственнокаха
00:15
Real Man relocate to Remote Controlled Car 👨🏻➡️🚙🕹️ #builderc
00:24
programming daily #46 - 2024 10 30
1:23:30
Piotr Justyna
Рет қаралды 19
UEFI bootloader: Mapping the kernel
1:21:49
Falcon Code
Рет қаралды 128
Reading a Large Data File in C++
23:59
Danny Hardin
Рет қаралды 6 М.
How to Declare and Use Delegates in Unreal Engine 5
36:50
kirby561
Рет қаралды 1,5 М.
CppCon 2014: Mike Acton "Data-Oriented Design and C++"
1:27:46
Gren: A Language for Modern Software Development
52:02
Robin Heggelund Hansen
Рет қаралды 15 М.
СКОЛЬКО ПАЛЬЦЕВ ТУТ?
00:16
Masomka
Рет қаралды 2 МЛН