x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

How do I deploy a standalone Linux dedicated server binary to a remote machine?

I think I'm doing a whole bunch of things wrong here because I don't understand the relationship between a built executable and the surrounding project directory.

Setup PC / source build at SHA 69b5693 (~ 4.4.0)

Steps

  1. Build a development server dedicated server executable for Win64 (specific steps: http://blog.piinecone.com/post/96800987702/building-a-dedicated-server-in-unreal-engine-4)

  2. Test

  3. Build a development server dedicated server executable for Linux

  4. (using git bash on windows) scp [MyGame]Server [my remote machine] (a Google Cloud Debian VM, in this case)

  5. On the remote machine: chmod +x [MyGame]Server ./[MyGame]Server

I've also tried building a shipping server instead of a development server. The output is different but the result is essentially the same.

Result With the development server build:

 user@server:~/dir$ ./[MyGame]Server
 Using binned.
 Increasing per-process limit of core file size to infinity.
 C:\Users\me\code\UnrealEngine\Engine\Source\Runtime\Core\Private\Misc\OutputDevice.cpp(203): Fatal error:
 Assertion failed: HasFoundDataDirectory [File:C:\Users\me\code\UnrealEngine\Engine\Source\Runtime\Core\Private\Internationalization\Internationalization.cpp] [Line: 298]
 ICU data directory was not discovered:
 ../../../home/Content/Localization/ICU
 ../../../Engine/Content/Localization/ICU
 Stack:
 [Callstack]  02  0x00000000013cd1cc
 [Callstack]  03  0x00000000012f09f9
 [Callstack]  04  0x00000000012edbab
 [Callstack]  05  0x00000000012ef163
 [Callstack]  06  0x000000000133b0ab
 [Callstack]  07  0x00000000014c2127
 [Callstack]  08  0x00000000014c36f5
 [Callstack]  09  0x00000000012b77f8
 [Callstack]  10  0x00000000012ba5f9
 [Callstack]  11  0x00000000012bea07
 [Callstack]  12  0x00007f8f1275aeed
 [Callstack]  13  0x00000000012b5f8c
 
 Signal 11 caught.
 EngineCrashHandler: Signal=11
 Starting ../../../Engine/Binaries/Linux/CrashReportClient
 Aborted (core dumped)

With the shipping server build:

 Using binned.
 4.4.0-0+UE4 7038 3077 385 0
 Exiting abnormally (error code: 1)

The number of early failures makes me think that I'm just missing a bunch of stuff and need to SCP more than just the executable itself, it's just not clear to me yet what that stuff is, exactly. For example, the first few missing paths appear to exist only in the Engine, not in the project source, so it seems like the build didn't include everything that it needs to stand alone.

Product Version: Not Selected
Tags:
more ▼

asked Sep 21 '14 at 12:40 AM in Packaging & Deployment

avatar image

piinecone
537 22 32 369

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

Thanks to Osman for pointing out the fix to me!

As is apparent from the crash logs, the binary is looking for some local files. You have to deploy the entire packaged directory, not just the executable binary.

  1. Open the editor and package the game to a destination outside of your project's directory (so its contents are only what is needed by the executable).

  2. Open Visual Studio and build a Linux server.

  3. Copy the Linux server binary from the default path (in the project directory) into the packaged directory created in Step 1

  4. Remove the client binary from the packaged directory (you won't need it on the server)

  5. Create a gzipped tarball of the entire packaged directory and SCP it to your server

  6. On the server, unpack, make the binary executable, and run with ./MyGameServer -log

I wrote a little guide here: http://blog.piinecone.com/post/98470361272/building-and-deploying-a-ue4-dedicated-server-for-linux

more ▼

answered Sep 26 '14 at 04:11 PM

avatar image

piinecone
537 22 32 369

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question