Skip to content

Commit

Permalink
Merge pull request #4 from lpestl/ue-5.3
Browse files Browse the repository at this point in the history
UE 5.3
  • Loading branch information
lpestl authored Mar 4, 2024
2 parents d352735 + d998aa3 commit 32e7fe6
Show file tree
Hide file tree
Showing 15 changed files with 19 additions and 43 deletions.
Binary file modified Media/00_EmptyWindow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Media/04_WinNewWindow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Media/1.jpg
Binary file not shown.
Binary file removed Media/2.jpg
Binary file not shown.
Binary file removed Media/3.jpg
Binary file not shown.
Binary file removed Media/4.jpg
Binary file not shown.
Binary file added Media/slate-format-text.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Media/starship-colors.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Media/starship-icons.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Media/starship-widgets.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 13 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# UnrealSlateAppTemplate #

Project template for creating cross-platform desktop applications based on [Unrial Engine 4](https://www.unrealengine.com/). For the GUI, the [Slate UI Framework](https://docs.unrealengine.com/en-US/ProgrammingAndScripting/Slate/index.html) (part of UE4) is used.
Project template for creating cross-platform desktop applications based on [Unrial Engine](https://www.unrealengine.com/). For the GUI, the [Slate UI Framework](https://docs.unrealengine.com/en-US/ProgrammingAndScripting/Slate/index.html) (part of UnrealEngine) is used.

## Description ##

Expand All @@ -14,23 +14,14 @@ As far as I know, there is currently no easy way to generate such an almost empt

![Empty window](Media/00_EmptyWindow.png)

## Slate UI Gallery ##

All screenshots are taken from the open [Gerke Max Preussner portfolio](https://gmpreussner.com/portfolio/slate-ui)

* ![UE4](Media/1.jpg)
* ![Reflector 1](Media/2.jpg)
* ![Reflector 2](Media/3.jpg)
* ![SlateViewer](Media/4.jpg)

## Requirements ##

1) In order for the "TemplateRenamer" Tool in the form of a script to run correctly, you need to install [Python 3](https://www.python.org/downloads/) (tested with 3.8.5):
1) In order for the "TemplateRenamer" Tool in the form of a script to run correctly, you need to install [Python 3](https://www.python.org/downloads/) (tested with 3.8, 3.9, 3.12):
* Windows - https://www.python.org/downloads/windows/
* Linux - https://www.python.org/downloads/source/
* MacOS - https://www.python.org/downloads/mac-osx/
2) In order for the project to be generated, compiled and run after renaming, you need to have an up-to-date version of [Unrial Engine 4](https://www.unrealengine.com/) (tested on 4.24, 4.25 and 4.26) compiled from [sources from GitHub](https://github.com/EpicGames/UnrealEngine) (**Release** branch is recommended). For this, there is a detailed instruction from EpicGames:
* [How do I access Unreal Engine 4 C++ source code via GitHub?](https://www.unrealengine.com/en-US/ue4-on-github)
2) In order for the project to be generated, compiled and run after renaming, you need to have an up-to-date version of [Unrial Engine](https://www.unrealengine.com/) (tested on 5.2, 5.3) compiled from [sources from GitHub](https://github.com/EpicGames/UnrealEngine) (**Release** branch is recommended). For this, there is a detailed instruction from EpicGames:
* [How do I access Unreal Engine C++ source code via GitHub?](https://www.unrealengine.com/en-US/ue-on-github)
* [Downloading Unreal Engine Source Code](https://docs.unrealengine.com/en-US/ProgrammingAndScripting/ProgrammingWithCPP/DownloadingSourceCode/index.html)
* [Building Unreal Engine from Source](https://docs.unrealengine.com/en-US/ProductionPipelines/DevelopmentSetup/BuildingUnrealEngine/index.html)

Expand All @@ -46,10 +37,18 @@ In order to get a new project with a new name, you need to do the following:
|:------------|:-----------|
| ![Win console](Media/01_winconsole.png) | ![Linux console](Media/02_linuxconsole.png) |

4) Go to the folder with the newly created project, right-click on the `*.uproject` file and select "*Generate project files*" (there are alternative ways for the command line, [more details here](https://docs.unrealengine.com/en-US/ProductionPipelines/BuildTools/UnrealBuildTool/ProjectFilesForIDEs/index.html))
4) Go to the folder with the newly created project, right-click on the `*.uproject` file and select "*Switch Unreal Engine version*" or "*Generate project files*" (there are alternative ways for the command line, [more details here](https://docs.unrealengine.com/en-US/ProductionPipelines/BuildTools/UnrealBuildTool/ProjectFilesForIDEs/index.html))
5) Now open your IDE for which the project was generated, select the project to start, and after compilation, you will see an empty window.

![New window](Media/04_WinNewWindow.png)

Note: It is important to understand that at the first compilation, building the project can take a long time, since IDE tries to index the entire source code of the engine, as well as build the modules that are included in the dependencies. In the future, if you do not change the engine code, then the dependent modules will not be rebuilt, which means that the assembly of your project will be faster.

## Slate UI Gallery ##

All screenshots are taken from base app **SlateViewer**

* ![Slate Starship widgets](Media/starship-widgets.png)
* ![Starship icons](Media/starship-icons.png)
* ![Slate text format](Media/slate-format-text.png)
* ![Base starship theme colors](Media/starship-colors.png)
4 changes: 0 additions & 4 deletions Source/UnrealSlateAppTemplate.Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ public class UnrealSlateAppTemplate : ModuleRules
{
public UnrealSlateAppTemplate(ReadOnlyTargetRules Target) : base(Target)
{
bEnforceIWYU = true;
bLegacyPublicIncludePaths = false;
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

PublicIncludePaths.Add(Path.Combine(EngineDirectory, "Source", "Runtime/Launch/Public"));

PrivateDependencyModuleNames.AddRange(
Expand Down
9 changes: 6 additions & 3 deletions Source/UnrealSlateAppTemplate.Target.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,14 @@ public UnrealSlateAppTemplateTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Program;
LinkType = TargetLinkType.Monolithic;
DefaultBuildSettings = BuildSettingsVersion.Latest;
IncludeOrderVersion = EngineIncludeOrderVersion.Latest;

LaunchModuleName = "UnrealSlateAppTemplate";
ExtraModuleNames.Add("EditorStyle");

bBuildDeveloperTools = false;
if (bBuildEditor)
{
ExtraModuleNames.Add("EditorStyle");
}

// UnrealSlateAppTemplate doesn't ever compile with the engine linked in
bCompileAgainstEngine = false;
Expand Down
21 changes: 0 additions & 21 deletions Tools/TemplateNamer/TemplateNamer.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,12 @@

import sys
import getopt
import re
import os


key_replacing_name = 'UnrealSlateAppTemplate'


def is_valid_name(name):
# Make own character set and pass
# this as argument in compile method
regex = re.compile('[@!"#$%^&*()<>?/\\\|\ }{~:]')

# Pass the string in search
# method of regex object.
if (regex.search(name) is None) and (not name.isspace()):
return True, None
return False, f'The entered name "{name}" must not include special characters or line separators. ' \
f'Please choice another name and try again.'


def is_valid_path(path):
if not os.path.exists(path):
Expand All @@ -49,10 +36,6 @@ def parse_args(argv):
if ('-i', '') in opts or ('--interactive', '') in opts:
input_str = input('<< Please enter a NAME for the new project:\n>> ')
# print(f'{input_str}\n')
is_valid, error = is_valid_name(input_str)
if not is_valid:
print(f'[ERROR] {error}\n')
sys.exit(3)
project_name = input_str

input_str = input('<< Please enter the PATH for the new project:\n>> ')
Expand All @@ -72,10 +55,6 @@ def parse_args(argv):
if opt == '-n' or opt == '--name':
if arg.startswith('"') and arg.endswith('"'):
arg = arg[1:-1]
is_valid, error = is_valid_name(arg)
if not is_valid:
print(f'[ERROR] {error}\n')
sys.exit(3)
project_name = arg

if opt == '-p' or opt == '--path':
Expand Down
1 change: 0 additions & 1 deletion UnrealSlateAppTemplate.uproject
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"FileVersion": 3,
"EngineAssociation": "{347BA320-4993-0E98-2C2A-79B6DAAC4B37}",
"Category": "",
"Description": "",
"Modules": [
Expand Down

0 comments on commit 32e7fe6

Please sign in to comment.