Compare commits

..

8 Commits

Author SHA1 Message Date
Ed_
8880398cbe just some binaries and ignores 2024-04-12 12:09:49 -04:00
Ed_
774ea1835a Added run shortcuts for scripts 2024-04-12 11:55:38 -04:00
Ed_
9785f10666 Added uba_launch script 2024-04-12 11:15:11 -04:00
Ed_
6ce90995c3 Sanity build works
For some reason the camera is stereographic...
2024-04-12 00:19:45 -04:00
Ed_
4210e2703f Confimred cog is working
Still need to test UE_ImGui and get the other stuff
2024-04-09 19:14:19 -04:00
Ed_
c1f114b21b Progress on testing Cog 2024-04-09 18:34:23 -04:00
Ed_
1a2d8582f4 Added regen_solutions.ps1, added to update_deps.ps1: imgui/cog/steamaduio into engine
SteamAudio seems to be working fine.
UE_Imgui/Cog are having some issues...
2024-04-09 16:35:54 -04:00
Ed_
41a5dccab4 update_deps.ps1 (latest) 2024-04-08 20:44:32 -04:00
46 changed files with 880 additions and 29599 deletions

43
.editorconfig Normal file
View File

@ -0,0 +1,43 @@
root = true
[*]
charset = utf-8
indent_style = tab
indent_size = 4
tab_width = 4
trim_trailing_whitespace = false
max_line_length = 150
# MSBuild
[*.{csproj,proj,projitems,shproj,fsproj,target,props}]
indent_style = space
indent_size = 2
# XML config files
[*.{config,nuspec,resx,natvis}]
indent_style = space
indent_size = 2
[*.{h, c, hpp, cpp}]
indent_style = tab
indent_size = 4
[*.{ps1, psm1}]
indent_style = tab
indent_size = 4
[*.md]
indent_style = space
indent_size = 4
[*.{natvis, natstepfilter}]
indent_style = tab
indent_size = 4
# Settings for Verse source files
[*.{verse,versetest}]
indent_style = space
indent_size = 4
tab_width = 4
max_line_length = off

19
.gitignore vendored
View File

@ -1,6 +1,25 @@
.idea
.vs
.vscode
Project/.vs
Project/Intermediate
Project/Saved/Logs
Project/Surgo.sln
Project/Saved/ShaderDebugInfo
Project/Saved/Autosaves
Project/Saved/Config/CrashReportClient
Project/Saved/SourceControl
Project/Saved/Crashes
Project/Saved/Config/WindowsEditor/EditorPerProjectUserSettings.ini
Project/Saved/Cooked
Project/Build/Windows/FileOpenOrder/EditorOpenOrder.log
Project/Saved/Shaders
Project/Saved/MaterialStatsDebug
Project/Saved/MaterialStats
Project/Build/Windows/FileOpenOrder
*.target
Project/Saved/StagedBuilds
Project/Binaries
scripts/system_details.ini
Project/Binaries/Win64/SurgoEditor.target
Project/Binaries/Win64/UnrealEditor.modules

BIN
Launch UBA.lnk Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
{
"BuildId": "3e3997fc-e486-42c7-9be0-aac4c5fe0d4b",
"Modules":
{
"Surgo": "UnrealEditor-Surgo.dll",
"SurgoEditor": "UnrealEditor-SurgoEditor.dll"
}
}

View File

@ -0,0 +1,36 @@
[/Script/EngineSettings.GameMapsSettings]
GlobalDefaultGameMode=/Game/Blueprints/TempGameMode.TempGameMode_C
[Audio]
UseAudioMixer=True
[/Script/HardwareTargeting.HardwareTargetingSettings]
TargetedHardwareClass=Desktop
AppliedTargetedHardwareClass=Desktop
DefaultGraphicsPerformance=Maximum
AppliedDefaultGraphicsPerformance=Maximum
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
DefaultGraphicsRHI=DefaultGraphicsRHI_DX12
!D3D12TargetedShaderFormats=ClearArray
+D3D12TargetedShaderFormats=PCD3D_SM6
[/Script/Engine.RendererSettings]
r.GenerateMeshDistanceFields=True
r.DynamicGlobalIlluminationMethod=1
r.ReflectionMethod=1
r.Shadow.Virtual.Enable=1
r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True
r.DefaultFeature.LocalExposure.HighlightContrastScale=0.8
r.DefaultFeature.LocalExposure.ShadowContrastScale=0.8
[/Script/WorldPartitionEditor.WorldPartitionEditorSettings]
CommandletClass=Class'/Script/UnrealEd.WorldPartitionConvertCommandlet'
[/Script/Engine.UserInterfaceSettings]
bAuthorizeAutomaticWidgetVariableCreation=False
FontDPIPreset=Standard
FontDPI=72

View File

