From 8fe5fa0e865caa99fc121ea53214204d44f8086f Mon Sep 17 00:00:00 2001 From: Risensy <58880572+Risensy@users.noreply.github.com> Date: Fri, 19 Jul 2024 18:12:27 +0300 Subject: [PATCH] Steam Sockets --- Config/DefaultEngine.ini | 13 ++- .../HDRI/HDRI_Epic_Courtyard_Daylight.uasset | Bin 66790720 -> 66790720 bytes README.md | 4 +- Source/Steam/Steam.Build.cs | 3 + Steam.uproject | 23 ++++ SteamSettings.ini | 102 ++++++++++++++++++ 6 files changed, 142 insertions(+), 3 deletions(-) create mode 100644 SteamSettings.ini diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 03b5afd..6f24f3f 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -76,7 +76,8 @@ bUseManualIPAddress=False ManualIPAddress= [/Script/Engine.GameEngine] -+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") +!NetDriverDefinitions=ClearArray ++NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/SteamSockets.SteamSocketsNetDriver",DriverClassNameFallback="/Script/SteamSockets.SteamNetSocketsNetDriver") [OnlineSubsystem] DefaultPlatformService=Steam @@ -84,9 +85,17 @@ DefaultPlatformService=Steam [OnlineSubsystemSteam] bEnabled=true SteamDevAppId=480 - bInitServerOnClient=true +bUsesPresence=true +bUseLobbiesIfAvailable=true +bUseSteamNetworking=true +bAllowP2PPacketRelay=true [/Script/OnlineSubsystemSteam.SteamNetDriver] NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" +[SystemSettings] +net.CurrentHandshakeVersion=2 +net.MinHandshakeVersion=2 +net.VerifyNetSessionID=0 +net.VerifyNetClientID=0 \ No newline at end of file diff --git a/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset index ac91ace471627fe6821a0bccdb20a097f4b099a1..6c2e5d8d42223a1bc9b0336585b0e7b2e60b28c1 100644 GIT binary patch delta 4887 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 XhA)r{dGHm!K|XvpO4Rpfl>GO9Di6z9 diff --git a/README.md b/README.md index e0bc854..f6e0345 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # Steam (Advanced Session Plugin) +An example project with OSS Steam, Steam Sockets made on Blueprints. IMPORTANT: The name ‘Advanced Session Plugin’ refers to the use of this plugin in this project! -Developed with Unreal Engine 5 +Build Game (with Steam Sockets) - [link](https://mega.nz/file/7ChX3BpD#Jg5qy90EQs_ON-VONYps329WP5cfC7NeL9-85X7ASQQ) Discord Server - https://discord.gg/AyPUwKdbTK +Developed with Unreal Engine 5 diff --git a/Source/Steam/Steam.Build.cs b/Source/Steam/Steam.Build.cs index 4d82b4b..3065e80 100644 --- a/Source/Steam/Steam.Build.cs +++ b/Source/Steam/Steam.Build.cs @@ -11,6 +11,9 @@ public class Steam : ModuleRules PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); PrivateDependencyModuleNames.AddRange(new string[] { }); + + DynamicallyLoadedModuleNames.Add("OnlineSubsystemSteam"); + // Uncomment if you are using Slate UI // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); diff --git a/Steam.uproject b/Steam.uproject index 579c9ce..e7823f2 100644 --- a/Steam.uproject +++ b/Steam.uproject @@ -25,6 +25,29 @@ { "Name": "OnlineSubsystemSteam", "Enabled": true + }, + { + "Name": "SteamSockets", + "Enabled": true + }, + { + "Name": "OnlineSubsystemGooglePlay", + "Enabled": false, + "SupportedTargetPlatforms": [ + "Android" + ] + }, + { + "Name": "OnlineSubsystemIOS", + "Enabled": false, + "SupportedTargetPlatforms": [ + "IOS", + "TVOS" + ] + }, + { + "Name": "OnlineSubsystemNull", + "Enabled": false } ], "TargetPlatforms": [ diff --git a/SteamSettings.ini b/SteamSettings.ini new file mode 100644 index 0000000..a50e259 --- /dev/null +++ b/SteamSettings.ini @@ -0,0 +1,102 @@ +Default: +[URL] +GameName=Steam + +[/Script/EngineSettings.GameMapsSettings] +EditorStartupMap=/Game/ThirdPerson/Maps/ThirdPersonMap.ThirdPersonMap +GameDefaultMap=/Game/ThirdPerson/Maps/MainMenu.MainMenu +TransitionMap=/Game/ThirdPerson/Maps/TransitionMap.TransitionMap +bUseSplitscreen=True +TwoPlayerSplitscreenLayout=Horizontal +ThreePlayerSplitscreenLayout=FavorTop +GlobalDefaultGameMode=/Game/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.BP_ThirdPersonGameMode_C +GlobalDefaultServerGameMode=None + +[/Script/Engine.RendererSettings] +r.ReflectionMethod=2 +r.GenerateMeshDistanceFields=False +r.DynamicGlobalIlluminationMethod=0 +r.Lumen.TraceMeshSDFs=1 +r.Shadow.Virtual.Enable=0 +r.Mobile.EnableNoPrecomputedLightingCSMShader=1 +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=true +net.AllowPIESeamlessTravel=true + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +-D3D12TargetedShaderFormats=PCD3D_SM5 ++D3D12TargetedShaderFormats=PCD3D_SM6 +-D3D11TargetedShaderFormats=PCD3D_SM5 ++D3D11TargetedShaderFormats=PCD3D_SM5 +Compiler=VisualStudio2022 +AudioSampleRate=48000 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=1 +AudioMaxChannels=0 +AudioNumSourceWorkers=4 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=65536 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +MaxSampleRate=48000.000000 +HighSampleRate=32000.000000 +MedSampleRate=24000.000000 +LowSampleRate=12000.000000 +MinSampleRate=8000.000000 +CompressionQualityModifier=1.000000 +AutoStreamingThreshold=0.000000 +SoundCueCookQualityIndex=-1 + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Maximum +AppliedDefaultGraphicsPerformance=Maximum + +[/Script/Engine.Engine] ++ActiveGameNameRedirects=(OldGameName="TP_ThirdPersonBP",NewGameName="/Script/Steam") ++ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPersonBP",NewGameName="/Script/Steam") + +[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] +bEnablePlugin=True +bAllowNetworkConnection=True +SecurityToken=02698D004705CC8BAEBCD695ADDC04A3 +bIncludeInShipping=False +bAllowExternalStartInShipping=False +bCompileAFSProject=False +bUseCompression=False +bLogFiles=False +bReportStats=False +ConnectionType=USBOnly +bUseManualIPAddress=False +ManualIPAddress= + +[/Script/Engine.GameEngine] ++NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") + +[OnlineSubsystem] +DefaultPlatformService=Steam + +[OnlineSubsystemSteam] +bEnabled=true +SteamDevAppId=480 +bInitServerOnClient=true +bUsesPresence=true +bUseLobbiesIfAvailable=true +bUseSteamNetworking=true + +[/Script/OnlineSubsystemSteam.SteamNetDriver] +NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" + + +steamsockets: +[SystemSettings] +net.CurrentHandshakeVersion=2 +net.MinHandshakeVersion=2 +net.VerifyNetSessionID=0 +net.VerifyNetClientID=0 \ No newline at end of file