Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UseNextGenSteamNetworking: bandwidth is lower than stated? #17

Closed
NikitaNikita1 opened this issue Jun 13, 2021 · 7 comments
Closed

UseNextGenSteamNetworking: bandwidth is lower than stated? #17

NikitaNikita1 opened this issue Jun 13, 2021 · 7 comments

Comments

@NikitaNikita1
Copy link

Hi,
I recently updated the version and ran into a problem: in the old version, I could transfer up to 1 MB of data per second. But in the new version, if I leave "UseNextGenSteamNetworking" enabled by default, I can only send 1 MBit per second.
If I overshoot this size, I get an error:

Send issue: k_EResultLimitExceeded
In:
Assets/Mirror/Runtime/Transport/FizzySteamworks/NextCommon.cs:23
Assets/Mirror/Runtime/Transport/FizzySteamworks/NextServer.cs:161
Assets/Mirror/Runtime/Transport/FizzySteamworks/FizzySteamworks.cs:209
Assets/Mirror/Runtime/NetworkConnectionToClient.cs:118
Assets/Mirror/Runtime/NetworkConnectionToClient.cs:171
Assets/Mirror/Runtime/NetworkServer.cs:1529
Assets/Mirror/Runtime/NetworkServer.cs:1559
Assets/Mirror/Runtime/NetworkLoop.cs:188)
...

However, GetMaxPacketSize returns 512 * 1024 which is half a megabyte.
Is this the expected behavior? Has the new API reduced the maximum transfer rate by 8 times? If my game uses more than one megabit, do I need to stay on legacy p2p?

Thx.

@Chykary
Copy link
Owner

Chykary commented Jun 15, 2021

Hello,

the MaxPacketSize is just the size for a single packet. It was faulty previously and would have caused a disconnect.

@NikitaNikita1
Copy link
Author

NikitaNikita1 commented Jun 21, 2021

Hello,

the MaxPacketSize is just the size for a single packet. It was faulty previously and would have caused a disconnect.

That is, the maximum packet size is larger than the maximum channel bandwidth? Is it possible to somehow find out the actual maximum bandwidth not on practical tests? Or are there no constants for this?

@Chykary
Copy link
Owner

Chykary commented Jun 21, 2021

Hello, there's a Steam config value that one can use to clamp the bandwidth: k_ESteamNetworkingConfig_SendRateMax. However, it is 0 by default, which means no limit.

So I am currently not sure what could limit your bandwidth.

@joecons97
Copy link

@NikitaNikita1 Did you ever fix this? This seems to have started out of nowhere for me recently

@NikitaNikita1
Copy link
Author

@NikitaNikita1 Did you ever fix this? This seems to have started out of nowhere for me recently

No. What I noticed after a lot of testing is that it looks like using the newer version of the (direct) connection of Steamworks has a 1 megabit limit, while the old (p2p) version allowed 1 megabyte to be transferred. I researched this in early summer but it doesn't seem to have changed.

@joecons97
Copy link

@NikitaNikita1 Did you ever fix this? This seems to have started out of nowhere for me recently

No. What I noticed after a lot of testing is that it looks like using the newer version of the (direct) connection of Steamworks has a 1 megabit limit, while the old (p2p) version allowed 1 megabyte to be transferred. I researched this in early summer but it doesn't seem to have changed.

I've switched back to the legacy solution for now. I guess this would be more of a question of Steam support then.

Thanks for replying :)

@Chykary
Copy link
Owner

Chykary commented Nov 24, 2021

The topic seems to be related to Steam API features/limitations and isn't something impacted by the transport. :-)

@Chykary Chykary closed this as completed Nov 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants