[Bug Report] Steam Server Settings always exceed k_cbMaxGameServerTags
I was stepping through the code for OnlineSessionAsyncServerSteam.cpp today, suspecting issues with my server on steam. I was getting the same warning every time I started my server, and didn't know why. After a little bit of time I believe I have an understanding of what is going on, and I am going to try and explain it here. Bear with me.
asked May 19 '15 at 10:40 PM in C++ Programming
Hello. Sorry for the inconvenience here. You can shorten all the "key names" by following the STEAMKEY_ to the #define and just keep them unique but smaller.
The ownername, id, and p2paddress are all the same right now. At least the name should really be the "server description". The id is the user id of the server, which when using steam sockets is the same as the p2p address.
Under the old way, Valve really limits the strings. There is the one GameDataString that is 2048, if I recall right. The game tags are much smaller (128 as you mention). The former isn't replicated down to the searching clients, but the latter is AFTER the initial matchmaking query. The first is used for master server side filtering, the latter for client side filtering.
The API Valve has for searching this data is really antiquated and to make it worse, the "advanced" search values that I have in that function aren't even available to your game via the SDK unless you contact Valve and ask them to turn it on. That is why I have that code disabled by default, I was never able to get them to turn it on for my test app and its barely documented.
The new lobby APIs are much cleaner/better but unfortunately standalone dedicated servers don't work with that API. So to really get the best of both worlds, you should do "complicated" matching between players via the Lobby API and then designate one of those found players to do a much simpler search for a dedicated server via the older API.
answered May 30 '15 at 02:25 AM
No. Shortening the #define STEAMKEY_... in the C++ code does nothing. The #define is only in C++ and is not the label name used in the packet.
answered Sep 18 '18 at 02:53 AM
SND R Keene
Follow this question
Once you sign in you will be able to subscribe for any updates here