in Samples~/SampleGame/Assets/Scripts/Server/GameLiftServer.cs [182:235]
private ProcessParameters CreateProcessParameters()
{
var logParameters = new LogParameters();
if (_logFilePath != null)
{
logParameters.LogPaths = new List<string> { _logFilePath };
}
return new ProcessParameters(
onStartGameSession: gameSession =>
{
_logger.Write(":) GAMELIFT SESSION REQUESTED"); //And then do stuff with it maybe.
try
{
GenericOutcome outcome = GameLiftServerAPI.ActivateGameSession();
if (outcome.Success)
{
_logger.Write(":) GAME SESSION ACTIVATED");
}
else
{
_logger.Write(":( GAME SESSION ACTIVATION FAILED. ActivateGameSession() returned " +
outcome.Error.ToString());
}
}
catch (Exception e)
{
_logger.Write(":( GAME SESSION ACTIVATION FAILED. ActivateGameSession() exception " +
Environment.NewLine + e.Message);
}
},
onUpdateGameSession: session =>
{
_logger.Write(":) GAME SESSION UPDATED");
_logger.Write(":) UPDATE REASON - " + session.UpdateReason);
_logger.Write(":) GameSession: " + JsonUtility.ToJson(session.GameSession));
},
onProcessTerminate: () =>
{
_logger.Write(":| GAMELIFT PROCESS TERMINATION REQUESTED (OK BYE)");
_gl.TerminateServer();
},
onHealthCheck: () =>
{
_logger.Write(":) GAMELIFT HEALTH CHECK REQUESTED (HEALTHY)");
return true;
},
// tell the GameLift service which port to connect to this process on.
// unless we manage this there can only be one process per server.
_port,
logParameters);
}