Multiplay Game Server Hosting and Steam (UNREAL ENGINE)

Hi,

I am using Unity’s multiplay solution to host my Unreal Engine game.

I am curious if it is possible to have the dedicate server machine support steam. Currently, players in my game are able to matchmake for other lobbies that are registered through the SteamOnlineSubsystem.

Do these dedicated machines support steam usage? Or will I be forced to connect players through IP addresses.

For reference, this is the error I am encountering

Hello,

We have run a few tests based on the information you provided, thank you by the way! The problem here appears to be a failure to write to the current working directory of your game server. In theory there is nothing in the Multiplay system that will prevent you from using the SteamOnlineSubsystem. As it says on the UE docs, the steam_appid.txt needs to exist in the CWD - https://docs.unrealengine.com/5.2/en-US/online-subsystem-steam-interface-in-unreal-engine/

We’ll conduct some more investigation to resolve the underlying file permissions problem here.

I appreciate the response!

I will be uploading a new build with an updated steam_appid file, and I will keep you updated.

I have repackaged my project as a shipping build. I am now receiving an error stating the project does not grant proper permissions to the machine to access to appropriate files.

I am attaching a screenshot below, and advice is appreciate.

My current issue appears to stem from a permissions related problem. I am not too familiar with Linux, however I understand there are ways to grant write permissions to directories. I am unaware of how I can achieve this on the server machine.

Again, any advice/input is appreciated.

Hey, thank you for the reply.

Thats good to hear, my current issue revolved around permissions restrictions from Linux. I will attach an image of my logs below. It seems as though I need to provide the machine with Read/Write permissions for the project directory, however I am not familiar with how to do that.

Any advice?

I appreciate your help.

One final question: where would I execute these commands?

Because the folder structure is being hosted on the Unity Multiplay machines, I am unable to access the terminal of to grant read/write permissions for that machine/user. Is there a way to access the terminal for the Unity server machines?

Hello again,

We have pushed out an update which should resolve the original problem of writing the steam_appid to the /game directory. You will need to create a new version of your build (Builds) in game server hosting for the fix to take effect.

Thank you for your continued replies/assistance.

I am attaching a screenshot of a new test. It appears I am still receiving the same error. I even attempted starting a new build configuration and fleet.

I have also tried providing a pre-made steam_appid.txt file to see if that helps.

Any further advice/input is appreciated.

9238803--1290936--Screenshot 2023-08-21 130914.png

Hello again,

Upon further inspection, we can see that while the /game directory now has the correct ownership, the files for your server build (including sub directories) are not writable. A follow up fix will be needed from our side, I will keep you posted with updates.

In the mean time, the messages shown in your screenshots are only warnings not full errors. So there should not be anything preventing Unreal Engine games from running, this is something we test and validate.

The events tab on your servers does show that the server is not responding to “query”. Query is what Multiplay uses to validate the state of your server and show player numbers in the dashboard - Query protocols. This is an optional feature, so you have two choices here:

  1. Install the Multiplay Unreal SDK in your server build - Game Server Hosting SDK for Unreal Engine

  2. Disable the query protocol in your build configuration, by setting query type to “None” (see attached)

9240474--1291413--upload_2023-8-22_9-49-39.png

At the moment, Multiplay will be killing your server after 120 seconds for not responding to an SQP query

Understood, I have applied and enabled the Unreal Engine SDK and I intend to use the SQP method.

I have tried looking into the documentation for this, is the Querying done automatically when the plugin is applied? Or is there a function I must call in order to communicate with Unity Multiplay?

I appreciate your continued help.

I have resolved my issues with SQP. Just looking for the directory permissions now and I should be good to go!

@danri hey, any update?

Hello,

We have a fix for your issue being tested at the moment. I’ll come back to you when it is ready.

Awesome thank you so much!

Hello again.

We have pushed out a fix for the permissions to the /game directory, which should resolve the issue you are seeing with your game server @domgamba .

Let me know if this works for you.

thank you so much!

I am now getting proper communication with the steam online subsystem.

However, a new problem has presented itself. The error reads “Warning: Steam Dedicated Server API failed to initialize”. I have attached a screenshot below of the error.

In doing some research, I see that this error can arise from not having the proper .so (.dll in windows) files, or having these files be outdated.

Any feedback is appreciated.

https://forums.unrealengine.com/t/steam-dedicated-server-with-playfab-warning-steam-dedicated-server-api-failed-to-initialize/648650/2

9265137--1296570--upload_2023-8-31_19-14-35.png

Hello @domgamba Sorry to tag you on an old thread. I’m also using Unreal Engine but cannot figure out how to get SQP working properly. What did you do to get it going. I would like to see metrics of players connected.