BIN
Project/Content/Blueprints/TempGameMode.uasset (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 130 B

View File

@ -0,0 +1,3 @@
[ConsoleHistory]
History=Cog.ToggleInput

View File

@ -1,7 +0,0 @@
[CrashReportClient]
bHideLogFilesOption=false
bIsAllowedToCloseWithoutSending=true
CrashConfigPurgeDays=2
Stall.RecordDump=false
Ensure.RecordDump=true

View File

@ -1,7 +0,0 @@
[CrashReportClient]
bHideLogFilesOption=false
bIsAllowedToCloseWithoutSending=true
CrashConfigPurgeDays=2
Stall.RecordDump=false
Ensure.RecordDump=true

View File

@ -1,7 +0,0 @@
[CrashReportClient]
bHideLogFilesOption=false
bIsAllowedToCloseWithoutSending=true
CrashConfigPurgeDays=2
Stall.RecordDump=false
Ensure.RecordDump=true

View File

@ -1,7 +0,0 @@
[CrashReportClient]
bHideLogFilesOption=false
bIsAllowedToCloseWithoutSending=true
CrashConfigPurgeDays=2
Stall.RecordDump=false
Ensure.RecordDump=true

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,59 @@
[Window][DockSpaceViewport_11111111]
Pos=0,18
Size=1266,628
Collapsed=0
[Window][Settings##Settings]
ViewportPos=1315,389
ViewportId=0x921CC939
Size=302,628
Collapsed=0
DockId=0x00000002,0
[Window][Selection##Selection]
Pos=7,240
Size=142,85
Collapsed=0
[Window][Debug##Default]
Pos=355,41
Size=400,400
Collapsed=0
[Window][Collision Viewer##Collision Viewer]
Pos=681,93
Size=185,382
Collapsed=0
[Window][Metrics##Metrics]
Pos=60,59
Size=170,67
Collapsed=0
[Window][Time Scale##Time Scale]
Pos=428,-58
Size=142,48
Collapsed=0
[Window][Output Log##Output Log]
ViewportPos=1340,471
ViewportId=0x37BEC3A2
Size=972,442
Collapsed=0
[Window][Plots##Plots]
ViewportPos=893,90
ViewportId=0x4546004B
Size=388,274
Collapsed=0
[Docking][Data]
DockNode ID=0x00000002 Pos=1315,389 Size=302,628 HiddenTabBar=1 Selected=0x62EDB289
DockSpace ID=0x8B93E3BD Window=0xA787BDB4 Pos=397,280 Size=1266,628 CentralNode=1
[Cog][Windows]
[Cog][Widgets]
0x348EE4A5 0
0x63A19979 1

View File

@ -1,3 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
<BuildConfiguration>
<bAllowUBAExecutor>true</bAllowUBAExecutor>
<bAllowUBALocalExecuter>true</bAllowUBALocalExecuter>
</BuildConfiguration>
</Configuration>

View File

@ -9,5 +9,7 @@ public class SurgoTarget : TargetRules
{
Type = TargetType.Game;
DefaultBuildSettings = BuildSettingsVersion.Latest;
ExtraModuleNames.Add("Surgo");
}
}

View File

@ -0,0 +1,7 @@
// This is a low-cost header filled mostly with defines or forwards.
// Do not fill this with a bunch of actual definitions.
#include "CogCommon.h"
// Cog Forwards
class UCogWindowManager;

View File

@ -0,0 +1,34 @@
#include "SuGameState.h"
#include "CogAll.h"
#include "CogWindowManager.h"
ASuGameState::ASuGameState()
{
// Enable ticking
PrimaryActorTick.bCanEverTick = true;
PrimaryActorTick.SetTickFunctionEnable(true);
PrimaryActorTick.bStartWithTickEnabled = true;
}
#pragma region GameState
void ASuGameState::BeginPlay()
{
#if ENABLE_COG
CogWindowManager = NewObject<UCogWindowManager>(this);
CogWindowManagerRef = CogWindowManager;
// Add all the built-in windows
Cog::AddAllWindows(*CogWindowManager);
#endif //ENABLE_COG
}
void ASuGameState::Tick(float DeltaSeconds)
{
Super::Tick(DeltaSeconds);
#if ENABLE_COG
CogWindowManager->Tick(DeltaSeconds);
#endif //ENABLE_COG
}
#pragma endregion GameState

View File

@ -0,0 +1,32 @@
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameState.h"
#include "SuCommon.h"
#include "SuGameState.generated.h"
UCLASS(BlueprintType)
class SURGO_API ASuGameState : public AGameState
{
GENERATED_BODY()
public:
ASuGameState();
// To make sure it doesn't get garbage collected.
UPROPERTY()
TObjectPtr<UObject> CogWindowManagerRef = nullptr;
#if ENABLE_COG
TObjectPtr<UCogWindowManager> CogWindowManager = nullptr;
#endif // ENABLE_COG
#pragma region GameState
void BeginPlay() override;
void Tick(float DeltaSeconds) override;
#pragma endregion GameState
};

View File

@ -3,6 +3,8 @@ using System.Collections.Generic;
using ModuleRules = UnrealBuildTool.ModuleRules;
using ReadOnlyTargetRules = UnrealBuildTool.ReadOnlyTargetRules;
using TargetRules = UnrealBuildTool.TargetRules;
using UnrealTargetConfiguration = UnrealBuildTool.UnrealTargetConfiguration;
public class Surgo : ModuleRules
{
@ -14,7 +16,43 @@ public class Surgo : ModuleRules
});
PrivateDependencyModuleNames.AddRange(new string[] {
"Core",
"AIModule",
"CoreUObject",
"Engine",
"EnhancedInput",
"GameplayAbilities",
"GameplayTags",
"GameplayTasks",
"InputCore",
"NetCore",
"Niagara",
});
#endregion Engine
#region Plugins
if (Target.Configuration != UnrealTargetConfiguration.Shipping && Target.Type != TargetRules.TargetType.Server)
{
PrivateIncludePathModuleNames.AddRange( new string[]
{
"CogCommon",
});
PrivateDependencyModuleNames.AddRange(new string[]
{
// "UE_ImGui",
"CogCommon",
"CogAbility",
"CogAI",
"CogAll",
"CogDebug",
"CogEngine",
"CogImgui",
"CogInput",
"CogWindow",
});
}
#endregion Plugins
PublicIncludePathModuleNames.Add("Surgo");
}
}

View File

@ -10,5 +10,8 @@ public class SurgoEditorTarget : TargetRules
Type = TargetType.Editor;
DefaultBuildSettings = BuildSettingsVersion.Latest;
ExtraModuleNames.Add("Surgo");
ExtraModuleNames.Add("SurgoEditor");
}
}

View File

@ -13,5 +13,7 @@ public class SurgoEditor : ModuleRules
"Core",
});
#endregion Engine
PublicIncludePathModuleNames.Add("Surgo");
}
}

