// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "ShooterGameModeBase.h" #if WITH_GAMELIFT #include "GameLiftServerSDK.h" #endif #include "ShooterGameMode.generated.h" DECLARE_LOG_CATEGORY_EXTERN(LogShooterGameMode, Log, All); /** * */ UCLASS() class FPSTEMPLATE_API AShooterGameMode : public AShooterGameModeBase { GENERATED_BODY() public: AShooterGameMode(); protected: virtual void BeginPlay() override; private: void InitGameLift(); #if WITH_GAMELIFT bool SetParametersFromCommandLine(FServerParameters& OutServerParameters, FProcessParameters& OutProcessParameters); static void LogServerParameters(const FServerParameters& InServerParameters); void SetProcessIdOnServerParameters(FServerParameters& OutServerParameters); bool ValidateServerParameters(const FString& CommandLine, const FString& ParameterName, FString& OutValue, const bool bCritical = true); void LogServerSummary(const FServerParameters& InServerParameters, const FProcessParameters& InProcessParameters); void LogGameLiftServerSummary(bool bIsAnywhere, const FServerParameters& InServerParameters, const FProcessParameters& InProcessParameters); void BindGameLiftCallbackFunctions(FProcessParameters& ProcessParameters, FGameLiftServerSDKModule& GameLiftSdkModule); void InitiateProcessReady(FProcessParameters& ProcessParameters, FGameLiftServerSDKModule& GameLiftSdkModule); bool InitiateConnectionWithGameLiftAgent(FServerParameters& ServerParameters, FGameLiftServerSDKModule& GameLiftSdkModule); #endif };