diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 9f9551ab..e9a9348e 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -4,7 +4,7 @@ CommonUI.Debug.CheckGameViewportClientValid=0 [/Script/EngineSettings.GameMapsSettings] GameDefaultMap=/Game/ThirdPerson/Maps/ThirdPersonMap.ThirdPersonMap EditorStartupMap=/Game/ThirdPerson/Maps/ThirdPersonMap.ThirdPersonMap -GlobalDefaultGameMode=/Game/Blueprints/Game/BP_ShooterGameMode.BP_ShooterGameMode_C +GlobalDefaultGameMode=/Game/Blueprints/Game/BP_ShooterGameModeBase.BP_ShooterGameModeBase_C ServerDefaultMap=/Game/ThirdPerson/Maps/ThirdPersonMap.ThirdPersonMap [/Script/WindowsTargetPlatform.WindowsTargetSettings] @@ -185,4 +185,5 @@ DefaultPort=7777 [CoreRedirects] +EnumRedirects=(OldName="/Script/FPSTemplate.EvalidationError",NewName="/Script/FPSTemplate.EValidationError") +FunctionRedirects=(OldName="/Script/FPSTemplate.GameLiftValidators.LogValidataErrorMessage",NewName="/Script/FPSTemplate.GameLiftValidators.LogValidationErrorMessage") -;+PropertyRedirects=(OldName="/Script/FPSTemplate.CommandLineArgs.Arguments",NewName="/Script/FPSTemplate.CommandLineArgs.CmdArguments") \ No newline at end of file +;+PropertyRedirects=(OldName="/Script/FPSTemplate.CommandLineArgs.Arguments",NewName="/Script/FPSTemplate.CommandLineArgs.CmdArguments") + diff --git a/Content/Blueprints/Game/BP_ShooterGameMode.uasset b/Content/Blueprints/Game/BP_ShooterGameMode.uasset deleted file mode 100644 index fc6bb9b8..00000000 Binary files a/Content/Blueprints/Game/BP_ShooterGameMode.uasset and /dev/null differ diff --git a/Content/Blueprints/Game/BP_ShooterGameModeBase.uasset b/Content/Blueprints/Game/BP_ShooterGameModeBase.uasset new file mode 100644 index 00000000..8d49b7a6 Binary files /dev/null and b/Content/Blueprints/Game/BP_ShooterGameModeBase.uasset differ diff --git a/Content/ThirdPerson/Maps/ThirdPersonMap.umap b/Content/ThirdPerson/Maps/ThirdPersonMap.umap index ace5b22d..a1cbfae1 100644 Binary files a/Content/ThirdPerson/Maps/ThirdPersonMap.umap and b/Content/ThirdPerson/Maps/ThirdPersonMap.umap differ diff --git a/FPSTemplate.uproject b/FPSTemplate.uproject index 5607a620..e4b4dd27 100644 --- a/FPSTemplate.uproject +++ b/FPSTemplate.uproject @@ -58,10 +58,6 @@ { "Name": "PerforceSourceControl", "Enabled": false - }, - { - "Name": "GameLiftPlugin", - "Enabled": true } ] } \ No newline at end of file diff --git a/Source/DedicatedServers/DedicatedServers.Build.cs b/Source/DedicatedServers/DedicatedServers.Build.cs index 03573b13..f0aa3850 100644 --- a/Source/DedicatedServers/DedicatedServers.Build.cs +++ b/Source/DedicatedServers/DedicatedServers.Build.cs @@ -20,7 +20,20 @@ public class DedicatedServers : ModuleRules PrivateDependencyModuleNames.AddRange(new string[] { "Slate", - "SlateCore" + "SlateCore", + "OpenSSL" }); + + // Adds in the plugin for GameLiftServerSDK if it is the server build. + + if (Target.Type == TargetType.Server) + { + PublicDependencyModuleNames.Add("GameLiftServerSDK"); + } + else + { + PublicDefinitions.Add("WITH_GAMELIFT=0"); + } + bEnableExceptions = true; } } diff --git a/Source/FPSTemplate/Private/Game/ShooterGameMode.cpp b/Source/DedicatedServers/Private/Game/DS_GameMode.cpp similarity index 65% rename from Source/FPSTemplate/Private/Game/ShooterGameMode.cpp rename to Source/DedicatedServers/Private/Game/DS_GameMode.cpp index 1aba5edb..7100ae8a 100644 --- a/Source/FPSTemplate/Private/Game/ShooterGameMode.cpp +++ b/Source/DedicatedServers/Private/Game/DS_GameMode.cpp @@ -1,33 +1,21 @@ // Fill out your copyright notice in the Description page of Project Settings. -#include "Game/ShooterGameMode.h" -#include "GenericPlatform/GenericPlatformMisc.h" -#include "Containers/UnrealString.h" -#include "GameLiftClpTypes.h" -#include "GameLift/GameLiftClp.h" + +#include "DedicatedServers/Public/Game/DS_GameMode.h" #include "openssl/sha.h" +#include "GameLift/GameLiftClp.h" +#if WITH_GAMELIFT #include "GameLiftServerSDK.h" -#include "GameLiftServerSDKModels.h" +#endif +DEFINE_LOG_CATEGORY(LogDS_GameMode); - -DEFINE_LOG_CATEGORY(LogShooterGameMode); - -// Function implementations. - -AShooterGameMode::AShooterGameMode() -{ -} - -void AShooterGameMode::BeginPlay() +void ADS_GameMode::BeginPlay() { Super::BeginPlay(); -#if WITH_GAMELIFT - InitGameLift(); -#endif } -void AShooterGameMode::InitGame(const FString& MapName, const FString& Options, FString& ErrorMessage) +void ADS_GameMode::InitGame(const FString& MapName, const FString& Options, FString& ErrorMessage) { Super::InitGame(MapName, Options, ErrorMessage); CachedCommandLine = FCommandLine::Get(); @@ -35,27 +23,27 @@ void AShooterGameMode::InitGame(const FString& MapName, const FString& Options, const FPortResult PortResult = cmdlineparser::details::GetConfiguredOrDefaultPort(CachedCommandLine, TEXT("port"));; if (PortResult.bUsedDefaultPort) { - UE_LOGFMT (LogShooterGameMode, Warning, "{0}", PortResult.WarningMessage); + UE_LOGFMT (LogDS_GameMode, Warning, "{0}", PortResult.WarningMessage); } GameLiftConfig.ServerPort = PortResult.Port; if (FParse::Param(*CachedCommandLine, TEXT("glAnywhereFleet"))) { - UE_LOGFMT(LogShooterGameMode, Log, "Fleet type: Anywhere"); + UE_LOGFMT(LogDS_GameMode, Log, "Fleet type: Anywhere"); GameLiftConfig.bIsAnywhereFleet = true; GameLiftConfig.bAllOptionsFound = GetAnywhereFleetParameters(CachedCommandLine); LogAnywhereFleetParameters(); } else { - UE_LOGFMT(LogShooterGameMode, Log, "Fleet type: EC2"); + UE_LOGFMT(LogDS_GameMode, Log, "Fleet type: EC2"); // TODO: EC2 configuration } } -FString AShooterGameMode::GetSHA256Hash(const FString& InString) +FString ADS_GameMode::GetSHA256Hash(const FString& InString) { - + if (InString.IsEmpty()) return TEXT("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); @@ -76,16 +64,16 @@ FString AShooterGameMode::GetSHA256Hash(const FString& InString) return Hash.ToString(); } -void AShooterGameMode::InitGameLift() +void ADS_GameMode::InitGameLift() { -#if WITH_GAMELIFT - UE_LOGFMT(LogShooterGameMode, Log, "Calling InitGameLift..."); + #if WITH_GAMELIFT + UE_LOGFMT(LogDS_GameMode, Log, "Calling InitGameLift..."); // Get the module first FGameLiftServerSDKModule* GameLiftSdkModule = &FModuleManager::LoadModuleChecked("GameLiftServerSDK"); FGameLiftGenericOutcome InitSdkOutcome; - UE_LOGFMT(LogShooterGameMode, Log, "Initializing the GameLift Server..."); + UE_LOGFMT(LogDS_GameMode, Log, "Initializing the GameLift Server..."); if (GameLiftConfig.bIsAnywhereFleet) { // Define the server parameters for an Anywhere fleet. These are not needed for a GameLift managed EC2 fleet. @@ -94,7 +82,7 @@ void AShooterGameMode::InitGameLift() uint32 PID = FPlatformProcess::GetCurrentProcessId(); FString PIDString = FString::FromInt(static_cast(PID)); - UE_LOGFMT(LogShooterGameMode, Log, "Configuring server parameters for Anywhere..."); + UE_LOGFMT(LogDS_GameMode, Log, "Configuring server parameters for Anywhere..."); // If AnywhereFleets are being used load the command line arguments parsed earlier. ServerParametersForAnywhere.m_webSocketUrl = TCHAR_TO_UTF8(*GameLiftConfig.WebSocketUrlResult.Value); ServerParametersForAnywhere.m_fleetId = TCHAR_TO_UTF8((*GameLiftConfig.FleetIdResult.Value)); @@ -113,17 +101,17 @@ void AShooterGameMode::InitGameLift() if (InitSdkOutcome.IsSuccess()) { - UE_LOG(LogShooterGameMode, SetColor, TEXT("%s"), COLOR_GREEN); - UE_LOG(LogShooterGameMode, Log, TEXT("GameLift InitSDK succeeded!")); - UE_LOG(LogShooterGameMode, SetColor, TEXT("%s"), COLOR_NONE); + UE_LOG(LogDS_GameMode, SetColor, TEXT("%s"), COLOR_GREEN); + UE_LOG(LogDS_GameMode, Log, TEXT("GameLift InitSDK succeeded!")); + UE_LOG(LogDS_GameMode, SetColor, TEXT("%s"), COLOR_NONE); } else { - UE_LOG(LogShooterGameMode, SetColor, TEXT("%s"), COLOR_RED); - UE_LOG(LogShooterGameMode, Log, TEXT("ERROR: InitSDK failed : (")); + UE_LOG(LogDS_GameMode, SetColor, TEXT("%s"), COLOR_RED); + UE_LOG(LogDS_GameMode, Log, TEXT("ERROR: InitSDK failed : (")); FGameLiftError GameLiftError = InitSdkOutcome.GetError(); - UE_LOG(LogShooterGameMode, Log, TEXT("ERROR: %s"), *GameLiftError.m_errorMessage); - UE_LOG(LogShooterGameMode, SetColor, TEXT("%s"), COLOR_NONE); + UE_LOG(LogDS_GameMode, Log, TEXT("ERROR: %s"), *GameLiftError.m_errorMessage); + UE_LOG(LogDS_GameMode, SetColor, TEXT("%s"), COLOR_NONE); return; } @@ -135,7 +123,7 @@ void AShooterGameMode::InitGameLift() ProcessParameters->OnStartGameSession.BindLambda([=](Aws::GameLift::Server::Model::GameSession InGameSession) { const FString GameSessionId = FString(InGameSession.GetGameSessionId()); - UE_LOG(LogShooterGameMode, Log, TEXT("GameSession Initializing: %s"), *GameSessionId); + UE_LOG(LogDS_GameMode, Log, TEXT("GameSession Initializing: %s"), *GameSessionId); GameLiftSdkModule->ActivateGameSession(); }); @@ -144,24 +132,24 @@ void AShooterGameMode::InitGameLift() //In this case, we simply tell Amazon GameLift Servers we are indeed going to shut down. ProcessParameters->OnTerminate.BindLambda([=]() { - UE_LOG(LogShooterGameMode, Log, TEXT("Game Server Process is terminating")); + UE_LOG(LogDS_GameMode, Log, TEXT("Game Server Process is terminating")); // First call ProcessEnding() FGameLiftGenericOutcome processEndingOutcome = GameLiftSdkModule->ProcessEnding(); // Then call Destroy() to free the SDK from memory FGameLiftGenericOutcome destroyOutcome = GameLiftSdkModule->Destroy(); // Exit the process with success or failure if (processEndingOutcome.IsSuccess() && destroyOutcome.IsSuccess()) { - UE_LOG(LogShooterGameMode, Log, TEXT("Server process ending successfully")); + UE_LOG(LogDS_GameMode, Log, TEXT("Server process ending successfully")); } else { if (!processEndingOutcome.IsSuccess()) { const FGameLiftError& error = processEndingOutcome.GetError(); - UE_LOG(LogShooterGameMode, Error, TEXT("ProcessEnding() failed. Error: %s"), + UE_LOG(LogDS_GameMode, Error, TEXT("ProcessEnding() failed. Error: %s"), error.m_errorMessage.IsEmpty() ? TEXT("Unknown error") : *error.m_errorMessage); } if (!destroyOutcome.IsSuccess()) { const FGameLiftError& error = destroyOutcome.GetError(); - UE_LOG(LogShooterGameMode, Error, TEXT("Destroy() failed. Error: %s"), + UE_LOG(LogDS_GameMode, Error, TEXT("Destroy() failed. Error: %s"), error.m_errorMessage.IsEmpty() ? TEXT("Unknown error") : *error.m_errorMessage); } } @@ -177,7 +165,7 @@ void AShooterGameMode::InitGameLift() //In this case, we're always healthy! ProcessParameters->OnHealthCheck.BindLambda([]() { - UE_LOG(LogShooterGameMode, Log, TEXT("Performing Health Check")); + UE_LOG(LogDS_GameMode, Log, TEXT("Performing Health Check")); return true; }); @@ -187,31 +175,31 @@ void AShooterGameMode::InitGameLift() Logfiles.Add(TEXT("FPSTemplate/Saved/Log/server.log")); ProcessParameters->logParameters = Logfiles; - UE_LOGFMT(LogShooterGameMode, Log, "Calling Process Ready..."); + UE_LOGFMT(LogDS_GameMode, Log, "Calling Process Ready..."); FGameLiftGenericOutcome ProcessReadyOutcome = GameLiftSdkModule->ProcessReady(*ProcessParameters); if (ProcessReadyOutcome.IsSuccess()) { - UE_LOG(LogShooterGameMode, SetColor, TEXT("%s"), COLOR_GREEN); - UE_LOG(LogShooterGameMode, Log, TEXT("Process Ready!")); - UE_LOG(LogShooterGameMode, SetColor, TEXT("%s"), COLOR_NONE); + UE_LOG(LogDS_GameMode, SetColor, TEXT("%s"), COLOR_GREEN); + UE_LOG(LogDS_GameMode, Log, TEXT("Process Ready!")); + UE_LOG(LogDS_GameMode, SetColor, TEXT("%s"), COLOR_NONE); } else { - UE_LOG(LogShooterGameMode, SetColor, TEXT("%s"), COLOR_RED); - UE_LOG(LogShooterGameMode, Log, TEXT("ERROR: Process Ready Failed!")); + UE_LOG(LogDS_GameMode, SetColor, TEXT("%s"), COLOR_RED); + UE_LOG(LogDS_GameMode, Log, TEXT("ERROR: Process Ready Failed!")); FGameLiftError ProcessReadyError = ProcessReadyOutcome.GetError(); - UE_LOG(LogShooterGameMode, Log, TEXT("ERROR: %s"), *ProcessReadyError.m_errorMessage); - UE_LOG(LogShooterGameMode, SetColor, TEXT("%s"), COLOR_NONE); + UE_LOG(LogDS_GameMode, Log, TEXT("ERROR: %s"), *ProcessReadyError.m_errorMessage); + UE_LOG(LogDS_GameMode, SetColor, TEXT("%s"), COLOR_NONE); return; } - UE_LOGFMT(LogShooterGameMode, Log, "InitGameLift completed!"); + UE_LOGFMT(LogDS_GameMode, Log, "InitGameLift completed!"); #endif } -bool AShooterGameMode::GetAnywhereFleetParameters(const FString& CommandLineString) +bool ADS_GameMode::GetAnywhereFleetParameters(const FString& CommandLineString) { bool bAllAnywhereFleetParametersValid = true; GameLiftConfig.AuthTokenResult = cmdlineparser::GetValueOfToken(CommandLineString, cmdlineparser::details::EAvailableTokens::AuthToken); @@ -229,23 +217,23 @@ bool AShooterGameMode::GetAnywhereFleetParameters(const FString& CommandLineStri return bAllAnywhereFleetParametersValid; } -void AShooterGameMode::LogAnywhereFleetParameters() +void ADS_GameMode::LogAnywhereFleetParameters() { - // Lambda for getting the token name from token + // Lambda for getting the token name from token auto GetTokenName = [](const cmdlineparser::details::FParseResult& Result) -> FString { return cmdlineparser::details::CLI_TOKENS[static_cast(Result.Token)]; }; - UE_LOGFMT(LogShooterGameMode, Log, "Anywhere Fleet Parameters:"); + UE_LOGFMT(LogDS_GameMode, Log, "Anywhere Fleet Parameters:"); if (GameLiftConfig.AuthTokenResult.bIsValid) { - UE_LOGFMT(LogShooterGameMode, Log, "AuthToken: {0}", GetValueOrHash(GameLiftConfig.AuthTokenResult.Value)); + UE_LOGFMT(LogDS_GameMode, Log, "AuthToken: {0}", GetValueOrHash(GameLiftConfig.AuthTokenResult.Value)); } else { UE_LOGFMT( - LogShooterGameMode, + LogDS_GameMode, Error, "AuthToken: {0}", FString::Format( @@ -260,12 +248,12 @@ void AShooterGameMode::LogAnywhereFleetParameters() if (GameLiftConfig.FleetIdResult.bIsValid) { - UE_LOGFMT(LogShooterGameMode, Log, "FleetId: {0}", GameLiftConfig.FleetIdResult.Value); + UE_LOGFMT(LogDS_GameMode, Log, "FleetId: {0}", GameLiftConfig.FleetIdResult.Value); } else { UE_LOGFMT( - LogShooterGameMode, + LogDS_GameMode, Error, "FleetId: {0}", FString::Format( @@ -280,12 +268,12 @@ void AShooterGameMode::LogAnywhereFleetParameters() if (GameLiftConfig.HostIdResult.bIsValid) { - UE_LOGFMT(LogShooterGameMode, Log, "HostId: {0}", GameLiftConfig.HostIdResult.Value); + UE_LOGFMT(LogDS_GameMode, Log, "HostId: {0}", GameLiftConfig.HostIdResult.Value); } else { UE_LOGFMT( - LogShooterGameMode, + LogDS_GameMode, Error, "HostId: {0}", FString::Format( @@ -300,12 +288,12 @@ void AShooterGameMode::LogAnywhereFleetParameters() if (GameLiftConfig.WebSocketUrlResult.bIsValid) { - UE_LOGFMT(LogShooterGameMode, Log, "WebSocketUrl: {0}", GameLiftConfig.WebSocketUrlResult.Value); + UE_LOGFMT(LogDS_GameMode, Log, "WebSocketUrl: {0}", GameLiftConfig.WebSocketUrlResult.Value); } else { UE_LOGFMT( - LogShooterGameMode, + LogDS_GameMode, Error, "WebSocketUrl: {0}", FString::Format( @@ -318,49 +306,48 @@ void AShooterGameMode::LogAnywhereFleetParameters() ); } - UE_LOGFMT(LogShooterGameMode, Log, "Server Port: {0}", GameLiftConfig.ServerPort); + UE_LOGFMT(LogDS_GameMode, Log, "Server Port: {0}", GameLiftConfig.ServerPort); if (GameLiftConfig.bAllOptionsFound) { - UE_LOGFMT(LogShooterGameMode, Log, "Anywhere Fleet Parameters Loaded Successfully...."); + UE_LOGFMT(LogDS_GameMode, Log, "Anywhere Fleet Parameters Loaded Successfully...."); } else { - UE_LOGFMT(LogShooterGameMode, Error, "Anywhere Fleet Parameters Load FAILED...."); + UE_LOGFMT(LogDS_GameMode, Error, "Anywhere Fleet Parameters Load FAILED...."); } } -void AShooterGameMode::LogServerParameters(const FServerParameters& InServerParameters) +void ADS_GameMode::LogServerParameters(const FServerParameters& InServerParameters) { - - UE_LOGFMT(LogShooterGameMode, Log, ">>>> WebSocket URL: {WebSocketUrl}", InServerParameters.m_webSocketUrl); - UE_LOGFMT(LogShooterGameMode, Log, ">>>> Fleet ID: {FleetId}", InServerParameters.m_fleetId); - UE_LOGFMT(LogShooterGameMode, Log, ">>>> Process ID: {ProcessId}", InServerParameters.m_processId); - UE_LOGFMT(LogShooterGameMode, Log, ">>>> Host ID (Compute Name): {HostId}", InServerParameters.m_hostId); - UE_LOGFMT(LogShooterGameMode, Log, ">>>> Auth Token: {AuthToken}", GetValueOrHash(InServerParameters.m_authToken)); + UE_LOGFMT(LogDS_GameMode, Log, ">>>> WebSocket URL: {WebSocketUrl}", InServerParameters.m_webSocketUrl); + UE_LOGFMT(LogDS_GameMode, Log, ">>>> Fleet ID: {FleetId}", InServerParameters.m_fleetId); + UE_LOGFMT(LogDS_GameMode, Log, ">>>> Process ID: {ProcessId}", InServerParameters.m_processId); + UE_LOGFMT(LogDS_GameMode, Log, ">>>> Host ID (Compute Name): {HostId}", InServerParameters.m_hostId); + UE_LOGFMT(LogDS_GameMode, Log, ">>>> Auth Token: {AuthToken}", GetValueOrHash(InServerParameters.m_authToken)); if (!InServerParameters.m_awsRegion.IsEmpty()) { - UE_LOGFMT(LogShooterGameMode, Log, ">>>> Aws Region: {AwsRegion}", InServerParameters.m_awsRegion); + UE_LOGFMT(LogDS_GameMode, Log, ">>>> Aws Region: {AwsRegion}", InServerParameters.m_awsRegion); } if (!InServerParameters.m_accessKey.IsEmpty()) { - UE_LOGFMT(LogShooterGameMode, Log, ">>>> Access Key: {AccessKey}", GetValueOrHash(InServerParameters.m_accessKey)); + UE_LOGFMT(LogDS_GameMode, Log, ">>>> Access Key: {AccessKey}", GetValueOrHash(InServerParameters.m_accessKey)); } if (!InServerParameters.m_secretKey.IsEmpty()) { - UE_LOGFMT(LogShooterGameMode, Log, ">>>> Secret Key: {SecretKey}", GetValueOrHash(InServerParameters.m_secretKey)); + UE_LOGFMT(LogDS_GameMode, Log, ">>>> Secret Key: {SecretKey}", GetValueOrHash(InServerParameters.m_secretKey)); } if (!InServerParameters.m_sessionToken.IsEmpty()) { - UE_LOGFMT(LogShooterGameMode, Log, ">>>> Session Token: {SessionToken}", GetValueOrHash(InServerParameters.m_sessionToken)); + UE_LOGFMT(LogDS_GameMode, Log, ">>>> Session Token: {SessionToken}", GetValueOrHash(InServerParameters.m_sessionToken)); } } -FString AShooterGameMode::GetValueOrHash(const FString& Value) +FString ADS_GameMode::GetValueOrHash(const FString& Value) { #if UE_BUILD_DEBUG || UE_BUILD_DEVELOPMENT return Value; diff --git a/Source/FPSTemplate/Private/GameLift/GameLiftClp.cpp b/Source/DedicatedServers/Private/GameLift/GameLiftClp.cpp similarity index 100% rename from Source/FPSTemplate/Private/GameLift/GameLiftClp.cpp rename to Source/DedicatedServers/Private/GameLift/GameLiftClp.cpp diff --git a/Source/FPSTemplate/Private/GameLiftClpTypes.cpp b/Source/DedicatedServers/Private/GameLiftClpTypes.cpp similarity index 100% rename from Source/FPSTemplate/Private/GameLiftClpTypes.cpp rename to Source/DedicatedServers/Private/GameLiftClpTypes.cpp diff --git a/Source/FPSTemplate/Public/Game/ShooterGameMode.h b/Source/DedicatedServers/Public/Game/DS_GameMode.h similarity index 76% rename from Source/FPSTemplate/Public/Game/ShooterGameMode.h rename to Source/DedicatedServers/Public/Game/DS_GameMode.h index 7cf1bf72..e4e721b5 100644 --- a/Source/FPSTemplate/Public/Game/ShooterGameMode.h +++ b/Source/DedicatedServers/Public/Game/DS_GameMode.h @@ -3,11 +3,11 @@ #pragma once #include "CoreMinimal.h" -#include "GameLiftClpTypes.h" -#include "ShooterGameModeBase.h" -#include "ShooterGameMode.generated.h" +#include "DedicatedServers/Public/GameLiftClpTypes.h" +#include "GameFramework/GameMode.h" +#include "DS_GameMode.generated.h" -DECLARE_LOG_CATEGORY_EXTERN(LogShooterGameMode, Log, All); +DECLARE_LOG_CATEGORY_EXTERN(LogDS_GameMode, Log, All); struct FProcessParameters; struct FServerParameters; @@ -25,16 +25,11 @@ struct FGameLiftConfig cmdlineparser::details::FParseResult WebSocketUrlResult; }; -/** - * - */ + UCLASS() -class FPSTEMPLATE_API AShooterGameMode : public AShooterGameModeBase +class DEDICATEDSERVERS_API ADS_GameMode : public AGameMode { GENERATED_BODY() -public: - - AShooterGameMode(); protected: virtual void BeginPlay() override; @@ -43,14 +38,13 @@ protected: private: FGameLiftConfig GameLiftConfig; FString CachedCommandLine; + TSharedPtr ProcessParameters; - static FString GetSHA256Hash(const FString& CommandLineString); + static FString GetSHA256Hash(const FString& InString); void InitGameLift(); bool GetAnywhereFleetParameters(const FString& CommandLineString); void LogAnywhereFleetParameters(); static void LogServerParameters(const FServerParameters& InServerParameters); static FString GetValueOrHash(const FString& Value); - - TSharedPtr ProcessParameters; }; diff --git a/Source/FPSTemplate/Public/GameLift/GameLiftClp.h b/Source/DedicatedServers/Public/GameLift/GameLiftClp.h similarity index 100% rename from Source/FPSTemplate/Public/GameLift/GameLiftClp.h rename to Source/DedicatedServers/Public/GameLift/GameLiftClp.h diff --git a/Source/FPSTemplate/Public/GameLiftClpTypes.h b/Source/DedicatedServers/Public/GameLiftClpTypes.h similarity index 100% rename from Source/FPSTemplate/Public/GameLiftClpTypes.h rename to Source/DedicatedServers/Public/GameLiftClpTypes.h diff --git a/Source/FPSTemplate/FPSTemplate.Build.cs b/Source/FPSTemplate/FPSTemplate.Build.cs index ecdcec2b..3c6b3b42 100644 --- a/Source/FPSTemplate/FPSTemplate.Build.cs +++ b/Source/FPSTemplate/FPSTemplate.Build.cs @@ -30,18 +30,6 @@ public class FPSTemplate : ModuleRules "OpenSSL", }); - // Adds in the plugin for GameLiftServerSDK if it is the server build. - - if (Target.Type == TargetType.Server) - { - PublicDependencyModuleNames.Add("GameLiftServerSDK"); - } - else - { - PublicDefinitions.Add("WITH_GAMELIFT=0"); - } - bEnableExceptions = true; - // Uncomment if you are using Slate UI // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); diff --git a/Source/FPSTemplate/Public/Game/ShooterGameModeBase.h b/Source/FPSTemplate/Public/Game/ShooterGameModeBase.h index 244a8496..a2abc309 100644 --- a/Source/FPSTemplate/Public/Game/ShooterGameModeBase.h +++ b/Source/FPSTemplate/Public/Game/ShooterGameModeBase.h @@ -3,14 +3,14 @@ #pragma once #include "CoreMinimal.h" -#include "GameFramework/GameMode.h" +#include "Game/DS_GameMode.h" #include "ShooterGameModeBase.generated.h" /** * */ UCLASS() -class FPSTEMPLATE_API AShooterGameModeBase : public AGameMode +class FPSTEMPLATE_API AShooterGameModeBase : public ADS_GameMode { GENERATED_BODY() public: