Fail to init GameLift dll on cloud

I keep getting exitCode(-1073741502) or STATUS_DLL_INIT_FAILED when I put my server up on the actual cloud. I tested it with GameLift Local and it’s connecting fine locally. I only have one dll which is the aws-cpp-sdk-gamelift-server.dll in my server (included in the same folder).

Is there anyway I can see a log of my server or is there anyway I can remedy this?

Hi @KillerPenguin, sure, you can try logging onto your instance to examine logs.

Ben

Yup, it was the .net3.5 missing problem

I’m confused though… if I could log into my instances, does that mean 1 instance = 1 machine environment? I thought that an instance is just another process on the same machine…

1 GameLift Instance is 1 physical host with CPU, memory, disk and network resources. 1 Instance can run and support multiple game server processes, each one of those, supporting 1 GameSession.

For example, if your Fleet has 10 instances in it, each running 5 game server processes, your Fleet could support at maximum 50 GameSessions (10 instances x 5 game server processes x 1 GameSession per process).

How do I get my server to start 5 processes though, since there’s only one launching exe.

I read all that, but I’m still confused…

Let’s take Unreal server as example. It’s one executable file for one server. How do I get it to execute 10 times on one instance? Write another middle man .exe that start it up ten times?

What about the processID, wouldn’t it threw another server error because it’s the different process that call InitSDK()?

Hey @KillerPenguin, here’s the documentation on managing multiple processes.

When you create your GameLift fleet you fill out a RuntimeConfiguration which asks for the launch path to your server executable, launch parameters, and a number of concurrent game server processes to execute. Instead of listing 1 concurrent game server process, list 10. You do not need to write any special process management logic, GameLift will do that for you.

There are a few considerations to keep in mind if you decide to run multiple game server processes per GameLift instance:

  • you will need to tell GameLift the port that each game server process is listening to player traffic on - you can do this either by having each game server process derive this when it boots, or as part of a parameter passed into it
  • you will need to tell GameLift the log path that each game server process will write its logs to
  • you need to make sure that your game server processes can coexist and operate together, GameLift does nothing special to partition game server processes resources apart from one another