View File

@ -8,12 +8,12 @@
{
"Name": "Surgo",
"Type": "Runtime",
"LoadingPhase": "PostConfigInit"
"LoadingPhase": "Default"
},
{
"Name": "SurgoEditor",
"Type": "Editor",
"LoadingPhase": "PostDefault"
"LoadingPhase": "Default"
}
],
"Plugins": [
@ -257,6 +257,34 @@
{
"Name": "ModelViewViewModel",
"Enabled": true
},
{
"Name": "SteamAudio",
"Enabled": true
},
{
"Name": "Cog",
"Enabled": true
},
{
"Name": "CogAbility",
"Enabled": true
},
{
"Name": "CogAI",
"Enabled": true
},
{
"Name": "CogInput",
"Enabled": true
},
{
"Name": "CogAll",
"Enabled": true
},
{
"Name": "GameplayAbilities",
"Enabled": true
}
],
"TargetPlatforms": [

3
Readme.md Normal file
View File

@ -0,0 +1,3 @@
# Surgo
Just a little prototype horde game.

Binary file not shown.

Binary file not shown.

BIN
Run Build Sanity.lnk Normal file

Binary file not shown.

BIN
Run Editor.lnk Normal file

Binary file not shown.

2
UE

@ -1 +1 @@
Subproject commit e5036d7515a3e1c7dabf3b2bee82a46a7bb31015
Subproject commit 1122347e64530d380353e3045fc12709691e59fe

Binary file not shown.

91
scripts/build_sanity.ps1 Normal file
View File

@ -0,0 +1,91 @@
Clear-Host
$path_scripts = $PSScriptRoot
$path_helpers = join-path $path_scripts 'helpers'
$path_root = split-path -Parent -Path $path_scripts
$path_ue = join-path $path_root 'UE'
$path_project = join-path $path_root 'Project'
$feditor_log = '-log'
$fubt_project = '-project'
$fubt_projectfiles = '-projectfiles'
$fubt_game = '-game'
$fubt_engine = '-engine'
$fubt_progress = '-progress'
$ue_editor = join-path $path_ue Engine\Binaries\Win64\UnrealEditor.exe
$UAT = join-path $path_ue '\Engine\Build\BatchFiles\RunUAT.bat'
$UBT = join-path $path_ue 'Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.exe'
$surgo_uproject = join-path $path_project 'Surgo.uproject'
$UAT_BuildCookRun = 'BuildCookRun'
$UAT_BuildGame = 'BuildGame'
$UAT_BuildTarget = 'BuildTarget'
$fUAT_unattended = '-unattended'
$fUAT_configuration = '-configuration'
$fUAT_no_tools = '-notools'
$fUAT_no_xge = '-NoXGE'
$fUAT_disable_unity = '-DisableUnity'
$fUAT_for_unity_builds = '-ForceUnity'
$fUAT_target_platform = '-targetplatform'
$fUAT_server_target_platform = '-servertargetplatform'
$fUAT_package_target = '-package'
$fUAT_skip_package_target = '-skippackage'
$fUAT_never_package_target = '-neverpackage'
$fUAT_project = '-project'
$fUAT_clean = '-clean'
$fUAT_build = '-build'
$fUAT_cook = '-cook'
$fUAT_cook_on_the_fly_streaming = '-cookontheflystreaming'
$fUAT_cook_all = '-CookAll'
$fUAT_cook_maps_only = '-CookMapsOnly'
$fUAT_stage_prequisites = '-prereqs'
$fUAT_stage = '-stage'
$fUAT_run = '-run'
$fUAT_rehydrate_assets = '-rehydrateassets' # Downloads assets that are only referenced virtually
$fUAT_archive = '-archive'
$fUAT_skip_cook = '-skipcook'
$fUAT_skip_cook_on_the_fly = '-skipcookonthefly'
$fUAT_skip_stage = '-skipstage'
$fUAT_generate_pak = '-pak'
$fUAT_pak_align_for_memory_mapping = '-PakAlignForMemoryMapping'
$fUAT_map_to_run = '-map'
$fUAT_server_map_additional_params = '-AdditionalServerMapParams'
$fUAT_distibute = '-distribute'
$fUAT_deploy = '-deploy'
# Build-Cook-Run combo
$fUAT_bcr_server_target = '-dedicatedserver'
$fUAT_bcr_client_target = '-client'
$fUAT_run_just_server = '-noclient'
$fUAT_client_open_log = '-logwindow'
$fUAT_skip_server = '-skipserver'
# Push-Location $path_ue
Push-Location $path_project
$UAT_args = @()
$UAT_args += $UAT_BuildCookRun
$UAT_args += "$fUAT_project=$surgo_uproject"
$UAT_args += $fUAT_build
$UAT_args += $fUAT_cook
$UAT_args += $fUAT_cook_all
$UAT_args += $fUAT_stage
& $UAT $UAT_args
Pop-Location

15
scripts/editor.ps1 Normal file
View File

@ -0,0 +1,15 @@
Clear-Host
$path_scripts = $PSScriptRoot
$path_helpers = join-path $path_scripts 'helpers'
$path_root = split-path -Parent -Path $path_scripts
$path_ue = join-path $path_root 'UE'
$path_project = join-path $path_root 'Project'
$ue_editor = join-path $path_ue 'Engine\Binaries\Win64\UnrealEditor.exe'
$surgo_uproject = join-path $path_project 'Surgo.uproject'
$feditor_log = '-log'
& $ue_editor $surgo_uproject $feditor_log

51
scripts/helpers/misc.ps1 Normal file
View File

@ -0,0 +1,51 @@
# Not a standalone script meant to be used at minimum with update_deps.ps1 in Surgo/Scripts.
$path_system_details = join-path $path_scripts 'system_details.ini'
if ( test-path $path_system_details ) {
$iniContent = Get-IniContent $path_system_details
$CoreCount_Physical = $iniContent["CPU"]["PhysicalCores"]
$CoreCount_Logical = $iniContent["CPU"]["LogicalCores"]
}
elseif ( $IsWindows ) {
$CPU_Info = Get-CimInstance ClassName Win32_Processor | Select-Object -Property NumberOfCores, NumberOfLogicalProcessors
$CoreCount_Physical, $CoreCount_Logical = $CPU_Info.NumberOfCores, $CPU_Info.NumberOfLogicalProcessors
new-item -path $path_system_details -ItemType File
"[CPU]" | Out-File $path_system_details
"PhysicalCores=$CoreCount_Physical" | Out-File $path_system_details -Append
"LogicalCores=$CoreCount_Logical" | Out-File $path_system_details -Append
}
write-host "Core Count - Physical: $CoreCount_Physical Logical: $CoreCount_Logical"
function invoke-git {
param (
$command
)
write-host $command
& git @command
# 2>&1 | ForEach-Object {
# $color = 'Cyan'
# switch ($_){
# { $_ -match "error" } { $color = 'Red' ; break }
# { $_ -match "warning" } { $color = 'Yellow' ; break }
# }
# Write-Host "`t $_" -ForegroundColor $color
# }
}
function verify-git { param( $path )
return test-path (join-path $path '.git')
}
function verify-path { param( $path )
if (test-path $path) {return $true}
new-item -ItemType Directory -Path $path
return $false
}
function grab-zip { param( $url, $path_file, $path_dst )
Invoke-WebRequest -Uri $url -OutFile $path_file
Expand-Archive -Path $path_file -DestinationPath $path_dst -Confirm:$false
}

23
scripts/horde_build.ps1 Normal file
View File

@ -0,0 +1,23 @@
Clear-Host
$path_scripts = $PSScriptRoot
$path_helpers = join-path $path_scripts 'helpers'
$path_root = split-path -Parent -Path $path_scripts
$path_ue = join-path $path_root 'UE'
$path_project = join-path $path_root 'Project'
$surgo_uproject = join-path $path_project 'Surgo.uproject'
$UBT = join-path $path_ue 'Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.exe'
$fubt_project = '-project'
$fubt_projectfiles = '-projectfiles'
$fubt_game = '-game'
$fubt_engine = '-engine'
$fubt_progress = '-progress'
$UAT = join-path $path_ue '\Engine\Build\BatchFiles\RunUAT.bat'
Push-Location $path_ueHordeServer
& $UAT BuildGraph -Script="Engine/Source/Programs/Horde/BuildHorde.xml" -Target="Build HordeServer"
Pop-Location

25
scripts/regen_project.ps1 Normal file
View File

@ -0,0 +1,25 @@
Clear-Host
$path_scripts = $PSScriptRoot
$path_helpers = join-path $path_scripts 'helpers'
$path_root = split-path -Parent -Path $path_scripts
$path_ue = join-path $path_root 'UE'
$path_project = join-path $path_root 'Project'
$surgo_uproject = join-path $path_project 'Surgo.uproject'
$UBT = join-path $path_ue 'Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.exe'
$fubt_project = '-project'
$fubt_projectfiles = '-projectfiles'
$fubt_game = '-game'
$fubt_engine = '-engine'
$fubt_progress = '-progress'
$ubt_args = @()
$ubt_args += $fubt_projectfiles
$ubt_args += "$fubt_project=$surgo_uproject"
$ubt_args += $fubt_game
$ubt_args += $fubt_engine
$ubt_args += $fubt_progress
& $UBT $ubt_args

View File

@ -0,0 +1,28 @@
Clear-Host
$path_scripts = $PSScriptRoot
$path_helpers = join-path $path_scripts 'helpers'
$path_root = split-path -Parent -Path $path_scripts
$path_ue = join-path $path_root 'UE'
$path_project = join-path $path_root 'Project'
$surgo_uproject = join-path $path_project 'Surgo.uproject'
$UBT = join-path $path_ue 'Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.exe'
$fubt_project = '-project'
$fubt_projectfiles = '-projectfiles'
$fubt_game = '-game'
$fubt_engine = '-engine'
$fubt_progress = '-progress'
$GenerateProjectFiles = join-path $path_ue 'GenerateProjectFiles.bat'
& $GenerateProjectFiles
$ubt_args = @()
$ubt_args += $fubt_projectfiles
$ubt_args += "$fubt_project=$surgo_uproject"
$ubt_args += $fubt_game
$ubt_args += $fubt_engine
$ubt_args += $fubt_progress
& $UBT $ubt_args

View File

@ -1,3 +0,0 @@
[CPU]
PhysicalCores=16
LogicalCores=32

27
scripts/uba_launch.ps1 Normal file
View File

@ -0,0 +1,27 @@
$path_scripts = $PSScriptRoot
$path_helpers = join-path $path_scripts 'helpers'
$path_root = split-path -Parent -Path $path_scripts
$path_ue = join-path $path_root 'UE'
$UbaAgent = join-path $path_ue 'Engine\Binaries\Win64\UnrealBuildAccelerator\x64\UbaAgent.exe'
$uba_quic = '-quic'
$uba_host = '-host'
$uba_listen = '-listen'
$uba_name = '-name'
$uba_no_poll = '-no_poll'
$uba_store_raw = '-storeraw'
$uba_max_cpu = '-maxcpu'
$uba_mul_cpu = '-mulcpu'
$uba_memwait = '-maxwait'
$uba_zone = '-zone'
$args = @()
# $args += "$uba_host=192.168.1.148"
$args += $uba_listen
# $args += "$uba_mul_cpu=2.0"
# $args += $uba_quic
# $args += $
& $UbaAgent $args

View File

@ -1,35 +1,18 @@
clear-host
$path_scripts = $PSScriptRoot
$path_scripts = $PSScriptRoot
$path_helpers = join-path $path_scripts 'helpers'
$path_root = split-path -Parent -Path $path_scripts
$ini_parser = join-path $PSScriptRoot 'helpers/ini.ps1'
$ini_parser = join-path $path_helpers 'ini.ps1'
. $ini_parser
write-host 'ini.ps1 imported'
$path_system_details = join-path $path_scripts 'system_details.ini'
if ( test-path $path_system_details ) {
$iniContent = Get-IniContent $path_system_details
$CoreCount_Physical = $iniContent["CPU"]["PhysicalCores"]
$CoreCount_Logical = $iniContent["CPU"]["LogicalCores"]
}
elseif ( $IsWindows ) {
$CPU_Info = Get-CimInstance ClassName Win32_Processor | Select-Object -Property NumberOfCores, NumberOfLogicalProcessors
$CoreCount_Physical, $CoreCount_Logical = $CPU_Info.NumberOfCores, $CPU_Info.NumberOfLogicalProcessors
$misc = join-path $path_helpers 'misc.ps1'
. $misc
write-host 'misc.ps1 imported'
new-item -path $path_system_details -ItemType File
"[CPU]" | Out-File $path_system_details
"PhysicalCores=$CoreCount_Physical" | Out-File $path_system_details -Append
"LogicalCores=$CoreCount_Logical" | Out-File $path_system_details -Append
}
write-host "Core Count - Physical: $CoreCount_Physical Logical: $CoreCount_Logical"
$path_ue = join-path $path_root 'UE'
$ue_repo_url = 'https://github.com/EpicGames/UnrealEngine.git'
$ue_branch_5_4 = '5.4'
$ue_branch_release = 'release'
$ue_branch_main = 'ue5-main'
$ue_origin_offical = 'EpicGames'
$path_ue = join-path $path_root 'UE'
$git_commit_depth = 1
@ -43,41 +26,38 @@ $flag_recursive = '--recursive'
$flag_shallow_submodules = '--shallow-submodules'
$flag_single_branch = '--single-branch'
push-location $path_ue
function invoke-git {
param (
$command
)
write-host $command
& git @command
# 2>&1 | ForEach-Object {
# $color = 'Cyan'
# switch ($_){
# { $_ -match "error" } { $color = 'Red' ; break }
# { $_ -match "warning" } { $color = 'Yellow' ; break }
# }
# Write-Host "`t $_" -ForegroundColor $color
# }
if ((test-path $path_ue) -eq $false) {
new-item -Type Directory $path_ue
}
if ((test-path $path_ue) -eq $false)
{
new-item -Type Directory $path_ue
push-location $path_ue
write-host
$clone_5_4 = @()
$clone_5_4 += 'clone'
$clone_5_4 += $flag_progress
$clone_5_4 += @($flag_origin, $ue_origin_offical)
$clone_5_4 += @($flag_branch, $ue_branch_5_4)
$clone_5_4 += $ue_repo_url
$clone_5_4 += @($flag_commit_depth, $git_commit_depth)
$clone_5_4 += $flag_single_branch
$clone_5_4 += @($flag_jobs, $CoreCount_Physical)
$clone_5_4 += $flag_shallow_submodules
$clone_5_4 += $path_ue
invoke-git $clone_5_4
$path_ue_git = join-path $path_ue '.git'
# If its a clean project, need to do first-time setup
if ((test-path $path_ue_git) -eq $false)
{
write-host 'UE not found, pulling...'
$url_ue_repo = 'https://github.com/EpicGames/UnrealEngine.git'
$ue_branch_5_3 = '5.3'
$ue_branch_5_4 = '5.4'
$ue_branch_release = 'release'
$ue_branch_main = 'ue5-main'
$ue_origin_offical = 'EpicGames'
$clone_ue = @()
$clone_ue += 'clone'
$clone_ue += $flag_progress
$clone_ue += @($flag_origin, $ue_origin_offical)
$clone_ue += @($flag_branch, $ue_branch_5_4)
$clone_ue += $url_ue_repo
$clone_ue += @($flag_commit_depth, $git_commit_depth)
$clone_ue += $flag_single_branch
$clone_ue += @($flag_jobs, $CoreCount_Physical)
$clone_ue += $flag_shallow_submodules
$clone_ue += $path_ue
invoke-git $clone_ue
$init_submodules = @()
$init_submodules += 'submodule'
@ -88,9 +68,269 @@ if ((test-path $path_ue) -eq $false)
$init_submodules += @($flag_jobs, $CoreCount_Physical)
$init_submodules += $flag_single_branch
invoke-git $init_submodules
write-host "UE repo updated`n"
}
else {
write-host "Found existing UE repo, manage manually for updates`n"
}
& .\setup.bat
function Process-UnrealDeps
{
write-host 'Processing Unreal Deps...'
$fgitdep_cache = '--cache'
$fgitdep_dryrun = '--dry-runhttps://github.com/EpicGames/UnrealEngine/tree/5.3'
$fgitdep_include = '--include'
$fgitdep_exclude = '--exclude'
$fgitdep_no_cache = '--no-cache'
$path_gitdeps_cache = "C:/dev/epic/GitDeps"
$ue_plugin_Avalanche = 'Engine/Plugins/Editor/Avalanche'
$ue_plugin_Harmonix = 'Engine/Plugins/Experimental/Harmonix'
$ue_plugin_StormSyncAvalancheBridge = 'Engine/Plugins/Experimental/StormSyncAvalancheBridge'
$ue_plugin_OnlineSubsystemFacebook = 'Engine/Plugins/Online/OnlineSubsystemFacebook'
$ue_plugin_OnlineSubsystemGoogle = 'Engine/Plugins/Online/OnlineSubsystemGoogle'
$ue_plugin_GooglePAD = 'Engine/Plugins/Runtime/GooglePAD'
$exclude_list = @()
$exclude_list += 'WinRT'
$exclude_list += 'Mac'
$exclude_list += 'MacOSX'
$exclude_list += 'osx'
$exclude_list += 'osx64'
$exclude_list += 'osx32'
$exclude_list += 'Android'
$exclude_list += 'IOS'
$exclude_list += 'TVOS'
$exclude_list += 'HTML5'
$exclude_list += 'PS4'
$exclude_list += 'XboxOne'
$exclude_list += 'Switch'
$exclude_list += 'Dingo'
$exclude_list += 'GoogleVR'
$exclude_list += 'LeapMotion'
$exclude_list += 'HoloLens'
$exclude_list += $ue_plugin_Avalanche
$exclude_list += $ue_plugin_Harmonix
$exclude_list += $ue_plugin_GooglePAD
$exclude_list += $ue_plugin_StormSyncAvalancheBridge
$exclude_list += $ue_plugin_OnlineSubsystemFacebook
$exclude_list += $ue_plugin_OnlineSubsystemGoogle
$setup_args = @()
foreach ($entry in $exclude_list) {
$setup_args += "$fgitdep_exclude=$entry"
if (verify-path $entry) {
# remove-item $entry -Recurse
}
}
$setup_args += "$fgitdep_cache=$path_gitdeps_cache"
# $setup_args += $fgitdep_dryrun
# $path_setup_log = 'setup_log.txt'
# $output = Start-Process -FilePath "cmd.exe" -ArgumentList "/c .\Setup.bat $setup_args" -Wait -PassThru -NoNewWindow -RedirectStandardOutput $path_setup_log
# & .\Setup.bat $setup_arg
& .\Setup.bat
# $path_templates = join-path $path_ue 'Templates'
# remove-item $path_templates -Recurse
# 'Deleted UE templates (grab them manually if want)'
write-host "Finished processing unreal deps`n"
}
Process-UnrealDeps
$ue_plugins_surgo = join-path $path_ue 'Engine\Plugins\Surgo'
verify-path $ue_plugins_surgo
function setup-fmod
{
$ue_module_FMODStudio = join-path $path_ue '\Engine\Plugins\FMODStudio'
$ue_module_FMODStudioNiagara = join-path $path_ue '\Engine\Plugins\FMODStudioNiagara'
$url_fmod = 'https://github.com/fmod/fmod-for-unreal.git'
$clone_repo = @()
$clone_repo += 'clone'
$clone_repo += $flag_progress
$clone_repo += @($flag_origin, 'fmod')
$clone_repo += @($flag_branch, 'master')
$clone_repo += $url_steamaudio
$clone_repo += $flag_single_branch
$clone_repo += @($flag_jobs, $CoreCount_Physical)
$clone_repo += $ue_module_SteamAudio
invoke-git $clone_repo
}
# setup-fmod
function setup-steamaudio
{
$ue_plugin_Steam = join-path $path_ue 'Engine\Plugins\Runtime\Steam'
$ue_plugin_SteamAudio = join-path $path_ue 'Engine\Plugins\Runtime\Steam\SteamAudio'
$ue_plugin_SteamAudioFMODStudio = join-path $path_ue 'Engine\Plugins\Runtime\Steam\SteamAudioFMODStudio'
if ($false) {
if (verify-git $ue_plugin_SteamAudio ) {
write-host "Steam Audio repo found, manage manually for updates`n"
return
}
write-host 'Grabbing Steam Audio repo'
remove-item -Path "$ue_plugin_SteamAudio\*" -Recurse -Confirm:$false
$url_steamaudio = 'https://github.com/ValveSoftware/steam-audio.git'
$clone_repo = @()
$clone_repo += 'clone'
$clone_repo += $flag_progress
$clone_repo += @($flag_origin, 'ValveSoftware')
$clone_repo += @($flag_branch, 'master')
$clone_repo += $url_steamaudio
$clone_repo += $flag_single_branch
$clone_repo += @($flag_jobs, $CoreCount_Physical)
$clone_repo += $ue_plugin_SteamAudio
invoke-git $clone_repo
}
else {
write-host 'Grabbing Steam Audio zip'
remove-item -Path $ue_plugin_SteamAudio -Recurse -Confirm:$false
$url_steamaudio = 'https://github.com/ValveSoftware/steam-audio/releases/download/v4.5.3/steamaudio_unreal_4.5.3.zip'
$path_steamaudio_zip = join-path $ue_plugin_Steam 'steamaudio_unreal_4.5.3.zip'
grab-zip $url_steamaudio $path_steamaudio_zip $ue_plugin_Steam
# Engine\Plugins\Runtime\Steam\steamaudio_unreal\unreal\SteamAudio
$path_steamaudio_unreal = join-path $ue_plugin_Steam 'steamaudio_unreal'
$path_steamaudio_unreal_SteamAudio = join-path $path_steamaudio_unreal 'unreal\SteamAudio'
# $ue_binaries_SteamFMODStudio = join-path $path_steamaudio_unreal 'FMODStudio'
# remove-item -Type Directory $ue_binaries_SteamFMODStudio -Recurse -Confirm:$false
move-item -Path $path_steamaudio_unreal_SteamAudio -Destination $ue_plugin_Steam -Confirm:$false
remove-item $path_steamaudio_unreal -Recurse -Confirm:$false
remove-item $path_steamaudio_zip -Confirm:$false
}
write-host
}
setup-steamaudio
function setup-imgui
{
$ue_plugin_VesCodesImGui = join-path $path_ue 'Engine\Plugins\Surgo\UE_ImGui'
$ue_plugin_ImGui = join-path $path_ue 'Engine\Plugins\Surgo\UnrealImGui'
$ue_plugin_ImGuiTools = join-path $path_ue 'Engine\Plugins\Surgo\UnrealImGuiTools'
$add_VesCodesImGui = $true
$add_UnrealImGui = $false
$add_UnrealImGuiTools = $false
# if ($add_VesCodesImGui -and (-not (verify-git $ue_plugin_VesCodesImGui)))
if ($add_VesCodesImGui)
{
write-host 'Grabbing VesCodes ImGui repo'
verify-path $ue_plugin_VesCodesImGui
$url_VesCodesImGui = 'https://github.com/Ed94/UE_ImGui.git'
$clone_imgui = @()
$clone_imgui += 'clone'
$clone_imgui += $flag_progress
$clone_imgui += @($flag_origin, 'Ed94')
$clone_imgui += @($flag_branch, 'Main')
$clone_imgui += $url_VesCodesImGui
$clone_imgui += $flag_single_branch
$clone_imgui += @($flag_jobs, $CoreCount_Physical)
$clone_imgui += $ue_plugin_VesCodesImGui
invoke-git $clone_imgui
$path_engine_thirdparty = Join-Path $path_ue 'Engine/Source/Thirdparty'
$path_VescodesImGui_thirdparty = join-path $ue_plugin_VesCodesImGui 'Source/Thirdparty'
Move-Item -Path "$path_VescodesImGui_thirdparty\*" -Destination $path_engine_thirdparty -Confirm:$false
Remove-Item -Path $path_VescodesImGui_thirdparty -Recurse -Confirm:$false
}
if ($add_UnrealImGui -and (-not (verify-git $ue_plugin_ImGui)))
{
write-host 'Grabbing UnrealImGui repo'
verify-path $ue_plugin_ImGui
$url_UnrealImGui = 'https://github.com/Ed94/UnrealImGui.git'
$clone_imgui = @()
$clone_imgui += 'clone'
$clone_imgui += $flag_progress
$clone_imgui += @($flag_origin, 'Ed94')
$clone_imgui += @($flag_branch, 'master')
$clone_imgui += $url_UnrealImGui
$clone_imgui += $flag_single_branch
$clone_imgui += @($flag_jobs, $CoreCount_Physical)
$clone_imgui += $ue_plugin_ImGui
invoke-git $clone_imgui
}
if ($add_UnrealImGuiTools -and (-not (verify-git $ue_plugin_ImGuiTools)))
{
write-host 'Grabbing UnrealImGuiTools repo'
verify-path $ue_plugin_ImGuiTools
$url_UnrealImGuiTools = 'https://github.com/nakdeyes/UnrealImGuiTools.git'
$clone_imguitools = @()
$clone_imguitools += 'clone'
$clone_imguitools += $flag_progress
$clone_imguitools += @($flag_origin, 'nakdeyes')
$clone_imguitools += @($flag_branch, 'main')
$clone_imguitools += $url_UnrealImGuiTools
$clone_imguitools += $flag_single_branch
$clone_imguitools += @($flag_jobs, $CoreCount_Physical)
$clone_imguitools += $ue_plugin_ImGuiTools
invoke-git $clone_imguitools
}
write-host
}
setup-imgui
function setup-cog
{
$ue_plugin_Cog = join-path $path_ue 'Engine\Plugins\Surgo\Cog'
if ($false) {
write-host 'Grabbing Cog repo'
if (verify-git $ue_plugin_Cog) {return}
verify-path $ue_plugin_Cog
$url_Cog = 'https://github.com/arnaud-jamin/Cog.git'
$clone_cog = @()
$clone_cog += 'clone'
$clone_cog += $flag_progress
$clone_cog += @($flag_origin, 'arnaud-jamin')
$clone_cog += @($flag_branch, 'main')
$clone_cog += $url_Cog
$clone_cog += $flag_single_branch
$clone_cog += @($flag_jobs, $CoreCount_Physical)
$clone_cog += $ue_plugin_Cog
invoke-git $clone_cog
}
else {
write-host 'Grabbing Cog zip'
$url_Cog = 'https://github.com/Ed94/Cog/releases/download/latest/Cog.zip'
$path_cog_zip = join-path $ue_plugins_surgo 'Cog.zip'
grab-ip $url_Cog $path_cog_zip $ue_plugins_surgo
remove-item $path_cog_zip -Confirm:$false
}
write-host
}
setup-cog
function setup-tracy
{
# TODO(Ed): Eventually add
$url_ue_tracy = 'https://github.com/Nesquick0/TracyUnrealPlugin.git'
}
# setup_tracy
& .\GenerateProjectFiles.bat
pop-location # $path_ue